diff --git a/app/src/main/java/sopt/uni/data/datasource/local/SparkleStorage.kt b/app/src/main/java/sopt/uni/data/datasource/local/SparkleStorage.kt index 7c3a0b85..e6f60517 100644 --- a/app/src/main/java/sopt/uni/data/datasource/local/SparkleStorage.kt +++ b/app/src/main/java/sopt/uni/data/datasource/local/SparkleStorage.kt @@ -39,6 +39,14 @@ object SparkleStorage { get() = pref.getString(REFRESH_TOKEN, null) set(value) = pref.edit { putString(REFRESH_TOKEN, value).apply() } + var userId: Int? + get() = pref.getInt(USER_ID, -1) + set(value) = pref.edit { putInt(USER_ID, value ?: -1).apply() } + + var partnerId: Int? + get() = pref.getInt(PARTNER_ID, -1) + set(value) = pref.edit { putInt(PARTNER_ID, value ?: -1).apply() } + fun clear() { pref.edit().clear().apply() } @@ -47,3 +55,5 @@ object SparkleStorage { const val ACCESS_TOKEN = "accessToken" const val REFRESH_TOKEN = "refreshToken" const val AUTH = "auth" +const val USER_ID = "userId" +const val PARTNER_ID = "partnerId" diff --git a/app/src/main/java/sopt/uni/data/entity/home/HomeInfo.kt b/app/src/main/java/sopt/uni/data/entity/home/HomeInfo.kt new file mode 100644 index 00000000..7503dc55 --- /dev/null +++ b/app/src/main/java/sopt/uni/data/entity/home/HomeInfo.kt @@ -0,0 +1,10 @@ +package sopt.uni.data.entity.home + +data class HomeInfo( + val roundGameId: Int? = 0, + val myScore: Int? = 0, + val partnerScore: Int? = 0, + val drawCount: Int? = 0, + val dDay: Int? = 0, + val enable: Boolean? = false, +) diff --git a/app/src/main/java/sopt/uni/data/repository/example/ExampleRepository.kt b/app/src/main/java/sopt/uni/data/repository/example/ExampleRepository.kt deleted file mode 100644 index a79ea34e..00000000 --- a/app/src/main/java/sopt/uni/data/repository/example/ExampleRepository.kt +++ /dev/null @@ -1,8 +0,0 @@ -package sopt.uni.data.repository.example - -import sopt.uni.data.entity.onboarding.OnBoardingItem -import sopt.uni.data.source.remote.request.ExampleRequestDto - -interface ExampleRepository { - suspend fun postExample(exampleRequestDto: ExampleRequestDto): Result -} diff --git a/app/src/main/java/sopt/uni/data/repository/example/ExampleRepositoryImpl.kt b/app/src/main/java/sopt/uni/data/repository/example/ExampleRepositoryImpl.kt deleted file mode 100644 index d707ac36..00000000 --- a/app/src/main/java/sopt/uni/data/repository/example/ExampleRepositoryImpl.kt +++ /dev/null @@ -1,9 +0,0 @@ -package sopt.uni.data.repository.example - -import sopt.uni.data.entity.onboarding.OnBoardingItem -import sopt.uni.data.source.remote.request.ExampleRequestDto - -class ExampleRepositoryImpl() : ExampleRepository { - override suspend fun postExample(exampleRequestDto: ExampleRequestDto): Result = - Result.success(OnBoardingItem(0, "ㅁㄴㅇ", "ㅁㄴㅇ")) -} diff --git a/app/src/main/java/sopt/uni/data/repository/home/HomeRepository.kt b/app/src/main/java/sopt/uni/data/repository/home/HomeRepository.kt new file mode 100644 index 00000000..abf0ea72 --- /dev/null +++ b/app/src/main/java/sopt/uni/data/repository/home/HomeRepository.kt @@ -0,0 +1,7 @@ +package sopt.uni.data.repository.home + +import sopt.uni.data.source.remote.response.ResponseHomeDto + +interface HomeRepository { + suspend fun getHomeInfo(): Result +} diff --git a/app/src/main/java/sopt/uni/data/repository/home/HomeRepositoryImpl.kt b/app/src/main/java/sopt/uni/data/repository/home/HomeRepositoryImpl.kt new file mode 100644 index 00000000..6ec5c84b --- /dev/null +++ b/app/src/main/java/sopt/uni/data/repository/home/HomeRepositoryImpl.kt @@ -0,0 +1,18 @@ +package sopt.uni.data.repository.home + +import sopt.uni.data.service.HomeService +import sopt.uni.data.source.remote.response.ResponseHomeDto +import javax.inject.Inject + +class HomeRepositoryImpl @Inject constructor( + private val homeService: HomeService, +) : HomeRepository { + override suspend fun getHomeInfo(): Result = + kotlin.runCatching { + homeService.getHome() + }.fold({ + Result.success(it) + }, { + Result.failure(it) + }) +} diff --git a/app/src/main/java/sopt/uni/data/service/ExampleService.kt b/app/src/main/java/sopt/uni/data/service/ExampleService.kt deleted file mode 100644 index cc5345c8..00000000 --- a/app/src/main/java/sopt/uni/data/service/ExampleService.kt +++ /dev/null @@ -1,13 +0,0 @@ -package sopt.uni.data.service - -import retrofit2.http.Body -import retrofit2.http.POST -import sopt.uni.data.source.remote.request.ExampleRequestDto -import sopt.uni.data.source.remote.response.ExampleResponseDto - -interface ExampleService { - @POST("example/api") - suspend fun postExample( - @Body request: ExampleRequestDto, - ): ExampleResponseDto -} diff --git a/app/src/main/java/sopt/uni/data/service/HomeService.kt b/app/src/main/java/sopt/uni/data/service/HomeService.kt new file mode 100644 index 00000000..4b28de8a --- /dev/null +++ b/app/src/main/java/sopt/uni/data/service/HomeService.kt @@ -0,0 +1,10 @@ +package sopt.uni.data.service + +import retrofit2.http.GET +import sopt.uni.data.source.remote.response.ResponseHomeDto + +interface HomeService { + + @GET("api/home") + suspend fun getHome(): ResponseHomeDto +} diff --git a/app/src/main/java/sopt/uni/data/source/remote/request/ExampleRequestDto.kt b/app/src/main/java/sopt/uni/data/source/remote/request/ExampleRequestDto.kt deleted file mode 100644 index 15a87eb4..00000000 --- a/app/src/main/java/sopt/uni/data/source/remote/request/ExampleRequestDto.kt +++ /dev/null @@ -1,12 +0,0 @@ -package sopt.uni.data.source.remote.request - -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -data class ExampleRequestDto( - @SerialName("id") - val id: String, - @SerialName("type") - val type: String, -) diff --git a/app/src/main/java/sopt/uni/data/source/remote/response/ExampleResponseDto.kt b/app/src/main/java/sopt/uni/data/source/remote/response/ExampleResponseDto.kt deleted file mode 100644 index 7f448880..00000000 --- a/app/src/main/java/sopt/uni/data/source/remote/response/ExampleResponseDto.kt +++ /dev/null @@ -1,10 +0,0 @@ -package sopt.uni.data.source.remote.response - -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -data class ExampleResponseDto( - @SerialName("id") - val id: Int, -) diff --git a/app/src/main/java/sopt/uni/data/source/remote/response/ResponseHomeDto.kt b/app/src/main/java/sopt/uni/data/source/remote/response/ResponseHomeDto.kt new file mode 100644 index 00000000..7522857a --- /dev/null +++ b/app/src/main/java/sopt/uni/data/source/remote/response/ResponseHomeDto.kt @@ -0,0 +1,56 @@ +package sopt.uni.data.source.remote.response + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import sopt.uni.data.entity.home.HomeInfo + +@Serializable +data class ResponseHomeDto( + @SerialName("couple") + val couple: Couple, + @SerialName("dDay") + val dDay: Int, + @SerialName("drawCount") + val drawCount: Int, + @SerialName("myScore") + val myScore: Int, + @SerialName("partnerId") + val partnerId: Int, + @SerialName("partnerScore") + val partnerScore: Int, + @SerialName("roundGameId") + val roundGameId: Int?, + @SerialName("shortGame") + val shortGame: ShortGame?, + @SerialName("userId") + val userId: Int, +) { + @Serializable + data class Couple( + @SerialName("heartToken") + val heartToken: Int, + @SerialName("id") + val id: Int, + @SerialName("startDate") + val startDate: String, + ) + + @Serializable + data class ShortGame( + @SerialName("enable") + val enable: Boolean, + @SerialName("finishAt") + val finishAt: String?, + @SerialName("id") + val id: Int, + ) + + fun toHomeInfo() = HomeInfo( + roundGameId = roundGameId, + myScore = myScore, + partnerScore = partnerScore, + drawCount = drawCount, + dDay = dDay, + enable = shortGame?.enable, + ) +} diff --git a/app/src/main/java/sopt/uni/di/RepositoryModule.kt b/app/src/main/java/sopt/uni/di/RepositoryModule.kt index f6bf82ae..a043c3a4 100644 --- a/app/src/main/java/sopt/uni/di/RepositoryModule.kt +++ b/app/src/main/java/sopt/uni/di/RepositoryModule.kt @@ -8,6 +8,8 @@ import sopt.uni.data.repository.auth.AuthRepository import sopt.uni.data.repository.auth.AuthRepositoryImpl import sopt.uni.data.repository.history.HistoryRepository import sopt.uni.data.repository.history.HistoryRepositoryImpl +import sopt.uni.data.repository.home.HomeRepository +import sopt.uni.data.repository.home.HomeRepositoryImpl import sopt.uni.data.repository.mypage.MypageRepository import sopt.uni.data.repository.mypage.MypageRepositoryImpl import sopt.uni.data.repository.onboarding.OnBoardingRepository @@ -43,4 +45,9 @@ object RepositoryModule { @Singleton fun providesMyPageRepository(mypageRepository: MypageRepositoryImpl): MypageRepository = mypageRepository + + @Provides + @Singleton + fun providesHomeRepository(homeRepository: HomeRepositoryImpl): HomeRepository = + homeRepository } diff --git a/app/src/main/java/sopt/uni/di/ServiceModule.kt b/app/src/main/java/sopt/uni/di/ServiceModule.kt index 3aaeedfe..064df332 100644 --- a/app/src/main/java/sopt/uni/di/ServiceModule.kt +++ b/app/src/main/java/sopt/uni/di/ServiceModule.kt @@ -7,6 +7,7 @@ import dagger.hilt.components.SingletonComponent import retrofit2.Retrofit import sopt.uni.data.service.AuthService import sopt.uni.data.service.HistoryService +import sopt.uni.data.service.HomeService import sopt.uni.data.service.MyPageService import sopt.uni.data.service.OnBoardingService import sopt.uni.data.service.ShortGameService @@ -38,4 +39,8 @@ object ServiceModule { @Provides @Singleton fun provideShortGameService(retrofit: Retrofit): ShortGameService = retrofit.create() + + @Provides + @Singleton + fun provideHomeService(retrofit: Retrofit): HomeService = retrofit.create() } diff --git a/app/src/main/java/sopt/uni/presentation/SplashActivity.kt b/app/src/main/java/sopt/uni/presentation/SplashActivity.kt index 022a1042..d75857c9 100644 --- a/app/src/main/java/sopt/uni/presentation/SplashActivity.kt +++ b/app/src/main/java/sopt/uni/presentation/SplashActivity.kt @@ -8,6 +8,7 @@ import kotlinx.coroutines.launch import sopt.uni.R import sopt.uni.data.datasource.local.SparkleStorage import sopt.uni.databinding.ActivitySplashBinding +import sopt.uni.presentation.home.HomeActivity import sopt.uni.presentation.invite.NickNameActivity import sopt.uni.presentation.onboarding.OnBoardingActivity import sopt.uni.util.binding.BindingActivity @@ -22,7 +23,11 @@ class SplashActivity : BindingActivity(R.layout.activity_ lifecycleScope.launch { delay(2000) if (SparkleStorage.accessToken != null) { - startActivity() + if (SparkleStorage.partnerId != -1) { + startActivity() + } else { + startActivity() + } } else { startActivity() } diff --git a/app/src/main/java/sopt/uni/presentation/home/HomeActivity.kt b/app/src/main/java/sopt/uni/presentation/home/HomeActivity.kt index d7395f67..5aaebe6b 100644 --- a/app/src/main/java/sopt/uni/presentation/home/HomeActivity.kt +++ b/app/src/main/java/sopt/uni/presentation/home/HomeActivity.kt @@ -1,10 +1,12 @@ package sopt.uni.presentation.home import android.os.Bundle +import androidx.activity.viewModels import dagger.hilt.android.AndroidEntryPoint import sopt.uni.R import sopt.uni.databinding.ActivityHomeBinding import sopt.uni.presentation.history.HistoryActivity +import sopt.uni.presentation.mypage.MypageSettingActivity import sopt.uni.presentation.shortgame.createshortgame.CreateShortGameActivity import sopt.uni.presentation.wish.WishActivity import sopt.uni.util.binding.BindingActivity @@ -13,13 +15,16 @@ import sopt.uni.util.extension.startActivity @AndroidEntryPoint class HomeActivity : BindingActivity(R.layout.activity_home) { + private val homeViewModel by viewModels() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(binding.root) + + binding.viewModel = homeViewModel moveToHistory() moveToShortGame() moveToWish() + moveToMyPage() } private fun moveToShortGame() { @@ -40,4 +45,10 @@ class HomeActivity : BindingActivity(R.layout.activity_home startActivity() } } + + private fun moveToMyPage() { + binding.ivProfile.setOnSingleClickListener { + startActivity() + } + } } diff --git a/app/src/main/java/sopt/uni/presentation/home/HomeViewModel.kt b/app/src/main/java/sopt/uni/presentation/home/HomeViewModel.kt new file mode 100644 index 00000000..7aa7ba25 --- /dev/null +++ b/app/src/main/java/sopt/uni/presentation/home/HomeViewModel.kt @@ -0,0 +1,38 @@ +package sopt.uni.presentation.home + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.launch +import sopt.uni.data.datasource.local.SparkleStorage +import sopt.uni.data.entity.home.HomeInfo +import sopt.uni.data.repository.home.HomeRepository +import timber.log.Timber +import javax.inject.Inject + +@HiltViewModel +class HomeViewModel @Inject constructor( + private val homeRepository: HomeRepository, +) : ViewModel() { + + val homeInfo = MutableStateFlow(HomeInfo()) + + init { + fetchHomeInfo() + } + + fun fetchHomeInfo() { + viewModelScope.launch { + homeRepository.getHomeInfo().onSuccess { + Timber.e(it.toString()) + SparkleStorage.userId = it.userId + SparkleStorage.partnerId = it.partnerId + Timber.e("${SparkleStorage.userId} ${SparkleStorage.partnerId}") + homeInfo.value = it.toHomeInfo() + }.onFailure { + Timber.e(it) + } + } + } +} diff --git a/app/src/main/java/sopt/uni/presentation/invite/EnterInviteCodeActivity.kt b/app/src/main/java/sopt/uni/presentation/invite/EnterInviteCodeActivity.kt index e8f60d2f..7637852d 100644 --- a/app/src/main/java/sopt/uni/presentation/invite/EnterInviteCodeActivity.kt +++ b/app/src/main/java/sopt/uni/presentation/invite/EnterInviteCodeActivity.kt @@ -20,7 +20,9 @@ class EnterInviteCodeActivity : private val enterInviteCodeViewModel by viewModels() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + binding.viewModel = enterInviteCodeViewModel + moveToPrevPage() checkInviteCode() changeBoxStrokeColor() @@ -33,8 +35,10 @@ class EnterInviteCodeActivity : } private fun changeBoxStrokeColor() { - if (binding.etInviteCode.text.isNotBlank()) { + if (enterInviteCodeViewModel.inviteCode.value.isNotBlank()) { binding.etInviteCode.background = getDrawable(R.drawable.bg_mypage_edit_text) + } else { + binding.etInviteCode.background = getDrawable(R.drawable.bg_mypage_edit_text_error) } } @@ -45,7 +49,8 @@ class EnterInviteCodeActivity : enterInviteCodeViewModel.connectState.collect { responseCode -> if (responseCode == "204") { this@EnterInviteCodeActivity.showToast(getString(R.string.couple_connect_success)) - binding.etInviteCode.background = getDrawable(R.drawable.bg_mypage_edit_text) + binding.etInviteCode.background = + getDrawable(R.drawable.bg_mypage_edit_text) binding.tvInviteCodeErrorMessage.visibility = View.INVISIBLE startActivity() finishAffinity() diff --git a/app/src/main/java/sopt/uni/presentation/invite/NickNameActivity.kt b/app/src/main/java/sopt/uni/presentation/invite/NickNameActivity.kt index b79c25c0..b28daba0 100644 --- a/app/src/main/java/sopt/uni/presentation/invite/NickNameActivity.kt +++ b/app/src/main/java/sopt/uni/presentation/invite/NickNameActivity.kt @@ -5,13 +5,13 @@ import android.graphics.Rect import android.os.Bundle import android.view.MotionEvent import android.view.MotionEvent.ACTION_DOWN -import android.view.View import android.view.inputmethod.InputMethodManager import android.widget.EditText import androidx.activity.viewModels import dagger.hilt.android.AndroidEntryPoint import sopt.uni.R import sopt.uni.databinding.ActivityNicknameBinding +import sopt.uni.presentation.login.LoginActivity import sopt.uni.util.binding.BindingActivity import sopt.uni.util.extension.setOnSingleClickListener import sopt.uni.util.extension.startActivity @@ -24,7 +24,6 @@ class NickNameActivity : BindingActivity(R.layout.activ binding.viewModel = nickNameViewModel - blockSpaceNickName() moveToInviteHub() moveToPrevPage() } @@ -38,18 +37,11 @@ class NickNameActivity : BindingActivity(R.layout.activ private fun moveToPrevPage() { binding.ivBackArrow.setOnSingleClickListener { + startActivity() finish() } } - private fun blockSpaceNickName() { - if (nickNameViewModel.nickName.value.filterNot { it.isWhitespace() }.isEmpty()) { - binding.etNickname.background = getDrawable(R.drawable.bg_mypage_edit_text_error) - binding.tvNicknameErrorMessage.text = "공백으로 시작할 수 없어요" - binding.tvNicknameErrorMessage.visibility = View.VISIBLE - } - } - override fun dispatchTouchEvent(event: MotionEvent?): Boolean { if (event?.action === ACTION_DOWN) { val v = currentFocus diff --git a/app/src/main/java/sopt/uni/presentation/invite/ShareInviteCodeActivity.kt b/app/src/main/java/sopt/uni/presentation/invite/ShareInviteCodeActivity.kt index 2b5a5038..ea0eca32 100644 --- a/app/src/main/java/sopt/uni/presentation/invite/ShareInviteCodeActivity.kt +++ b/app/src/main/java/sopt/uni/presentation/invite/ShareInviteCodeActivity.kt @@ -12,7 +12,7 @@ import sopt.uni.presentation.common.content.INVITECODE import sopt.uni.presentation.home.HomeActivity import sopt.uni.util.binding.BindingActivity import sopt.uni.util.extension.setOnSingleClickListener -import sopt.uni.util.extension.showSnackbar +import sopt.uni.util.extension.showToast import sopt.uni.util.extension.startActivity import timber.log.Timber @@ -50,7 +50,7 @@ class ShareInviteCodeActivity : startActivity() finishAffinity() } else { - showSnackbar(binding.root, getString(R.string.cannot_connect)) + this@ShareInviteCodeActivity.showToast(getString(R.string.cannot_connect)) } } } diff --git a/app/src/main/java/sopt/uni/presentation/mypage/MypageAccountActivity.kt b/app/src/main/java/sopt/uni/presentation/mypage/MypageAccountActivity.kt index c81fc833..f797ef86 100644 --- a/app/src/main/java/sopt/uni/presentation/mypage/MypageAccountActivity.kt +++ b/app/src/main/java/sopt/uni/presentation/mypage/MypageAccountActivity.kt @@ -29,7 +29,7 @@ class MypageAccountActivity : } private fun setupAccountList1() { - binding.tvMypageAccountLogout.setOnSingleClickListener { + binding.clMypageAccountLogout.setOnSingleClickListener { MypageAccountLogoutDialogFragment().show( supportFragmentManager, "MypageAccountLogoutDialogFragment", @@ -38,7 +38,7 @@ class MypageAccountActivity : } private fun setupAccountList2() { - binding.tvMypageAccountSecession.setOnSingleClickListener { + binding.clMypageAccountSecession.setOnSingleClickListener { MypageAccountDeleteDialogFragment().show( supportFragmentManager, "MypageAccountSecessionDialogFragment", @@ -47,7 +47,7 @@ class MypageAccountActivity : } private fun setupAccountList3() { - binding.tvMypageAccountDisconnect.setOnSingleClickListener { + binding.clMypageAccountDisconnect.setOnSingleClickListener { MypageAccountCoupleDisconnectDialogFragment().show( supportFragmentManager, "MypageAccountCoupleDisconnectDialogFragment", diff --git a/app/src/main/java/sopt/uni/presentation/mypage/MypageAccountDialogFragment.kt b/app/src/main/java/sopt/uni/presentation/mypage/MypageAccountDialogFragment.kt index c27a5900..c4547c14 100644 --- a/app/src/main/java/sopt/uni/presentation/mypage/MypageAccountDialogFragment.kt +++ b/app/src/main/java/sopt/uni/presentation/mypage/MypageAccountDialogFragment.kt @@ -1,11 +1,14 @@ package sopt.uni.presentation.mypage +import android.content.Intent import android.os.Bundle import android.view.View import sopt.uni.R +import sopt.uni.data.datasource.local.SparkleStorage import sopt.uni.databinding.NoBodyAction2DialogBinding import sopt.uni.databinding.TitleAction2DialogBinding import sopt.uni.presentation.BindingDialogFragment +import sopt.uni.presentation.login.LoginActivity import sopt.uni.util.extension.setOnSingleClickListener class MypageAccountLogoutDialogFragment : @@ -20,7 +23,12 @@ class MypageAccountLogoutDialogFragment : dismiss() } btnRight.setOnSingleClickListener { - // 로그아웃 처리 + SparkleStorage.clear() + Intent(requireContext(), LoginActivity::class.java).apply { + startActivity(this) + } + requireActivity().finish() + dismiss() } } } diff --git a/app/src/main/java/sopt/uni/presentation/mypage/MypageDatePickerDialogFragment.kt b/app/src/main/java/sopt/uni/presentation/mypage/MypageDatePickerDialogFragment.kt index c9d0aeeb..d5904b88 100644 --- a/app/src/main/java/sopt/uni/presentation/mypage/MypageDatePickerDialogFragment.kt +++ b/app/src/main/java/sopt/uni/presentation/mypage/MypageDatePickerDialogFragment.kt @@ -6,6 +6,7 @@ import sopt.uni.R import sopt.uni.databinding.DatepickerDialogBinding import sopt.uni.presentation.BindingDialogFragment import sopt.uni.util.extension.setOnSingleClickListener +import java.util.Calendar class MypageDatePickerDialogFragment : BindingDialogFragment( @@ -20,6 +21,9 @@ class MypageDatePickerDialogFragment : override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + + setMaxDate() + binding.btnLeft.setOnSingleClickListener { dismiss() } @@ -33,4 +37,9 @@ class MypageDatePickerDialogFragment : dismiss() } } + + private fun setMaxDate() { + val calendar = Calendar.getInstance() + binding.datePicker.maxDate = calendar.timeInMillis + } } diff --git a/app/src/main/res/drawable-xhdpi/home_short_game_imagecard.png b/app/src/main/res/drawable-xhdpi/home_short_game_imagecard.png new file mode 100644 index 00000000..434610cf Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/home_short_game_imagecard.png differ diff --git a/app/src/main/res/drawable-xhdpi/home_wish_coupon_imagecard.png b/app/src/main/res/drawable-xhdpi/home_wish_coupon_imagecard.png new file mode 100644 index 00000000..a1391ff5 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/home_wish_coupon_imagecard.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_my_page_profile.png b/app/src/main/res/drawable-xhdpi/ic_my_page_profile.png new file mode 100644 index 00000000..9edb0bb8 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_my_page_profile.png differ diff --git a/app/src/main/res/drawable-xxhdpi/home_short_game_imagecard.png b/app/src/main/res/drawable-xxhdpi/home_short_game_imagecard.png new file mode 100644 index 00000000..e47afcc6 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/home_short_game_imagecard.png differ diff --git a/app/src/main/res/drawable-xxhdpi/home_wish_coupon_imagecard.png b/app/src/main/res/drawable-xxhdpi/home_wish_coupon_imagecard.png new file mode 100644 index 00000000..2e06c25f Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/home_wish_coupon_imagecard.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_my_page_profile.png b/app/src/main/res/drawable-xxhdpi/ic_my_page_profile.png new file mode 100644 index 00000000..f445670f Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_my_page_profile.png differ diff --git a/app/src/main/res/drawable/home_short_game_imagecard.png b/app/src/main/res/drawable/home_short_game_imagecard.png new file mode 100644 index 00000000..31f2c4fc Binary files /dev/null and b/app/src/main/res/drawable/home_short_game_imagecard.png differ diff --git a/app/src/main/res/drawable/home_wish_coupon_imagecard.png b/app/src/main/res/drawable/home_wish_coupon_imagecard.png new file mode 100644 index 00000000..ac3ef110 Binary files /dev/null and b/app/src/main/res/drawable/home_wish_coupon_imagecard.png differ diff --git a/app/src/main/res/drawable/ic_my_page_profile.png b/app/src/main/res/drawable/ic_my_page_profile.png new file mode 100644 index 00000000..66584ebf Binary files /dev/null and b/app/src/main/res/drawable/ic_my_page_profile.png differ diff --git a/app/src/main/res/drawable/mypage_profil_image.png b/app/src/main/res/drawable/mypage_profil_image.png deleted file mode 100644 index c065c1fe..00000000 Binary files a/app/src/main/res/drawable/mypage_profil_image.png and /dev/null differ diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml index 8920f24c..a4d8dabf 100644 --- a/app/src/main/res/layout/activity_home.xml +++ b/app/src/main/res/layout/activity_home.xml @@ -5,6 +5,10 @@ + + + app:layout_constraintTop_toTopOf="parent" + tools:text="@string/home_d_100" /> + app:layout_constraintTop_toTopOf="parent" + tools:text="15" /> + app:layout_constraintTop_toTopOf="parent" + tools:text="10" /> + app:layout_constraintTop_toTopOf="parent" + tools:text="2" /> @@ -319,7 +327,7 @@ @@ -345,20 +353,19 @@ style="@style/Subtitle" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="소원권" + android:text="@string/home_wish_coupon" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> - diff --git a/app/src/main/res/layout/activity_mypage_profil_edit.xml b/app/src/main/res/layout/activity_mypage_profil_edit.xml index e46df277..d98f5cb7 100644 --- a/app/src/main/res/layout/activity_mypage_profil_edit.xml +++ b/app/src/main/res/layout/activity_mypage_profil_edit.xml @@ -66,10 +66,11 @@ diff --git a/app/src/main/res/layout/activity_mypage_setting.xml b/app/src/main/res/layout/activity_mypage_setting.xml index c1981f7a..3969a762 100644 --- a/app/src/main/res/layout/activity_mypage_setting.xml +++ b/app/src/main/res/layout/activity_mypage_setting.xml @@ -54,11 +54,12 @@ @@ -67,10 +68,13 @@ style="@style/Title2" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="34dp" + android:layout_marginHorizontal="34dp" + android:ellipsize="end" + android:maxLines="1" android:text="@{vm.mypage.nickname}" android:textColor="@color/Gray_600" app:layout_constraintBottom_toBottomOf="@+id/iv_mypage_setting_profil_image" + app:layout_constraintEnd_toStartOf="@id/tv_mypage_setting_profil_edit" app:layout_constraintStart_toEndOf="@id/iv_mypage_setting_profil_image" app:layout_constraintTop_toTopOf="@+id/iv_mypage_setting_profil_image" tools:text="@string/mypage_setting_name" /> diff --git a/app/src/main/res/layout/datepicker_dialog.xml b/app/src/main/res/layout/datepicker_dialog.xml index 2a85af97..143e1080 100644 --- a/app/src/main/res/layout/datepicker_dialog.xml +++ b/app/src/main/res/layout/datepicker_dialog.xml @@ -17,14 +17,13 @@ 두 분의 시작일은 언제인가요? 초대코드를 입력하세요 연결하기 + D+%d 소원권 @@ -199,5 +200,8 @@ 상대가 아직 연결되지 않았어요 커플 연결에 성공했습니다 입력하신 코드 정보를 찾을 수 없어요 + x5 + 소원권 + my page profile image