88import android .app .Activity ;
99import android .content .Context ;
1010import android .content .Intent ;
11- import android .content .pm .ShortcutInfo ;
12- import android .content .pm .ShortcutManager ;
1311import android .content .res .Resources ;
14- import android .graphics .drawable .Icon ;
1512import android .os .Build ;
1613import android .os .Handler ;
1714import android .os .Looper ;
1815import androidx .annotation .ChecksSdkIntAtLeast ;
1916import androidx .annotation .NonNull ;
2017import androidx .annotation .Nullable ;
18+ import androidx .core .content .pm .ShortcutInfoCompat ;
19+ import androidx .core .content .pm .ShortcutManagerCompat ;
20+ import androidx .core .graphics .drawable .IconCompat ;
2121import io .flutter .plugins .quickactions .Messages .AndroidQuickActionsApi ;
2222import io .flutter .plugins .quickactions .Messages .FlutterError ;
2323import io .flutter .plugins .quickactions .Messages .Result ;
@@ -61,9 +61,7 @@ public void setShortcutItems(
6161 result .success (null );
6262 return ;
6363 }
64- ShortcutManager shortcutManager =
65- (ShortcutManager ) context .getSystemService (Context .SHORTCUT_SERVICE );
66- List <ShortcutInfo > shortcuts = shortcutItemMessageToShortcutInfo (itemsList );
64+ List <ShortcutInfoCompat > shortcuts = shortcutItemMessageToShortcutInfo (itemsList );
6765 Executor uiThreadExecutor = new UiThreadExecutor ();
6866 ThreadPoolExecutor executor =
6967 new ThreadPoolExecutor (0 , 1 , 1 , TimeUnit .SECONDS , new LinkedBlockingQueue <>());
@@ -72,7 +70,7 @@ public void setShortcutItems(
7270 () -> {
7371 boolean dynamicShortcutsSet = false ;
7472 try {
75- shortcutManager .setDynamicShortcuts (shortcuts );
73+ ShortcutManagerCompat .setDynamicShortcuts (context , shortcuts );
7674 dynamicShortcutsSet = true ;
7775 } catch (Exception e ) {
7876 // Leave dynamicShortcutsSet as false
@@ -101,18 +99,14 @@ public void clearShortcutItems() {
10199 if (!isVersionAllowed ()) {
102100 return ;
103101 }
104- ShortcutManager shortcutManager =
105- (ShortcutManager ) context .getSystemService (Context .SHORTCUT_SERVICE );
106- shortcutManager .removeAllDynamicShortcuts ();
102+ ShortcutManagerCompat .removeAllDynamicShortcuts (context );
107103 }
108104
109105 @ Override
110106 public @ Nullable String getLaunchAction () {
111107 if (!isVersionAllowed ()) {
112108 return null ;
113109 }
114- ShortcutManager shortcutManager =
115- (ShortcutManager ) context .getSystemService (Context .SHORTCUT_SERVICE );
116110 if (activity == null ) {
117111 throw new FlutterError (
118112 "quick_action_getlaunchaction_no_activity" ,
@@ -122,31 +116,32 @@ public void clearShortcutItems() {
122116 final Intent intent = activity .getIntent ();
123117 final String launchAction = intent .getStringExtra (EXTRA_ACTION );
124118 if (launchAction != null && !launchAction .isEmpty ()) {
125- shortcutManager .reportShortcutUsed (launchAction );
119+ ShortcutManagerCompat .reportShortcutUsed (context , launchAction );
126120 intent .removeExtra (EXTRA_ACTION );
127121 }
128122 return launchAction ;
129123 }
130124
131125 @ TargetApi (Build .VERSION_CODES .N_MR1 )
132- private List <ShortcutInfo > shortcutItemMessageToShortcutInfo (
126+ private List <ShortcutInfoCompat > shortcutItemMessageToShortcutInfo (
133127 @ NonNull List <ShortcutItemMessage > shortcuts ) {
134- final List <ShortcutInfo > shortcutInfos = new ArrayList <>();
128+ final List <ShortcutInfoCompat > shortcutInfos = new ArrayList <>();
135129
136130 for (ShortcutItemMessage shortcut : shortcuts ) {
137131 final String icon = shortcut .getIcon ();
138132 final String type = shortcut .getType ();
139133 final String title = shortcut .getLocalizedTitle ();
140- final ShortcutInfo .Builder shortcutBuilder = new ShortcutInfo .Builder (context , type );
134+ final ShortcutInfoCompat .Builder shortcutBuilder =
135+ new ShortcutInfoCompat .Builder (context , type );
141136
142137 final int resourceId = loadResourceId (context , icon );
143138 final Intent intent = getIntentToOpenMainActivity (type );
144139
145140 if (resourceId > 0 ) {
146- shortcutBuilder .setIcon (Icon .createWithResource (context , resourceId ));
141+ shortcutBuilder .setIcon (IconCompat .createWithResource (context , resourceId ));
147142 }
148143
149- final ShortcutInfo shortcutInfo =
144+ final ShortcutInfoCompat shortcutInfo =
150145 shortcutBuilder .setLongLabel (title ).setShortLabel (title ).setIntent (intent ).build ();
151146 shortcutInfos .add (shortcutInfo );
152147 }
0 commit comments