mirror of
https://github.com/MetaCubeX/ClashMetaForAndroid.git
synced 2026-05-09 18:11:26 +08:00
Fix crash when Hide App Icon is enabled alongside dynamic shortcuts (#701)
This commit is contained in:
@@ -2,6 +2,7 @@ package com.github.kr328.clash
|
|||||||
|
|
||||||
import android.content.ComponentName
|
import android.content.ComponentName
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
|
import androidx.core.content.pm.ShortcutManagerCompat
|
||||||
import com.github.kr328.clash.common.util.componentName
|
import com.github.kr328.clash.common.util.componentName
|
||||||
import com.github.kr328.clash.design.AppSettingsDesign
|
import com.github.kr328.clash.design.AppSettingsDesign
|
||||||
import com.github.kr328.clash.design.model.Behavior
|
import com.github.kr328.clash.design.model.Behavior
|
||||||
@@ -73,5 +74,9 @@ class AppSettingsActivity : BaseActivity<AppSettingsDesign>(), Behavior {
|
|||||||
newState,
|
newState,
|
||||||
PackageManager.DONT_KILL_APP
|
PackageManager.DONT_KILL_APP
|
||||||
)
|
)
|
||||||
|
if (hide) {
|
||||||
|
// Prevent launcher activity not found.
|
||||||
|
ShortcutManagerCompat.removeAllDynamicShortcuts(this)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
package com.github.kr328.clash
|
package com.github.kr328.clash
|
||||||
|
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
|
import android.content.ComponentName
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.content.pm.PackageManager
|
||||||
import androidx.core.content.pm.ShortcutInfoCompat
|
import androidx.core.content.pm.ShortcutInfoCompat
|
||||||
import androidx.core.content.pm.ShortcutManagerCompat
|
import androidx.core.content.pm.ShortcutManagerCompat
|
||||||
import androidx.core.graphics.drawable.IconCompat
|
import androidx.core.graphics.drawable.IconCompat
|
||||||
@@ -43,6 +45,16 @@ class MainApplication : Application() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun setupShortcuts() {
|
private fun setupShortcuts() {
|
||||||
|
val aliasState = packageManager.getComponentEnabledSetting(
|
||||||
|
ComponentName(this, mainActivityAlias)
|
||||||
|
)
|
||||||
|
if (aliasState != PackageManager.COMPONENT_ENABLED_STATE_ENABLED &&
|
||||||
|
aliasState != PackageManager.COMPONENT_ENABLED_STATE_DEFAULT
|
||||||
|
) {
|
||||||
|
ShortcutManagerCompat.removeAllDynamicShortcuts(this)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
val icon = IconCompat.createWithResource(this, R.mipmap.ic_launcher)
|
val icon = IconCompat.createWithResource(this, R.mipmap.ic_launcher)
|
||||||
val flags = Intent.FLAG_ACTIVITY_NEW_TASK or
|
val flags = Intent.FLAG_ACTIVITY_NEW_TASK or
|
||||||
Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS or
|
Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS or
|
||||||
|
|||||||
Reference in New Issue
Block a user