diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 9a8e7e7c..ee562a5e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -113,6 +113,14 @@ android { } } } + + sourceSets { + named("main") { + res { + srcDirs("src/common/res") + } + } + } } val optimizeReleaseRes = task("optimizeReleaseRes").doLast { diff --git a/app/src/main/res/drawable-nodpi/ic_launcher.xml b/app/src/common/res/drawable-nodpi/ic_launcher.xml similarity index 100% rename from app/src/main/res/drawable-nodpi/ic_launcher.xml rename to app/src/common/res/drawable-nodpi/ic_launcher.xml diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/common/res/drawable/ic_launcher_foreground.xml similarity index 100% rename from app/src/main/res/drawable/ic_launcher_foreground.xml rename to app/src/common/res/drawable/ic_launcher_foreground.xml diff --git a/app/src/common/res/drawable/ic_outline_extension_24.xml b/app/src/common/res/drawable/ic_outline_extension_24.xml new file mode 100644 index 00000000..40a925b6 --- /dev/null +++ b/app/src/common/res/drawable/ic_outline_extension_24.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/common/res/mipmap-anydpi-v26/ic_launcher.xml similarity index 100% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to app/src/common/res/mipmap-anydpi-v26/ic_launcher.xml diff --git a/app/src/main/res/values-night-v31/colors.xml b/app/src/common/res/values-night-v31/colors.xml similarity index 100% rename from app/src/main/res/values-night-v31/colors.xml rename to app/src/common/res/values-night-v31/colors.xml diff --git a/app/src/common/res/values-night/colors.xml b/app/src/common/res/values-night/colors.xml new file mode 100644 index 00000000..aca20406 --- /dev/null +++ b/app/src/common/res/values-night/colors.xml @@ -0,0 +1,4 @@ + + #F06292 + #E1F5FE + diff --git a/app/src/main/res/values-v31/colors.xml b/app/src/common/res/values-v31/colors.xml similarity index 100% rename from app/src/main/res/values-v31/colors.xml rename to app/src/common/res/values-v31/colors.xml diff --git a/app/src/common/res/values/colors.xml b/app/src/common/res/values/colors.xml new file mode 100644 index 00000000..0f78a648 --- /dev/null +++ b/app/src/common/res/values/colors.xml @@ -0,0 +1,4 @@ + + #FFFFFF + #F48FB1 + diff --git a/app/src/main/assets/ic_launcher-playstore.png b/app/src/main/assets/ic_launcher-playstore.png deleted file mode 100644 index 71762d3f..00000000 Binary files a/app/src/main/assets/ic_launcher-playstore.png and /dev/null differ diff --git a/app/src/main/res/drawable/ic_outline_extension_24.xml b/app/src/main/res/drawable/ic_outline_extension_24.xml deleted file mode 100644 index 2667cc69..00000000 --- a/app/src/main/res/drawable/ic_outline_extension_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index c39705a6..7808ff74 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -18,9 +18,6 @@ --> - @color/material_pink_300 - @color/material_light_blue_50 - @color/material_grey_700 @color/material_grey_600 diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 6ca4a3d6..9c592f58 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -19,9 +19,6 @@ --> - @android:color/white - @color/material_pink_200 - @color/material_grey_500 @color/material_grey_300 diff --git a/daemon/build.gradle.kts b/daemon/build.gradle.kts index 9e5b7bd6..bbf7da18 100644 --- a/daemon/build.gradle.kts +++ b/daemon/build.gradle.kts @@ -111,6 +111,14 @@ android { } } } + + sourceSets { + named("main") { + res { + srcDir(project(":app").file("src/common/res")) + } + } + } } fun afterEval() = android.applicationVariants.forEach { variant -> @@ -155,7 +163,6 @@ afterEvaluate { } dependencies { - implementation("dev.rikka.ndk.thirdparty:cxx:1.2.0") implementation("com.android.tools.build:apksig:$agpVersion") implementation("org.apache.commons:commons-lang3:3.12.0") diff --git a/daemon/src/main/java/org/lsposed/lspd/service/LSPManagerService.java b/daemon/src/main/java/org/lsposed/lspd/service/LSPManagerService.java index 393a5259..2bc0523c 100644 --- a/daemon/src/main/java/org/lsposed/lspd/service/LSPManagerService.java +++ b/daemon/src/main/java/org/lsposed/lspd/service/LSPManagerService.java @@ -41,7 +41,8 @@ import android.content.pm.ResolveInfo; import android.content.pm.ShortcutInfo; import android.content.pm.ShortcutManager; import android.content.pm.VersionedPackage; -import android.graphics.BitmapFactory; +import android.graphics.Bitmap; +import android.graphics.Canvas; import android.graphics.Color; import android.graphics.drawable.Icon; import android.net.Uri; @@ -76,10 +77,8 @@ import java.lang.reflect.InvocationTargetException; import java.util.Collections; import java.util.LinkedList; import java.util.List; -import java.util.Map; import java.util.UUID; import java.util.concurrent.TimeUnit; -import java.util.zip.ZipFile; import hidden.HiddenApiBridge; import io.github.xposed.xposedservice.utils.ParceledListSlice; @@ -161,16 +160,24 @@ public class LSPManagerService extends ILSPManagerService.Stub { LSPManagerService() { } + private static Icon getIcon(int res) { + var icon = ConfigFileManager.getResources().getDrawable(res, ConfigFileManager.getResources().newTheme()); + var bitmap = Bitmap.createBitmap(icon.getIntrinsicWidth(), icon.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); + icon.setBounds(0, 0, icon.getIntrinsicWidth(), icon.getIntrinsicHeight()); + icon.draw(new Canvas(bitmap)); + return Icon.createWithBitmap(bitmap); + } + private static Icon getManagerIcon() { - try (var zip = new ZipFile(ConfigFileManager.managerApkPath.toString())) { - var entry = zip.getEntry("assets/ic_launcher-playstore.png"); - try (var is = zip.getInputStream(entry)) { - return Icon.createWithAdaptiveBitmap(BitmapFactory.decodeStream(is)); - } + try { + return getIcon(R.mipmap.ic_launcher); } catch (Throwable e) { - Log.e(TAG, "load icon", e); + return getIcon(R.drawable.ic_launcher); } - return null; + } + + private static Icon getNotificationIcon() { + return getIcon(R.drawable.ic_outline_extension_24); } static Intent getManagerIntent() { @@ -236,7 +243,7 @@ public class LSPManagerService extends ILSPManagerService.Stub { var notification = new Notification.Builder(context, CHANNEL_ID) .setContentTitle(title) .setContentText(content) - .setSmallIcon(android.R.drawable.ic_dialog_info) + .setSmallIcon(getNotificationIcon()) .setColor(Color.BLUE) .setContentIntent(getNotificationIntent(modulePackageName, moduleUserId)) .setAutoCancel(true)