@@ -6,6 +6,10 @@ import android.net.Uri
66import android.os.Build
77import android.os.Bundle
88import android.util.Log
9+ import com.dede.android_eggs.util.LocalEvent
10+ import com.dede.android_eggs.views.main.ACTION_CAT_EDITOR
11+ import com.dede.android_eggs.views.settings.compose.prefs.launchRocketLauncher
12+ import com.dede.basic.delay
913import com.dede.basic.provider.EasterEgg
1014import dagger.hilt.android.qualifiers.ActivityContext
1115import java.util.Calendar
@@ -17,14 +21,16 @@ class IntentHandler @Inject constructor(@ActivityContext val context: Context) {
1721
1822 private const val TAG = " IntentHandler"
1923
20- // from widget module
21- const val EXTRA_FROM_WIDGET = " extra_from_widget"
2224 }
2325
2426 @Inject
2527 lateinit var easterEggs: List < @JvmSuppressWildcards EasterEgg >
2628
27- private val eggHandlers: Array <EggHandler > = arrayOf(FromWidgetHandler (), UriHandler ())
29+ private val eggHandlers: Array <EggHandler > = arrayOf(
30+ StaticShortcutHandler (),
31+ FromWidgetHandler (),
32+ UriHandler (),
33+ )
2834
2935 fun handleIntent (intent : Intent ? ): Boolean {
3036 if (intent == null ) return false
@@ -38,9 +44,40 @@ class IntentHandler @Inject constructor(@ActivityContext val context: Context) {
3844 return false
3945 }
4046
47+ private class StaticShortcutHandler : EggHandler {
48+
49+ companion object {
50+ // from static shortcut
51+ const val EXTRA_STATIC_SHORTCUT_ACTION = " extra_static_shortcut_action"
52+
53+ private const val ACTION_ROCKET_LAUNCHER = " com.dede.android_eggs.action.ROCKET_LAUNCHER"
54+ }
55+
56+ override fun handleEggIntent (eggIntent : EggIntent ): Boolean {
57+ val action = eggIntent.extras.getString(EXTRA_STATIC_SHORTCUT_ACTION )
58+ when (action) {
59+ ACTION_CAT_EDITOR -> {
60+ delay(500L ) {
61+ // await for the app to be ready
62+ LocalEvent .poster().post(ACTION_CAT_EDITOR )
63+ }
64+ return true
65+ }
66+ ACTION_ROCKET_LAUNCHER -> {
67+ launchRocketLauncher(eggIntent.context)
68+ return true
69+ }
70+ }
71+ return false
72+ }
73+ }
74+
4175 private class FromWidgetHandler : EggHandler {
4276
4377 companion object {
78+ // from widget module
79+ private const val EXTRA_FROM_WIDGET = " extra_from_widget"
80+
4481 private val hourApiLevelArray: IntArray = intArrayOf(
4582 // Calendar.HOUR [0-11]
4683 Build .VERSION_CODES .S ,// 0:00
0 commit comments