Skip to content

Commit 8453bfc

Browse files
authored
Fix crash when Hide App Icon is enabled alongside dynamic shortcuts (#701)
1 parent afd1da5 commit 8453bfc

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

app/src/main/java/com/github/kr328/clash/AppSettingsActivity.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.github.kr328.clash
22

33
import android.content.ComponentName
44
import android.content.pm.PackageManager
5+
import androidx.core.content.pm.ShortcutManagerCompat
56
import com.github.kr328.clash.common.util.componentName
67
import com.github.kr328.clash.design.AppSettingsDesign
78
import com.github.kr328.clash.design.model.Behavior
@@ -73,5 +74,9 @@ class AppSettingsActivity : BaseActivity<AppSettingsDesign>(), Behavior {
7374
newState,
7475
PackageManager.DONT_KILL_APP
7576
)
77+
if (hide) {
78+
// Prevent launcher activity not found.
79+
ShortcutManagerCompat.removeAllDynamicShortcuts(this)
80+
}
7681
}
77-
}
82+
}

app/src/main/java/com/github/kr328/clash/MainApplication.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.github.kr328.clash
22

33
import android.app.Application
4+
import android.content.ComponentName
45
import android.content.Context
56
import android.content.Intent
7+
import android.content.pm.PackageManager
68
import androidx.core.content.pm.ShortcutInfoCompat
79
import androidx.core.content.pm.ShortcutManagerCompat
810
import androidx.core.graphics.drawable.IconCompat
@@ -43,6 +45,16 @@ class MainApplication : Application() {
4345
}
4446

4547
private fun setupShortcuts() {
48+
val aliasState = packageManager.getComponentEnabledSetting(
49+
ComponentName(this, mainActivityAlias)
50+
)
51+
if (aliasState != PackageManager.COMPONENT_ENABLED_STATE_ENABLED &&
52+
aliasState != PackageManager.COMPONENT_ENABLED_STATE_DEFAULT
53+
) {
54+
ShortcutManagerCompat.removeAllDynamicShortcuts(this)
55+
return
56+
}
57+
4658
val icon = IconCompat.createWithResource(this, R.mipmap.ic_launcher)
4759
val flags = Intent.FLAG_ACTIVITY_NEW_TASK or
4860
Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS or

0 commit comments

Comments
 (0)