diff --git a/app/build.gradle.kts b/app/build.gradle.kts index f9c36afab..08f844047 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -76,7 +76,6 @@ dependencies { implementation(projects.domain.login) implementation(projects.domain.challenge) implementation(projects.domain.onboarding) - implementation(projects.domain.point) implementation(projects.domain.lock) // Data @@ -86,7 +85,6 @@ dependencies { implementation(projects.data.challenge) implementation(projects.data.device) implementation(projects.data.onboarding) - implementation(projects.data.point) implementation(projects.data.lock) implementation(projects.data.main) diff --git a/app/src/main/java/com/hmh/hamyeonham/StartActivity.kt b/app/src/main/java/com/hmh/hamyeonham/StartActivity.kt index d83c608b8..781f24b9a 100644 --- a/app/src/main/java/com/hmh/hamyeonham/StartActivity.kt +++ b/app/src/main/java/com/hmh/hamyeonham/StartActivity.kt @@ -8,13 +8,10 @@ import com.hmh.hamyeonham.common.view.viewBinding import com.hmh.hamyeonham.databinding.ActivitySampleBinding import com.hmh.hamyeonham.feature.login.LoginActivity import dagger.hilt.android.AndroidEntryPoint -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers @AndroidEntryPoint class StartActivity : AppCompatActivity() { private val binding by viewBinding(ActivitySampleBinding::inflate) - private val coroutineScope = CoroutineScope(Dispatchers.Main) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/app/src/main/java/com/hmh/hamyeonham/navigation/DefaultNavigationProvider.kt b/app/src/main/java/com/hmh/hamyeonham/navigation/DefaultNavigationProvider.kt index 15c7b5992..84aa868a3 100644 --- a/app/src/main/java/com/hmh/hamyeonham/navigation/DefaultNavigationProvider.kt +++ b/app/src/main/java/com/hmh/hamyeonham/navigation/DefaultNavigationProvider.kt @@ -2,7 +2,6 @@ package com.hmh.hamyeonham.navigation import android.content.Context import android.content.Intent -import com.hmh.hamyeonham.challenge.point.PointActivity import com.hmh.hamyeonham.common.navigation.NavigationProvider import com.hmh.hamyeonham.common.permission.PermissionActivity import com.hmh.hamyeonham.feature.lock.LockActivity @@ -41,10 +40,6 @@ class DefaultNavigationProvider @Inject constructor( return Intent(context, StoreActivity::class.java) } - override fun toPoint(): Intent { - return Intent(context, PointActivity::class.java) - } - override fun toPermission(): Intent { return Intent(context, PermissionActivity::class.java) } diff --git a/core/common/src/main/java/com/hmh/hamyeonham/common/context/ContextExt.kt b/core/common/src/main/java/com/hmh/hamyeonham/common/context/ContextExt.kt index 21d062647..60e17dec0 100644 --- a/core/common/src/main/java/com/hmh/hamyeonham/common/context/ContextExt.kt +++ b/core/common/src/main/java/com/hmh/hamyeonham/common/context/ContextExt.kt @@ -1,10 +1,8 @@ package com.hmh.hamyeonham.common.context import android.Manifest -import android.app.Activity import android.app.Dialog import android.content.Context -import android.content.ContextWrapper import android.content.pm.ApplicationInfo import android.content.pm.PackageManager import android.graphics.Point diff --git a/core/common/src/main/java/com/hmh/hamyeonham/common/navigation/NavigationProvider.kt b/core/common/src/main/java/com/hmh/hamyeonham/common/navigation/NavigationProvider.kt index 4ec1d86d1..3b0180bd1 100644 --- a/core/common/src/main/java/com/hmh/hamyeonham/common/navigation/NavigationProvider.kt +++ b/core/common/src/main/java/com/hmh/hamyeonham/common/navigation/NavigationProvider.kt @@ -14,6 +14,5 @@ interface NavigationProvider { fun toMain(): Intent fun toLock(packageName: String): Intent fun toStore(): Intent - fun toPoint(): Intent fun toPermission(): Intent } diff --git a/core/network/src/main/java/com/hmh/hamyeonham/core/network/di/PointModule.kt b/core/network/src/main/java/com/hmh/hamyeonham/core/network/di/PointModule.kt deleted file mode 100644 index 0bf6f1ded..000000000 --- a/core/network/src/main/java/com/hmh/hamyeonham/core/network/di/PointModule.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.hmh.hamyeonham.core.network.di - -import com.hmh.hamyeonham.common.qualifier.Secured -import com.hmh.hamyeonham.core.network.point.PointService -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import retrofit2.Retrofit -import retrofit2.create -import javax.inject.Singleton - - -@Module -@InstallIn(SingletonComponent::class) -object PointModule { - @Provides - @Singleton - fun providePointService(@Secured retrofit: Retrofit): PointService = retrofit.create() -} \ No newline at end of file diff --git a/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/PointService.kt b/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/PointService.kt deleted file mode 100644 index e061ec36d..000000000 --- a/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/PointService.kt +++ /dev/null @@ -1,32 +0,0 @@ -package com.hmh.hamyeonham.core.network.point - -import com.hmh.hamyeonham.core.network.model.BaseResponse -import com.hmh.hamyeonham.core.network.point.model.ChallengeDateRequest -import com.hmh.hamyeonham.core.network.point.model.EarnPointRequest -import com.hmh.hamyeonham.core.network.point.model.EarnPointResponse -import com.hmh.hamyeonham.core.network.point.model.PointListResponse -import com.hmh.hamyeonham.core.network.point.model.UsablePointResponse -import com.hmh.hamyeonham.core.network.point.model.UsePointResponse -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.PATCH - -interface PointService { - - @PATCH("/api/v1/point/earn") - suspend fun earnPoint( - @Body request: EarnPointRequest, - ): BaseResponse - - @GET("/api/v2/point/use") - suspend fun getUsablePoint(): UsablePointResponse - - @PATCH("/api/v1/point/use") - suspend fun patchPoint( - @Body body: ChallengeDateRequest - ): UsePointResponse - - @GET("/api/v1/point/list") - suspend fun getPointInfoList(): BaseResponse - -} \ No newline at end of file diff --git a/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/ChallengeDateRequest.kt b/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/ChallengeDateRequest.kt deleted file mode 100644 index a8dc550f1..000000000 --- a/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/ChallengeDateRequest.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.hmh.hamyeonham.core.network.point.model - -import kotlinx.serialization.Serializable - -@Serializable -data class ChallengeDateRequest( - val challengeDate: String -) diff --git a/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/EarnPointRequest.kt b/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/EarnPointRequest.kt deleted file mode 100644 index cba6619cb..000000000 --- a/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/EarnPointRequest.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.hmh.hamyeonham.core.network.point.model - -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -data class EarnPointRequest( - @SerialName("challengeDate") - val challengeDate: String, -) diff --git a/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/EarnPointResponse.kt b/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/EarnPointResponse.kt deleted file mode 100644 index 39af32f25..000000000 --- a/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/EarnPointResponse.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.hmh.hamyeonham.core.network.point.model - - -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -data class EarnPointResponse( - @SerialName("point") - val point: Int? = 0 -) \ No newline at end of file diff --git a/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/PointListResponse.kt b/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/PointListResponse.kt deleted file mode 100644 index 184c4ac1b..000000000 --- a/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/PointListResponse.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.hmh.hamyeonham.core.network.point.model - - -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -data class PointListResponse( - @SerialName("point") - val point: Int? = 0, - @SerialName("period") - val period: Int? = 0, - @SerialName("challengePointStatuses") - val challengePointStatuses: List = emptyList(), -) { - @Serializable - data class ChallengePointStatus( - @SerialName("challengeDate") - val challengeDate: String? = "", - @SerialName("status") - val status: String? = "NONE" - ) -} \ No newline at end of file diff --git a/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/UsablePointResponse.kt b/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/UsablePointResponse.kt deleted file mode 100644 index 3d92bbdfd..000000000 --- a/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/UsablePointResponse.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.hmh.hamyeonham.core.network.point.model - - -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -data class UsablePointResponse( - @SerialName("point") - val point: Int? = 0 -) \ No newline at end of file diff --git a/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/UsePointResponse.kt b/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/UsePointResponse.kt deleted file mode 100644 index 38b8ecebd..000000000 --- a/core/network/src/main/java/com/hmh/hamyeonham/core/network/point/model/UsePointResponse.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.hmh.hamyeonham.core.network.point.model - - -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -data class UsePointResponse( - @SerialName("usagePoint") - val usagePoint: Int? = 0, - @SerialName("userPoint") - val userPoint: Int? = 0 -) \ No newline at end of file diff --git a/core/viewmodel/main/build.gradle.kts b/core/viewmodel/main/build.gradle.kts index 2a6c58667..da4a54fb8 100644 --- a/core/viewmodel/main/build.gradle.kts +++ b/core/viewmodel/main/build.gradle.kts @@ -11,7 +11,6 @@ dependencies { implementation(projects.domain.usagestats) implementation(projects.domain.challenge) implementation(projects.domain.userinfo) - implementation(projects.domain.point) implementation(projects.domain.lock) implementation(projects.domain.main) diff --git a/core/viewmodel/main/src/main/java/com/hmh/hamyeonham/core/viewmodel/MainEffect.kt b/core/viewmodel/main/src/main/java/com/hmh/hamyeonham/core/viewmodel/MainEffect.kt index a42443ec3..79f39ef0c 100644 --- a/core/viewmodel/main/src/main/java/com/hmh/hamyeonham/core/viewmodel/MainEffect.kt +++ b/core/viewmodel/main/src/main/java/com/hmh/hamyeonham/core/viewmodel/MainEffect.kt @@ -1,7 +1,5 @@ package com.hmh.hamyeonham.core.viewmodel sealed interface MainEffect { - data object SuccessUsePoint : MainEffect - data object LackOfPoint : MainEffect data object NetworkError : MainEffect } \ No newline at end of file diff --git a/core/viewmodel/main/src/main/java/com/hmh/hamyeonham/core/viewmodel/MainViewModel.kt b/core/viewmodel/main/src/main/java/com/hmh/hamyeonham/core/viewmodel/MainViewModel.kt index 7b94ebf95..a467dc51d 100644 --- a/core/viewmodel/main/src/main/java/com/hmh/hamyeonham/core/viewmodel/MainViewModel.kt +++ b/core/viewmodel/main/src/main/java/com/hmh/hamyeonham/core/viewmodel/MainViewModel.kt @@ -11,7 +11,6 @@ import com.hmh.hamyeonham.core.domain.usagegoal.model.ChallengeStatus import com.hmh.hamyeonham.core.domain.usagegoal.model.UsageGoal import com.hmh.hamyeonham.core.domain.usagegoal.repository.UsageGoalsRepository import com.hmh.hamyeonham.domain.main.MainRepository -import com.hmh.hamyeonham.domain.point.repository.PointRepository import com.hmh.hamyeonham.lock.SetIsUnLockUseCase import com.hmh.hamyeonham.lock.UpdateIsUnLockUseCase import com.hmh.hamyeonham.usagestats.model.UsageStatusAndGoal @@ -41,7 +40,6 @@ class MainViewModel @Inject constructor( private val challengeRepository: ChallengeRepository, private val usageGoalsRepository: UsageGoalsRepository, private val userInfoRepository: UserInfoRepository, - private val pointRepository: PointRepository, private val mainRepository: MainRepository, private val getUsageStatsListUseCase: GetUsageStatsListUseCase, private val setIsUnLockUseCase: SetIsUnLockUseCase, @@ -69,13 +67,6 @@ class MainViewModel @Inject constructor( private val _challengeList = MutableStateFlow>(emptyList()) val challengeStatusList = _challengeList.asStateFlow() - private val _userPoint = MutableStateFlow(0) - val userPoint = _userPoint.asStateFlow() - - val isPointLeftToCollect - get() = - challengeStatusList.value.contains(ChallengeStatus.UNEARNED) - private val _effect = MutableSharedFlow() val effect = _effect.asSharedFlow() @@ -107,28 +98,12 @@ class MainViewModel @Inject constructor( } fun updateDailyChallengeFailed() { - viewModelScope.launch(Dispatchers.Main) { - pointRepository.usePoint().onSuccess { - _userPoint.value = it.userPoint - setIsUnLockUseCase(true).onSuccess { - getChallengeStatus() - sendEffect(MainEffect.SuccessUsePoint) - }.onFailure { e -> - Timber.e(e) - sendEffect(MainEffect.NetworkError) - } - }.onFailure { - if (it is HttpException) { - when (it.code()) { - LACK_POINT_ERROR_CODE -> { - sendEffect(MainEffect.LackOfPoint) - } - - else -> sendEffect(MainEffect.NetworkError) - } - } else { - sendEffect(MainEffect.NetworkError) - } + viewModelScope.launch { + setIsUnLockUseCase(true).onSuccess { + getChallengeStatus() + }.onFailure { e -> + Timber.e(e) + sendEffect(MainEffect.NetworkError) } } } @@ -157,10 +132,6 @@ class MainViewModel @Inject constructor( } } - fun updatePoint(point: Int) { - _userPoint.value = point - } - private fun updateState(transform: suspend MainState.() -> MainState) { viewModelScope.launch(Dispatchers.Main) { val currentState = mainState.value @@ -241,7 +212,6 @@ class MainViewModel @Inject constructor( updateState { copy(name = userInfo.name) } - _userPoint.value = userInfo.point } private fun setUsageStatsList(usageStatsList: UsageStatusAndGoal) { @@ -288,9 +258,4 @@ class MainViewModel @Inject constructor( return items } - - - companion object { - private const val LACK_POINT_ERROR_CODE = 400 - } } diff --git a/data/point/.gitignore b/data/point/.gitignore deleted file mode 100644 index 42afabfd2..000000000 --- a/data/point/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/data/point/build.gradle.kts b/data/point/build.gradle.kts deleted file mode 100644 index e49f0978a..000000000 --- a/data/point/build.gradle.kts +++ /dev/null @@ -1,15 +0,0 @@ -@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed -plugins { - hmh("feature") -} - -android { - namespace = "com.hmh.hamyeonham.data.point" -} - -dependencies { - implementation(projects.core.network) - implementation(projects.core.common) - - implementation(projects.domain.point) -} \ No newline at end of file diff --git a/data/point/src/main/AndroidManifest.xml b/data/point/src/main/AndroidManifest.xml deleted file mode 100644 index a5918e68a..000000000 --- a/data/point/src/main/AndroidManifest.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/data/point/src/main/java/com/hmh/hamyeonham/data/point/PointMapper.kt b/data/point/src/main/java/com/hmh/hamyeonham/data/point/PointMapper.kt deleted file mode 100644 index d489f565d..000000000 --- a/data/point/src/main/java/com/hmh/hamyeonham/data/point/PointMapper.kt +++ /dev/null @@ -1,41 +0,0 @@ -package com.hmh.hamyeonham.data.point - -import com.hmh.hamyeonham.core.network.point.model.EarnPointResponse -import com.hmh.hamyeonham.core.network.point.model.PointListResponse -import com.hmh.hamyeonham.core.network.point.model.UsablePointResponse -import com.hmh.hamyeonham.core.network.point.model.UsePointResponse -import com.hmh.hamyeonham.domain.point.model.EarnPoint -import com.hmh.hamyeonham.domain.point.model.PointInfo -import com.hmh.hamyeonham.domain.point.model.UsablePoint -import com.hmh.hamyeonham.domain.point.model.UsePoint - -fun EarnPointResponse.toEarnPoint() = EarnPoint( - totalUserPoint = point ?: 0 -) - -fun UsablePointResponse.toUsePoint() = UsablePoint( - point = point ?: 0 -) - -fun UsePointResponse.toUsePoint() = UsePoint( - usagePoint = usagePoint ?: 0, - userPoint = userPoint ?: 0 -) - -fun PointListResponse.toPointStatusList() = PointInfo( - period = period ?: 0, - currentUserPoint = point ?: 0, - challengePointStatuses = challengePointStatuses.map { - PointInfo.ChallengePointStatus( - challengeDate = it.challengeDate ?: "", - status = when (it.status) { - "UNEARNED" -> PointInfo.GetPointStatus.UNEARNED - "EARNED" -> PointInfo.GetPointStatus.EARNED - "FAILURE" -> PointInfo.GetPointStatus.FAILURE - else -> PointInfo.GetPointStatus.NONE - }, - period = this.period ?: 0, - challengePoint = 20 - ) - } -) \ No newline at end of file diff --git a/data/point/src/main/java/com/hmh/hamyeonham/data/point/di/PointBinder.kt b/data/point/src/main/java/com/hmh/hamyeonham/data/point/di/PointBinder.kt deleted file mode 100644 index e5c5ebad8..000000000 --- a/data/point/src/main/java/com/hmh/hamyeonham/data/point/di/PointBinder.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.hmh.hamyeonham.data.point.di - -import com.hmh.hamyeonham.data.point.repository.DefaultPointRepository -import com.hmh.hamyeonham.domain.point.repository.PointRepository -import dagger.Binds -import dagger.Module -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import javax.inject.Singleton - -@Module -@InstallIn(SingletonComponent::class) -interface PointBinder { - @Binds - @Singleton - fun bindPointRepository(repository: DefaultPointRepository): PointRepository -} \ No newline at end of file diff --git a/data/point/src/main/java/com/hmh/hamyeonham/data/point/repository/DefaultPointRepository.kt b/data/point/src/main/java/com/hmh/hamyeonham/data/point/repository/DefaultPointRepository.kt deleted file mode 100644 index 8e5e3b936..000000000 --- a/data/point/src/main/java/com/hmh/hamyeonham/data/point/repository/DefaultPointRepository.kt +++ /dev/null @@ -1,41 +0,0 @@ -package com.hmh.hamyeonham.data.point.repository - -import com.hmh.hamyeonham.common.time.getNowDateNumeric -import com.hmh.hamyeonham.core.network.point.PointService -import com.hmh.hamyeonham.core.network.point.model.ChallengeDateRequest -import com.hmh.hamyeonham.core.network.point.model.EarnPointRequest -import com.hmh.hamyeonham.data.point.toEarnPoint -import com.hmh.hamyeonham.data.point.toPointStatusList -import com.hmh.hamyeonham.data.point.toUsePoint -import com.hmh.hamyeonham.domain.point.model.EarnPoint -import com.hmh.hamyeonham.domain.point.model.PointInfo -import com.hmh.hamyeonham.domain.point.model.UsablePoint -import com.hmh.hamyeonham.domain.point.model.UsePoint -import com.hmh.hamyeonham.domain.point.repository.PointRepository -import javax.inject.Inject - -class DefaultPointRepository @Inject constructor( - private val pointService: PointService -) : PointRepository { - override suspend fun earnPoint(challengeDate: String): Result = runCatching { - pointService.earnPoint(EarnPointRequest(challengeDate)).data.toEarnPoint() - } - - override suspend fun getUsablePoint(): Result = runCatching { - pointService.getUsablePoint().toUsePoint() - } - - override suspend fun usePoint(): Result { - return runCatching { - val challengeDate = getNowDateNumeric() - val body = ChallengeDateRequest(challengeDate) - pointService.patchPoint(body).toUsePoint() - } - } - - override suspend fun getPointInfoList(): Result { - return runCatching { - pointService.getPointInfoList().data.toPointStatusList() - } - } -} \ No newline at end of file diff --git a/data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/mapper/MypageMapper.kt b/data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/mapper/MypageMapper.kt index 474805cae..ae9289c18 100644 --- a/data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/mapper/MypageMapper.kt +++ b/data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/mapper/MypageMapper.kt @@ -1,4 +1,4 @@ -package com.hmh.hamyeonham.login.mapper +package com.hmh.hamyeonham.userinfo.mapper import com.hmh.hamyeonham.core.network.mypage.datasource.model.UserInfoResponse import com.hmh.hamyeonham.userinfo.model.UserInfo @@ -6,6 +6,5 @@ import com.hmh.hamyeonham.userinfo.model.UserInfo internal fun UserInfoResponse.toUserInfo(): UserInfo { return UserInfo( name = name, - point = point ) } diff --git a/data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/repository/DefaultUserInfoRepository.kt b/data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/repository/DefaultUserInfoRepository.kt index 4db0705a2..2b2ee121c 100644 --- a/data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/repository/DefaultUserInfoRepository.kt +++ b/data/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/repository/DefaultUserInfoRepository.kt @@ -1,7 +1,7 @@ package com.hmh.hamyeonham.userinfo.repository import com.hmh.hamyeonham.core.network.mypage.MyPageService -import com.hmh.hamyeonham.login.mapper.toUserInfo +import com.hmh.hamyeonham.userinfo.mapper.toUserInfo import com.hmh.hamyeonham.userinfo.model.UserInfo import javax.inject.Inject diff --git a/domain/point/.gitignore b/domain/point/.gitignore deleted file mode 100644 index 42afabfd2..000000000 --- a/domain/point/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/domain/point/build.gradle.kts b/domain/point/build.gradle.kts deleted file mode 100644 index 6afce4475..000000000 --- a/domain/point/build.gradle.kts +++ /dev/null @@ -1,9 +0,0 @@ -@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed -plugins { - `java-library` - kotlin("jvm") -} - -dependencies { - implementation(libs.javax.inject) -} \ No newline at end of file diff --git a/domain/point/src/main/AndroidManifest.xml b/domain/point/src/main/AndroidManifest.xml deleted file mode 100644 index a5918e68a..000000000 --- a/domain/point/src/main/AndroidManifest.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/EarnPoint.kt b/domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/EarnPoint.kt deleted file mode 100644 index 6a9ce4a9a..000000000 --- a/domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/EarnPoint.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.hmh.hamyeonham.domain.point.model - - -data class EarnPoint( - val totalUserPoint: Int -) \ No newline at end of file diff --git a/domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/PointInfo.kt b/domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/PointInfo.kt deleted file mode 100644 index 70ec57221..000000000 --- a/domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/PointInfo.kt +++ /dev/null @@ -1,22 +0,0 @@ -package com.hmh.hamyeonham.domain.point.model - -data class PointInfo( - val period: Int = 0, - val currentUserPoint: Int = 0, - val challengePointStatuses: List = emptyList(), - val challengePoint: Int = 20, -) { - data class ChallengePointStatus( - val challengeDate: String = "", - val status: GetPointStatus = GetPointStatus.UNEARNED, - val period: Int, - val challengePoint: Int, - ) - - enum class GetPointStatus { - UNEARNED, - EARNED, - FAILURE, - NONE - } -} diff --git a/domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/UsablePoint.kt b/domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/UsablePoint.kt deleted file mode 100644 index dbc6e1392..000000000 --- a/domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/UsablePoint.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.hmh.hamyeonham.domain.point.model - - -data class UsablePoint( - val point: Int -) \ No newline at end of file diff --git a/domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/UsePoint.kt b/domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/UsePoint.kt deleted file mode 100644 index 79766d23c..000000000 --- a/domain/point/src/main/java/com/hmh/hamyeonham/domain/point/model/UsePoint.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.hmh.hamyeonham.domain.point.model - -data class UsePoint( - val usagePoint: Int, - val userPoint: Int -) diff --git a/domain/point/src/main/java/com/hmh/hamyeonham/domain/point/repository/PointRepository.kt b/domain/point/src/main/java/com/hmh/hamyeonham/domain/point/repository/PointRepository.kt deleted file mode 100644 index e0a760cb3..000000000 --- a/domain/point/src/main/java/com/hmh/hamyeonham/domain/point/repository/PointRepository.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.hmh.hamyeonham.domain.point.repository - -import com.hmh.hamyeonham.domain.point.model.EarnPoint -import com.hmh.hamyeonham.domain.point.model.PointInfo -import com.hmh.hamyeonham.domain.point.model.UsablePoint -import com.hmh.hamyeonham.domain.point.model.UsePoint - -interface PointRepository { - suspend fun earnPoint(challengeDate: String): Result - suspend fun getUsablePoint(): Result - suspend fun usePoint(): Result - suspend fun getPointInfoList(): Result -} \ No newline at end of file diff --git a/domain/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/model/UserInfo.kt b/domain/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/model/UserInfo.kt index 9337ee4ff..73aa09944 100644 --- a/domain/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/model/UserInfo.kt +++ b/domain/userinfo/src/main/java/com/hmh/hamyeonham/userinfo/model/UserInfo.kt @@ -2,5 +2,4 @@ package com.hmh.hamyeonham.userinfo.model data class UserInfo( val name: String = "", - val point: Int = 0 ) diff --git a/feature/challenge/build.gradle.kts b/feature/challenge/build.gradle.kts index c25fef7ae..e17b94740 100644 --- a/feature/challenge/build.gradle.kts +++ b/feature/challenge/build.gradle.kts @@ -11,7 +11,6 @@ android { dependencies { implementation(projects.domain.usagestats) implementation(projects.domain.challenge) - implementation(projects.domain.point) implementation(projects.core.common) implementation(projects.core.designsystem) diff --git a/feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/ChallengeFragment.kt b/feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/ChallengeFragment.kt index d44509636..bbd10f727 100644 --- a/feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/ChallengeFragment.kt +++ b/feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/ChallengeFragment.kt @@ -28,7 +28,6 @@ import com.hmh.hamyeonham.challenge.newchallenge.NewChallengeActivity import com.hmh.hamyeonham.common.amplitude.AmplitudeUtils import com.hmh.hamyeonham.common.context.getAppNameFromPackageName import com.hmh.hamyeonham.common.dialog.TwoButtonCommonDialog -import com.hmh.hamyeonham.common.fragment.snackBarWithAction import com.hmh.hamyeonham.common.fragment.toast import com.hmh.hamyeonham.common.fragment.viewLifeCycle import com.hmh.hamyeonham.common.fragment.viewLifeCycleScope @@ -78,18 +77,6 @@ class ChallengeFragment : Fragment() { @Inject lateinit var navigationProvider: NavigationProvider - private val pointResultLauncher: ActivityResultLauncher = registerForActivityResult( - ActivityResultContracts.StartActivityForResult() - ) { result: ActivityResult -> - if (result.resultCode == Activity.RESULT_OK) { - val point = result.data?.getIntExtra("point", 0) - if (point != null && point != 0) { - activityViewModel.updatePoint(point) - } - activityViewModel.reloadChallengeStatus() - } - } - override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -119,9 +106,6 @@ class ChallengeFragment : Fragment() { activityViewModel.challengeStatusList.flowWithLifecycle(viewLifeCycle).onEach { bindChallengeCalendar(it) - val pointButtonImg = - if (activityViewModel.isPointLeftToCollect) com.hmh.hamyeonham.common.R.drawable.ic_chellenge_point_exist_24 else com.hmh.hamyeonham.common.R.drawable.ic_chellenge_point_not_exist_24 - binding.tvPointButton.setImageResource(pointButtonImg) }.launchIn(viewLifeCycleScope) } @@ -182,19 +166,6 @@ class ChallengeFragment : Fragment() { } } - private fun initPointButton() { - val pointButtonImg = - if (activityViewModel.isPointLeftToCollect) { - com.hmh.hamyeonham.common.R.drawable.ic_chellenge_point_exist_24 - } else { - com.hmh.hamyeonham.common.R.drawable.ic_chellenge_point_not_exist_24 - } - binding.tvPointButton.setImageResource(pointButtonImg) - binding.tvPointButton.setOnClickListener { - navigateToPointView() - } - } - private fun initAppAddButton() { binding.btGoalAdd.setOnSingleClickListener { AmplitudeUtils.trackEventWithProperties("click_add_button") @@ -206,31 +177,13 @@ class ChallengeFragment : Fragment() { private fun initChallengeCreateButton() { binding.btnChallengeCreate.setOnClickListener { AmplitudeUtils.trackEventWithProperties("click_newchallenge_button") - if (activityViewModel.isPointLeftToCollect) { - snackBarWithAction( - anchorView = binding.root, - message = getString(com.hmh.hamyeonham.feature.challenge.R.string.challenge_cannot_create), - actionMessage = getString( - com.hmh.hamyeonham.feature.challenge.R.string.all_move, - ), - ) { - navigateToPointView() - } - } else { - val intent = Intent(requireContext(), NewChallengeActivity::class.java) - newChallengeResultLauncher.launch(intent) - } + val intent = Intent(requireContext(), NewChallengeActivity::class.java) + newChallengeResultLauncher.launch(intent) } } - private fun navigateToPointView() { - val intent = navigationProvider.toPoint() - pointResultLauncher.launch(intent) - } - private fun initViews() { initModifierButton() - initPointButton() initAppAddButton() initChallengeCreateButton() initChallengeGoalsRecyclerView() diff --git a/feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointActivity.kt b/feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointActivity.kt deleted file mode 100644 index d4a507a34..000000000 --- a/feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointActivity.kt +++ /dev/null @@ -1,79 +0,0 @@ -package com.hmh.hamyeonham.challenge.point - -import android.os.Bundle -import androidx.activity.viewModels -import androidx.appcompat.app.AppCompatActivity -import androidx.lifecycle.flowWithLifecycle -import androidx.lifecycle.lifecycleScope -import androidx.recyclerview.widget.LinearLayoutManager -import com.hmh.hamyeonham.common.amplitude.AmplitudeUtils -import com.hmh.hamyeonham.common.context.toast -import com.hmh.hamyeonham.common.view.viewBinding -import com.hmh.hamyeonham.feature.challenge.databinding.ActivityPointBinding -import dagger.hilt.android.AndroidEntryPoint -import kotlinx.coroutines.flow.launchIn -import kotlinx.coroutines.flow.onEach - -@AndroidEntryPoint -class PointActivity : AppCompatActivity() { - private val binding by viewBinding(ActivityPointBinding::inflate) - private val viewModel by viewModels() - - override fun onResume() { - super.onResume() - AmplitudeUtils.trackEventWithProperties("view_point") - } - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(binding.root) - initViews() - collectPointInfo() - collectUserPoint() - collectPointSuccessState() - } - - private fun initViews() { - initAdapter() - initCloseClickListener() - } - - private fun initAdapter() { - val adapter = PointAdapter( - onButtonClick = { challengeDate -> - viewModel.earnChallengePoint(challengeDate) - }, - ) - binding.rvPoint.run { - this.adapter = adapter - layoutManager = LinearLayoutManager(context) - } - } - - private fun initCloseClickListener() { - binding.ivBack.setOnClickListener { - finish() - } - } - - private fun collectPointInfo() { - viewModel.pointInfoList.flowWithLifecycle(lifecycle).onEach { pointInfoList -> - (binding.rvPoint.adapter as? PointAdapter)?.submitList(pointInfoList) - }.launchIn(lifecycleScope) - } - - private fun collectUserPoint() { - viewModel.currentPointState.flowWithLifecycle(lifecycle).onEach { - binding.tvPointTotal.text = it.toString() - setResult(RESULT_OK, intent.putExtra("point", it)) - }.launchIn(lifecycleScope) - } - - private fun collectPointSuccessState() { - viewModel.getPointSuccess.flowWithLifecycle(lifecycle).onEach { - if(it) { - toast("포인트를 획득했어요!") - } - }.launchIn(lifecycleScope) - } -} diff --git a/feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointAdapter.kt b/feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointAdapter.kt deleted file mode 100644 index c52824d4b..000000000 --- a/feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointAdapter.kt +++ /dev/null @@ -1,163 +0,0 @@ -package com.hmh.hamyeonham.challenge.point - -import android.view.LayoutInflater -import android.view.ViewGroup -import androidx.appcompat.content.res.AppCompatResources -import androidx.core.content.ContextCompat -import androidx.recyclerview.widget.ListAdapter -import androidx.recyclerview.widget.RecyclerView -import com.hmh.hamyeonham.common.view.ItemDiffCallback -import com.hmh.hamyeonham.domain.point.model.PointInfo -import com.hmh.hamyeonham.feature.challenge.R -import com.hmh.hamyeonham.feature.challenge.databinding.ItemPointBinding - -class PointAdapter( - private val onButtonClick: (String) -> Unit, -) : ListAdapter( - ItemDiffCallback( - onItemsTheSame = { oldItem, newItem -> - oldItem == newItem - }, - onContentsTheSame = { oldItem, newItem -> - oldItem == newItem - }, - ), -) { - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PointViewHolder { - val inflater = LayoutInflater.from(parent.context) - val binding = ItemPointBinding.inflate(inflater, parent, false) - return PointViewHolder( - binding, - onButtonClick, - ) - } - - override fun onBindViewHolder(holder: PointViewHolder, position: Int) { - holder.onBind(getItem(position)) - } - - class PointViewHolder( - private val binding: ItemPointBinding, - private val onButtonClick: (String) -> Unit, - ) : RecyclerView.ViewHolder(binding.root) { - private val context = binding.root.context - - fun onBind(pointModel: PointInfo.ChallengePointStatus) { - binding.run { - - tvPointTitle.text = - context.getString(R.string.tv_point_title, (adapterPosition + 1).toString()) - tvPointWhatChallenge.text = - context.getString( - R.string.tv_point_what_challenge, - pointModel.period.toString() - ) - tvPointButton.text = - context.getString(R.string.point_point, pointModel.challengePoint.toString()) - - setPointButtonStatus(pointModel) - } - } - - private fun ItemPointBinding.setPointButtonStatus(pointModel: PointInfo.ChallengePointStatus) { - - val textColorNone = ContextCompat.getColor( - context, - com.hmh.hamyeonham.core.designsystem.R.color.gray3 - ) - val textColorEarned = ContextCompat.getColor( - context, - com.hmh.hamyeonham.core.designsystem.R.color.blue_purple_opacity_70 - ) - - val textColorTitle = ContextCompat.getColor( - context, - com.hmh.hamyeonham.core.designsystem.R.color.white_text - ) - - val textColorUnearned = ContextCompat.getColor( - context, - com.hmh.hamyeonham.core.designsystem.R.color.white_btn - ) - - val textColorSubscription = ContextCompat.getColor( - context, - com.hmh.hamyeonham.core.designsystem.R.color.gray2 - ) - - - - val textColorFailure = ContextCompat.getColor( - context, - com.hmh.hamyeonham.core.designsystem.R.color.gray2 - ) - - val buttonBackgroundEarned = AppCompatResources.getDrawable( - context, - R.drawable.point_button_background_already_get - ) - - val buttonBackgroundUnearned = AppCompatResources.getDrawable( - context, - R.drawable.point_button_background_able - ) - - val buttonBackgroundFailure = AppCompatResources.getDrawable( - context, - R.drawable.point_button_background_failure - ) - - val buttonBackgroundNone = AppCompatResources.getDrawable( - context, - R.drawable.point_button_background_none - ) - - when (pointModel.status) { - // 이미 받은 경우 - PointInfo.GetPointStatus.EARNED -> { - setTextColor(textColorTitle, textColorSubscription) - tvPointButton.isEnabled = false - tvPointButton.background = buttonBackgroundEarned - tvPointButton.setTextColor(textColorEarned) - } - // 받을 수 있는 경우 - PointInfo.GetPointStatus.UNEARNED -> { - tvPointTitle.setTextColor(textColorTitle) - tvPointWhatChallenge.setTextColor(textColorSubscription) - tvPointButton.isEnabled = true - tvPointButton.background = buttonBackgroundUnearned - tvPointButton.setTextColor(textColorUnearned) - tvPointButton.setOnClickListener { - onButtonClick(pointModel.challengeDate) - } - } - // 챌린지 실패로 인한 포인트 획득 불가 - PointInfo.GetPointStatus.FAILURE -> { - tvPointTitle.setTextColor(textColorTitle) - tvPointWhatChallenge.setTextColor(textColorSubscription) - tvPointButton.isEnabled = false - tvPointButton.background = buttonBackgroundFailure - tvPointButton.setTextColor(textColorFailure) - } - // 아직 챌린지를 시도하지 않은 날짜 - PointInfo.GetPointStatus.NONE -> { - tvPointTitle.setTextColor(textColorNone) - tvPointWhatChallenge.setTextColor(textColorNone) - tvPointButton.isEnabled = false - tvPointButton.background = buttonBackgroundNone - tvPointButton.setTextColor(textColorNone) - } - } - } - - private fun ItemPointBinding.setTextColor( - textColorTitle: Int, - textColorSubscription: Int - ) { - tvPointTitle.setTextColor(textColorTitle) - tvPointWhatChallenge.setTextColor(textColorSubscription) - } - } -} - diff --git a/feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointViewModel.kt b/feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointViewModel.kt deleted file mode 100644 index b791de770..000000000 --- a/feature/challenge/src/main/java/com/hmh/hamyeonham/challenge/point/PointViewModel.kt +++ /dev/null @@ -1,52 +0,0 @@ -package com.hmh.hamyeonham.challenge.point - -import androidx.lifecycle.ViewModel -import androidx.lifecycle.viewModelScope -import com.hmh.hamyeonham.common.amplitude.AmplitudeUtils -import com.hmh.hamyeonham.domain.point.model.PointInfo -import com.hmh.hamyeonham.domain.point.repository.PointRepository -import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.asStateFlow -import kotlinx.coroutines.launch -import org.json.JSONObject -import javax.inject.Inject - -@HiltViewModel -class PointViewModel @Inject constructor( - private val pointRepository: PointRepository, -) : ViewModel() { - private val _currentUserPoint = MutableStateFlow(0) - val currentPointState = _currentUserPoint.asStateFlow() - - private val _pointInfoList = MutableStateFlow(emptyList()) - val pointInfoList = _pointInfoList.asStateFlow() - - private val _getPointSuccess = MutableStateFlow(false) - val getPointSuccess = _getPointSuccess.asStateFlow() - - - init { - getPointInfoList() - } - - fun earnChallengePoint(challengeDate: String) { - viewModelScope.launch { - pointRepository.earnPoint(challengeDate).onSuccess { - val properties = JSONObject().put("get_point_date", challengeDate) - AmplitudeUtils.trackEventWithProperties("click_getpoint_button", properties) - getPointInfoList() - _getPointSuccess.value = true - } - } - } - - private fun getPointInfoList() { - viewModelScope.launch { - pointRepository.getPointInfoList().onSuccess { - _pointInfoList.value = it.challengePointStatuses - _currentUserPoint.value = it.currentUserPoint - } - } - } -} diff --git a/feature/challenge/src/main/res/layout/activity_point.xml b/feature/challenge/src/main/res/layout/activity_point.xml deleted file mode 100644 index ae1bc7858..000000000 --- a/feature/challenge/src/main/res/layout/activity_point.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/feature/challenge/src/main/res/layout/fragment_challenge.xml b/feature/challenge/src/main/res/layout/fragment_challenge.xml index bddae7be9..fd6dd4d36 100644 --- a/feature/challenge/src/main/res/layout/fragment_challenge.xml +++ b/feature/challenge/src/main/res/layout/fragment_challenge.xml @@ -30,15 +30,6 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> - when (effect) { - is MainEffect.SuccessUsePoint -> { - intent.removeExtra(NavigationProvider.UN_LOCK_PACKAGE_NAME) - showChallengeFailedDialog() - } - - is MainEffect.LackOfPoint -> showPointLackDialog() is MainEffect.NetworkError -> showErrorDialog() } }.launchIn(lifecycleScope) @@ -101,10 +94,10 @@ class MainActivity : AppCompatActivity() { val packageName = intent.getStringExtra(NavigationProvider.UN_LOCK_PACKAGE_NAME) ?: return TwoButtonCommonDialog.newInstance( title = - getString( - R.string.dialog_title_unlock_package, - getAppNameFromPackageName(packageName), - ), + getString( + R.string.dialog_title_unlock_package, + getAppNameFromPackageName(packageName), + ), description = getString(R.string.dialog_description_unlock_package), confirmButtonText = getString(com.hmh.hamyeonham.core.designsystem.R.string.all_okay), dismissButtonText = getString(com.hmh.hamyeonham.core.designsystem.R.string.all_cancel), @@ -124,38 +117,6 @@ class MainActivity : AppCompatActivity() { } } - private fun showChallengeFailedDialog() { - OneButtonCommonDialog.newInstance( - title = getString(R.string.dialog_title_challenge_failed), - description = getString(R.string.dialog_description_challenge_failed), - iconRes = R.drawable.ic_challenge_failed, - confirmButtonText = getString(com.hmh.hamyeonham.core.designsystem.R.string.all_done), - ).apply { - setConfirmButtonClickListener { - AmplitudeUtils.trackEventWithProperties("click_unlock_complete_button") - dismiss() - } - }.showAllowingStateLoss(supportFragmentManager, OneButtonCommonDialog.TAG) - } - - private fun showPointLackDialog() { - TwoButtonCommonDialog.newInstance( - title = getString(R.string.dialog_title_point_lack), - description = getString(R.string.dialog_description_point_lack), - iconRes = R.drawable.ic_point_lack, - confirmButtonText = getString(com.hmh.hamyeonham.core.designsystem.R.string.all_okay), - dismissButtonText = getString(R.string.dialog_button_charge_point) - ).apply { - setConfirmButtonClickListener { - dismiss() - } - setDismissButtonClickListener { - val intent = navigationProvider.toStore() - startActivity(intent) - } - }.showAllowingStateLoss(supportFragmentManager, OneButtonCommonDialog.TAG) - } - private fun showErrorDialog() { OneButtonCommonDialog.newInstance( title = getString(com.hmh.hamyeonham.core.designsystem.R.string.dialog_title_network_error), diff --git a/feature/main/src/main/res/values/strings.xml b/feature/main/src/main/res/values/strings.xml index 2b55a25f7..59acf73f4 100644 --- a/feature/main/src/main/res/values/strings.xml +++ b/feature/main/src/main/res/values/strings.xml @@ -22,12 +22,6 @@ 사용 시간을 연장하면\n챌린지를 실패해요 블랙홀에 빠졌어요\n내일은 목표를 이뤄보아요 - 100P로 잠금을 해제해\n미션에 실패했어요 - 다음엔 꼭 성공해보아요 - - 포인트가 부족해요 - 상점에서 포인트를 충전할 수 있어요 - 포인트 구매하기 권한 허용하기 스크린타임 권한을 허용하면 여정이 시작돼요. diff --git a/feature/mypage/src/main/java/com/hmh/hamyeonham/mypage/MyPageFragment.kt b/feature/mypage/src/main/java/com/hmh/hamyeonham/mypage/MyPageFragment.kt index ac48dd461..3f71dad2d 100644 --- a/feature/mypage/src/main/java/com/hmh/hamyeonham/mypage/MyPageFragment.kt +++ b/feature/mypage/src/main/java/com/hmh/hamyeonham/mypage/MyPageFragment.kt @@ -28,6 +28,7 @@ import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import org.json.JSONObject import javax.inject.Inject +import androidx.core.net.toUri @AndroidEntryPoint class MyPageFragment : Fragment() { @@ -117,16 +118,12 @@ class MyPageFragment : Fragment() { activityViewModel.mainState.flowWithLifecycle(viewLifeCycle).onEach { binding.tvUserName.text = it.name }.launchIn(viewLifeCycleScope) - - activityViewModel.userPoint.flowWithLifecycle(viewLifeCycle).onEach { - binding.tvPoint.text = getString(R.string.mypage_point, it) - }.launchIn(viewLifeCycleScope) } private fun initPrivacyButton() { binding.vPrivacy.setOnClickListener { val privacyRuleUrl = getString(R.string.privacy_url) - val intent = Intent(Intent.ACTION_VIEW, Uri.parse(privacyRuleUrl)) + val intent = Intent(Intent.ACTION_VIEW, privacyRuleUrl.toUri()) startActivity(intent) } } @@ -134,7 +131,7 @@ class MyPageFragment : Fragment() { private fun initTermOfUseButton() { binding.vTermofuse.setOnClickListener { val termOfUseUrl = getString(R.string.term_of_use_url) - val intent = Intent(Intent.ACTION_VIEW, Uri.parse(termOfUseUrl)) + val intent = Intent(Intent.ACTION_VIEW, termOfUseUrl.toUri()) startActivity(intent) } } diff --git a/feature/mypage/src/main/res/layout/fragment_my_page.xml b/feature/mypage/src/main/res/layout/fragment_my_page.xml index 7afa2c63b..5e0395f20 100644 --- a/feature/mypage/src/main/res/layout/fragment_my_page.xml +++ b/feature/mypage/src/main/res/layout/fragment_my_page.xml @@ -1,7 +1,6 @@ @@ -63,51 +62,6 @@ app:layout_constraintStart_toStartOf="@id/iv_profile" app:layout_constraintTop_toBottomOf="@id/iv_profile" /> - - - - - - - - + app:layout_constraintTop_toBottomOf="@id/tv_user_name" /> + app:layout_constraintTop_toBottomOf="@id/tv_user_name" /> 마이페이지 - 내 포인트 - %dP 배지 컬렉션 지금까지의 여정 우주 상점 diff --git a/settings.gradle.kts b/settings.gradle.kts index 98027ab38..73d2ff297 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -34,7 +34,6 @@ include(":data:userinfo") include(":data:login") include(":data:device") include(":data:challenge") -include(":data:point") include(":data:lock") include(":data:main") @@ -43,7 +42,6 @@ include(":domain:usagestats") include(":domain:challenge") include(":domain:login") include(":domain:onboarding") -include(":domain:point") include(":domain:lock") include(":domain:main")