OSDN Git Service

Use safer method of creating ActivityOptions bundles on Android <7.0
authorBraden Farmer <farmerbb@gmail.com>
Fri, 27 Oct 2017 04:19:19 +0000 (22:19 -0600)
committerBraden Farmer <farmerbb@gmail.com>
Fri, 27 Oct 2017 04:19:19 +0000 (22:19 -0600)
app/src/main/java/com/farmerbb/taskbar/activity/ContextMenuActivity.java
app/src/main/java/com/farmerbb/taskbar/util/U.java

index 3a519ab..b6df980 100644 (file)
@@ -388,7 +388,7 @@ public class ContextMenuActivity extends PreferenceActivity implements Preferenc
                                 ComponentName.unflattenFromString(componentName),
                                 userManager.getUserForSerialNumber(userId),
                                 null,
-                                U.getActivityOptions(ApplicationType.APPLICATION).toBundle()));
+                                U.getActivityOptionsBundle(ApplicationType.APPLICATION)));
 
                 showStartMenu = false;
                 shouldHideTaskbar = true;
@@ -418,7 +418,7 @@ public class ContextMenuActivity extends PreferenceActivity implements Preferenc
                 U.launchApp(this, () -> {
                     Intent intent2 = new Intent(this, MainActivity.class);
                     intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
-                    startActivity(intent2, U.getActivityOptions(ApplicationType.APPLICATION).toBundle());
+                    startActivity(intent2, U.getActivityOptionsBundle(ApplicationType.APPLICATION));
                 });
 
                 showStartMenu = false;
@@ -577,7 +577,7 @@ public class ContextMenuActivity extends PreferenceActivity implements Preferenc
                     fileManagerIntent.setData(Uri.parse("content://com.android.externalstorage.documents/root/primary"));
 
                     try {
-                        startActivity(fileManagerIntent, U.getActivityOptions(ApplicationType.APPLICATION).toBundle());
+                        startActivity(fileManagerIntent, U.getActivityOptionsBundle(ApplicationType.APPLICATION));
                     } catch (ActivityNotFoundException e) {
                         U.showToast(this, R.string.lock_device_not_supported);
                     }
@@ -593,7 +593,7 @@ public class ContextMenuActivity extends PreferenceActivity implements Preferenc
                     settingsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 
                     try {
-                        startActivity(settingsIntent, U.getActivityOptions(ApplicationType.APPLICATION).toBundle());
+                        startActivity(settingsIntent, U.getActivityOptionsBundle(ApplicationType.APPLICATION));
                     } catch (ActivityNotFoundException e) {
                         U.showToast(this, R.string.lock_device_not_supported);
                     }
index 9f1f04e..18740e9 100644 (file)
@@ -137,7 +137,7 @@ public class U {
                 Intent intent = new Intent(context, DummyActivity.class);
                 intent.putExtra("device_admin", true);
                 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-                context.startActivity(intent, getActivityOptions(ApplicationType.APPLICATION).toBundle());
+                context.startActivity(intent, getActivityOptionsBundle(ApplicationType.APPLICATION));
 
                 if(context instanceof Activity)
                     ((Activity) context).overridePendingTransition(0, 0);
@@ -160,7 +160,7 @@ public class U {
                 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 
                 try {
-                    context.startActivity(intent, getActivityOptions(ApplicationType.APPLICATION).toBundle());
+                    context.startActivity(intent, getActivityOptionsBundle(ApplicationType.APPLICATION));
                     showToastLong(context, R.string.enable_accessibility);
                 } catch (ActivityNotFoundException e) {
                     showToast(context, R.string.lock_device_not_supported);
@@ -915,6 +915,13 @@ public class U {
         return options;
     }
 
+    public static Bundle getActivityOptionsBundle(ApplicationType applicationType) {
+        if(Build.VERSION.SDK_INT < Build.VERSION_CODES.N)
+            return null;
+        else
+            return getActivityOptions(applicationType).toBundle();
+    }
+
     private static ApplicationType getApplicationType(Context context, String packageName) {
         return isGame(context, packageName) ? ApplicationType.GAME : ApplicationType.APPLICATION;
     }