okhowang 4 лет назад
Родитель
Сommit
c173114368

+ 11 - 0
common/src/main/java/com/github/kr328/clash/common/compat/App.kt

@@ -2,6 +2,8 @@ package com.github.kr328.clash.common.compat
 
 import android.app.ActivityThread
 import android.app.Application
+import android.graphics.drawable.AdaptiveIconDrawable
+import android.graphics.drawable.Drawable
 import android.os.Build
 import com.github.kr328.clash.common.log.Log
 
@@ -18,3 +20,12 @@ val Application.currentProcessName: String
             packageName
         }
     }
+
+fun Drawable.foreground(): Drawable {
+    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O &&
+        this is AdaptiveIconDrawable && this.background == null
+    ) {
+        return this.foreground
+    }
+    return this
+}

+ 2 - 1
design/src/main/java/com/github/kr328/clash/design/util/App.kt

@@ -2,12 +2,13 @@ package com.github.kr328.clash.design.util
 
 import android.content.pm.PackageInfo
 import android.content.pm.PackageManager
+import com.github.kr328.clash.common.compat.foreground
 import com.github.kr328.clash.design.model.AppInfo
 
 fun PackageInfo.toAppInfo(pm: PackageManager): AppInfo {
     return AppInfo(
         packageName = packageName,
-        icon = applicationInfo.loadIcon(pm),
+        icon = applicationInfo.loadIcon(pm).foreground(),
         label = applicationInfo.loadLabel(pm).toString(),
         installTime = firstInstallTime,
         updateDate = lastUpdateTime,