From e24b7b17e4a27f9613f7d004830bec3337f11c08 Mon Sep 17 00:00:00 2001 From: KwakEuiJin Date: Sat, 30 Dec 2023 18:05:02 +0900 Subject: [PATCH 01/54] [setting]: Fix Merge Error --- .gitignore | 1 - app/build.gradle.kts | 9 +++++++++ keystore/debug.keystore | Bin 0 -> 2686 bytes 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 keystore/debug.keystore diff --git a/.gitignore b/.gitignore index 2a37cc12..ae099a52 100644 --- a/.gitignore +++ b/.gitignore @@ -28,7 +28,6 @@ render.experimental.xml # Keystore files *.jks -*.keystore # Google Services (e.g. APIs or Firebase) google-services.json diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 20eaf069..c06c8c2b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -16,6 +16,15 @@ android { versionName = libs.versions.appVersion.get() } + signingConfigs { + getByName("debug") { + keyAlias = "android_debug_key" + keyPassword = "android" + storeFile = File("${project.rootDir.absolutePath}/keystore/debug.keystore") + storePassword = "android" + } + } + buildTypes { release { isMinifyEnabled = false diff --git a/keystore/debug.keystore b/keystore/debug.keystore new file mode 100644 index 0000000000000000000000000000000000000000..fad34262174d98209ef7b452741a55990d1e6d00 GIT binary patch literal 2686 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 Krc3`XGX4dH#?jOO literal 0 HcmV?d00001 From f0b04fef84f10db28c20c29964221250ec95ed6a Mon Sep 17 00:00:00 2001 From: KwakEuiJin Date: Sat, 30 Dec 2023 18:25:05 +0900 Subject: [PATCH 02/54] [feat]: Feat Login Module --- feature/login/.gitignore | 1 + feature/login/build.gradle.kts | 12 ++++++++++++ feature/login/consumer-rules.pro | 0 feature/login/proguard-rules.pro | 21 +++++++++++++++++++++ feature/login/src/main/AndroidManifest.xml | 4 ++++ settings.gradle.kts | 1 + 6 files changed, 39 insertions(+) create mode 100644 feature/login/.gitignore create mode 100644 feature/login/build.gradle.kts create mode 100644 feature/login/consumer-rules.pro create mode 100644 feature/login/proguard-rules.pro create mode 100644 feature/login/src/main/AndroidManifest.xml diff --git a/feature/login/.gitignore b/feature/login/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/feature/login/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/feature/login/build.gradle.kts b/feature/login/build.gradle.kts new file mode 100644 index 00000000..f2676648 --- /dev/null +++ b/feature/login/build.gradle.kts @@ -0,0 +1,12 @@ +@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed +plugins { + hmh("feature") +} + +android { + namespace = "com.hmh.hamyeonham.feature.login" +} + +dependencies { + implementation(projects.core.common) +} diff --git a/feature/login/consumer-rules.pro b/feature/login/consumer-rules.pro new file mode 100644 index 00000000..e69de29b diff --git a/feature/login/proguard-rules.pro b/feature/login/proguard-rules.pro new file mode 100644 index 00000000..481bb434 --- /dev/null +++ b/feature/login/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/feature/login/src/main/AndroidManifest.xml b/feature/login/src/main/AndroidManifest.xml new file mode 100644 index 00000000..8bdb7e14 --- /dev/null +++ b/feature/login/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + diff --git a/settings.gradle.kts b/settings.gradle.kts index fcc2fc01..359d3322 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -19,3 +19,4 @@ dependencyResolutionManagement { rootProject.name = "HMH-Android" include(":app") include(":core:common") +include(":feature:login") From cb31fcca2d074e2cb7267aaeb3f214850b67cda5 Mon Sep 17 00:00:00 2001 From: KwakEuiJin Date: Sat, 30 Dec 2023 18:42:29 +0900 Subject: [PATCH 03/54] [feat]: Feat SampleClass --- .../main/java/com/hmh/hamyeonham/feature/login/SampleClass.kt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 feature/login/src/main/java/com/hmh/hamyeonham/feature/login/SampleClass.kt diff --git a/feature/login/src/main/java/com/hmh/hamyeonham/feature/login/SampleClass.kt b/feature/login/src/main/java/com/hmh/hamyeonham/feature/login/SampleClass.kt new file mode 100644 index 00000000..72ee7cde --- /dev/null +++ b/feature/login/src/main/java/com/hmh/hamyeonham/feature/login/SampleClass.kt @@ -0,0 +1,3 @@ +package com.hmh.hamyeonham.feature.login + +class SampleClass {} From 9c0bafecb6047da07cb7b06375ea7b627ac7efe7 Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Sun, 31 Dec 2023 04:08:16 +0900 Subject: [PATCH 04/54] =?UTF-8?q?[setting]:=20=EC=B9=B4=EC=B9=B4=EC=98=A4?= =?UTF-8?q?=20sdk=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.kts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c06c8c2b..220aeb3a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -45,4 +45,9 @@ dependencies { // Splash implementation(libs.splash.screen) + implementation(projects.feature.login) + + // kakao + implementation(libs.kakao.login) + } From deb2ecebca39d3aab0b3c42ed4be61e0d8668c2f Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Sun, 31 Dec 2023 15:42:52 +0900 Subject: [PATCH 05/54] =?UTF-8?q?[setting]:=20=EC=B9=B4=EC=B9=B4=EC=98=A4?= =?UTF-8?q?=20sdk=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- settings.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/settings.gradle.kts b/settings.gradle.kts index 359d3322..3498ed64 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -13,6 +13,7 @@ dependencyResolutionManagement { repositories { google() mavenCentral() + maven { setUrl("https://devrepo.kakao.com/nexus/content/groups/public/") } } } From 289f3cca27f1efaedc723adcfe8f375dfbe48eec Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Sun, 31 Dec 2023 15:48:39 +0900 Subject: [PATCH 06/54] =?UTF-8?q?[feat]:=20=EB=84=98=EB=B2=84=ED=94=BC?= =?UTF-8?q?=EC=BB=A4=20=EC=BD=94=EB=93=9C=20=EC=9D=B4=EB=8F=99=20=ED=9B=84?= =?UTF-8?q?=20=EC=A0=91=EA=B7=BC=EA=B6=8C=ED=95=9C=20=ED=97=88=EC=9A=A9?= =?UTF-8?q?=EC=9A=A9=20=EC=98=A8=EB=B3=B4=EB=94=A9=20=EB=B7=B0=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/onboarding/OnBoardingActivity.kt | 4 ++++ .../src/main/res/layout/activity_on_boarding.xml | 12 +++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/feature/onboarding/src/main/java/com/hmh/hamyeonham/feature/onboarding/OnBoardingActivity.kt b/feature/onboarding/src/main/java/com/hmh/hamyeonham/feature/onboarding/OnBoardingActivity.kt index 00e84cf4..c2c5dc70 100644 --- a/feature/onboarding/src/main/java/com/hmh/hamyeonham/feature/onboarding/OnBoardingActivity.kt +++ b/feature/onboarding/src/main/java/com/hmh/hamyeonham/feature/onboarding/OnBoardingActivity.kt @@ -11,6 +11,10 @@ class OnBoardingActivity : AppCompatActivity() { super.onCreate(savedInstanceState) setContentView(binding.root) + + } + + private fun numberPickerTest() { binding.run { numberPicker.npCustomHours.minValue = 1 numberPicker.npCustomHours.maxValue = 6 diff --git a/feature/onboarding/src/main/res/layout/activity_on_boarding.xml b/feature/onboarding/src/main/res/layout/activity_on_boarding.xml index 4339e9b8..0f2fb988 100644 --- a/feature/onboarding/src/main/res/layout/activity_on_boarding.xml +++ b/feature/onboarding/src/main/res/layout/activity_on_boarding.xml @@ -6,11 +6,13 @@ xmlns:app="http://schemas.android.com/apk/res-auto" tools:context=".OnBoardingActivity"> - - + app:layout_constraintEnd_toEndOf="parent" + android:layout_marginBottom="30dp" + android:text="권한 허용하러 가기" + /> \ No newline at end of file From 4790d2914a02138fcb9a9c3b9128304e848b860e Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Sun, 31 Dec 2023 15:49:20 +0900 Subject: [PATCH 07/54] =?UTF-8?q?[delete]:=20=EB=84=98=EB=B2=84=ED=94=BC?= =?UTF-8?q?=EC=BB=A4=20=EC=A3=BC=EC=84=9D=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hamyeonham/feature/onboarding/OnBoardingActivity.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/feature/onboarding/src/main/java/com/hmh/hamyeonham/feature/onboarding/OnBoardingActivity.kt b/feature/onboarding/src/main/java/com/hmh/hamyeonham/feature/onboarding/OnBoardingActivity.kt index c2c5dc70..9c2fb04b 100644 --- a/feature/onboarding/src/main/java/com/hmh/hamyeonham/feature/onboarding/OnBoardingActivity.kt +++ b/feature/onboarding/src/main/java/com/hmh/hamyeonham/feature/onboarding/OnBoardingActivity.kt @@ -16,10 +16,10 @@ class OnBoardingActivity : AppCompatActivity() { private fun numberPickerTest() { binding.run { - numberPicker.npCustomHours.minValue = 1 - numberPicker.npCustomHours.maxValue = 6 - numberPicker.npCustomMinutes.minValue = 1 - numberPicker.npCustomMinutes.maxValue = 59 +// numberPicker.npCustomHours.minValue = 1 +// numberPicker.npCustomHours.maxValue = 6 +// numberPicker.npCustomMinutes.minValue = 1 +// numberPicker.npCustomMinutes.maxValue = 59 } } } From 1b23b555bc7e865a9f071358c149711c8648b45e Mon Sep 17 00:00:00 2001 From: kangyuri1114 Date: Mon, 1 Jan 2024 02:57:51 +0900 Subject: [PATCH 08/54] =?UTF-8?q?[feat]:=20=EC=82=AC=EC=9A=A9=20=EA=B8=B0?= =?UTF-8?q?=EB=A1=9D=EC=97=90=20=EC=95=A1=EC=84=B8=EC=8A=A4=20=ED=97=88?= =?UTF-8?q?=EC=9A=A9=EC=9D=B4=20=EB=90=98=EC=96=B4=EC=9E=88=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EC=9D=80=20=EA=B2=BD=EC=9A=B0=20=EC=82=AC=EC=9A=A9=20?= =?UTF-8?q?=EC=A0=95=EB=B3=B4=20=ED=97=88=EC=9A=A9=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=9D=B4=EB=8F=99=20=ED=95=98=EB=8A=94=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../onboarding/src/main/AndroidManifest.xml | 2 + .../feature/onboarding/OnBoardingActivity.kt | 51 +++++++++++++++++++ .../main/res/layout/activity_on_boarding.xml | 1 + .../res/layout/dialog_numberpicker_custom.xml | 1 - 4 files changed, 54 insertions(+), 1 deletion(-) diff --git a/feature/onboarding/src/main/AndroidManifest.xml b/feature/onboarding/src/main/AndroidManifest.xml index 0a100119..ba938b68 100644 --- a/feature/onboarding/src/main/AndroidManifest.xml +++ b/feature/onboarding/src/main/AndroidManifest.xml @@ -1,6 +1,8 @@ + + = Build.VERSION_CODES.Q) { + appOps.unsafeCheckOpNoThrow( + AppOpsManager.OPSTR_GET_USAGE_STATS, + android.os.Process.myUid(), + packageName, + ) + } else { + appOps.checkOpNoThrow( + AppOpsManager.OPSTR_GET_USAGE_STATS, + android.os.Process.myUid(), + packageName, + ) + } + return mode == AppOpsManager.MODE_ALLOWED + } + private fun isAccessibilityServiceEnabled(service: Class): Boolean { + val expectedId = packageName + "/" + service.canonicalName + val enabledServicesSetting = Settings.Secure.getString( + contentResolver, + Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, + ) ?: return false + Log.d("TAG", "enabledServicesSetting: $enabledServicesSetting") + return enabledServicesSetting.split(':').any { it.equals(expectedId, ignoreCase = true) } } private fun numberPickerTest() { diff --git a/feature/onboarding/src/main/res/layout/activity_on_boarding.xml b/feature/onboarding/src/main/res/layout/activity_on_boarding.xml index 0f2fb988..191bd5b1 100644 --- a/feature/onboarding/src/main/res/layout/activity_on_boarding.xml +++ b/feature/onboarding/src/main/res/layout/activity_on_boarding.xml @@ -7,6 +7,7 @@ tools:context=".OnBoardingActivity">