Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 33 additions & 36 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ plugins {
}

android {
compileSdk 34
compileSdk 35

Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())

defaultConfig {
applicationId "com.dongyang.android.youdongknowme"
minSdk 24
targetSdk 34
targetSdk 35
versionCode 17
versionName "2.3.1"

Expand Down Expand Up @@ -44,63 +44,64 @@ android {
}

dependencies {
implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.7.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.core:core-ktx:1.16.0'
implementation 'androidx.appcompat:appcompat:1.7.1'
implementation 'com.google.android.material:material:1.12.0'
implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.5.1'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.9.2'
implementation("androidx.activity:activity-ktx:1.10.1")
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

androidTestImplementation 'androidx.test.ext:junit:1.3.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.7.0'

// preference
implementation 'androidx.preference:preference:1.2.0'
implementation 'androidx.preference:preference-ktx:1.2.1'

// Coroutines
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2"

// ViewModelScope
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.2"

// Retrofit2
implementation "com.squareup.retrofit2:retrofit:2.9.0"
implementation "com.squareup.retrofit2:converter-gson:2.9.0"
implementation "com.squareup.retrofit2:retrofit:3.0.0"
implementation "com.squareup.retrofit2:converter-gson:3.0.0"

// OkHttp
implementation "com.squareup.okhttp3:okhttp:4.10.0"
implementation "com.squareup.okhttp3:logging-interceptor:4.10.0"
implementation "com.squareup.okhttp3:okhttp-urlconnection:4.9.1"
implementation "com.squareup.okhttp3:okhttp:5.1.0"
implementation "com.squareup.okhttp3:logging-interceptor:5.1.0"
implementation "com.squareup.okhttp3:okhttp-urlconnection:5.1.0"

// Gson
implementation 'com.google.code.gson:gson:2.9.0'
implementation 'com.google.code.gson:gson:2.13.1'

// Room
implementation 'androidx.room:room-common:2.4.3'
implementation 'androidx.room:room-ktx:2.4.3'
kapt "androidx.room:room-compiler:2.4.3"
implementation 'androidx.room:room-common:2.7.2'
implementation 'androidx.room:room-ktx:2.7.2'
//noinspection KaptUsageInsteadOfKsp
kapt "androidx.room:room-compiler:2.7.2"

// Koin
implementation "io.insert-koin:koin-core:3.1.2"
implementation "io.insert-koin:koin-android:3.1.2"
implementation "io.insert-koin:koin-core:4.1.0"
implementation "io.insert-koin:koin-android:4.1.0"

// Animation
implementation 'com.daimajia.easing:library:2.0@aar'
implementation 'com.daimajia.easing:library:2.4@aar'
implementation 'com.daimajia.androidanimations:library:2.4@aar'

// MaterialCalendarView
implementation 'com.github.prolificinteractive:material-calendarview:2.0.0'
implementation 'com.jakewharton.threetenabp:threetenabp:1.2.0'

// Glide
implementation 'com.github.bumptech.glide:glide:4.13.2'
annotationProcessor 'com.github.bumptech.glide:compiler:4.13.2'
implementation 'com.github.bumptech.glide:glide:4.16.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0'

// Firebase
implementation platform('com.google.firebase:firebase-bom:30.0.0')
implementation platform('com.google.firebase:firebase-bom:34.1.0')
implementation 'com.google.firebase:firebase-analytics'
implementation 'com.google.firebase:firebase-messaging:23.4.1'
implementation 'com.google.firebase:firebase-messaging:25.0.0'

// Timber
implementation 'com.jakewharton.timber:timber:5.0.1'
Expand All @@ -112,15 +113,11 @@ dependencies {
implementation 'com.google.android.flexbox:flexbox:3.0.0'

// Lottie
implementation "com.airbnb.android:lottie:5.2.0"

// Navigation
implementation("androidx.navigation:navigation-fragment-ktx:2.5.3")
implementation("androidx.navigation:navigation-ui-ktx:2.5.3")
implementation "com.airbnb.android:lottie:6.6.7"

// MinSdk
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5'

// Window Manager
implementation 'androidx.window:window:1.0.0'
implementation 'androidx.window:window:1.4.0'
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
package com.dongyang.android.youdongknowme.standard.base

import android.content.Context
import android.os.Bundle
import android.text.Spannable
import android.text.SpannableStringBuilder
import android.text.style.ForegroundColorSpan
import android.widget.TextView
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.updatePadding
import androidx.databinding.DataBindingUtil
import androidx.databinding.ViewDataBinding
import com.dongyang.android.youdongknowme.ui.view.LoadingDialog
Expand All @@ -24,10 +27,21 @@ abstract class BaseActivity<T : ViewDataBinding, R : BaseViewModel> : AppCompatA

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
binding = DataBindingUtil.setContentView(this, layoutResourceId)
binding.lifecycleOwner = this
setContentView(binding.root)

ViewCompat.setOnApplyWindowInsetsListener(binding.root) { v, insets ->
val inset = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.updatePadding(
top = inset.top,
bottom = inset.bottom,
left = inset.left,
right = inset.right,
)
insets
}
initStartView()
initDataBinding()
initAfterBinding()
Expand All @@ -36,7 +50,7 @@ abstract class BaseActivity<T : ViewDataBinding, R : BaseViewModel> : AppCompatA
protected fun setSpanText(
spanTextView: TextView,
startIdx: Int,
endIdx: Int
endIdx: Int,
) {
SpannableStringBuilder(spanTextView.text).apply {
setSpan(
Expand Down Expand Up @@ -90,4 +104,4 @@ abstract class BaseActivity<T : ViewDataBinding, R : BaseViewModel> : AppCompatA

abstract fun initAfterBinding()

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,4 @@ class CafeteriaContainer(
tvItemCalendarMonth.setTextColor(color)
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ import com.kizitonwose.calendarview.model.CalendarDay
import com.kizitonwose.calendarview.ui.DayBinder
import com.kizitonwose.calendarview.utils.Size
import org.koin.androidx.viewmodel.ext.android.viewModel
import java.time.DayOfWeek.*
import java.time.DayOfWeek.MONDAY
import java.time.DayOfWeek.SATURDAY
import java.time.DayOfWeek.SUNDAY
import java.time.LocalDate
import java.time.YearMonth
import java.time.temporal.TemporalAdjusters
Expand Down Expand Up @@ -64,7 +66,11 @@ class CafeteriaFragment : BaseFragment<FragmentCafeteriaBinding, CafeteriaViewMo

viewModel.selectedDate.observe(viewLifecycleOwner) {
viewModel.updateDaysMenu(it)
viewModel.selectedCategory.value?.let { selectedCategory -> updateCafeteriaState(selectedCategory) }
viewModel.selectedCategory.value?.let { selectedCategory ->
updateCafeteriaState(
selectedCategory
)
}
}
}

Expand Down Expand Up @@ -126,7 +132,8 @@ class CafeteriaFragment : BaseFragment<FragmentCafeteriaBinding, CafeteriaViewMo
}

private fun setupCalendar() {
val wmc = WindowMetricsCalculator.getOrCreate().computeCurrentWindowMetrics(requireActivity())
val wmc =
WindowMetricsCalculator.getOrCreate().computeCurrentWindowMetrics(requireActivity())
val dayWidth = wmc.bounds.width() / DATE_CELL_COUNT
val dayHeight: Int = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,
Expand Down Expand Up @@ -155,8 +162,10 @@ class CafeteriaFragment : BaseFragment<FragmentCafeteriaBinding, CafeteriaViewMo

binding.tvCafeteriaWeekend.isVisible = isWeekend

binding.linearLayoutCafeteriaKorean.isVisible = selectedCategory == getString(R.string.cafeteria_korean) && !isWeekend
binding.linearLayoutCafeteriaAnother.isVisible = selectedCategory == getString(R.string.cafeteria_another) && !isWeekend
binding.linearLayoutCafeteriaKorean.isVisible =
selectedCategory == getString(R.string.cafeteria_korean) && !isWeekend
binding.linearLayoutCafeteriaAnother.isVisible =
selectedCategory == getString(R.string.cafeteria_another) && !isWeekend

binding.btnKorean.setBackgroundColor(if (selectedCategory == getString(R.string.cafeteria_korean)) activeColor else inactiveColor)
binding.btnAnother.setBackgroundColor(if (selectedCategory == getString(R.string.cafeteria_another)) activeColor else inactiveColor)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ interface CalendarInterface {
viewModel: CafeteriaViewModel,
calendarView: CalendarView,
oldDate: LocalDate?,
selectedDate: LocalDate
selectedDate: LocalDate,
) {
viewModel.updateMenuList(selectedDate)
viewModel.updateDaysMenu(selectedDate)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,8 @@ class KeywordActivity : BaseActivity<ActivityKeywordBinding, KeywordViewModel>()
override fun initDataBinding() {
// 효율을 위해 단 한번만 옵저빙하여 이미 구독중인 항목을 선택 처리
viewModel.localKeywordList.observe(this, object : Observer<List<KeywordEntity>> {
override fun onChanged(t: List<KeywordEntity>?) {
viewModel.setAllKeywords(t?.filter { it.isSubscribe }?.map { it.name }
?: listOf(""))
override fun onChanged(value: List<KeywordEntity>) {
viewModel.setAllKeywords(value.filter { it.isSubscribe }.map { it.name })
setCheckChipChange(
binding.chipGroupKeywordClass,
binding.chipGroupKeywordMoney,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,8 @@ class OnboardingKeywordActivity :
override fun initDataBinding() {
// 효율을 위해 단 한번만 옵저빙하여 이미 구독중인 항목을 선택 처리
viewModel.localKeywordList.observe(this, object : Observer<List<KeywordEntity>> {
override fun onChanged(t: List<KeywordEntity>?) {
viewModel.setAllKeywords(t?.filter { it.isSubscribe }?.map { it.name }
?: listOf(""))
override fun onChanged(value: List<KeywordEntity>) {
viewModel.setAllKeywords(value.filter { it.isSubscribe }. map{it.name})
setCheckChipChange(
binding.chipGroupOnboardingKeywordClass,
binding.chipGroupOnboardingKeywordMoney,
Expand Down
Loading
Loading