Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge master into fdroid #116

Merged
merged 8 commits into from
Aug 17, 2024
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
4 changes: 2 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ android {
defaultConfig {
minSdk = 31
targetSdk = 34
versionCode = 14
versionName = "v1.6"
versionCode = 15
versionName = "v1.7"
}

buildTypes {
Expand Down
1 change: 0 additions & 1 deletion app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
-allowaccessmodification

# AIDL
-keep,allowoptimization,allowobfuscation class com.drdisagree.colorblendr.extension.MethodInterface { *; }
-keep,allowoptimization,allowobfuscation class com.drdisagree.colorblendr.service.IRootConnection { *; }
-keep,allowoptimization,allowobfuscation class com.drdisagree.colorblendr.service.IShizukuConnection { *; }
-keep,allowoptimization,allowobfuscation class com.drdisagree.colorblendr.utils.fabricated.FabricatedOverlayResource { *; }
Expand Down
55 changes: 0 additions & 55 deletions app/src/main/java/com/drdisagree/colorblendr/ColorBlendr.java

This file was deleted.

58 changes: 58 additions & 0 deletions app/src/main/java/com/drdisagree/colorblendr/ColorBlendr.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package com.drdisagree.colorblendr

import android.app.Application
import android.content.Context
import com.drdisagree.colorblendr.provider.RootConnectionProvider
import com.drdisagree.colorblendr.provider.ShizukuConnectionProvider
import com.drdisagree.colorblendr.service.IRootConnection
import com.drdisagree.colorblendr.service.IShizukuConnection
import com.google.android.material.color.DynamicColors
import org.lsposed.hiddenapibypass.HiddenApiBypass
import java.lang.ref.WeakReference

class ColorBlendr : Application() {
override fun onCreate() {
super.onCreate()
instance = this
contextReference = WeakReference(
applicationContext
)
DynamicColors.applyToActivitiesIfAvailable(this)
}

override fun attachBaseContext(base: Context) {
super.attachBaseContext(base)
HiddenApiBypass.addHiddenApiExemptions("L")
}

companion object {
private lateinit var instance: ColorBlendr
private lateinit var contextReference: WeakReference<Context>

@JvmStatic
val appContext: Context
get() {
if (!this::contextReference.isInitialized || contextReference.get() == null) {
contextReference = WeakReference(
getInstance().applicationContext
)
}
return contextReference.get()!!
}

private fun getInstance(): ColorBlendr {
if (!this::instance.isInitialized) {
instance = ColorBlendr()
}
return instance
}

@JvmStatic
val rootConnection: IRootConnection?
get() = RootConnectionProvider.getServiceProvider

@JvmStatic
val shizukuConnection: IShizukuConnection?
get() = ShizukuConnectionProvider.getServiceProvider
}
}
112 changes: 0 additions & 112 deletions app/src/main/java/com/drdisagree/colorblendr/common/Const.java

This file was deleted.

122 changes: 122 additions & 0 deletions app/src/main/java/com/drdisagree/colorblendr/common/Const.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
package com.drdisagree.colorblendr.common

import com.drdisagree.colorblendr.BuildConfig
import com.drdisagree.colorblendr.config.RPrefs
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import java.util.concurrent.atomic.AtomicInteger

object Const {
// Preferences file
const val SHARED_PREFS: String = BuildConfig.APPLICATION_ID + "_preferences"

// System packages
const val FRAMEWORK_PACKAGE: String = "android"
const val SYSTEMUI_PACKAGE: String = "com.android.systemui"
const val SHELL_PACKAGE: String = "com.android.shell"

// General preferences
const val FIRST_RUN: String = "firstRun"
const val THEMING_ENABLED: String = "themingEnabled"
const val MONET_STYLE: String = "customMonetStyle"
const val MONET_ACCENT_SATURATION: String = "monetAccentSaturationValue"
const val MONET_BACKGROUND_SATURATION: String = "monetBackgroundSaturationValue"
const val MONET_BACKGROUND_LIGHTNESS: String = "monetBackgroundLightnessValue"
const val MONET_ACCURATE_SHADES: String = "monetAccurateShades"
const val MONET_PITCH_BLACK_THEME: String = "monetPitchBlackTheme"
const val MONET_SEED_COLOR: String = "monetSeedColor"
const val MONET_SEED_COLOR_ENABLED: String = "monetSeedColorEnabled"
const val MANUAL_OVERRIDE_COLORS: String = "manualOverrideColors"
const val MONET_LAST_UPDATED: String = "monetLastUpdated"
const val MONET_STYLE_ORIGINAL_NAME: String = "monetStyleOriginalName"
const val FABRICATED_OVERLAY_SOURCE_PACKAGE: String = FRAMEWORK_PACKAGE
const val FABRICATED_OVERLAY_NAME_SYSTEM: String = "${BuildConfig.APPLICATION_ID}_dynamic_theme"
const val FABRICATED_OVERLAY_NAME_SYSTEMUI: String =
"${BuildConfig.APPLICATION_ID}_dynamic_theme_system"
const val FABRICATED_OVERLAY_NAME_APPS: String =
"${BuildConfig.APPLICATION_ID}.%s_dynamic_theme"
const val WALLPAPER_COLOR_LIST: String = "wallpaperColorList"
private const val FABRICATED_OVERLAY_FOR_APPS_STATE: String = "fabricatedOverlayForAppsState"
const val SHOW_PER_APP_THEME_WARN: String = "showPerAppThemeWarn"
const val TINT_TEXT_COLOR: String = "tintTextColor"
const val SHIZUKU_PERMISSION_REQUEST_ID: Int = 100
const val THEME_CUSTOMIZATION_OVERLAY_PACKAGES: String = "theme_customization_overlay_packages"
const val SHIZUKU_THEMING_ENABLED: String = "shizukuThemingEnabled"
const val APP_LIST_FILTER_METHOD: String = "appListFilterMethod"
val screenOrientation: AtomicInteger = AtomicInteger(-1)

// Service preferences
val GSON: Gson = Gson()
private const val PREF_WORKING_METHOD: String = "workingMethod"

var EXCLUDED_PREFS_FROM_BACKUP: Set<String> = HashSet(
listOf(
FIRST_RUN,
PREF_WORKING_METHOD,
MONET_LAST_UPDATED,
THEMING_ENABLED,
SHIZUKU_THEMING_ENABLED,
WALLPAPER_COLOR_LIST
)
)

fun saveSelectedFabricatedApps(selectedApps: HashMap<String, Boolean>) {
RPrefs.putString(FABRICATED_OVERLAY_FOR_APPS_STATE, GSON.toJson(selectedApps))
}

val selectedFabricatedApps: HashMap<String, Boolean>
get() {
val selectedApps = RPrefs.getString(
FABRICATED_OVERLAY_FOR_APPS_STATE,
null
)
if (selectedApps.isNullOrEmpty()) {
return HashMap()
}

return GSON.fromJson(
selectedApps,
object :
TypeToken<HashMap<String?, Boolean?>?>() {
}.type
)
}

var WORKING_METHOD: WorkMethod = WorkMethod.NULL

val workingMethod: WorkMethod
get() = WorkMethod.fromString(
RPrefs.getString(
PREF_WORKING_METHOD,
WorkMethod.NULL.toString()
)
)

fun saveWorkingMethod(workMethod: WorkMethod) {
RPrefs.putString(PREF_WORKING_METHOD, workMethod.toString())
}

// Working method of app
enum class WorkMethod {
NULL,
ROOT,
SHIZUKU;

companion object {
fun fromString(str: String?): WorkMethod {
return try {
valueOf(str!!)
} catch (e: Exception) {
NULL
}
}
}
}

enum class AppType {
SYSTEM,
USER,
LAUNCHABLE,
ALL
}
}
Loading