From becfd4539557316d23c0e9e3a123c62df779c623 Mon Sep 17 00:00:00 2001 From: unam Date: Sun, 7 Jul 2024 17:58:10 +0900 Subject: [PATCH] =?UTF-8?q?[ADD]=20#359=20=EC=BB=B4=ED=8F=AC=EC=A6=88=20?= =?UTF-8?q?=EC=9D=98=EC=A1=B4=EC=84=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 39 +++++++---- app/src/main/AndroidManifest.xml | 3 + .../composesample/ComposeSampleActivity.kt | 46 ++++++++++++ .../composesample/ui/theme/Color.kt | 11 +++ .../composesample/ui/theme/Theme.kt | 70 +++++++++++++++++++ .../composesample/ui/theme/Type.kt | 34 +++++++++ .../detail/CourseDetailActivity.kt | 2 +- build.gradle | 6 +- 8 files changed, 193 insertions(+), 18 deletions(-) create mode 100644 app/src/main/java/com/runnect/runnect/presentation/composesample/ComposeSampleActivity.kt create mode 100644 app/src/main/java/com/runnect/runnect/presentation/composesample/ui/theme/Color.kt create mode 100644 app/src/main/java/com/runnect/runnect/presentation/composesample/ui/theme/Theme.kt create mode 100644 app/src/main/java/com/runnect/runnect/presentation/composesample/ui/theme/Type.kt diff --git a/app/build.gradle b/app/build.gradle index 49ddfea1c..168c3709c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,7 +4,7 @@ plugins { id 'kotlin-parcelize' - id 'org.jetbrains.kotlin.plugin.serialization' version '1.7.20' + id 'org.jetbrains.kotlin.plugin.serialization' version '1.8.10' id 'dagger.hilt.android.plugin' // plugin for data binding, hilt @@ -22,12 +22,12 @@ properties.load(project.rootProject.file('local.properties').newDataInputStream( android { namespace 'com.runnect.runnect' - compileSdk 33 + compileSdk 34 defaultConfig { applicationId "com.runnect.runnect" minSdk 28 - targetSdk 33 + targetSdk 34 versionCode 22 versionName "2.0.1" @@ -61,6 +61,10 @@ android { buildFeatures { buildConfig = true + compose true + } + composeOptions { + kotlinCompilerExtensionVersion '1.4.3' } buildTypes { @@ -150,8 +154,6 @@ dependencies { //recycler view selection implementation 'androidx.recyclerview:recyclerview:1.3.0' - implementation 'androidx.recyclerview:recyclerview-selection:1.1.0' - // EncryptedSharedPreferences implementation "androidx.security:security-crypto-ktx:1.1.0-alpha03" @@ -181,16 +183,14 @@ dependencies { // When using the BoM, don't specify versions in Firebase dependencies implementation 'com.google.firebase:firebase-analytics-ktx' - //kakao share - dependencies { - //카카오 SDK 모듈 설정 - implementation "com.kakao.sdk:v2-user:2.15.0" // 카카오 로그인 - implementation "com.kakao.sdk:v2-talk:2.15.0" // 친구, 메시지(카카오톡) - implementation "com.kakao.sdk:v2-story:2.15.0" // 카카오스토리 - implementation "com.kakao.sdk:v2-link:2.9.0" // 메시지(카카오링크) - implementation "com.kakao.sdk:v2-navi:2.15.0" // 카카오내비 + //카카오 SDK + implementation "com.kakao.sdk:v2-user:2.15.0" // 카카오 로그인 + implementation "com.kakao.sdk:v2-talk:2.15.0" // 친구, 메시지(카카오톡) + implementation "com.kakao.sdk:v2-story:2.15.0" // 카카오스토리 + implementation "com.kakao.sdk:v2-link:2.9.0" // 메시지(카카오링크) + implementation "com.kakao.sdk:v2-navi:2.15.0" // 카카오내비 + - } //swipe refresh layout implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" @@ -200,4 +200,15 @@ dependencies { //firebase remote config - update dialog implementation 'com.google.firebase:firebase-config-ktx' + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.2' + implementation 'androidx.activity:activity-compose:1.9.0' + implementation platform('androidx.compose:compose-bom:2023.03.00') + implementation 'androidx.compose.ui:ui' + implementation 'androidx.compose.ui:ui-graphics' + implementation 'androidx.compose.ui:ui-tooling-preview' + implementation 'androidx.compose.material3:material3' + androidTestImplementation platform('androidx.compose:compose-bom:2023.03.00') + androidTestImplementation 'androidx.compose.ui:ui-test-junit4' + debugImplementation 'androidx.compose.ui:ui-tooling' + debugImplementation 'androidx.compose.ui:ui-test-manifest' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 843ee5cb8..9dab9288b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -146,6 +146,9 @@ + Unit +) { + val colorScheme = when { + dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { + val context = LocalContext.current + if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + } + + darkTheme -> DarkColorScheme + else -> LightColorScheme + } + val view = LocalView.current + if (!view.isInEditMode) { + SideEffect { + val window = (view.context as Activity).window + window.statusBarColor = colorScheme.primary.toArgb() + WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = darkTheme + } + } + + MaterialTheme( + colorScheme = colorScheme, + typography = Typography, + content = content + ) +} \ No newline at end of file diff --git a/app/src/main/java/com/runnect/runnect/presentation/composesample/ui/theme/Type.kt b/app/src/main/java/com/runnect/runnect/presentation/composesample/ui/theme/Type.kt new file mode 100644 index 000000000..e50d220c6 --- /dev/null +++ b/app/src/main/java/com/runnect/runnect/presentation/composesample/ui/theme/Type.kt @@ -0,0 +1,34 @@ +package com.runnect.runnect.presentation.composesample.ui.theme + +import androidx.compose.material3.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +// Set of Material typography styles to start with +val Typography = Typography( + bodyLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 16.sp, + lineHeight = 24.sp, + letterSpacing = 0.5.sp + ) + /* Other default text styles to override + titleLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 22.sp, + lineHeight = 28.sp, + letterSpacing = 0.sp + ), + labelSmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 11.sp, + lineHeight = 16.sp, + letterSpacing = 0.5.sp + ) + */ +) \ No newline at end of file diff --git a/app/src/main/java/com/runnect/runnect/presentation/detail/CourseDetailActivity.kt b/app/src/main/java/com/runnect/runnect/presentation/detail/CourseDetailActivity.kt index 25c3d4d1b..cf15b9018 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/detail/CourseDetailActivity.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/detail/CourseDetailActivity.kt @@ -87,7 +87,7 @@ class CourseDetailActivity : registerBackPressedCallback() } - override fun onNewIntent(intent: Intent?) { + override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) intent?.let { newIntent -> newIntent.getCompatibleSerializableExtra(EXTRA_ROOT_SCREEN) diff --git a/build.gradle b/build.gradle index 8574c6440..5167ace71 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ buildscript { } plugins { - id 'com.android.application' version '8.0.2' apply false - id 'com.android.library' version '8.0.2' apply false - id 'org.jetbrains.kotlin.android' version '1.7.20' apply false + id 'com.android.application' version '8.1.3' apply false + id 'com.android.library' version '8.1.3' apply false + id 'org.jetbrains.kotlin.android' version '1.8.10' apply false } \ No newline at end of file