마이 페이지

- 로그인 했을 때만 데이터를 조회하도록 수정
This commit is contained in:
2025-03-22 04:55:31 +09:00
parent 70fe5a4441
commit 3b3327be7b
8 changed files with 231 additions and 180 deletions

View File

@@ -23,6 +23,7 @@ import kr.co.vividnext.sodalive.explorer.profile.UserProfileActivity
import kr.co.vividnext.sodalive.extensions.moneyFormat
import kr.co.vividnext.sodalive.following.FollowingCreatorActivity
import kr.co.vividnext.sodalive.live.reservation_status.LiveReservationStatusActivity
import kr.co.vividnext.sodalive.main.MainActivity
import kr.co.vividnext.sodalive.mypage.alarm.AlarmListActivity
import kr.co.vividnext.sodalive.mypage.auth.Auth
import kr.co.vividnext.sodalive.mypage.auth.AuthVerifyRequest
@@ -55,78 +56,13 @@ class MyPageFragment : BaseFragment<FragmentMyBinding>(FragmentMyBinding::inflat
override fun onStart() {
super.onStart()
viewModel.getUserInfo()
if (SharedPreferenceManager.token.isNotBlank()) {
viewModel.getUserInfo()
}
}
private fun setupView() {
binding.ivSettings.setOnClickListener {
startActivity(
Intent(
requireActivity(),
SettingsActivity::class.java
)
)
}
binding.ivEdit.setOnClickListener {
startActivity(
Intent(
requireActivity(),
ProfileUpdateActivity::class.java
)
)
}
if (SharedPreferenceManager.userId == 17958L) {
binding.llCan.visibility = View.GONE
} else {
binding.llCan.visibility = View.VISIBLE
binding.llTotalCan.setOnClickListener {
startActivity(
Intent(
requireActivity(),
CanStatusActivity::class.java
)
)
}
binding.tvChargeCan.setOnClickListener {
startActivity(
Intent(
requireActivity(),
CanChargeActivity::class.java
)
)
}
}
binding.rlCoupon.setOnClickListener {
startActivity(
Intent(
requireActivity(),
CanCouponActivity::class.java
)
)
}
binding.rlAlarm.setOnClickListener {
startActivity(
Intent(
requireActivity(),
AlarmListActivity::class.java
)
)
}
binding.llReservationLive.setOnClickListener {
startActivity(
Intent(
requireActivity(),
LiveReservationStatusActivity::class.java
)
)
}
binding.rlServiceCenter.setOnClickListener {
startActivity(
Intent(
@@ -136,70 +72,6 @@ class MyPageFragment : BaseFragment<FragmentMyBinding>(FragmentMyBinding::inflat
)
}
binding.tvAuth.setOnClickListener {
Auth.auth(requireActivity(), requireContext()) {
val bootpayResponse = Gson().fromJson(it, BootpayResponse::class.java)
val request = AuthVerifyRequest(receiptId = bootpayResponse.data.receiptId)
requireActivity().runOnUiThread {
viewModel.authVerify(request) {
startActivity(
Intent(
requireContext(),
SplashActivity::class.java
).apply {
addFlags(
Intent.FLAG_ACTIVITY_CLEAR_TASK or
Intent.FLAG_ACTIVITY_NEW_TASK
)
}
)
requireActivity().finish()
}
}
}
}
if (SharedPreferenceManager.role == MemberRole.CREATOR.name) {
binding.tvMyChannel.visibility = View.VISIBLE
binding.tvMyChannel.setOnClickListener {
startActivity(
Intent(
requireContext(),
UserProfileActivity::class.java
).apply {
putExtra(
Constants.EXTRA_USER_ID,
SharedPreferenceManager.userId
)
}
)
}
} else {
binding.tvMyChannel.visibility = View.GONE
}
binding.tvFollowingList.setOnClickListener {
startActivity(Intent(requireContext(), FollowingCreatorActivity::class.java))
}
binding.tvBlockMemberList.setOnClickListener {
startActivity(Intent(requireContext(), BlockMemberActivity::class.java))
}
binding.tvOrderList.setOnClickListener {
startActivity(
Intent(requireContext(), AudioContentBoxActivity::class.java)
)
}
binding.tvPlaylist.setOnClickListener {
startActivity(
Intent(requireContext(), AudioContentBoxActivity::class.java).apply {
putExtra(Constants.EXTRA_START_TAB_POSITION, 1)
}
)
}
val ivHowToUseLp = binding.ivHowToUse.layoutParams as LinearLayout.LayoutParams
ivHowToUseLp.width = screenWidth
ivHowToUseLp.height = (200 * screenWidth) / 1080
@@ -210,6 +82,173 @@ class MyPageFragment : BaseFragment<FragmentMyBinding>(FragmentMyBinding::inflat
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
}
}
if (SharedPreferenceManager.token.isNotBlank()) {
binding.ivSettings.visibility = View.VISIBLE
binding.llProfileContainer.visibility = View.VISIBLE
binding.llProfileLoginContainer.visibility = View.GONE
binding.llFollowingMemberListContainer.visibility = View.VISIBLE
binding.rlAlarm.visibility = View.VISIBLE
binding.rlCoupon.visibility = View.VISIBLE
binding.llLockerContainer.visibility = View.VISIBLE
binding.llReservationStatusContainer.visibility = View.VISIBLE
binding.ivSettings.setOnClickListener {
startActivity(
Intent(
requireActivity(),
SettingsActivity::class.java
)
)
}
binding.ivEdit.setOnClickListener {
startActivity(
Intent(
requireActivity(),
ProfileUpdateActivity::class.java
)
)
}
if (SharedPreferenceManager.userId == 17958L) {
binding.llCan.visibility = View.GONE
} else {
binding.llCan.visibility = View.VISIBLE
binding.llTotalCan.setOnClickListener {
startActivity(
Intent(
requireActivity(),
CanStatusActivity::class.java
)
)
}
binding.tvChargeCan.setOnClickListener {
startActivity(
Intent(
requireActivity(),
CanChargeActivity::class.java
)
)
}
}
binding.rlCoupon.setOnClickListener {
startActivity(
Intent(
requireActivity(),
CanCouponActivity::class.java
)
)
}
binding.rlAlarm.setOnClickListener {
startActivity(
Intent(
requireActivity(),
AlarmListActivity::class.java
)
)
}
binding.llReservationLive.setOnClickListener {
startActivity(
Intent(
requireActivity(),
LiveReservationStatusActivity::class.java
)
)
}
binding.tvAuth.setOnClickListener {
Auth.auth(requireActivity(), requireContext()) {
val bootpayResponse = Gson().fromJson(it, BootpayResponse::class.java)
val request = AuthVerifyRequest(receiptId = bootpayResponse.data.receiptId)
requireActivity().runOnUiThread {
viewModel.authVerify(request) {
startActivity(
Intent(
requireContext(),
SplashActivity::class.java
).apply {
addFlags(
Intent.FLAG_ACTIVITY_CLEAR_TASK or
Intent.FLAG_ACTIVITY_NEW_TASK
)
}
)
requireActivity().finish()
}
}
}
}
if (SharedPreferenceManager.role == MemberRole.CREATOR.name) {
binding.tvMyChannel.visibility = View.VISIBLE
binding.tvMyChannel.setOnClickListener {
startActivity(
Intent(
requireContext(),
UserProfileActivity::class.java
).apply {
putExtra(
Constants.EXTRA_USER_ID,
SharedPreferenceManager.userId
)
}
)
}
} else {
binding.tvMyChannel.visibility = View.GONE
}
binding.tvFollowingList.setOnClickListener {
startActivity(Intent(requireContext(), FollowingCreatorActivity::class.java))
}
binding.tvBlockMemberList.setOnClickListener {
startActivity(Intent(requireContext(), BlockMemberActivity::class.java))
}
binding.tvOrderList.setOnClickListener {
startActivity(
Intent(requireContext(), AudioContentBoxActivity::class.java)
)
}
binding.tvPlaylist.setOnClickListener {
startActivity(
Intent(requireContext(), AudioContentBoxActivity::class.java).apply {
putExtra(Constants.EXTRA_START_TAB_POSITION, 1)
}
)
}
} else {
binding.tvTotalCan.text = "0"
binding.ivSettings.visibility = View.GONE
binding.llProfileContainer.visibility = View.GONE
binding.llProfileLoginContainer.visibility = View.VISIBLE
binding.llFollowingMemberListContainer.visibility = View.GONE
binding.rlAlarm.visibility = View.GONE
binding.rlCoupon.visibility = View.GONE
binding.llLockerContainer.visibility = View.GONE
binding.llReservationStatusContainer.visibility = View.GONE
binding.llProfileLoginContainer.setOnClickListener {
(requireActivity() as MainActivity).showLoginActivity()
}
binding.llTotalCan.setOnClickListener {
(requireActivity() as MainActivity).showLoginActivity()
}
binding.tvChargeCan.setOnClickListener {
(requireActivity() as MainActivity).showLoginActivity()
}
}
}
@SuppressLint("SetTextI18n", "NotifyDataSetChanged")

View File

@@ -3,18 +3,12 @@ package kr.co.vividnext.sodalive.mypage.service_center
import io.reactivex.rxjava3.core.Single
import kr.co.vividnext.sodalive.common.ApiResponse
import retrofit2.http.GET
import retrofit2.http.Header
import retrofit2.http.Query
interface FaqApi {
@GET("/faq")
fun getFaqs(
@Query("category") category: String,
@Header("Authorization") authHeader: String
): Single<ApiResponse<List<Faq>>>
fun getFaqs(@Query("category") category: String): Single<ApiResponse<List<Faq>>>
@GET("/faq/category")
fun getFaqCategories(
@Header("Authorization") authHeader: String
): Single<ApiResponse<List<String>>>
fun getFaqCategories(): Single<ApiResponse<List<String>>>
}

View File

@@ -1,9 +1,6 @@
package kr.co.vividnext.sodalive.mypage.service_center
class FaqRepository(private val api: FaqApi) {
fun getCategories(token: String) = api.getFaqCategories(authHeader = token)
fun getFaqs(category: String, token: String) = api.getFaqs(
category = category,
authHeader = token
)
fun getCategories() = api.getFaqCategories()
fun getFaqs(category: String) = api.getFaqs(category = category)
}

View File

@@ -6,7 +6,6 @@ import com.orhanobut.logger.Logger
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
import kr.co.vividnext.sodalive.base.BaseViewModel
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
class ServiceCenterViewModel(val repository: FaqRepository) : BaseViewModel() {
@@ -24,7 +23,7 @@ class ServiceCenterViewModel(val repository: FaqRepository) : BaseViewModel() {
fun getFaqCategories() {
compositeDisposable.add(
repository.getCategories(token = "Bearer ${SharedPreferenceManager.token}")
repository.getCategories()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
@@ -51,10 +50,7 @@ class ServiceCenterViewModel(val repository: FaqRepository) : BaseViewModel() {
fun getFaqs(category: String) {
compositeDisposable.add(
repository.getFaqs(
category = category,
token = "Bearer ${SharedPreferenceManager.token}"
)
repository.getFaqs(category = category)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(

View File

@@ -52,7 +52,8 @@ class LoginActivity : BaseActivity<ActivityLoginBinding>(ActivityLoginBinding::i
}
}
binding.tvToolbar.text = "로그인"
binding.toolbar.tvBack.text = "로그인"
binding.toolbar.tvBack.setOnClickListener { finish() }
loadingDialog = LoadingDialog(this, layoutInflater)
binding.etPassword.setOnEditorActionListener { _, actionId, _ ->