Skip to content

Commit

Permalink
#291 [FEAT] domain 모듈 코틀린 라이브러리로 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
minho committed Jul 29, 2023
1 parent 9d159e9 commit a90ac15
Show file tree
Hide file tree
Showing 108 changed files with 299 additions and 403 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import com.google.firebase.crashlytics.FirebaseCrashlytics
import com.kakao.sdk.common.KakaoSdk
import com.mument_android.BuildConfig
import com.mument_android.data.BuildConfig.KAKAO_NATIVE_KEY
import com.mument_android.domain.entity.musicdetail.musicdetaildata.Music
import com.mument_android.domain.entity.musicdetail.Music
import dagger.hilt.android.HiltAndroidApp
import timber.log.Timber
import java.util.*
Expand Down
42 changes: 37 additions & 5 deletions app/src/main/java/com/mument_android/app/di/UseCaseModule.kt
Original file line number Diff line number Diff line change
@@ -1,19 +1,51 @@
package com.mument_android.app.di

import com.mument_android.data.usecase.app.LimitUserUseCaseImpl
import com.mument_android.data.usecase.detail.BlockUserUseCaseImpl
import com.mument_android.data.usecase.detail.DeleteMumentUseCaseImpl
import com.mument_android.data.usecase.detail.FetchMumentDetailContentUseCaseImpl
import com.mument_android.data.usecase.detail.FetchMumentListUseCaseImpl
import com.mument_android.data.usecase.detail.FetchMusicDetailUseCaseImpl
import com.mument_android.data.usecase.detail.FetchUsersLikeMumentUseCaseImpl
import com.mument_android.data.usecase.detail.GetMumentHistoryUseCaseImpl
import com.mument_android.data.usecase.detail.ReportMumentUseCaseImpl
import com.mument_android.data.usecase.home.BeforeWhenHomeEnterUseCaseImpl
import com.mument_android.data.usecase.home.CRURecentSearchListUseCaseImpl
import com.mument_android.data.usecase.home.DeleteRecentSearchListUseCaseImpl
import com.mument_android.data.usecase.home.SearchMusicUseCaseImpl
import com.mument_android.data.usecase.home.WhenHomeEnterUseCaseImpl
import com.mument_android.data.usecase.locker.FetchMyLikeListUseCaseImpl
import com.mument_android.data.usecase.locker.FetchMyMumentListUseCaseImpl
import com.mument_android.data.usecase.main.CancelLikeMumentUseCaseImpl
import com.mument_android.data.usecase.main.LikeMumentUseCaseImpl
import com.mument_android.data.usecase.mypage.DeleteBlockUserUseCaseImpl
import com.mument_android.data.usecase.mypage.FetchBlockUserUseCaseImpl
import com.mument_android.data.usecase.mypage.FetchNoticeDetailUseCaseImpl
import com.mument_android.data.usecase.mypage.FetchNoticeListUseCaseImpl
import com.mument_android.data.usecase.mypage.FetchUnregisterInfoUseCaseImpl
import com.mument_android.data.usecase.mypage.LogOutUseCaseImpl
import com.mument_android.data.usecase.mypage.PostUnregisterReasonUseCaseImpl
import com.mument_android.data.usecase.mypage.UserInfoUseCaseImpl
import com.mument_android.data.usecase.notify.FetchNotifyListDeleteUseCaseImpl
import com.mument_android.data.usecase.notify.FetchNotifyListUseCaseImpl
import com.mument_android.data.usecase.notify.FetchNotifyListsReadUseCaseImpl
import com.mument_android.data.usecase.record.IsFirstRecordMumentUseCaseImpl
import com.mument_android.data.usecase.record.RecordModifyMumentUseCaseImpl
import com.mument_android.data.usecase.record.RecordMumentUseCaseImpl
import com.mument_android.data.usecase.sign.GetWebViewUseCaseImpl
import com.mument_android.data.usecase.sign.NewTokenUseCaseImpl
import com.mument_android.data.usecase.sign.SignDulCheckUseCaseImpl
import com.mument_android.data.usecase.sign.SignKaKaoUseCaseImpl
import com.mument_android.data.usecase.sign.SignPutProfileUseCaseImpl
import com.mument_android.domain.repository.detail.*
import com.mument_android.domain.repository.mypage.*
import com.mument_android.domain.usecase.app.LimitUserUseCase
import com.mument_android.domain.usecase.app.LimitUserUseCaseImpl
import com.mument_android.domain.usecase.detail.*
import com.mument_android.domain.usecase.home.*
import com.mument_android.domain.usecase.locker.FetchMyLikeListUseCase
import com.mument_android.domain.usecase.locker.FetchMyLikeListUseCaseImpl
import com.mument_android.domain.usecase.locker.FetchMyMumentListUseCase
import com.mument_android.domain.usecase.locker.FetchMyMumentListUseCaseImpl
import com.mument_android.domain.usecase.main.CancelLikeMumentUseCase
import com.mument_android.domain.usecase.main.CancelLikeMumentUseCaseImpl
import com.mument_android.domain.usecase.main.LikeMumentUseCase
import com.mument_android.domain.usecase.main.LikeMumentUseCaseImpl
import com.mument_android.domain.usecase.mypage.*
import com.mument_android.domain.usecase.notify.*
import com.mument_android.domain.usecase.record.*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.mument_android.app.presentation.ui.detail.mument.navigator

import com.mument_android.domain.entity.detail.MumentDetailEntity
import com.mument_android.domain.entity.musicdetail.musicdetaildata.Music
import com.mument_android.domain.entity.musicdetail.Music

interface EditMumentNavigator {
fun editMument(mumentId: String, mumentDetailEntity: MumentDetailEntity)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,10 @@ package com.mument_android.app.presentation.ui.detail.mument.navigator

import android.app.Activity
import android.content.Intent
import android.util.Log
import com.angdroid.navigation.HistoryNavigatorProvider
import com.mument_android.app.presentation.ui.main.MainActivity
import com.mument_android.detail.history.HistoryActivity
import com.mument_android.domain.entity.musicdetail.musicdetaildata.Music
import com.mument_android.domain.entity.musicdetail.Music
import javax.inject.Inject

class HistoryNavigatorProviderImpl @Inject constructor(private val activity: Activity) :
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import com.mument_android.app.presentation.ui.main.MainActivity
import com.mument_android.core.util.Constants
import com.mument_android.core.util.Constants.FROM_SEARCH
import com.mument_android.core.util.Constants.MUSIC_INFO_ENTITY
import com.mument_android.detail.music.MusicDetailFragment.Companion.MUSIC_ID
import com.mument_android.domain.entity.music.MusicInfoEntity
import javax.inject.Inject

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@ package com.mument_android.app.presentation.ui.detail.mument.navigator
import android.app.Activity
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.findNavController
import com.angdroid.navigation.MoveMusicDetailNavigatorProvider
import com.mument_android.R
import com.mument_android.app.presentation.ui.main.MainActivity
import com.mument_android.core.util.Constants.MUSIC_INFO_ENTITY
import com.mument_android.domain.entity.music.MusicInfoEntity
import com.mument_android.home.search.SearchActivity
import javax.inject.Inject
Expand All @@ -20,7 +19,7 @@ class MoveMusicDetailNavigatorProviderImpl @Inject constructor(private val activ
override fun intentMusicDetail(music: MusicInfoEntity) {
with(activity as SearchActivity) {
val intent = Intent(this, MainActivity::class.java).apply {
putExtra("MUSIC_INFO_ENTITY", music)
putExtra(MUSIC_INFO_ENTITY, music)
}
setResult(AppCompatActivity.RESULT_OK, intent)
finish()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package com.mument_android.app.presentation.ui.detail.mument.navigator

import android.app.Activity
import android.app.Activity.RESULT_OK
import android.content.Intent
import com.angdroid.navigation.MoveNotifyNavigatorProvider
import com.google.gson.Gson
import com.mument_android.app.presentation.ui.main.MainActivity
import com.mument_android.core.util.Constants.MUMENT_ID
import com.mument_android.core.util.Constants.MUSIC_INFO_ENTITY
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ package com.mument_android.app.presentation.ui.detail.mument.navigator

import android.app.Activity
import com.angdroid.navigation.MoveRecordProvider
import com.mument_android.R
import com.mument_android.domain.entity.musicdetail.musicdetaildata.Music
import com.mument_android.domain.entity.musicdetail.Music
import com.mument_android.app.presentation.ui.main.MainActivity
import javax.inject.Inject

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ package com.mument_android.app.presentation.ui.detail.mument.navigator

import android.app.Activity
import android.os.Bundle
import android.util.Log
import com.angdroid.navigation.MumentDetailNavigatorProvider
import com.google.gson.Gson
import com.mument_android.R
import com.mument_android.app.presentation.ui.main.MainActivity
import com.mument_android.core.util.Constants.MUMENT_ID
Expand Down Expand Up @@ -56,7 +54,7 @@ class MumentDetailNavigatorProviderImpl @Inject constructor(
if (activity is MainActivity) {
val bundle = Bundle().apply {
putString(MUMENT_ID, mumentId)
putParcelable(MUSIC_INFO_ENTITY, musicInfo)
putSerializable(MUSIC_INFO_ENTITY, musicInfo)
putString(START_NAV_KEY, startNav)
}
activity.navController.navigate(actionId, bundle)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import android.app.Activity
import android.content.Intent
import com.angdroid.navigation.MumentHistoryNavigatorProvider
import com.mument_android.detail.history.HistoryActivity
import com.mument_android.domain.entity.musicdetail.musicdetaildata.Music
import com.mument_android.domain.entity.musicdetail.Music
import javax.inject.Inject

class MumentHistoryNavigatorProviderImpl @Inject constructor(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class MusicDetailNavigatorProviderImpl @Inject constructor(private val activity:
override fun fromHomeToMusicDetail(music: MusicInfoEntity, startNav: String) {
with(activity as MainActivity) {
val bundle = Bundle().also {
it.putParcelable(MUSIC_INFO_ENTITY, music)
it.putSerializable(MUSIC_INFO_ENTITY, music)
it.putString(START_NAV_KEY, startNav)
}
navController.navigate(
Expand All @@ -33,45 +33,24 @@ class MusicDetailNavigatorProviderImpl @Inject constructor(private val activity:
with(activity as MainActivity) {
val bundle = Bundle().apply {
putString(START_NAV_KEY, startNav)
putParcelable(MUSIC_INFO_ENTITY, music)
putSerializable(MUSIC_INFO_ENTITY, music)
}

navController.navigate(
R.id.musicDetailFragment,
bundle,
NavOptions.Builder().setPopUpTo(R.id.musicDetailFragment, true).build()
)

// this.navController.navigate(
// R.id.action_mumentDetailFragment_to_musicDetailFragment,
// bundle
// )
// if (navController.isFragmentInBackStack(R.id.musicDetailFragment)) {
//
// navController.popBackStack(R.id.musicDetailFragment, false)
//
// } else {
// val bundle = Bundle().apply {
// putString(START_NAV_KEY, startNav)
// putParcelable(MUSIC_INFO_ENTITY, music)
// }
// this.navController.navigate(
// R.id.action_mumentDetailFragment_to_musicDetailFragment,
// bundle
// )
// }
}
}

override fun musicDetailPopBackStack(startNav: String) {
with(activity as MainActivity) {
activity.navController.previousBackStackEntry?.savedStateHandle?.set(
navController.previousBackStackEntry?.savedStateHandle?.set(
START_NAV_KEY,
startNav
)
activity.navController.popBackStack()
// if (startNav == FROM_SEARCH) startActivity(Intent(activity, SearchActivity::class.java))
// navController.popBackStack()
navController.popBackStack()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.mument_android.app.presentation.ui.detail.mument.navigator
import android.content.Context
import com.angdroid.navigation.StackProvider
import com.mument_android.app.application.MumentApplication
import com.mument_android.domain.entity.musicdetail.musicdetaildata.Music
import com.mument_android.domain.entity.musicdetail.Music
import dagger.hilt.android.qualifiers.ApplicationContext
import java.util.*
import javax.inject.Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.ui.NavigationUI
import com.google.android.material.shape.CornerFamily
import com.google.android.material.shape.MaterialShapeDrawable
import com.google.gson.Gson
import com.mument_android.R
import com.mument_android.app.presentation.RestrictUserDialog
import com.mument_android.app.presentation.ui.detail.mument.navigator.EditMumentNavigator
Expand All @@ -38,14 +37,14 @@ import com.mument_android.core_dependent.base.BaseActivity
import com.mument_android.core_dependent.ext.DataStoreManager
import com.mument_android.core_dependent.util.FirebaseAnalyticsUtil
import com.mument_android.core_dependent.util.ViewUtils.snackBar
import com.mument_android.core_dependent.util.parcelable
import com.mument_android.databinding.ActivityMainBinding
import com.mument_android.detail.mument.fragment.MumentDetailFragment
import com.angdroid.navigation.StackProvider
import com.mument_android.core_dependent.util.serializable
import com.mument_android.detail.util.SuggestionNotifyAccessDialogFragment
import com.mument_android.domain.entity.detail.MumentDetailEntity
import com.mument_android.domain.entity.music.MusicInfoEntity
import com.mument_android.domain.entity.musicdetail.musicdetaildata.Music
import com.mument_android.domain.entity.musicdetail.Music
import com.mument_android.home.main.HomeFragment
import com.mument_android.home.notify.NotifyActivity
import com.mument_android.home.search.SearchActivity
Expand Down Expand Up @@ -160,10 +159,10 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
)
}
}
intent.parcelable<MusicInfoEntity>(MUSIC_INFO_ENTITY)?.let { musicInfo ->
intent.serializable<MusicInfoEntity>(MUSIC_INFO_ENTITY)?.let { musicInfo ->
intent.getStringExtra(MUMENT_ID)?.let { mumentId ->
val bundle = Bundle().apply {
putParcelable(MUSIC_INFO_ENTITY, musicInfo)
putSerializable(MUSIC_INFO_ENTITY, musicInfo)
putString(MUMENT_ID, mumentId)
}
navController.navigate(
Expand All @@ -174,14 +173,14 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
}
}
} else if (intent.getStringExtra(TO_MUMENT_DETAIL) == TO_MUMENT_DETAIL) {
intent.parcelable<MusicInfoEntity>(MUSIC_INFO_ENTITY)?.let { musicInfo ->
intent.serializable<MusicInfoEntity>(MUSIC_INFO_ENTITY)?.let { musicInfo ->
intent.getStringExtra(MUMENT_ID)?.let { mumentId ->
snackBar(
binding.clSnackBar,
getString(com.mument_android.detail.R.string.modify_record)
)
val bundle = Bundle().apply {
putString(MUSIC_INFO_ENTITY, Gson().toJson(musicInfo))
putSerializable(MUSIC_INFO_ENTITY, musicInfo)
putString(MUMENT_ID, mumentId)
}
navController.navigate(
Expand Down Expand Up @@ -291,7 +290,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
if (fromHistory == FROM_HISTORY && popBackStack) {
updateMumentDetail(null, null, true)
} else {
intent?.parcelable<MusicInfoEntity>(MUSIC_INFO_ENTITY)?.let { music ->
intent?.serializable<MusicInfoEntity>(MUSIC_INFO_ENTITY)?.let { music ->
if (mumentId.isNotEmpty()) {
showMumentDetail(mumentId, music, popBackStack, intent)
} else {
Expand All @@ -317,7 +316,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl

private fun moveToMusicDetail(music: MusicInfoEntity, intent: Intent) {
val bundle = Bundle().apply {
putParcelable(MUSIC_INFO_ENTITY, music)
putSerializable(MUSIC_INFO_ENTITY, music)
intent.getStringExtra(START_NAV_KEY)?.let {
when (it) {
FROM_NOTIFICATION_TO_MUMENT_DETAIL -> {
Expand Down Expand Up @@ -353,7 +352,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
) {
val bundle = Bundle().also { bundle ->
bundle.putString(MUMENT_ID, mumentId)
bundle.putParcelable(MUSIC_INFO_ENTITY, music)
bundle.putSerializable(MUSIC_INFO_ENTITY, music)
intent.getStringExtra(START_NAV_KEY)?.let {
when (it) {
FROM_NOTIFICATION_TO_MUMENT_DETAIL -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.mument_android.domain.entity.LimitUserEntity
import com.mument_android.domain.entity.detail.MumentDetailEntity
import com.mument_android.domain.entity.musicdetail.musicdetaildata.Music
import com.mument_android.domain.entity.musicdetail.Music
import com.mument_android.domain.usecase.app.LimitUserUseCase
import com.mument_android.domain.usecase.home.BeforeWhenHomeEnterUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
Expand Down
1 change: 1 addition & 0 deletions buildSrc/src/main/kotlin/Dependencies.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ object KotlinDependencies {
"org.jetbrains.kotlinx:kotlinx-serialization-json:${Versions.kotlinxSerializationJsonVersion}"
const val coroutines =
"org.jetbrains.kotlinx:kotlinx-coroutines-core:${Versions.kotlinCoroutinesVersion}"
const val annotation = "androidx.annotation:annotation:1.2.0"
}

object AndroidXDependencies {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ package com.mument_android.core_dependent.util
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.os.Build
import android.os.Build.VERSION.SDK_INT
import android.os.Build.VERSION_CODES.TIRAMISU
import android.os.Bundle
import android.os.Parcelable
import android.text.Spannable
Expand All @@ -25,6 +27,7 @@ import androidx.core.view.children
import com.google.android.material.snackbar.Snackbar
import com.mument_android.core_dependent.R
import com.mument_android.core_dependent.util.ViewUtils.dpToPx
import java.io.Serializable


object ViewUtils {
Expand Down Expand Up @@ -181,6 +184,20 @@ inline fun <reified T : Parcelable> Bundle.parcelable(key: String): T? = when {
else -> @Suppress("DEPRECATION") getParcelable<T>(key)
}

inline fun <reified T : Serializable> Intent.serializable(key: String): T? = when {
SDK_INT >= TIRAMISU -> getSerializableExtra(key, T::class.java)
else -> @Suppress("DEPRECATION") getSerializableExtra(key) as T?
}

inline fun <reified T : Serializable> Intent.getSerializable(key: String): T? = when {
SDK_INT >= TIRAMISU -> getSerializableExtra(key, T::class.java)
else -> @Suppress("DEPRECATION") getSerializableExtra(key) as T
}

inline fun <reified T : Serializable> Bundle.getBundleSerializable(key: String): T? = when {
SDK_INT >= TIRAMISU -> getSerializable(key, T::class.java)
else -> @Suppress("DEPRECATION") getSerializable(key) as? T
}

fun Context.createSpannableString(
originalText: String,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,8 @@ import android.util.Log
import androidx.paging.PagingSource
import androidx.paging.PagingState
import com.mument_android.data.network.detail.DetailApiService
import com.mument_android.data.network.detail.HistoryService
import com.mument_android.data.util.ResultWrapper
import com.mument_android.data.util.catchingApiCall
import com.mument_android.domain.entity.history.HistoryRequestParams
import com.mument_android.domain.entity.history.MumentHistory
import com.mument_android.domain.entity.user.UserEntity

class LikeMumentPagingSourceFactory(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ package com.mument_android.data.dto.record

data class MumentIsFirstDto(
val isFirst : Boolean,
val FirstAvaliable : Boolean
val firstAvailable : Boolean
)
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ import javax.inject.Singleton
@Singleton
class RecordMapper @Inject constructor() : BaseMapper<MumentIsFirstDto, RecordIsFirstEntity> {
override fun map(from: MumentIsFirstDto): RecordIsFirstEntity =
RecordIsFirstEntity(from.isFirst, from.FirstAvaliable)
RecordIsFirstEntity(from.isFirst, from.firstAvailable)
}
Loading

0 comments on commit a90ac15

Please sign in to comment.