Skip to content

Commit

Permalink
Merge pull request #116 from Mahmud0808/master
Browse files Browse the repository at this point in the history
Merge master into fdroid
  • Loading branch information
Mahmud0808 authored Aug 17, 2024
2 parents 4adb1a4 + 6f98bbe commit d223455
Show file tree
Hide file tree
Showing 127 changed files with 10,298 additions and 9,294 deletions.
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

0 comments on commit d223455

Please sign in to comment.