diff --git a/Nabi/data/src/main/java/com/nabi/data/datasource/EmotionRemoteDataSource.kt b/Nabi/data/src/main/java/com/nabi/data/datasource/EmotionRemoteDataSource.kt index 097919c..b2c0c82 100644 --- a/Nabi/data/src/main/java/com/nabi/data/datasource/EmotionRemoteDataSource.kt +++ b/Nabi/data/src/main/java/com/nabi/data/datasource/EmotionRemoteDataSource.kt @@ -1,11 +1,7 @@ package com.nabi.data.datasource import com.nabi.data.model.BaseResponse -import com.nabi.data.model.auth.NicknameResponseDTO -import com.nabi.data.model.auth.SignInRequestDTO -import com.nabi.data.model.auth.SignInResponseDTO import com.nabi.data.model.emotion.DiaryStatisticsResponseDTO -import com.nabi.domain.model.emotion.EmotionStatistics interface EmotionRemoteDataSource { diff --git a/Nabi/data/src/main/java/com/nabi/data/datasourceImpl/EmotionRemoteDataSourceImpl.kt b/Nabi/data/src/main/java/com/nabi/data/datasourceImpl/EmotionRemoteDataSourceImpl.kt index dd757da..a5c94b0 100644 --- a/Nabi/data/src/main/java/com/nabi/data/datasourceImpl/EmotionRemoteDataSourceImpl.kt +++ b/Nabi/data/src/main/java/com/nabi/data/datasourceImpl/EmotionRemoteDataSourceImpl.kt @@ -1,13 +1,8 @@ package com.nabi.data.datasourceImpl -import com.nabi.data.datasource.AuthRemoteDataSource import com.nabi.data.datasource.EmotionRemoteDataSource import com.nabi.data.model.BaseResponse -import com.nabi.data.model.auth.NicknameResponseDTO -import com.nabi.data.model.auth.SignInRequestDTO -import com.nabi.data.model.auth.SignInResponseDTO import com.nabi.data.model.emotion.DiaryStatisticsResponseDTO -import com.nabi.data.service.AuthService import com.nabi.data.service.EmotionService import javax.inject.Inject diff --git a/Nabi/data/src/main/java/com/nabi/data/repository/EmotionRepositoryImpl.kt b/Nabi/data/src/main/java/com/nabi/data/repository/EmotionRepositoryImpl.kt index 6c684b9..019e11f 100644 --- a/Nabi/data/src/main/java/com/nabi/data/repository/EmotionRepositoryImpl.kt +++ b/Nabi/data/src/main/java/com/nabi/data/repository/EmotionRepositoryImpl.kt @@ -1,13 +1,7 @@ package com.nabi.data.repository -import com.nabi.data.datasource.AuthRemoteDataSource import com.nabi.data.datasource.EmotionRemoteDataSource -import com.nabi.data.model.auth.SignInRequestDTO -import com.nabi.domain.enums.AuthProvider -import com.nabi.domain.model.auth.NicknameInfo -import com.nabi.domain.model.auth.SignInInfo import com.nabi.domain.model.emotion.EmotionStatistics -import com.nabi.domain.repository.AuthRepository import com.nabi.domain.repository.EmotionRepository import javax.inject.Inject diff --git a/Nabi/data/src/main/java/com/nabi/data/service/DiaryService.kt b/Nabi/data/src/main/java/com/nabi/data/service/DiaryService.kt index 18ade9d..e3ec81d 100644 --- a/Nabi/data/src/main/java/com/nabi/data/service/DiaryService.kt +++ b/Nabi/data/src/main/java/com/nabi/data/service/DiaryService.kt @@ -1,9 +1,7 @@ package com.nabi.data.service import com.nabi.data.model.BaseResponse -import com.nabi.data.model.MessageResponseDTO import com.nabi.data.model.PageableResponse -import com.nabi.data.model.auth.SignInRequestDTO import com.nabi.data.model.diary.AddDiaryRequestDTO import com.nabi.data.model.diary.AddDiaryResponseDTO import com.nabi.data.model.diary.DiaryDetailResponseDTO diff --git a/Nabi/domain/src/main/java/com/nabi/domain/repository/EmotionRepository.kt b/Nabi/domain/src/main/java/com/nabi/domain/repository/EmotionRepository.kt index a999f61..526ffe2 100644 --- a/Nabi/domain/src/main/java/com/nabi/domain/repository/EmotionRepository.kt +++ b/Nabi/domain/src/main/java/com/nabi/domain/repository/EmotionRepository.kt @@ -1,8 +1,5 @@ package com.nabi.domain.repository -import com.nabi.domain.enums.AuthProvider -import com.nabi.domain.model.auth.NicknameInfo -import com.nabi.domain.model.auth.SignInInfo import com.nabi.domain.model.emotion.EmotionStatistics interface EmotionRepository { diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/base/NabiApplication.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/base/NabiApplication.kt index eca2cb2..b0f941a 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/base/NabiApplication.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/base/NabiApplication.kt @@ -3,8 +3,8 @@ package com.nabi.nabi.base import android.app.Application import com.kakao.sdk.common.KakaoSdk import com.kakao.sdk.common.util.Utility -import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.BuildConfig +import com.nabi.nabi.utils.LoggerUtils import dagger.hilt.android.HiltAndroidApp @HiltAndroidApp diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/custom/CustomChartView.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/custom/CustomChartView.kt index 93c22a3..233f8b8 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/custom/CustomChartView.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/custom/CustomChartView.kt @@ -6,7 +6,6 @@ import android.graphics.Canvas import android.graphics.Paint import android.graphics.RectF import android.util.AttributeSet -import android.util.Log import android.view.View import androidx.core.content.ContextCompat import com.nabi.nabi.R diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/di/EmotionUseCaseModule.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/di/EmotionUseCaseModule.kt index b6d3898..a97352a 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/di/EmotionUseCaseModule.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/di/EmotionUseCaseModule.kt @@ -1,9 +1,7 @@ package com.nabi.nabi.di import com.nabi.domain.repository.EmotionRepository -import com.nabi.domain.repository.HomeRepository import com.nabi.domain.usecase.emotion.GetEmotionStatisticsUseCase -import com.nabi.domain.usecase.home.HomeUseCase import dagger.Module import dagger.Provides import dagger.hilt.InstallIn diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/fcm/MyFirebaseMessagingService.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/fcm/MyFirebaseMessagingService.kt index 2070b42..087f3e6 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/fcm/MyFirebaseMessagingService.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/fcm/MyFirebaseMessagingService.kt @@ -15,8 +15,8 @@ import androidx.work.WorkerParameters import com.google.firebase.messaging.FirebaseMessaging import com.google.firebase.messaging.FirebaseMessagingService import com.google.firebase.messaging.RemoteMessage -import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.R +import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.views.splash.StartActivity import kotlinx.coroutines.runBlocking import kotlinx.coroutines.tasks.await diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/add/AddDiaryFragment.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/add/AddDiaryFragment.kt index 75b046b..78e8487 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/add/AddDiaryFragment.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/add/AddDiaryFragment.kt @@ -1,25 +1,17 @@ package com.nabi.nabi.views.diary.add -import android.Manifest import android.annotation.SuppressLint import android.content.Intent -import android.content.pm.PackageManager -import android.os.Build import android.os.Bundle import android.speech.RecognitionListener import android.speech.RecognizerIntent import android.speech.SpeechRecognizer -import android.widget.Toast -import androidx.core.app.ActivityCompat -import androidx.core.content.ContextCompat import androidx.fragment.app.viewModels import com.nabi.nabi.R import com.nabi.nabi.base.BaseActivity import com.nabi.nabi.base.BaseFragment -import com.nabi.nabi.databinding.ActivityMainBinding import com.nabi.nabi.databinding.FragmentAddDiaryBinding import com.nabi.nabi.utils.Constants -import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.utils.UiState import dagger.hilt.android.AndroidEntryPoint import java.time.LocalDate @@ -105,7 +97,6 @@ class AddDiaryFragment( } is UiState.Success -> { - showToast("일기 추가 성공") binding.etDiary.text.clear() requireActivity().supportFragmentManager.popBackStack() } @@ -127,24 +118,19 @@ class AddDiaryFragment( private val recognitionListener: RecognitionListener = object : RecognitionListener { // 말하기 시작할 준비가되면 호출 override fun onReadyForSpeech(params: Bundle) { - Toast.makeText(requireContext(), "음성인식 시작", Toast.LENGTH_SHORT).show() + showToast("음성 인식 시작") } - // 말하기 시작했을 때 호출 - override fun onBeginningOfSpeech() { - } - - // 입력받는 소리의 크기를 알려줌 - override fun onRmsChanged(rmsdB: Float) {} - // 말을 시작하고 인식이 된 단어를 buffer에 담음 - override fun onBufferReceived(buffer: ByteArray) {} + override fun onBeginningOfSpeech() {} // 말하기 시작했을 때 호출 + override fun onRmsChanged(rmsdB: Float) {} // 입력받는 소리의 크기를 알려줌 + override fun onBufferReceived(buffer: ByteArray) {} // 말을 시작하고 인식이 된 단어를 buffer에 담음 // 말하기를 중지하면 호출 override fun onEndOfSpeech() { // 음성 인식이 끝나면 자동으로 중지 isListening = false - Toast.makeText(requireContext(), "음성 인식 중지", Toast.LENGTH_SHORT).show() + showToast("음성 인식 마침") } // 오류 발생했을 때 호출 @@ -159,8 +145,10 @@ class AddDiaryFragment( SpeechRecognizer.ERROR_RECOGNIZER_BUSY -> "RECOGNIZER 가 바쁨" SpeechRecognizer.ERROR_SERVER -> "서버가 이상함" SpeechRecognizer.ERROR_SPEECH_TIMEOUT -> "말하는 시간초과" - else -> "알 수 없는 오류임" + else -> "알 수 없는 오류" } + + showToast(message) } // 인식 결과가 준비되면 호출 diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/add/AddDiarySelectDateFragment.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/add/AddDiarySelectDateFragment.kt index 73afe87..f198912 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/add/AddDiarySelectDateFragment.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/add/AddDiarySelectDateFragment.kt @@ -1,13 +1,12 @@ package com.nabi.nabi.views.diary.add import android.annotation.SuppressLint -import androidx.fragment.app.activityViewModels import androidx.fragment.app.viewModels import androidx.recyclerview.widget.LinearLayoutManager -import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.R import com.nabi.nabi.base.BaseFragment import com.nabi.nabi.databinding.FragmentSelectDateBinding +import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.utils.UiState import com.nabi.nabi.views.MainActivity import dagger.hilt.android.AndroidEntryPoint diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/add/AddDiaryViewModel.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/add/AddDiaryViewModel.kt index aaa8551..7c4d5fb 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/add/AddDiaryViewModel.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/add/AddDiaryViewModel.kt @@ -4,10 +4,8 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.nabi.domain.model.diary.DiaryInfo import com.nabi.domain.repository.DataStoreRepository import com.nabi.domain.usecase.diary.AddDiaryUseCase -import com.nabi.domain.usecase.diary.GetMonthlyDiaryUseCase import com.nabi.domain.usecase.diary.UpdateDiaryUseCase import com.nabi.nabi.utils.UiState import dagger.hilt.android.lifecycle.HiltViewModel diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/detail/DetailDiaryViewModel.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/detail/DetailDiaryViewModel.kt index 2768bde..3a27b5b 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/detail/DetailDiaryViewModel.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/detail/DetailDiaryViewModel.kt @@ -9,7 +9,6 @@ import com.nabi.domain.repository.DataStoreRepository import com.nabi.domain.usecase.bookmark.AddBookmarkUseCase import com.nabi.domain.usecase.bookmark.DeleteBookmarkUseCase import com.nabi.domain.usecase.diary.GetDiaryDetailUseCase -import com.nabi.domain.usecase.diary.UpdateDiaryUseCase import com.nabi.nabi.utils.UiState import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/statistics/DiaryStatisticsFragment.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/statistics/DiaryStatisticsFragment.kt index 70af218..629ee2d 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/statistics/DiaryStatisticsFragment.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/statistics/DiaryStatisticsFragment.kt @@ -6,7 +6,6 @@ import com.nabi.domain.model.emotion.EmotionStatistics import com.nabi.nabi.R import com.nabi.nabi.base.BaseFragment import com.nabi.nabi.databinding.FragmentStatisticsDiaryBinding -import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.utils.UiState import dagger.hilt.android.AndroidEntryPoint import java.text.SimpleDateFormat diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/statistics/DiaryStatisticsViewModel.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/statistics/DiaryStatisticsViewModel.kt index 5de8b7a..d13433b 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/statistics/DiaryStatisticsViewModel.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/statistics/DiaryStatisticsViewModel.kt @@ -4,10 +4,8 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.nabi.domain.model.diary.DiaryInfo import com.nabi.domain.model.emotion.EmotionStatistics import com.nabi.domain.repository.DataStoreRepository -import com.nabi.domain.usecase.diary.GetMonthlyDiaryUseCase import com.nabi.domain.usecase.emotion.GetEmotionStatisticsUseCase import com.nabi.nabi.utils.UiState import dagger.hilt.android.lifecycle.HiltViewModel diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/view/SelectDiaryDayCalendarAdapter.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/view/SelectDiaryDayCalendarAdapter.kt index 2ec3f39..92de0c9 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/view/SelectDiaryDayCalendarAdapter.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/view/SelectDiaryDayCalendarAdapter.kt @@ -37,6 +37,7 @@ class SelectDiaryDayCalendarAdapter() : ListAdapter, Se } inner class DateViewHolder(val binding: ItemSelectDiaryDayBinding) : RecyclerView.ViewHolder(binding.root) { + fun bind(diaryInfo: Pair) { binding.tvDay.text = diaryInfo.first binding.root.isClickable = true @@ -49,10 +50,9 @@ class SelectDiaryDayCalendarAdapter() : ListAdapter, Se "화남" -> R.drawable.img_anger "불안" -> R.drawable.img_anxiety "지루" -> R.drawable.img_boredom - else -> R.drawable.shape_radius_50_with_stroke // todo 감정 데이터 Null 경우 임시로 처리 + else -> R.color.transparent } binding.ivDiaryCheck.setImageResource(resourceId) - if(it.emotion.isNullOrEmpty()) binding.ivDiaryCheck.alpha = 0.2f // todo 감정 데이터 Null 경우 임시로 처리 } itemView.setOnClickListener { diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/view/SelectDiaryMonthFragment.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/view/SelectDiaryMonthFragment.kt index 71ac654..021199d 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/view/SelectDiaryMonthFragment.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/views/diary/view/SelectDiaryMonthFragment.kt @@ -3,11 +3,11 @@ package com.nabi.nabi.views.diary.view import android.os.Bundle import androidx.fragment.app.viewModels import androidx.recyclerview.widget.GridLayoutManager -import com.nabi.nabi.utils.LoggerUtils import com.nabi.domain.model.diary.DiaryInfo import com.nabi.nabi.R import com.nabi.nabi.base.BaseFragment import com.nabi.nabi.databinding.FragmentSelectDiaryMonthBinding +import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.utils.UiState import com.nabi.nabi.views.MainActivity import com.nabi.nabi.views.OnRvItemClickListener diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/views/home/HomeFragment.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/views/home/HomeFragment.kt index dce42f1..bb2ee07 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/views/home/HomeFragment.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/views/home/HomeFragment.kt @@ -1,15 +1,13 @@ package com.nabi.nabi.views.home import android.annotation.SuppressLint -import androidx.core.content.ContextCompat import androidx.fragment.app.viewModels import androidx.recyclerview.widget.LinearLayoutManager import com.nabi.domain.model.home.RecentFiveDiary -import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.R import com.nabi.nabi.base.BaseFragment import com.nabi.nabi.databinding.FragmentHomeBinding -import com.nabi.nabi.databinding.ItemDiaryBinding +import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.utils.UiState import com.nabi.nabi.views.MainActivity import com.nabi.nabi.views.OnRvItemClickListener @@ -34,6 +32,7 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { homeRvAdapter = HomeRvAdapter().apply { setRvItemClickListener(object : OnRvItemClickListener { override fun onClick(item: Int) { + (requireActivity() as MainActivity).replaceFragment(DetailDiaryFragment(item), true) } }) setRvItemBookmarkClickListener(object : OnRvItemClickListener { diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/views/home/HomeRvAdapter.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/views/home/HomeRvAdapter.kt index 2b36227..fdb5be7 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/views/home/HomeRvAdapter.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/views/home/HomeRvAdapter.kt @@ -1,26 +1,19 @@ package com.nabi.nabi.views.home import android.annotation.SuppressLint -import android.os.Handler -import android.os.Looper import android.text.Spannable import android.text.SpannableStringBuilder import android.text.TextPaint import android.text.method.LinkMovementMethod import android.text.style.ClickableSpan -import android.text.style.ForegroundColorSpan import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.view.ViewTreeObserver import android.widget.TextView -import android.widget.Toast -import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import com.nabi.domain.model.home.RecentFiveDiary import com.nabi.nabi.R import com.nabi.nabi.databinding.ItemDiaryBinding -import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.views.OnRvItemClickListener import java.text.SimpleDateFormat import java.util.Date @@ -46,9 +39,7 @@ class HomeRvAdapter : RecyclerView.Adapter() { binding.tvDiaryDate.text = formatDateString(diary.diaryEntryDate) binding.tvDiary.text = diary.content - binding.tvDiary.post { - adjustText(binding.tvDiary, diary.diaryId) - } + adjustText(binding.tvDiary, diary.diaryId) } fun isBookmarked(): Boolean { @@ -99,40 +90,39 @@ class HomeRvAdapter : RecyclerView.Adapter() { if (layout != null) { val lines = layout.lineCount if (lines > 3) { - // 마지막 줄의 시작 인덱스를 가져옵니다. val lastLineStart = layout.getLineStart(3) val lastLineEnd = layout.getLineEnd(3) val text = tvDiary.text.toString() - // 마지막 줄의 텍스트가 14자가 넘으면 앞에 8자 + ...더보기 출력 - val lastLineText = text.substring(lastLineStart, lastLineEnd) - val lastEightChars = if (lastLineText.length > 14) { - lastLineText.take(8) + " ...더보기" + val truncatedText = text.substring(0, lastLineEnd).trimEnd() + + val moreText = "...더보기" + val remainingLength = lastLineEnd - lastLineStart + + val displayedText = if (remainingLength >= moreText.length) { + truncatedText.substring(0, lastLineEnd - moreText.length) + moreText } else { - lastLineText + truncatedText.substring(0, lastLineEnd - (moreText.length - remainingLength)) + moreText } - val builder = SpannableStringBuilder() - for (i in 0 until 3) { - builder.append(text.substring(layout.getLineStart(i), layout.getLineEnd(i))) + val builder = SpannableStringBuilder(displayedText) + val moreTextStart = builder.indexOf(moreText) + if (moreTextStart >= 0) { + val moreTextEnd = moreTextStart + moreText.length + + builder.setSpan(object : ClickableSpan() { + override fun onClick(widget: View) { + rvItemClickListener.onClick(diaryId) + } + + override fun updateDrawState(ds: TextPaint) { + super.updateDrawState(ds) + ds.isUnderlineText = false + ds.color = tvDiary.context.getColor(R.color.gray2) + } + }, moreTextStart, moreTextEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) } - builder.append(lastEightChars) - val moreTextStart = builder.indexOf("...더보기") - val moreTextEnd = moreTextStart + "...더보기".length - - builder.setSpan(object : ClickableSpan() { - override fun onClick(widget: View) { - rvItemClickListener.onClick(diaryId) - } - - override fun updateDrawState(ds: TextPaint) { - super.updateDrawState(ds) - ds.isUnderlineText = false - ds.color = tvDiary.context.getColor(R.color.gray2) - } - }, moreTextStart, moreTextEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) - tvDiary.text = builder tvDiary.movementMethod = LinkMovementMethod.getInstance() } @@ -140,6 +130,8 @@ class HomeRvAdapter : RecyclerView.Adapter() { } } + + fun formatDateString(inputDate: String): String { val originalFormat = SimpleDateFormat("yyyy-MM-dd", Locale.KOREAN) val targetFormat = SimpleDateFormat("yyyy. MM. dd", Locale.KOREAN) diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/views/home/HomeViewModel.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/views/home/HomeViewModel.kt index 3394522..7e07bb9 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/views/home/HomeViewModel.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/views/home/HomeViewModel.kt @@ -4,7 +4,6 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.nabi.nabi.utils.LoggerUtils import com.nabi.domain.model.home.HomeInfo import com.nabi.domain.repository.DataStoreRepository import com.nabi.domain.usecase.bookmark.AddBookmarkUseCase @@ -12,6 +11,7 @@ import com.nabi.domain.usecase.bookmark.DeleteBookmarkUseCase import com.nabi.domain.usecase.home.HomeUseCase import com.nabi.domain.usecase.notification.RegisterFcmTokenUseCase import com.nabi.nabi.fcm.MyFirebaseMessagingService +import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.utils.UiState import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/views/sign/SignInNicknameFragment.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/views/sign/SignInNicknameFragment.kt index b5a4b91..e55ff59 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/views/sign/SignInNicknameFragment.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/views/sign/SignInNicknameFragment.kt @@ -8,10 +8,10 @@ import android.view.View import androidx.appcompat.content.res.AppCompatResources import androidx.core.content.ContextCompat import androidx.fragment.app.viewModels -import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.R import com.nabi.nabi.base.BaseFragment import com.nabi.nabi.databinding.FragmentSignNicknameBinding +import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.utils.UiState import com.nabi.nabi.views.MainActivity import dagger.hilt.android.AndroidEntryPoint diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/views/sign/SignInProviderFragment.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/views/sign/SignInProviderFragment.kt index 432c45e..7f5baad 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/views/sign/SignInProviderFragment.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/views/sign/SignInProviderFragment.kt @@ -3,10 +3,10 @@ package com.nabi.nabi.views.sign import android.content.Intent import androidx.fragment.app.viewModels import com.nabi.data.service.KakaoAuthService -import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.R import com.nabi.nabi.base.BaseFragment import com.nabi.nabi.databinding.FragmentSignProviderBinding +import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.utils.UiState import com.nabi.nabi.views.MainActivity import dagger.hilt.android.AndroidEntryPoint diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/views/sign/SignInViewModel.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/views/sign/SignInViewModel.kt index b1db346..2c19f05 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/views/sign/SignInViewModel.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/views/sign/SignInViewModel.kt @@ -4,10 +4,10 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.nabi.nabi.utils.LoggerUtils import com.nabi.domain.enums.AuthProvider import com.nabi.domain.repository.DataStoreRepository import com.nabi.domain.usecase.auth.SignInUseCase +import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.utils.UiState import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.Dispatchers diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/views/splash/StartActivity.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/views/splash/StartActivity.kt index 9c16ab4..d619465 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/views/splash/StartActivity.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/views/splash/StartActivity.kt @@ -6,12 +6,12 @@ import androidx.lifecycle.lifecycleScope import com.kakao.sdk.auth.AuthApiClient import com.kakao.sdk.user.UserApiClient import com.nabi.data.service.KakaoAuthService -import com.nabi.nabi.utils.LoggerUtils import com.nabi.domain.enums.AuthProvider import com.nabi.domain.repository.DataStoreRepository import com.nabi.nabi.R import com.nabi.nabi.base.BaseActivity import com.nabi.nabi.databinding.ActivityStartBinding +import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.utils.UiState import com.nabi.nabi.views.MainActivity import com.nabi.nabi.views.sign.SignActivity diff --git a/Nabi/presentation/src/main/java/com/nabi/nabi/views/splash/StartViewModel.kt b/Nabi/presentation/src/main/java/com/nabi/nabi/views/splash/StartViewModel.kt index ccb764b..50a955a 100644 --- a/Nabi/presentation/src/main/java/com/nabi/nabi/views/splash/StartViewModel.kt +++ b/Nabi/presentation/src/main/java/com/nabi/nabi/views/splash/StartViewModel.kt @@ -4,9 +4,9 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.nabi.nabi.utils.LoggerUtils import com.nabi.domain.repository.DataStoreRepository import com.nabi.domain.usecase.user.GetUserInfoUseCase +import com.nabi.nabi.utils.LoggerUtils import com.nabi.nabi.utils.UiState import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch diff --git a/Nabi/presentation/src/main/res/layout/fragment_add_diary.xml b/Nabi/presentation/src/main/res/layout/fragment_add_diary.xml index a3d5ba1..8646157 100644 --- a/Nabi/presentation/src/main/res/layout/fragment_add_diary.xml +++ b/Nabi/presentation/src/main/res/layout/fragment_add_diary.xml @@ -15,6 +15,7 @@ android:id="@+id/ib_back" android:layout_width="48dp" android:layout_height="48dp" + android:layout_marginTop="4dp" android:background="@color/transparent" android:src="@drawable/ic_arrow" @@ -28,21 +29,21 @@ android:layout_width="48dp" android:layout_height="48dp" - android:layout_marginEnd="16dp" + android:layout_marginEnd="8dp" android:background="@color/transparent" android:text="저장" android:textColor="@color/black" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="@id/ib_back" /> + xmlns:app="http://schemas.android.com/apk/res-auto">