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
1 change: 0 additions & 1 deletion .github/workflows/develop_PR_builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ jobs:

- name: Add Local Properties
env:
KAKAO_API_KEY: ${{ secrets.KAKAO_API_KEY }}
HMH_DEV_BASE_URL: ${{ secrets.HMH_DEV_BASE_URL }}
HMH_PROD_BASE_URL: ${{ secrets.HMH_PROD_BASE_URL }}
AMPLITUDE_API_KEY: ${{ secrets.AMPLITUDE_API_KEY }}
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ jobs:

- name: Add Local Properties
env:
KAKAO_API_KEY: ${{ secrets.KAKAO_API_KEY }}
HMH_DEV_BASE_URL: ${{ secrets.HMH_DEV_BASE_URL }}
HMH_PROD_BASE_URL: ${{ secrets.HMH_PROD_BASE_URL }}
AMPLITUDE_API_KEY: ${{ secrets.AMPLITUDE_API_KEY }}
Expand Down
4 changes: 0 additions & 4 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -73,15 +73,13 @@ dependencies {
// Domain
implementation(projects.domain.usagestats)
implementation(projects.domain.userinfo)
implementation(projects.domain.login)
implementation(projects.domain.challenge)
implementation(projects.domain.onboarding)
implementation(projects.domain.lock)

// Data
implementation(projects.data.usagestats)
implementation(projects.data.userinfo)
implementation(projects.data.login)
implementation(projects.data.challenge)
implementation(projects.data.device)
implementation(projects.data.onboarding)
Expand All @@ -105,8 +103,6 @@ dependencies {
implementation(libs.splash.screen)
implementation(libs.lottie)

// kakao
implementation(libs.kakao.login)

// Hilt Worker
implementation(libs.androidx.hilt.common)
Expand Down
5 changes: 0 additions & 5 deletions app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,6 @@
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html

##---------------Begin: Kakao SDK ----------
-keep class com.kakao.sdk.**.model.* { <fields>; }
-keep class * extends com.google.gson.TypeAdapter
##---------------END: Kakao SDK ----------

##---------------Begin: Okio ----------
# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
-dontwarn org.codehaus.mojo.animal_sniffer.*
Expand Down
15 changes: 0 additions & 15 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -46,21 +46,6 @@
</intent-filter>
</activity>

<activity
android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<data
android:host="oauth"
android:scheme="kakao${kakaoApiKey}" />
</intent-filter>
</activity>

<activity
android:name=".common.permission.PermissionActivity"
android:exported="false" />
Expand Down
2 changes: 0 additions & 2 deletions app/src/main/java/com/hmh/hamyeonham/HMHApplication.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import com.amplitude.api.Amplitude
import com.hmh.hamyeonham.core.notification.AppNotificationManager
import com.hmh.hamyeonham.firebase.setFirebaseCrashlyticsEnabled
import com.hmh.hamyeonham.hus.usagestats.HMHUsageStatsManager
import com.kakao.sdk.common.KakaoSdk
import dagger.hilt.EntryPoint
import dagger.hilt.EntryPoints
import dagger.hilt.InstallIn
Expand Down Expand Up @@ -35,7 +34,6 @@ class HMHApplication : Application(), Configuration.Provider {
super.onCreate()
setFirebaseCrashlyticsEnabled(!BuildConfig.DEBUG)
setAmplitude()
KakaoSdk.init(this, BuildConfig.KAKAO_API_KEY)
HMHUsageStatsManager.init(this)
notificationManager.setupNotificationChannel()
}
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/com/hmh/hamyeonham/StartActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
import com.hmh.hamyeonham.common.view.viewBinding
import com.hmh.hamyeonham.databinding.ActivitySampleBinding
import com.hmh.hamyeonham.feature.login.LoginActivity
import com.hmh.hamyeonham.feature.main.MainActivity
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
Expand All @@ -31,7 +31,7 @@ class StartActivity : AppCompatActivity() {
}

private fun navigateToLogin() {
startActivity(Intent(this, LoginActivity::class.java))
startActivity(Intent(this, MainActivity::class.java))
finish()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import android.content.Intent
import com.hmh.hamyeonham.common.navigation.NavigationProvider
import com.hmh.hamyeonham.common.permission.PermissionActivity
import com.hmh.hamyeonham.feature.lock.LockActivity
import com.hmh.hamyeonham.feature.login.LoginActivity
import com.hmh.hamyeonham.feature.main.MainActivity
import com.hmh.hamyeonham.feature.onboarding.OnBoardingActivity
import com.hmh.hamyeonham.feature.onboarding.OnBoardingStoryActivity
Expand All @@ -24,10 +23,6 @@ class DefaultNavigationProvider @Inject constructor(
return Intent(context, OnBoardingStoryActivity::class.java)
}

override fun toLogin(): Intent {
return Intent(context, LoginActivity::class.java)
}

override fun toMain(): Intent {
return Intent(context, MainActivity::class.java)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,6 @@ internal fun Project.configureAndroidCommonPlugin() {

extensions.getByType<BaseExtension>().apply {
defaultConfig {
val kakaoApiKey = properties["kakaoApiKey"] as? String ?: ""
manifestPlaceholders["kakaoApiKey"] = properties["kakaoApiKey"] as String
buildConfigField("String", "KAKAO_API_KEY", "\"${kakaoApiKey}\"")

val amplitudeApiKey = properties["amplitudeApiKey"] as? String ?: ""
buildConfigField("String", "AMPLITUDE_API_KEY", "\"${amplitudeApiKey}\"")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ interface NavigationProvider {

fun toOnBoarding(): Intent
fun toOnBoardingStory(): Intent
fun toLogin(): Intent
fun toMain(): Intent
fun toLock(packageName: String): Intent
fun toStore(): Intent
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
package com.hmh.hamyeonham.common.permission

import android.app.usage.UsageStatsManager
import android.app.AppOpsManager
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.provider.Settings
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.core.net.toUri
import com.hmh.hamyeonham.common.context.hasNotificationPermission
import com.hmh.hamyeonham.common.context.toast
import com.hmh.hamyeonham.common.databinding.ActivityPermissionBinding
Expand Down Expand Up @@ -115,27 +117,11 @@ class PermissionActivity : AppCompatActivity() {

private fun requestUsageAccessPermission() {
try {
val packageUri = Uri.parse("package:$packageName")
val packageUri = "package:$packageName".toUri()
val intent = Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS, packageUri)
usageStatsPermissionLauncher.launch(intent)
} catch (e: Exception) {
usageStatsPermissionLauncher.launch(Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS))
}
}

private fun hasUsageStatsPermission(): Boolean {
val usageStatsManager = getSystemService(Context.USAGE_STATS_SERVICE) as? UsageStatsManager
val time = System.currentTimeMillis()
val stats = usageStatsManager?.queryUsageStats(
UsageStatsManager.INTERVAL_DAILY,
time - 1000 * 60,
time,
)
return !stats.isNullOrEmpty()

}

private fun hasOverlayPermission(): Boolean {
return Settings.canDrawOverlays(this)
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.hmh.hamyeonham.common.permission

import android.Manifest
import android.app.AppOpsManager
import android.app.usage.UsageStatsManager
import android.content.Context
import android.content.Intent
Expand Down Expand Up @@ -38,14 +39,29 @@ fun AppCompatActivity.requestUsageAccessPermission() {
}

fun AppCompatActivity.hasUsageStatsPermission(): Boolean {
val usageStatsManager = getSystemService(Context.USAGE_STATS_SERVICE) as UsageStatsManager
val time = System.currentTimeMillis()
val stats = usageStatsManager.queryUsageStats(
UsageStatsManager.INTERVAL_DAILY,
time - 1000 * 60,
time,
)
return stats != null && stats.isNotEmpty()
val ops = getSystemService(Context.APP_OPS_SERVICE) as AppOpsManager
val mode = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
ops.unsafeCheckOpNoThrow(
AppOpsManager.OPSTR_GET_USAGE_STATS,
android.os.Process.myUid(),
packageName
)
} else {
ops.checkOpNoThrow(
AppOpsManager.OPSTR_GET_USAGE_STATS,
android.os.Process.myUid(),
packageName
)
}

return when (mode) {
AppOpsManager.MODE_ALLOWED -> true
AppOpsManager.MODE_DEFAULT,
AppOpsManager.MODE_IGNORED,
AppOpsManager.MODE_ERRORED -> false

else -> false
}
}

fun AppCompatActivity.hasOverlayPermission(): Boolean {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,6 @@ import com.hmh.hamyeonham.core.database.dao.DeletedGoalsDao
import com.hmh.hamyeonham.core.database.dao.LockDao
import com.hmh.hamyeonham.core.database.dao.UsageGoalsDao
import com.hmh.hamyeonham.core.database.dao.UsageTotalGoalDao
import com.hmh.hamyeonham.core.database.dao.UserAuthDao
import com.hmh.hamyeonham.core.database.dao.UserProfileDao
import com.hmh.hamyeonham.core.database.entity.UserAuth
import com.hmh.hamyeonham.core.database.entity.UserProfile
import com.hmh.hamyeonham.core.database.model.DailyChallengeEntity
import com.hmh.hamyeonham.core.database.model.DeletedGoalWithUsageEntity
import com.hmh.hamyeonham.core.database.model.DeletedUsageEntity
Expand All @@ -33,8 +29,6 @@ import kotlinx.coroutines.launch
DeletedGoalWithUsageEntity::class,
DeletedUsageEntity::class,
LockWithDateEntity::class,
UserAuth::class,
UserProfile::class
],
version = 2,
exportSchema = false
Expand All @@ -45,8 +39,6 @@ abstract class HMHRoomDatabase : RoomDatabase() {
abstract fun challengeDao(): ChallengeDao
abstract fun deletedGoalsDao(): DeletedGoalsDao
abstract fun lockDao(): LockDao
abstract fun userAuthDao(): UserAuthDao
abstract fun userProfileDao(): UserProfileDao

@OptIn(DelicateCoroutinesApi::class)
fun deleteAll() {
Expand All @@ -56,11 +48,9 @@ abstract class HMHRoomDatabase : RoomDatabase() {
challengeDao().deleteAll()
deletedGoalsDao().deleteAll()
lockDao().deleteAll()
userAuthDao().clearUserAuth()
userProfileDao().clearUserProfile()
}
}

companion object {
// 버전 1에서 버전 2로 마이그레이션
val MIGRATION_1_2 = object : Migration(1, 2) {
Expand All @@ -78,7 +68,7 @@ abstract class HMHRoomDatabase : RoomDatabase() {
)
"""
)

// UserProfile 테이블 생성
database.execSQL(
"""
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,4 @@ object DaoModule {
fun providesLockDao(
database: HMHRoomDatabase,
) = database.lockDao()

@Provides
@Singleton
fun providesUserAuthDao(
database: HMHRoomDatabase,
) = database.userAuthDao()

@Provides
@Singleton
fun providesUserProfileDao(
database: HMHRoomDatabase,
) = database.userProfileDao()
}

This file was deleted.

Loading