Skip to content

Commit

Permalink
Feat/#1 출시?
Browse files Browse the repository at this point in the history
  • Loading branch information
40food authored Jul 18, 2024
2 parents b03c655 + c929df1 commit 15394f0
Show file tree
Hide file tree
Showing 10 changed files with 285 additions and 188 deletions.
9 changes: 9 additions & 0 deletions app/src/main/java/com/umc/ttoklip/data/api/OtherApi.kt
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
package com.umc.ttoklip.data.api

import com.umc.ttoklip.data.model.CommonResponse
import com.umc.ttoklip.data.model.ResponseBody
import com.umc.ttoklip.data.model.mypage.MyHoneyTipsResponse
import com.umc.ttoklip.data.model.news.ReportRequest
import com.umc.ttoklip.data.model.stranger.OtherUserInfoResponse
import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.Path
import retrofit2.http.Query

Expand All @@ -21,4 +25,9 @@ interface OtherApi {
@Query("page") page : Int,
): Response<ResponseBody<MyHoneyTipsResponse>>

@POST("/api/v1/member/report")
suspend fun postReportUserApi(
@Query("nickName") nickname: String,
@Body request : ReportRequest
): Response<ResponseBody<CommonResponse>>
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.umc.ttoklip.data.repository.stranger

import com.umc.ttoklip.data.model.CommonResponse
import com.umc.ttoklip.data.model.mypage.MyHoneyTipsResponse
import com.umc.ttoklip.data.model.news.ReportRequest
import com.umc.ttoklip.data.model.signup.SignupResponse
import com.umc.ttoklip.data.model.stranger.OtherUserInfoResponse
import com.umc.ttoklip.data.model.stranger.StrangerResponse
Expand All @@ -10,4 +12,6 @@ interface StrangerRepository {
suspend fun getStranger(nick:String): NetworkResult<OtherUserInfoResponse>

suspend fun getStrangerTip(page : Int, id : Int) : NetworkResult<MyHoneyTipsResponse>

suspend fun reportUser(nick: String, request: ReportRequest): NetworkResult<CommonResponse>
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.umc.ttoklip.data.repository.stranger

import com.umc.ttoklip.data.api.OtherApi
import com.umc.ttoklip.data.model.CommonResponse
import com.umc.ttoklip.data.model.ResponseBody
import com.umc.ttoklip.data.model.mypage.MyHoneyTipsResponse
import com.umc.ttoklip.data.model.news.ReportRequest
import com.umc.ttoklip.data.model.stranger.OtherUserInfoResponse
import com.umc.ttoklip.module.NetworkResult
import com.umc.ttoklip.module.handleApi
Expand All @@ -21,4 +23,7 @@ class StrangerRepositoryImpl @Inject constructor(
}


override suspend fun reportUser(nick: String, request: ReportRequest): NetworkResult<CommonResponse> {
return handleApi({api.postReportUserApi(nick, request)}) {response: ResponseBody<CommonResponse> -> response.result}
}
}
6 changes: 3 additions & 3 deletions app/src/main/java/com/umc/ttoklip/di/NetworkModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,9 @@ object NetworkModule {
return OkHttpClient.Builder().apply {

addInterceptor (interceptor)
connectTimeout(5, TimeUnit.SECONDS)
readTimeout(5, TimeUnit.SECONDS)
writeTimeout(5, TimeUnit.SECONDS)
connectTimeout(25, TimeUnit.SECONDS)
readTimeout(25, TimeUnit.SECONDS)
writeTimeout(25, TimeUnit.SECONDS)
}.build()
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,20 +55,20 @@ class MyPageFragment : BaseFragment<FragmentMyPageBinding>(R.layout.fragment_my_
startActivity(intent)
}

binding.manageAccountFrame.setOnClickListener { //계정정보 화면 새로 만들 필요 있음
val intent = Intent(requireContext(), AccountInfoActivity::class.java)
startActivity(intent)
}
// binding.manageAccountFrame.setOnClickListener { //계정정보 화면 새로 만들 필요 있음
// val intent = Intent(requireContext(), AccountInfoActivity::class.java)
// startActivity(intent)
// }

binding.announcementFrame.setOnClickListener { //공지사항 두 개만 넣어달라, api 연결은 해놨음
val intent = Intent(requireContext(), SetAnnouncementActivity::class.java)
startActivity(intent)
}

binding.usageManageFrame.setOnClickListener { //api 연결은 해놨음
val intent = Intent(requireContext(), ManageUsageActivity::class.java)
startActivity(intent)
}
// binding.usageManageFrame.setOnClickListener { //api 연결은 해놨음
// val intent = Intent(requireContext(), ManageUsageActivity::class.java)
// startActivity(intent)
// }

binding.customerServiceCenterFrame.setOnClickListener { //고객센터-faq 불러오기 연동 필요, 1:1 문의 보내기 필요
val intent = Intent(requireContext(), CustomerServiceCenterActivity::class.java)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,20 @@ package com.umc.ttoklip.presentation.otheruser

import android.content.Context
import android.content.Intent
import android.widget.Toast
import androidx.activity.viewModels
import androidx.core.view.isGone
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import com.umc.ttoklip.R
import com.umc.ttoklip.TtoklipApplication
import com.umc.ttoklip.data.model.honeytip.request.ReportRequest
import com.umc.ttoklip.databinding.ActivityOtheruserProfileBinding
import com.umc.ttoklip.presentation.base.BaseActivity
import com.umc.ttoklip.presentation.dialog.ReportDialogFragment
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.launch

@AndroidEntryPoint
class OtherUserActivity :
Expand All @@ -16,18 +25,57 @@ class OtherUserActivity :

override fun initView() {
binding.vm = viewModel
viewModel.getStranger(intent.getStringExtra(OTHERUSER) ?: "")
(intent.getStringExtra(OTHERUSER) ?: "").let {
viewModel.getStranger(it)
if (it == TtoklipApplication.prefs.getString("nickname", "")) {
binding.reportBtn.isGone = true
}
}

binding.otherprofileBackIb.setOnClickListener {
finish()
}
binding.otherprofileHoneytipCl.setOnClickListener {
startActivity(OtherTipActivity.newIntent(this, viewModel.strangerInfo.value.userId, viewModel.strangerInfo.value.nickname))
startActivity(
OtherTipActivity.newIntent(
this,
viewModel.strangerInfo.value.userId,
viewModel.strangerInfo.value.nickname
)
)
}


binding.reportBtn.setOnClickListener {
val reportDialog = ReportDialogFragment()
reportDialog.setDialogClickListener(object : ReportDialogFragment.DialogClickListener {

override fun onClick(type: String, content: String) {
viewModel.postReportUser(
com.umc.ttoklip.data.model.news.ReportRequest(
content,
type
)
)
}
})
reportDialog.show(supportFragmentManager, reportDialog.tag)
}
}

override fun initObserver() {
lifecycleScope.launch {
repeatOnLifecycle(Lifecycle.State.STARTED) {
viewModel.event.collect { event ->
when(event){
is OtherUserViewModel.OtherEvent.ToastMessage -> {
Toast.makeText(this@OtherUserActivity, event.message, Toast.LENGTH_SHORT).show()
}
}

}
}
}
}

companion object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,19 @@ package com.umc.ttoklip.presentation.otheruser
import android.util.Log
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.umc.ttoklip.data.model.news.ReportRequest
import com.umc.ttoklip.data.model.stranger.OtherUserInfoResponse
import com.umc.ttoklip.data.repository.stranger.StrangerRepository
import com.umc.ttoklip.module.onException
import com.umc.ttoklip.module.onFail
import com.umc.ttoklip.module.onSuccess
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharedFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asSharedFlow
import kotlinx.coroutines.launch
import javax.inject.Inject

Expand All @@ -24,7 +28,16 @@ class OtherUserViewModel @Inject constructor(
val strangerInfo: StateFlow<OtherUserInfoResponse>
get() = _strangerInfo

fun getStranger(nick : String){
val event : SharedFlow<OtherEvent>
get() = _event.asSharedFlow()

private val _event = MutableSharedFlow<OtherEvent>()

sealed class OtherEvent {
data class ToastMessage(val message: String) : OtherEvent()
}

fun getStranger(nick: String) {
viewModelScope.launch(Dispatchers.IO) {
try {
strangerRepository.getStranger(nick)
Expand All @@ -41,4 +54,21 @@ class OtherUserViewModel @Inject constructor(
}
}
}

fun postReportUser(request: ReportRequest) {
viewModelScope.launch(Dispatchers.IO) {
try {
strangerRepository.reportUser(strangerInfo.value.nickname, request).onSuccess {
_event.emit(OtherEvent.ToastMessage(it.message))
}.onFail {
_event.emit((OtherEvent.ToastMessage("신고 사유를 알려주세요")))
}.onException {
throw it
}
} catch (e: Exception) {
e.printStackTrace()
Log.d("예외", "$e")
}
}
}
}
Loading

0 comments on commit 15394f0

Please sign in to comment.