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