diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..f9227e4
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "externals/colorpicker"]
+ path = externals/colorpicker
+ url = git://github.com/rovo89/android-ColorPickerPreference.git
\ No newline at end of file
diff --git a/XposedLibrary/src/de/robv/android/xposed/library/ui/ValueSeekBarPreference.java b/XposedLibrary/src/de/robv/android/xposed/library/ui/ValueSeekBarPreference.java
index bd5f9a1..b54ba88 100644
--- a/XposedLibrary/src/de/robv/android/xposed/library/ui/ValueSeekBarPreference.java
+++ b/XposedLibrary/src/de/robv/android/xposed/library/ui/ValueSeekBarPreference.java
@@ -195,6 +195,8 @@ protected Parcelable onSaveInstanceState() {
// Save the instance state
final SavedState myState = new SavedState(superState);
myState.progress = mProgress;
+ myState.step = mStep;
+ myState.min = mMin;
myState.max = mMax;
return myState;
}
@@ -234,6 +236,8 @@ public SavedState(Parcel source) {
// Restore the click counter
progress = source.readInt();
+ step = source.readInt();
+ min = source.readInt();
max = source.readInt();
}
@@ -241,8 +245,9 @@ public SavedState(Parcel source) {
public void writeToParcel(Parcel dest, int flags) {
super.writeToParcel(dest, flags);
- // Save the click counter
dest.writeInt(progress);
+ dest.writeInt(step);
+ dest.writeInt(min);
dest.writeInt(max);
}
diff --git a/XposedTweakbox/project.properties b/XposedTweakbox/project.properties
index 216a553..8fce175 100644
--- a/XposedTweakbox/project.properties
+++ b/XposedTweakbox/project.properties
@@ -13,3 +13,4 @@
# Project target.
target=android-15
android.library.reference.1=../XposedLibrary
+android.library.reference.2=../externals/colorpicker
diff --git a/XposedTweakbox/res/values/arrays.xml b/XposedTweakbox/res/values/arrays.xml
index 3464799..374f908 100644
--- a/XposedTweakbox/res/values/arrays.xml
+++ b/XposedTweakbox/res/values/arrays.xml
@@ -11,19 +11,5 @@
- 1
- 2
-
- - Transparent
- - Semi-transparent (25%)
- - Semi-transparent (50%)
- - Semi-transparent (75%)
- - Default
-
-
- - 0
- - 0x3f000000
- - 0x7f000000
- - 0xbf000000
- - 0xdeadbeef
-
\ No newline at end of file
diff --git a/XposedTweakbox/res/xml/preferences.xml b/XposedTweakbox/res/xml/preferences.xml
index 132126c..3562fce 100644
--- a/XposedTweakbox/res/xml/preferences.xml
+++ b/XposedTweakbox/res/xml/preferences.xml
@@ -13,13 +13,20 @@
android:summary="Number of bars to be displayed for the signal strength indicator (Samsung only)"
android:title="Signal strength bars" />
-
+
+ android:title="... also when screen is turned on" />
-->
diff --git a/XposedTweakbox/src/de/robv/android/xposed/mods/tweakbox/XposedTweakbox.java b/XposedTweakbox/src/de/robv/android/xposed/mods/tweakbox/XposedTweakbox.java
index 1551cfc..e3a9799 100644
--- a/XposedTweakbox/src/de/robv/android/xposed/mods/tweakbox/XposedTweakbox.java
+++ b/XposedTweakbox/src/de/robv/android/xposed/mods/tweakbox/XposedTweakbox.java
@@ -7,17 +7,20 @@
import android.app.AndroidAppHelper;
import android.content.SharedPreferences;
import android.content.res.XResources;
+import android.graphics.Color;
import android.graphics.PixelFormat;
import android.graphics.drawable.ColorDrawable;
import android.telephony.SignalStrength;
import android.view.WindowManager;
+import android.widget.TextView;
import de.robv.android.xposed.Callback;
import de.robv.android.xposed.XposedBridge;
public class XposedTweakbox {
public static final String MY_PACKAGE_NAME = "de.robv.android.xposed.mods.tweakbox";
- public static int signalStrengthBars = 4;
+ private static int signalStrengthBars = 4;
+ private static int statusBarClockColor = 0xffbebebe;
public static void init(String startClassName) throws Exception {
if (startClassName != null)
@@ -71,14 +74,22 @@ private static void handleLoadPackage(String packageName, ClassLoader classLoade
}
}
- if (pref.getInt("statusbar_color", 0xdeadbeef) != 0xdeadbeef) {
+ if (pref.getBoolean("statusbar_color_enabled", false)) {
// http://forum.xda-developers.com/showthread.php?t=1523703
try {
Constructor> constructLayoutParams = WindowManager.LayoutParams.class.getDeclaredConstructor(int.class, int.class, int.class, int.class, int.class);
XposedBridge.hookMethod(constructLayoutParams, XposedTweakbox.class, "handleInitLayoutParams", Callback.PRIORITY_HIGHEST);
- } catch (Exception e) {
- XposedBridge.log(e);
- }
+ } catch (Exception e) { XposedBridge.log(e); }
+ }
+
+ if (pref.getBoolean("statusbar_clock_color_enabled", false)) {
+ try {
+ statusBarClockColor = pref.getInt("statusbar_clock_color", 0xffbebebe);
+ Method updateClock =
+ Class.forName("com.android.systemui.statusbar.policy.Clock", false, classLoader)
+ .getDeclaredMethod("updateClock");
+ XposedBridge.hookMethod(updateClock, XposedTweakbox.class, "handleUpdateClock", Callback.PRIORITY_DEFAULT);
+ } catch (Exception e) { XposedBridge.log(e); }
}
if (pref.getInt("num_signal_bars", 4) > 4) {
@@ -88,9 +99,7 @@ private static void handleLoadPackage(String packageName, ClassLoader classLoade
Method methodGsmGetLevel = SignalStrength.class.getDeclaredMethod("getGsmLevel");
XposedBridge.hookMethod(methodGsmGetLevel, XposedTweakbox.class, "handleSignalStrengthGetGsmLevel", Callback.PRIORITY_DEFAULT);
- } catch (Exception e) {
- XposedBridge.log(e);
- }
+ } catch (Exception e) { XposedBridge.log(e); }
}
}
}
@@ -106,9 +115,9 @@ private static void handleInitPackageResources(String packageName, XResources re
signalStrengthBars);
} catch (Exception e) { XposedBridge.log(e); }
- int statusbarColor = pref.getInt("statusbar_color", 0xdeadbeef);
- if (statusbarColor != 0xdeadbeef) {
+ if (pref.getBoolean("statusbar_color_enabled", false)) {
try {
+ int statusbarColor = pref.getInt("statusbar_color", Color.BLACK);
res.setReplacement("com.android.systemui", "drawable", "status_bar_background", new ColorDrawable(statusbarColor));
} catch (Exception e) { XposedBridge.log(e); }
}
@@ -185,4 +194,12 @@ private static Object handleSignalStrengthGetGsmLevel(Iterator iterato
else return 10001;
}
}
+
+ @SuppressWarnings("unused")
+ private static Object handleUpdateClock(Iterator iterator, Method method, Object thisObject, Object[] args) throws Throwable {
+ Object result = XposedBridge.callNext(iterator, method, thisObject, args);
+ TextView clock = (TextView) thisObject;
+ clock.setTextColor(statusBarClockColor);
+ return result;
+ }
}
diff --git a/externals/colorpicker b/externals/colorpicker
new file mode 160000
index 0000000..f2cd67a
--- /dev/null
+++ b/externals/colorpicker
@@ -0,0 +1 @@
+Subproject commit f2cd67a382eb03a7f4e22d1e51dcdea96569f92d