Release 17: Allow more flexibility with icon packs
This allows Substratum to configure how much time delay to take account
for when initiating a systemwide configuration change
diff --git a/app/build.gradle b/app/build.gradle
index 954693a..94c16f6 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -20,8 +20,8 @@
applicationId "masquerade.substratum"
minSdkVersion 21
targetSdkVersion 23
- versionCode 16
- versionName "sixteen"
+ versionCode 17
+ versionName "seventeen"
}
buildTypes {
diff --git a/app/src/main/java/masquerade/substratum/util/Helper.java b/app/src/main/java/masquerade/substratum/util/Helper.java
index 0b7e087..45b2326 100644
--- a/app/src/main/java/masquerade/substratum/util/Helper.java
+++ b/app/src/main/java/masquerade/substratum/util/Helper.java
@@ -3,6 +3,7 @@
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
+import android.os.Handler;
import android.util.Log;
public class Helper extends BroadcastReceiver {
@@ -31,6 +32,9 @@
intent.getBooleanExtra("restart_systemui", false));
} else if (intent.getStringArrayListExtra("icon-handler") != null) {
String icon_pack_name = intent.getStringArrayListExtra("icon-handler").get(0);
+ String main_delay = intent.getStringArrayListExtra("icon-handler").get(2);
+ String delay_one = intent.getStringArrayListExtra("icon-handler").get(3);
+ String delay_two = intent.getStringArrayListExtra("icon-handler").get(4);
if (intent.getStringArrayListExtra("icon-handler").get(1).contains("pm") ||
intent.getStringArrayListExtra("icon-handler").get(1).contains("om") ||
intent.getStringArrayListExtra("icon-handler").get(1).contains("overlay")) {
@@ -38,7 +42,18 @@
intent.getStringArrayListExtra("icon-handler").get(1) + "\"");
Root.runCommand(intent.getStringArrayListExtra("icon-handler").get(1));
}
- new IconPackApplicator().apply(context, icon_pack_name);
+ final Context mContext = context;
+ final String icon_pack = icon_pack_name;
+ final String delay_one_time = delay_one;
+ final String delay_two_time = delay_two;
+ final Handler handle = new Handler();
+ handle.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ new IconPackApplicator().apply(
+ mContext, icon_pack, delay_one_time, delay_two_time);
+ }
+ }, Integer.parseInt(main_delay));
} else if (intent.getStringExtra("om-commands") != null) {
if (intent.getStringExtra("om-commands").contains("pm") ||
intent.getStringExtra("om-commands").contains("om") ||
diff --git a/app/src/main/java/masquerade/substratum/util/IconPackApplicator.java b/app/src/main/java/masquerade/substratum/util/IconPackApplicator.java
index 5b843ea..2c2a077 100644
--- a/app/src/main/java/masquerade/substratum/util/IconPackApplicator.java
+++ b/app/src/main/java/masquerade/substratum/util/IconPackApplicator.java
@@ -15,14 +15,17 @@
private Context mContext;
private String iconPackName;
private String toast_text = null;
+ private int delayOne, delayTwo;
private static void grantPermission(final String packager, final String permission) {
Root.runCommand("pm grant " + packager + " " + permission);
}
- void apply(Context mContext, String iconPackName) {
+ void apply(Context mContext, String iconPackName, String delayOne, String delayTwo) {
this.mContext = mContext;
this.iconPackName = iconPackName;
+ this.delayOne = Integer.parseInt(delayOne);
+ this.delayTwo = Integer.parseInt(delayTwo);
iconInjector();
}
@@ -111,12 +114,12 @@
// Suppress warning
}
}
- }, 1000); // 2 second delay for Home refresh
+ }, delayTwo); // 2 second delay for Home refresh
} catch (Exception e) {
// Suppress warning
}
}
- }, 1000); // 1 second delay for Home refresh
+ }, delayOne); // 1 second delay for Home refresh
} catch (Exception e) {
e.printStackTrace();
}