From a56e4b339c5583483ed31bb9a88286cd01a55249 Mon Sep 17 00:00:00 2001 From: mp3comanche Date: Thu, 24 Oct 2013 21:27:29 +0200 Subject: [PATCH 001/255] Update strings.xml as promised on Androidforum (http://androidforum.cz/post675240.html#p675240) --- res/values-cs/strings.xml | 46 +++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index 8b144f121b..b969603aaf 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -35,8 +35,8 @@ Pohyb kurzoru tlačítky hlasitosti Umožní pohyb kurzoru pomocí tlačítek hlasitosti v textových polích Vypnuté - Tlačítko nahoru/dolu pohybuje kurzorem doleva/doprava - Tlačítko nahoru/dolu pohybuje kurzorem doprava/doleva + Tlačítko nahoru/dolů pohybuje kurzorem doleva/doprava + Tlačítko nahoru/dolů pohybuje kurzorem doprava/doleva Ukončení aktuálních aplikací Zobrazí tlačítko, které umožní ukončení všech aplikací najednou, v seznamu aktuálních aplikací @@ -48,8 +48,8 @@ Použít v případě, když nastavení datumu a času padá (vyžaduje restart) Opravit identifikátor volajícího - Použít v případě, když není číslo volajícího identifikované během přijímání hovoru (vyžaduje restart) - Aby se oprava projavila, je potřebné po restartu vymazat a znova přidat kontakty! V Nastavení / Aplikace / Všechny, vyhledejte \"Úložiště kontaktů\" a zvolte vymazání údajů. Ujistěte se nejdříve, že máte zálohu kontaktů. + Použít v případě, když není číslo volajícího identifikováno během přijímání hovoru (vyžaduje restart) + Aby se oprava projevila, je nutné po restartu vymazat a znova přidat kontakty! V Nastavení / Aplikace / Všechny, vyhledejte \"Úložiště kontaktů\" a zvolte vymazání údajů. Ujistěte se nejdříve, že máte zálohu kontaktů. Opravit identifikátor odesílatele SMS Použít v případě kdy dochází při přijetí SMS k vytváření duplicitních vláken konverzací pro ten samý kontakt (vyžaduje restart) @@ -83,7 +83,7 @@ Bdění vyp Wi-Fi Wi-Fi vyp - Nepřipojené + Nepřipojeno Zapíná se… @@ -98,7 +98,7 @@ GPS GPS (CM styl) Mobilní data - Typ síte + Typ sítě Využití dat Zvukové profily Jas @@ -108,7 +108,7 @@ Wi-Fi Přístupový bod Světlo GravityBox - Uspát + Uspat Rychlý záznam zvuku Hlasitost Rozšířená plocha @@ -148,8 +148,8 @@ Přispějte přes PayPal pokud si myslíte, že tato aplikace za to stojí! Zvažte též příspěvek pro rovo89 za jeho excelentní Xposed framework. - Váš %s bude restartovaný - Váš %s bude restartovaný do režimu Recovery + Váš %s bude restartován + Váš %s bude restartován do režimu Recovery CRT efekt vypnutí obrazovky @@ -247,7 +247,7 @@ Akce tlačítek - Umožňuje nastavení akcí pro hardvérová tlačítka + Umožňuje nastavení akcí pro hardwarová tlačítka Dlouhé podržení Menu Dvojité klepnutí na Menu Dlouhé podržení Zpět @@ -256,11 +256,11 @@ Hlasové vyhledávání Přepnout na předcházející aplikaci Zabít aplikaci v popředí - Uspát + Uspat Zpoždění zabití aplikace - Vztahuje se na akci zabití aplikace v popředí dlouhým podržením tlačítka. Definuje, jak dlouho musí být tlačítko přidrženo aby došlo k provedení akce. + Vztahuje se na akci zabití aplikace v popředí dlouhým podržením tlačítka. Definuje, jak dlouho musí být tlačítko přidrženo, aby došlo k provedení akce. Rychlost dvojitého klepnutí - Vztahuje se na dvojité klepnutí na Menu. Definuje, jak rychle musí být provedeno dvojité klepnutí aby došlo k provedení akce. + Vztahuje se na dvojité klepnutí na Menu. Definuje, jak rychle musí být provedeno dvojité klepnutí, aby došlo k provedení akce. Aplikace %s zabita Není co zabít Žádná předcházející aplikace @@ -282,7 +282,7 @@ Počet dlaždic na řádek - Definuje počet QuickSettings dlaždic zobrazených na 1 řádek. Velikost dlaždic bude upravená podle potřeby. Aplikovatelné na portrét režim. + Definuje počet QuickSettings dlaždic zobrazených na 1 řádek. Velikost dlaždic bude upravena podle potřeby. Aplikovatelné na portrét režim. Zobrazit den v týdnu @@ -297,7 +297,7 @@ Automatické zobrazení QuickSettings - QuickSettings budou zobrazeny automaticky pokud se v oznamovacím panely nenacházejí žádné notifikace + QuickSettings budou zobrazena automaticky, pokud se v oznamovacím panely nenacházejí žádné notifikace Rychlé zobrazení QuickSettings @@ -345,12 +345,12 @@ Vypnout roaming indikátory - Pokud vypnuto, R indikátory nebudou zobrazeny během roamingu. Použít s opatrností. + Pokud vypnuto, R indikátory nebudou zobrazeny během roamingu. Použít s rozmyslem. Nabíjení (%d%%) Nabito - %d%% zůstává + %d%% zbývá Bez signálu @@ -378,7 +378,7 @@ Skrýt navigační lištu - Skryje navigační lištu pokud je zapnutý koláč (pro zařízení s navigační lištou, vyžaduje restart) + Skryje navigační lištu, pokud je zapnutý koláč (pro zařízení s navigační lištou, vyžaduje restart) Vyhlazené Holo pozadí @@ -386,7 +386,7 @@ Zablokovat HW tlačítka - Zablokuje MENU, ZPĚT, DOMŮ pokud je zapnutý koláč. Akce HW tlačítek budou nadále fungovat (pro zařízení s HW tlačítky) + Zablokuje MENU, ZPĚT, DOMŮ, pokud je zapnutý koláč. Akce HW tlačítek budou nadále fungovat (pro zařízení s HW tlačítky) Použít tmavé téma @@ -522,7 +522,7 @@ Pro horizontální navigační lištu a orientaci na šířku Šířka navigační lišty Pro vertikální navigační lištu - Vždy zobrazit menu tlačítko + Vždy zobrazit Menu tlačítko Screenshot v menu napájení @@ -557,7 +557,7 @@ Kopírovat barvu stock baterie - Nastaví barvu hodin, procent baterie a kruhového indikátoru podle barvy stock baterie (v případě pokud je vypnuto vlastní vybarvování) + Nastaví barvu hodin, procent baterie a kruhového indikátoru podle barvy stock baterie (pokud je vypnuto vlastní vybarvování) Režim dlaždice typu mobilní sítě @@ -655,7 +655,7 @@ %1$s využitých RAM lišta v seznamu spuštěných aplikací Vypnuta - Zobrazit nahoru + Zobrazit nahoře Zobrazit dole @@ -680,7 +680,7 @@ Tlačítko Menu Tlačítko Domov - Tlačítko Späť + Tlačítko Zpět Tlačítko Spuštěné aplikace Tlačítka ovládání hlasitosti Další nastavení From a34ac0c4e1774a1fbdf4f0e39d831029695bf4a0 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Thu, 24 Oct 2013 21:51:22 +0200 Subject: [PATCH 002/255] Option to disable Home key double-tap on Android 4.3+ --- res/values/strings.xml | 3 ++ res/xml/gravitybox.xml | 5 +++ .../gm2/gravitybox/GravityBoxSettings.java | 14 ++++++++ src/com/ceco/gm2/gravitybox/ModHwKeys.java | 35 ++++++++++++++++++- 4 files changed, 56 insertions(+), 1 deletion(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index d4956643ad..1a858d0372 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -711,4 +711,7 @@ Single-tap action Double-tap action + + Disable double-tap + diff --git a/res/xml/gravitybox.xml b/res/xml/gravitybox.xml index 8b3576feba..3ad14eda38 100644 --- a/res/xml/gravitybox.xml +++ b/res/xml/gravitybox.xml @@ -890,6 +890,11 @@ android:summary="@string/pref_hwkey_home_longpress_keyguard_summary" android:defaultValue="false" /> + + 17 && mPhoneWindowManager != null) { + try { + XposedHelpers.setIntField(mPhoneWindowManager, "mDoubleTapOnHomeBehavior", + mHomeDoubletapDisabled ? 0 : mHomeDoubletapDefaultAction); + } catch (Throwable t) { + log("PhoneWindowManager: Error settings mDoubleTapOnHomeBehavior: " + + t.getMessage()); + } + } + } } else if (action.equals(GravityBoxSettings.ACTION_PREF_HWKEY_BACK_LONGPRESS_CHANGED)) { mBackLongpressAction = value; if (DEBUG) log("Back long-press action set to: " + value); @@ -217,6 +233,8 @@ public static void initZygote(final XSharedPreferences prefs) { mHomeLongpressActionKeyguard = prefs.getBoolean( GravityBoxSettings.PREF_KEY_HWKEY_HOME_LONGPRESS_KEYGUARD, false) ? GravityBoxSettings.HWKEY_ACTION_TORCH : GravityBoxSettings.HWKEY_ACTION_DEFAULT; + mHomeDoubletapDisabled = prefs.getBoolean( + GravityBoxSettings.PREF_KEY_HWKEY_HOME_DOUBLETAP_DISABLE, false); mVolumeRockerWakeDisabled = prefs.getBoolean( GravityBoxSettings.PREF_KEY_VOLUME_ROCKER_WAKE_DISABLE, false); mHwKeysEnabled = !prefs.getBoolean(GravityBoxSettings.PREF_KEY_HWKEYS_DISABLE, false); @@ -436,6 +454,20 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { } }); } + + if (Build.VERSION.SDK_INT > 17) { + XposedHelpers.findAndHookMethod(classPhoneWindowManager, + "readConfigurationDependentBehaviors", new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) throws Throwable { + mHomeDoubletapDefaultAction = XposedHelpers.getIntField( + param.thisObject, "mDoubleTapOnHomeBehavior"); + if (mHomeDoubletapDisabled) { + XposedHelpers.setIntField(param.thisObject, "mDoubleTapOnHomeBehavior", 0); + } + } + }); + } } catch (Throwable t) { XposedBridge.log(t); } @@ -457,11 +489,12 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { mStrCustomAppNone = res.getString(R.string.hwkey_action_custom_app_none); mStrCustomAppMissing = res.getString(R.string.hwkey_action_custom_app_missing); mStrExpandedDesktopDisabled = res.getString(R.string.hwkey_action_expanded_desktop_disabled); - + IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(GravityBoxSettings.ACTION_PREF_HWKEY_MENU_LONGPRESS_CHANGED); intentFilter.addAction(GravityBoxSettings.ACTION_PREF_HWKEY_MENU_DOUBLETAP_CHANGED); intentFilter.addAction(GravityBoxSettings.ACTION_PREF_HWKEY_HOME_LONGPRESS_CHANGED); + intentFilter.addAction(GravityBoxSettings.ACTION_PREF_HWKEY_HOME_DOUBLETAP_CHANGED); intentFilter.addAction(GravityBoxSettings.ACTION_PREF_HWKEY_BACK_LONGPRESS_CHANGED); intentFilter.addAction(GravityBoxSettings.ACTION_PREF_HWKEY_RECENTS_SINGLETAP_CHANGED); intentFilter.addAction(GravityBoxSettings.ACTION_PREF_HWKEY_RECENTS_LONGPRESS_CHANGED); From 5c8a3a11a6a2b727c804faafb5e7308ca51b6409 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Thu, 24 Oct 2013 22:04:30 +0200 Subject: [PATCH 003/255] Updated Indonesian translations (thanks to awaaas) --- res/values-in/strings.xml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml index 799fb5aa7d..391bc75fb2 100644 --- a/res/values-in/strings.xml +++ b/res/values-in/strings.xml @@ -657,6 +657,7 @@ Posisi Otomatis (tengah atau kanan, bergantung posisi jam) Kiri + Kanan Ukuran Normal Lebih kecil @@ -684,4 +685,29 @@ Aksi ketika tombol Recents ditekan Aksi ketika tombol Recents ditahan + + Tunjukkan lengkungan baterai + Tunjukkan lengkungan status baterai di sekitar lingkaran pembuka kunci + + + Hidup/Matikan Senter + + + Hidupkan senter ketika tombol Home ditahan + Hidup/Matikan senter ketika perangkat terkunci. Layar harus dihidupkan terlebih dahulu jika perangkat tidak memiliki fitur untuk menghidupkan layar dengan tombol home. + + + Membesar secara otomatis + + + Tombol Menu + Tombol Home + Tombol Kembali + Tombol Recents + Tombol Volume + Pengaturan lain + Aksi ketika ditahan + Aksi ketika ditekan sekali + Aksi ketika ditekan dua kali + From d70535d90efd99bde5c1b3285002772411891c91 Mon Sep 17 00:00:00 2001 From: Noumi Ryoko Date: Fri, 25 Oct 2013 09:22:45 +0900 Subject: [PATCH 004/255] Updated Japanese Translation --- res/values-ja/strings.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index f389f8945b..75a787aea0 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -680,4 +680,18 @@ 自動的に拡張 + + メニューキー + ホームキー + バックキー + 最近のアプリキー + 音量キー + その他の設定 + 長押しアクション + タップアクション + ダブルタップアクション + + + ダブルタップを無効化 + From 156313b592aa80442fa5f0b9a0be2d55430adf61 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Fri, 25 Oct 2013 09:24:13 +0200 Subject: [PATCH 005/255] Option to set signal icon coloring mode - Use GravityBox icons - supporting signal levels - Use stock icons - without signal level support - Do not apply color - leave intact --- res/values/arrays.xml | 12 ++ res/values/strings.xml | 6 + res/xml/gravitybox.xml | 7 ++ .../gm2/gravitybox/GravityBoxSettings.java | 13 ++ .../gm2/gravitybox/ModStatusbarColor.java | 66 +++++----- .../gm2/gravitybox/StatusBarIconManager.java | 115 +++++++++++++++--- 6 files changed, 169 insertions(+), 50 deletions(-) diff --git a/res/values/arrays.xml b/res/values/arrays.xml index d2722004b7..db9b3f0e12 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -580,4 +580,16 @@ 80 + + @string/signal_color_mode_gb + @string/signal_color_mode_stock + @string/signal_color_mode_disabled + + + + 0 + 1 + 2 + + diff --git a/res/values/strings.xml b/res/values/strings.xml index 1a858d0372..5a6218ca8c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -714,4 +714,10 @@ Disable double-tap + + Signal color mode + Use GravityBox icons (with signal level support) + Use stock icons (without signal level support) + Do not apply color + diff --git a/res/xml/gravitybox.xml b/res/xml/gravitybox.xml index 3ad14eda38..ea26c5d90a 100644 --- a/res/xml/gravitybox.xml +++ b/res/xml/gravitybox.xml @@ -292,6 +292,13 @@ android:summary="@string/pref_statusbar_color_skip_battery_summary" android:defaultValue="false" /> + + mWifiIconIds; @@ -46,6 +51,8 @@ public class StatusBarIconManager { private Integer mDefaultClockColor; private Integer mDefaultBatteryPercentageColor; private boolean mFollowStockBatteryColor; + private int mSignalIconMode; + private boolean mAllowMobileIconChange; private static void log(String message) { XposedBridge.log(TAG + ": " + message); @@ -56,6 +63,8 @@ public StatusBarIconManager(Resources res) { mIconColor = getDefaultIconColor(); mDataActivityColor = DEFAULT_DATA_ACTIVITY_COLOR; mFollowStockBatteryColor = false; + mSignalIconMode = SI_MODE_GB; + mAllowMobileIconChange = true; Map tmpMap = new HashMap(); tmpMap.put("stat_sys_wifi_signal_0", R.drawable.stat_sys_wifi_signal_0); @@ -140,6 +149,19 @@ public void initStockBatteryColor(Context context) { } } + public void setSystemUiResources(Resources res) { + mSystemUiRes = res; + } + + public void setSignalIconMode(int mode) { + mSignalIconMode = mode; + clearCache(); + } + + public int getSignalIconMode() { + return mSignalIconMode; + } + public void setFollowStockBatteryColor(boolean follow) { mFollowStockBatteryColor = follow; } @@ -223,34 +245,87 @@ private void setCachedDrawable(String key, Drawable d) { if (DEBUG) log("setCachedDrawable('" + key + "') - storing to cache"); } - public Drawable getWifiIcon(String key) { - Drawable cd = getCachedDrawable(key); - if (cd != null) return cd; + public Drawable getWifiIcon(int resId) { + Drawable cd; + String key; - if (mWifiIconIds.containsKey(key)) { - Drawable d = mResources.getDrawable(mWifiIconIds.get(key)).mutate(); - d = applyColorFilter(d); - setCachedDrawable(key, d); - return d; + try { + key = mSystemUiRes.getResourceEntryName(resId); + } catch (Resources.NotFoundException nfe) { + return null; } - if (DEBUG) log("getWifiIcon: no drawable for key: " + key); - return null; + switch(mSignalIconMode) { + case SI_MODE_GB: + cd = getCachedDrawable(key); + if (cd != null) return cd; + if (mWifiIconIds.containsKey(key)) { + Drawable d = mResources.getDrawable(mWifiIconIds.get(key)).mutate(); + d = applyColorFilter(d); + setCachedDrawable(key, d); + return d; + } + if (DEBUG) log("getWifiIcon: no drawable for key: " + key); + return null; + + case SI_MODE_STOCK: + cd = getCachedDrawable(key); + if (cd != null) return cd; + Drawable d = mSystemUiRes.getDrawable(resId).mutate(); + d = applyColorFilter(d); + setCachedDrawable(key, d); + return d; + + case SI_MODE_DISABLED: + default: + return null; + } } - public Drawable getMobileIcon(String key) { - Drawable cd = getCachedDrawable(key); - if (cd != null) return cd; + public Drawable getMobileIcon(int resId) { + Drawable cd; + String key; - if (mMobileIconIds.containsKey(key)) { - Drawable d = mResources.getDrawable(mMobileIconIds.get(key)).mutate(); - d = applyColorFilter(d); - setCachedDrawable(key, d); - return d; + try { + key = mSystemUiRes.getResourceEntryName(resId); + } catch (Resources.NotFoundException nfe) { + return null; } - if (DEBUG) log("getMobileIcon: no drawable for key: " + key); - return null; + mAllowMobileIconChange = key.contains("blue") || !Utils.isMtkDevice(); + if (!mAllowMobileIconChange) { + return null; + } + + switch(mSignalIconMode) { + case SI_MODE_GB: + cd = getCachedDrawable(key); + if (cd != null) return cd; + if (mMobileIconIds.containsKey(key)) { + Drawable d = mResources.getDrawable(mMobileIconIds.get(key)).mutate(); + d = applyColorFilter(d); + setCachedDrawable(key, d); + return d; + } + if (DEBUG) log("getMobileIcon: no drawable for key: " + key); + return null; + + case SI_MODE_STOCK: + cd = getCachedDrawable(key); + if (cd != null) return cd; + Drawable d = mSystemUiRes.getDrawable(resId).mutate(); + d = applyColorFilter(d); + setCachedDrawable(key, d); + return d; + + case SI_MODE_DISABLED: + default: + return null; + } + } + + public boolean isMobileIconChangeAllowed() { + return mAllowMobileIconChange; } public Drawable getBatteryIcon(int level, boolean plugged) { From 8bc49ac1b2e6e63bda9202cf35c75d5f601fae23 Mon Sep 17 00:00:00 2001 From: Noumi Ryoko Date: Fri, 25 Oct 2013 16:35:58 +0900 Subject: [PATCH 006/255] Updated Japanese Translation --- res/values-ja/strings.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index 75a787aea0..cdac158a33 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -694,4 +694,10 @@ ダブルタップを無効化 + + 単色モード + GravityBoxアイコンを使用 (電波強度対応) + 標準アイコンを使用(信号強度非対応) + 色を適用しない + From 196df19980f6888c38f991e2bdb145c37c9a0490 Mon Sep 17 00:00:00 2001 From: ch-vox Date: Fri, 25 Oct 2013 11:19:05 +0200 Subject: [PATCH 007/255] Updated French translation 2.6.5 Option to disable Home key double-tap on Android 4.3+ Option to set signal icon coloring mode --- res/values-fr/strings.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 1e5cb35587..1f5d13aa66 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -711,4 +711,13 @@ Action appui simple Action appui double + + Désactiver le double appui + + + Mode couleur pour le signal + Utiliser les icônes GravityBox (niveau du signal supporté) + Utiliser les icônes par défaut (niveau du signal non supporté) + Ne pas modifier les couleurs + From 6b1d03db1ecc0ebc2486927993eeee17e1042fc9 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Fri, 25 Oct 2013 11:19:58 +0200 Subject: [PATCH 008/255] Lockscreen targets: add app info only if successfully populated with data --- src/com/ceco/gm2/gravitybox/ModLockscreen.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/ModLockscreen.java b/src/com/ceco/gm2/gravitybox/ModLockscreen.java index 78a2563789..4f5536986d 100644 --- a/src/com/ceco/gm2/gravitybox/ModLockscreen.java +++ b/src/com/ceco/gm2/gravitybox/ModLockscreen.java @@ -318,8 +318,11 @@ protected void afterHookedMethod(final MethodHookParam param) throws Throwable { String app = prefs.getString( GravityBoxSettings.PREF_KEY_LOCKSCREEN_TARGETS_APP[i], null); if (app != null) { - appInfoList.add(getAppInfo(context, app)); - if (DEBUG) log("appInfoList.add: " + app); + AppInfo appInfo = getAppInfo(context, app); + if (appInfo != null) { + appInfoList.add(appInfo); + if (DEBUG) log("appInfoList.add: " + app); + } } } @@ -640,7 +643,7 @@ private static AppInfo getAppInfo(Context context, String app) { if (DEBUG) log("AppInfo: storing to cache for " + app); return appInfo; } catch (Throwable t) { - XposedBridge.log(t); + log("Error getting app info for " + app + "! Error: " + t.getMessage()); return null; } } From b2387b2fee6faa34a42ddfda13dfe3286754e11d Mon Sep 17 00:00:00 2001 From: Mohammad Abu-Garbeyyeh Date: Fri, 25 Oct 2013 12:34:54 +0300 Subject: [PATCH 009/255] Method to detect Xperia devices --- src/com/ceco/gm2/gravitybox/GravityBox.java | 1 + src/com/ceco/gm2/gravitybox/Utils.java | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/com/ceco/gm2/gravitybox/GravityBox.java b/src/com/ceco/gm2/gravitybox/GravityBox.java index 167f832006..fb7c85835d 100644 --- a/src/com/ceco/gm2/gravitybox/GravityBox.java +++ b/src/com/ceco/gm2/gravitybox/GravityBox.java @@ -42,6 +42,7 @@ public void initZygote(StartupParam startupParam) throws Throwable { XposedBridge.log("GB:Device model: " + Build.MODEL); XposedBridge.log("GB:Device type: " + (Utils.isTablet() ? "tablet" : "phone")); XposedBridge.log("GB:Is MTK device: " + Utils.isMtkDevice()); + XposedBridge.log("GB:Is Xperia device: " + Utils.isXperiaDevice()); XposedBridge.log("GB:Has telephony support: " + Utils.hasTelephonySupport()); XposedBridge.log("GB:Has Gemini support: " + Utils.hasGeminiSupport()); XposedBridge.log("GB:Android SDK: " + Build.VERSION.SDK_INT); diff --git a/src/com/ceco/gm2/gravitybox/Utils.java b/src/com/ceco/gm2/gravitybox/Utils.java index 27c991f427..8bb3a24173 100644 --- a/src/com/ceco/gm2/gravitybox/Utils.java +++ b/src/com/ceco/gm2/gravitybox/Utils.java @@ -42,6 +42,7 @@ public class Utils { // Device type reference private static int mDeviceType = -1; private static Boolean mIsMtkDevice = null; + private static Boolean mIsXperiaDevice = null; private static Boolean mIsWifiOnly = null; private static String mDeviceCharacteristics = null; @@ -112,6 +113,13 @@ public static boolean isMtkDevice() { mIsMtkDevice = MTK_DEVICES.contains(Build.HARDWARE.toLowerCase()); return mIsMtkDevice; } + + public static boolean isXperiaDevice() { + if (mIsXperiaDevice != null) return mIsXperiaDevice; + + mIsXperiaDevice = Build.MANUFACTURER.equalsIgnoreCase("sony"); + return mIsXperiaDevice; + } public static boolean hasGeminiSupport() { if (mHasGeminiSupport != null) return mHasGeminiSupport; From 17698101720002b81160b4b7c732455099842d88 Mon Sep 17 00:00:00 2001 From: Mohammad Abu-Garbeyyeh Date: Fri, 25 Oct 2013 13:48:00 +0300 Subject: [PATCH 010/255] Fix mobile data toggling on Xperia devices --- .../gm2/gravitybox/ConnectivityServiceWrapper.java | 14 +++++++++++--- src/com/ceco/gm2/gravitybox/ModQuickSettings.java | 11 +++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/ConnectivityServiceWrapper.java b/src/com/ceco/gm2/gravitybox/ConnectivityServiceWrapper.java index e14ca53442..dcba9b287a 100644 --- a/src/com/ceco/gm2/gravitybox/ConnectivityServiceWrapper.java +++ b/src/com/ceco/gm2/gravitybox/ConnectivityServiceWrapper.java @@ -31,6 +31,8 @@ public class ConnectivityServiceWrapper { public static final String ACTION_SET_MOBILE_DATA_ENABLED = "gravitybox.intent.action.SET_MOBILE_DATA_ENABLED"; + public static final String ACTION_XPERIA_MOBILE_DATA_TOGGLE = + "com.android.phone.intent.ACTION_DATA_TRAFFIC_SWITCH"; public static final String EXTRA_ENABLED = "enabled"; private static Object mConnectivityService; @@ -64,9 +66,15 @@ protected void afterHookedMethod(final MethodHookParam param) throws Throwable { Context context = (Context) XposedHelpers.getObjectField( param.thisObject, "mContext"); - IntentFilter intentFilter = new IntentFilter(); - intentFilter.addAction(ACTION_SET_MOBILE_DATA_ENABLED); - context.registerReceiver(mBroadcastReceiver, intentFilter); + if (context == null && param.args.length != 0) { + context = (Context) param.args[0]; + } + + if (context != null) { + IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(ACTION_SET_MOBILE_DATA_ENABLED); + context.registerReceiver(mBroadcastReceiver, intentFilter); + } } }); } catch (Throwable t) { diff --git a/src/com/ceco/gm2/gravitybox/ModQuickSettings.java b/src/com/ceco/gm2/gravitybox/ModQuickSettings.java index 62aa70878f..3ff51a22af 100644 --- a/src/com/ceco/gm2/gravitybox/ModQuickSettings.java +++ b/src/com/ceco/gm2/gravitybox/ModQuickSettings.java @@ -845,6 +845,17 @@ public void onClick(View v) { (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE); final boolean mobileDataEnabled = (Boolean) XposedHelpers.callMethod(cm, "getMobileDataEnabled"); + + if (Utils.isXperiaDevice()) { + if (!mobileDataEnabled && mStatusBar != null) { + XposedHelpers.callMethod(mStatusBar, "animateCollapsePanels"); + } + + Intent i = new Intent(ConnectivityServiceWrapper.ACTION_XPERIA_MOBILE_DATA_TOGGLE); + mContext.sendBroadcast(i); + return; + } + Intent intent = new Intent(ConnectivityServiceWrapper.ACTION_SET_MOBILE_DATA_ENABLED); intent.putExtra(ConnectivityServiceWrapper.EXTRA_ENABLED, !mobileDataEnabled); mContext.sendBroadcast(intent); From 0127531ab24d2358ffe75a0ac02df86099ac109e Mon Sep 17 00:00:00 2001 From: Mohammad Abu-Garbeyyeh Date: Fri, 25 Oct 2013 13:53:20 +0300 Subject: [PATCH 011/255] An Xperia device has no expandable volume panel, some views are null, check for that --- src/com/ceco/gm2/gravitybox/ModVolumePanel.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/ModVolumePanel.java b/src/com/ceco/gm2/gravitybox/ModVolumePanel.java index fd99a109f0..5037807534 100644 --- a/src/com/ceco/gm2/gravitybox/ModVolumePanel.java +++ b/src/com/ceco/gm2/gravitybox/ModVolumePanel.java @@ -241,11 +241,16 @@ private static void updateVolumePanelMode() { View mMoreButton = (View) XposedHelpers.getObjectField(mVolumePanel, "mMoreButton"); View mDivider = (View) XposedHelpers.getObjectField(mVolumePanel, "mDivider"); - mMoreButton.setVisibility(mExpandable ? View.VISIBLE : View.GONE); - if (!mMoreButton.hasOnClickListeners()) { - mMoreButton.setOnClickListener((OnClickListener) mVolumePanel); + if (mMoreButton != null) { + mMoreButton.setVisibility(mExpandable ? View.VISIBLE : View.GONE); + if (!mMoreButton.hasOnClickListeners()) { + mMoreButton.setOnClickListener((OnClickListener) mVolumePanel); + } + } + + if (mDivider != null) { + mDivider.setVisibility(mExpandable ? View.VISIBLE : View.GONE); } - mDivider.setVisibility(mExpandable ? View.VISIBLE : View.GONE); XposedHelpers.setBooleanField(mVolumePanel, "mShowCombinedVolumes", mExpandable); XposedHelpers.setObjectField(mVolumePanel, "mStreamControls", null); From bb8c5b42683e2079f5fd3a29297b4e3d6ee30867 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Fri, 25 Oct 2013 13:14:09 +0200 Subject: [PATCH 012/255] Formatting fixes: we always use spaces instead of tabs --- .../gravitybox/ConnectivityServiceWrapper.java | 10 +++++----- .../ceco/gm2/gravitybox/ModQuickSettings.java | 18 +++++++++--------- .../ceco/gm2/gravitybox/ModVolumePanel.java | 10 +++++----- src/com/ceco/gm2/gravitybox/Utils.java | 10 +++++----- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/ConnectivityServiceWrapper.java b/src/com/ceco/gm2/gravitybox/ConnectivityServiceWrapper.java index dcba9b287a..31c7bafbcd 100644 --- a/src/com/ceco/gm2/gravitybox/ConnectivityServiceWrapper.java +++ b/src/com/ceco/gm2/gravitybox/ConnectivityServiceWrapper.java @@ -32,7 +32,7 @@ public class ConnectivityServiceWrapper { public static final String ACTION_SET_MOBILE_DATA_ENABLED = "gravitybox.intent.action.SET_MOBILE_DATA_ENABLED"; public static final String ACTION_XPERIA_MOBILE_DATA_TOGGLE = - "com.android.phone.intent.ACTION_DATA_TRAFFIC_SWITCH"; + "com.android.phone.intent.ACTION_DATA_TRAFFIC_SWITCH"; public static final String EXTRA_ENABLED = "enabled"; private static Object mConnectivityService; @@ -67,13 +67,13 @@ protected void afterHookedMethod(final MethodHookParam param) throws Throwable { Context context = (Context) XposedHelpers.getObjectField( param.thisObject, "mContext"); if (context == null && param.args.length != 0) { - context = (Context) param.args[0]; + context = (Context) param.args[0]; } if (context != null) { - IntentFilter intentFilter = new IntentFilter(); - intentFilter.addAction(ACTION_SET_MOBILE_DATA_ENABLED); - context.registerReceiver(mBroadcastReceiver, intentFilter); + IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(ACTION_SET_MOBILE_DATA_ENABLED); + context.registerReceiver(mBroadcastReceiver, intentFilter); } } }); diff --git a/src/com/ceco/gm2/gravitybox/ModQuickSettings.java b/src/com/ceco/gm2/gravitybox/ModQuickSettings.java index 3ff51a22af..29e03adbcd 100644 --- a/src/com/ceco/gm2/gravitybox/ModQuickSettings.java +++ b/src/com/ceco/gm2/gravitybox/ModQuickSettings.java @@ -424,7 +424,7 @@ protected void beforeHookedMethod(final MethodHookParam param) throws Throwable // let the original method finish its work } else { if (DEBUG) log("animateCollapsePanels: all notifications removed " + - "but showing QuickSettings - do nothing"); + "but showing QuickSettings - do nothing"); param.setResult(null); } } @@ -845,17 +845,17 @@ public void onClick(View v) { (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE); final boolean mobileDataEnabled = (Boolean) XposedHelpers.callMethod(cm, "getMobileDataEnabled"); - + if (Utils.isXperiaDevice()) { - if (!mobileDataEnabled && mStatusBar != null) { - XposedHelpers.callMethod(mStatusBar, "animateCollapsePanels"); - } + if (!mobileDataEnabled && mStatusBar != null) { + XposedHelpers.callMethod(mStatusBar, "animateCollapsePanels"); + } - Intent i = new Intent(ConnectivityServiceWrapper.ACTION_XPERIA_MOBILE_DATA_TOGGLE); - mContext.sendBroadcast(i); - return; + Intent i = new Intent(ConnectivityServiceWrapper.ACTION_XPERIA_MOBILE_DATA_TOGGLE); + mContext.sendBroadcast(i); + return; } - + Intent intent = new Intent(ConnectivityServiceWrapper.ACTION_SET_MOBILE_DATA_ENABLED); intent.putExtra(ConnectivityServiceWrapper.EXTRA_ENABLED, !mobileDataEnabled); mContext.sendBroadcast(intent); diff --git a/src/com/ceco/gm2/gravitybox/ModVolumePanel.java b/src/com/ceco/gm2/gravitybox/ModVolumePanel.java index 5037807534..bc3988645e 100644 --- a/src/com/ceco/gm2/gravitybox/ModVolumePanel.java +++ b/src/com/ceco/gm2/gravitybox/ModVolumePanel.java @@ -242,14 +242,14 @@ private static void updateVolumePanelMode() { View mDivider = (View) XposedHelpers.getObjectField(mVolumePanel, "mDivider"); if (mMoreButton != null) { - mMoreButton.setVisibility(mExpandable ? View.VISIBLE : View.GONE); - if (!mMoreButton.hasOnClickListeners()) { - mMoreButton.setOnClickListener((OnClickListener) mVolumePanel); - } + mMoreButton.setVisibility(mExpandable ? View.VISIBLE : View.GONE); + if (!mMoreButton.hasOnClickListeners()) { + mMoreButton.setOnClickListener((OnClickListener) mVolumePanel); + } } if (mDivider != null) { - mDivider.setVisibility(mExpandable ? View.VISIBLE : View.GONE); + mDivider.setVisibility(mExpandable ? View.VISIBLE : View.GONE); } XposedHelpers.setBooleanField(mVolumePanel, "mShowCombinedVolumes", mExpandable); diff --git a/src/com/ceco/gm2/gravitybox/Utils.java b/src/com/ceco/gm2/gravitybox/Utils.java index 8bb3a24173..1d78a97589 100644 --- a/src/com/ceco/gm2/gravitybox/Utils.java +++ b/src/com/ceco/gm2/gravitybox/Utils.java @@ -115,10 +115,10 @@ public static boolean isMtkDevice() { } public static boolean isXperiaDevice() { - if (mIsXperiaDevice != null) return mIsXperiaDevice; - - mIsXperiaDevice = Build.MANUFACTURER.equalsIgnoreCase("sony"); - return mIsXperiaDevice; + if (mIsXperiaDevice != null) return mIsXperiaDevice; + + mIsXperiaDevice = Build.MANUFACTURER.equalsIgnoreCase("sony"); + return mIsXperiaDevice; } public static boolean hasGeminiSupport() { @@ -134,7 +134,7 @@ public static boolean isWifiOnly(Context con) { try { ConnectivityManager cm = (ConnectivityManager) con.getSystemService( - Context.CONNECTIVITY_SERVICE); + Context.CONNECTIVITY_SERVICE); mIsWifiOnly = (cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE) == null); return mIsWifiOnly; } catch (Throwable t) { From 467a7b5c443b7160259bc12c64e03fc942eaa37b Mon Sep 17 00:00:00 2001 From: Roman Butok Date: Fri, 25 Oct 2013 14:48:58 +0300 Subject: [PATCH 013/255] Updated Russian translation --- res/values-ru/strings.xml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 37fce461d5..ea01977ef7 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -700,4 +700,24 @@ Расширять автоматически + + Кнопка Меню + Кнопка Домой + Кнопка Назад + Кнопка Недавние + Кнопки громкости + Другие настройки + Действие по долгому нажатию + Дейтсвие по одному нажатию + Действие по двойному касанию + + + Отключить двойное касание + + + Режим цвета сигнала + Использовать иконки GB (с поддержкой уровня) + Использовать станд. иконки (без поддержки уровня) + Не применять цвет + From 7027616068b12b4e0b8cd1ef75e527ca6695e422 Mon Sep 17 00:00:00 2001 From: liveasx Date: Fri, 25 Oct 2013 20:23:03 +0800 Subject: [PATCH 014/255] Update strings.xml --- res/values-zh-rCN/strings.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index eda0bb1370..b9675141af 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -710,5 +710,14 @@ 长按动作 单按动作 双击动作 + + + 禁用双击 + + + 信号色彩模式 + 使用GravityBox图标 (有信号等级) + 使用stock图标 (无信号等级) + 不使用颜色 From fd617586065ebe0adc88a0462b96217e49208086 Mon Sep 17 00:00:00 2001 From: Eric850130 Date: Fri, 25 Oct 2013 22:30:33 +0800 Subject: [PATCH 015/255] Update strings.xml Traditional Chinese(Taiwan)translation updated --- res/values-zh-rTW/strings.xml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index 589bf07568..a274d52a97 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -694,5 +694,25 @@ 自動展開音量面板 + + + 選單鍵 + Home 鍵 + 返回鍵 + 近期鍵 + 音量鍵 + 其他設定 + 長按操作 + 單擊操作 + 雙擊操作 + + + 停用雙擊操作 + + + 訊號顏色模式 + 使用 GravityBox 圖示 (有支援訊號等級) + 使用預設圖示 (沒有支援訊號等級) + 不要套用顏色 From c42a03529fc89414c223121841732747af60c224 Mon Sep 17 00:00:00 2001 From: Bruno Martins Date: Fri, 25 Oct 2013 18:34:59 +0100 Subject: [PATCH 016/255] Updated Portuguese (PT) translation --- res/values-pt-rPT/strings.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index 82092bc0b3..c6a781d15a 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -696,4 +696,13 @@ Ação após pressão Ação após dupla pressão + + Desativar dupla pressão + + + Modo de coloração indicadores de sinal + Aplicar com indicadores do GravityBox (com indicação do nível de sinal) + Aplicar com indicadores padrão (sem indicação do nível de sinal) + Não aplicar coloração + From 3009ecab28e8c3b89de9d22f0afad64c66987697 Mon Sep 17 00:00:00 2001 From: Bruno Martins Date: Fri, 25 Oct 2013 20:50:20 +0100 Subject: [PATCH 017/255] Updated Spanish translation --- res/values-es/strings.xml | 54 ++++++++++++++++++++++++++------------- 1 file changed, 36 insertions(+), 18 deletions(-) diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 42d104780c..ab91b831ca 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -125,8 +125,8 @@ Habilita las opciones avanzadas de desarrolador (requiere reinicio) - Personalización de la barra de estado - Personalizaciones varias de la barra de estado + Ajustes de la barra de estado + Contiene diversos ajustes relacionados a la barra de estado Personalizaciones varias Personalizaciones que no tienen cabida en otras categorias Parches generales @@ -158,8 +158,8 @@ Permite configurar el tono de llamada y de notificación para cada SIM por separado - Configuración de la pantalla de bloqueo - Configuraciones varias de la pantalla de bloqueo + Ajustes de la pantalla de bloqueo + Contiene diversos ajustes relacionados con la pantalla de bloqueo Color de fondo de la pantalla de bloqueo Color de fondo Imagen de fondo por defecto @@ -176,15 +176,15 @@ Cuando está habilitado, los Widgets de la pantalla de bloqueo serán maximizados por defecto - Opciones de energía - Contiene varias opciones relacionadas con el uso de la energía + Ajustes de energía + Contiene diversos ajustes relacionados con el uso de la energía Deshabilitar el parpadeo del LED de notificaciones Deshabilita el LED de notificaciones cuando queda poca carga en la batería y no se está cargando - Mostrar ajustes + Ajustes de visualización Contiene diversos ajustes de visualización @@ -241,19 +241,19 @@ Acciones teclas de hardware Permite configurar acciones personalizadas en las teclas de hardware - Menú tecla larga pulsación - Menú tecla de acción doble toque - Acccion larga pulsación en tecla atras + Acción para pulsación larga en la tecla Menú + Acción para doble pulsación en la tecla Menú + Acción para pulsación larga en la tecla Atras Por defecto Buscar Búsqueda por voz Cambiar a la aplicación anterior Matar aplicación en primer plano Ir a dormir - retraso en matar app con larga pulsación + Retraso en matar app con pulsación larga Aplica para matar la acción aplicación en primer plano. Definido por cuánto retraso para matar la app Velocidad de doble pulsación - Se aplica a Menú tecla de acción doble toque. Define cómo debe ser aprovechado teclas de acceso rápido para activar la doble pulsación + Se aplica a la acción doble pulsación en la tecla Menú. Define cómo debe ser aprovechado teclas de acceso rápido para activar la doble pulsación %s matada "No hay nada para matar" Aplicación previa no encontrada @@ -307,8 +307,8 @@ Izquierda - Desactivar despertar con teclas de volumen - Para dispositivos como Jiayu G3, G4, donde las teclas de volumen encienden la pantalla + Desactivar despertar + Para dispositivos donde las teclas de volumen encienden la pantalla Colores de la barra de estado @@ -386,7 +386,7 @@ Deshabilitar teclas de hardware - Deshabilitados botones MENU, BACK, HOME mientras que los controles PIE están habilitados. Acciones con los botones de hardware seguirán funcionando. + Deshabilitadas las teclas Menú, Atras, Home mientras que los controles PIE están habilitados. Acciones con las teclas de hardware seguirán funcionando. Usar Dark theme Holo @@ -469,7 +469,7 @@ Mostrar apps recientes - Acción para pulsación larga boton HOME + Acción para pulsación larga en la tecla Home Ejecutar app personalizada 1 @@ -512,8 +512,8 @@ El escritorio expandido está desactivado - Ajustes barra de notificación - Continene ajustes relacionados a la barra de notificación + Ajustes de la barra de notificación + Contiene diversos ajustes relacionados a la barra de notificación Ignorar ajustes del sistema por defecto Switch principal de ajustes de barra de notificación (requiere reiniciar) Habilitar barra de navegación @@ -583,5 +583,23 @@ Cuando el escritorio expandido este activado Cuando el escritorio expandido oculte la barra de navegación + + Acción para pulsación individual en la tecla Multitarea + Acción para pulsación larga en la tecla Multitarea + + + Tecla Menú + Tecla Home + Tecla atras + Tecla Multitarea + Teclas de volumen + Otros ajustes + Acción para pulsación larga + Acción para pulsación individual + Acción para doble pulsación + + + Deshabilitar doble pulsación + \ No newline at end of file From 28c248cde6ef60c1eeb1c76d3417eee4b0dbacab Mon Sep 17 00:00:00 2001 From: Bruno Martins Date: Fri, 25 Oct 2013 22:29:41 +0100 Subject: [PATCH 018/255] Updated Portuguese (BR) translation --- res/values-pt/strings.xml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 1149847149..877100690f 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -1,5 +1,5 @@ - + GravityBox @@ -10,8 +10,8 @@ Texto de porcentagem com icone padrão Nenhum - Teclas de Volume trocam de faixa - Talcas de volume trocam de faixa após uma longa pressionada com a tela desligada + Teclas de volume trocam de faixa + Teclas de volume trocam de faixa após uma longa pressionada com a tela desligada Aviso de baixa bateria Sons e \"Pop-up\" @@ -19,35 +19,35 @@ Somente sons Desligado - Mudanças serão aplicadas após reiniciar o celular. + Mudanças serão aplicadas após reiniciar o dispositivo. Esconder automaticamente os icones de sinal Esconder o icone de sinal para o slot SIM escolhido quando este não estiver inserido. Desabilita notificações de \"SIM não inserido\" Esconder automaticamente SIM Slot 1 Esconder automaticamente SIM Slot 2 Desabilitar notificações - Notificações \"SIM não inseirdo\" desabilitadas + Notificações \"SIM não inserido\" desabilitadas Menu de Desligar avançado Adiciona opções para reiniciar em modo de recuperação ao menu de desligar Recuperação Bootloader - Tecla de volume controla cursor + Teclas de volume controlam cursor As teclas de volume controlam o cursor em campos de texto Desabilitado - Teclas de Volume Cima/Baixo movem o cursor esquerda/direita - Volume cima/baixo movem o cursor direita/esquerda + Teclas de volume +/- movem o cursor para a esquerda/direita + Teclas de volume +/- movem o cursor para a direita/esquerda Limpar todas as tarefas recentes - Habilitar o botão de limpar tudas as tarefas recentes de uma vez na janela de tarefas recentes + Habilitar o botão de limpar todas as tarefas recentes de uma vez na janela de tarefas recentes Ajustar erro de Data&Hora Habilitar esta opção caso esteja tendo problema ao acessar a opção de Data&Hora nas configurações (necessário reiniciar) Corrigir contatos em ligação Habilitar caso um contato não seja reconhecido quando recebendo uma ligação (necessário reiniciar) - Após reiniciar, você deve limpar e readicionar seus contatos para ter efeito! Para tal, vá em Ajustes / Aplicações / Todos. Para limpar os dados do Provedor de Contatos. + Após reiniciar, você deve limpar e readicionar seus contatos para ter efeito! Para tal, vá em \"Ajustes / Aplicativos / Todos\" para limpar os dados do Armazenamento de contatos. Corrigir contatos em mensagem Habilitar caso tenha problemas de conversas divididas em varios tópicos do mesmo contato (necessário reiniciar) @@ -108,12 +108,12 @@ Desbloqueia as configurações avançadas de desenvolvedor nas configurações (necessário reiniciar) - Ajustes na Barra de Status - Contém diversos ajustes para a barra de status + Ajustes da Barra de Status + Contém diversos ajustes relacionados com a Barra de status Ajustes diversos Contém todos os ajustes que não são classificados numa categoria específica - Ajustes Gerais - Contém correções gerais para MTK6589. Use somente se necessário!. + Ajustes gerais + Contém correções gerais para MTK6589. Use somente se necessário! Sobre From 4aabcd1c0beb1961a54f58776e40d70fdbb104bc Mon Sep 17 00:00:00 2001 From: C3C0 Date: Fri, 25 Oct 2013 23:34:34 +0200 Subject: [PATCH 019/255] PhoneWindowManager: prevent potential soft reboots in case of incompatibility --- src/com/ceco/gm2/gravitybox/ModHwKeys.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/ModHwKeys.java b/src/com/ceco/gm2/gravitybox/ModHwKeys.java index b0cd9357b2..3d3b59e312 100644 --- a/src/com/ceco/gm2/gravitybox/ModHwKeys.java +++ b/src/com/ceco/gm2/gravitybox/ModHwKeys.java @@ -192,16 +192,26 @@ public void onReceive(Context context, Intent intent) { intent.hasExtra(GravityBoxSettings.EXTRA_PIE_HWKEYS_DISABLE)) { mHwKeysEnabled = !intent.getBooleanExtra(GravityBoxSettings.EXTRA_PIE_HWKEYS_DISABLE, false); } else if (action.equals(ACTION_SCREENSHOT) && mPhoneWindowManager != null) { - XposedHelpers.callMethod(mPhoneWindowManager, "takeScreenshot"); + try { + XposedHelpers.callMethod(mPhoneWindowManager, "takeScreenshot"); + } catch (Throwable t) { + log("Error executing PhoneWindowManager.takeScreenshot(): " + t.getMessage()); + } } else if (action.equals(GravityBoxSettings.ACTION_PREF_DISPLAY_ALLOW_ALL_ROTATIONS_CHANGED)) { final boolean allowAllRotations = intent.getBooleanExtra( GravityBoxSettings.EXTRA_ALLOW_ALL_ROTATIONS, false); - if (mPhoneWindowManager != null) { + try { XposedHelpers.setIntField(mPhoneWindowManager, "mAllowAllRotations", allowAllRotations ? 1 : 0); + } catch (Throwable t) { + log("Error settings PhoneWindowManager.mAllowAllRotations: " + t.getMessage()); } } else if (action.equals(ACTION_SHOW_POWER_MENU) && mPhoneWindowManager != null) { - XposedHelpers.callMethod(mPhoneWindowManager, "showGlobalActionsDialog"); + try { + XposedHelpers.callMethod(mPhoneWindowManager, "showGlobalActionsDialog"); + } catch (Throwable t) { + log("Error executing PhoneWindowManager.showGlobalActionsDialog(): " + t.getMessage()); + } } } }; From de45e1cdf9086b3d2e06476230d45a93740db99f Mon Sep 17 00:00:00 2001 From: Bruno Martins Date: Fri, 25 Oct 2013 23:03:00 +0100 Subject: [PATCH 020/255] Identify MT8377 platform as MTK device --- src/com/ceco/gm2/gravitybox/Utils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/ceco/gm2/gravitybox/Utils.java b/src/com/ceco/gm2/gravitybox/Utils.java index 1d78a97589..62ea6c4584 100644 --- a/src/com/ceco/gm2/gravitybox/Utils.java +++ b/src/com/ceco/gm2/gravitybox/Utils.java @@ -55,7 +55,7 @@ public class Utils { // Supported MTK devices private static final Set MTK_DEVICES = new HashSet(Arrays.asList( - new String[] {"mt6572", "mt6575","mt6577","mt6589","mt8389"} + new String[] {"mt6572","mt6575","mt6577","mt8377","mt6589","mt8389"} )); private static void log(String message) { From eb0e9d037fa6447046f2277d1746e6a94570cb34 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sat, 26 Oct 2013 00:19:52 +0200 Subject: [PATCH 021/255] Make Xperia detection condition more tight --- src/com/ceco/gm2/gravitybox/Utils.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/com/ceco/gm2/gravitybox/Utils.java b/src/com/ceco/gm2/gravitybox/Utils.java index 62ea6c4584..221f41c8c8 100644 --- a/src/com/ceco/gm2/gravitybox/Utils.java +++ b/src/com/ceco/gm2/gravitybox/Utils.java @@ -117,7 +117,8 @@ public static boolean isMtkDevice() { public static boolean isXperiaDevice() { if (mIsXperiaDevice != null) return mIsXperiaDevice; - mIsXperiaDevice = Build.MANUFACTURER.equalsIgnoreCase("sony"); + mIsXperiaDevice = Build.MANUFACTURER.equalsIgnoreCase("sony") + && !isMtkDevice(); return mIsXperiaDevice; } From 52acb61841c885718c6296ceee3d225c71ed39f2 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sat, 26 Oct 2013 00:26:14 +0200 Subject: [PATCH 022/255] Version 2.6.5 --- AndroidManifest.xml | 4 ++-- CHANGELOG.txt | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index c76db34f14..cc220aa5b9 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -16,8 +16,8 @@ + android:versionCode="41" + android:versionName="2.6.5" > Date: Sat, 26 Oct 2013 09:43:13 +0200 Subject: [PATCH 023/255] Updated Hungarian translations (thanks to benjoe1) --- res/values-hu/strings.xml | 43 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml index 502b4222e3..6b3eef136d 100644 --- a/res/values-hu/strings.xml +++ b/res/values-hu/strings.xml @@ -403,7 +403,7 @@ Hardver gombok letiltása - Letiltja a MENU, BACK, HOME gombokat, ha a Pie Vezérlők engedélyezve vannak. A HW gombok műveletei működni fognak. (HW gombokkal ellátot eszközök esetén) + Letiltja a MENÜ, VISSZA, KEZDŐLAP gombokat, ha a Pie Vezérlők engedélyezve vannak. A HW gombok műveletei működni fognak. (HW gombokkal ellátot eszközök esetén) Holo Sötét téma használata @@ -486,7 +486,7 @@ Nemrég használt alkalmazások megjelenítése - Home gomb hosszú érintés művelete + Kezdőlap gomb hosszú érintés művelete Egyéni alkalmazás 1 indítása @@ -658,6 +658,7 @@ Pozíció Automatikus (középen vagy jobbra az óra pozíciójától függően) Balra + Jobbra Méret Normál Kisebb @@ -681,4 +682,42 @@ Fent Lent + + Nemrég használt alkalmazások gomb egyszeri érintés művelete + Nemrég használt alkalmazások gomb hosszú érintés művelete + + + Akkumlátor körív mutatása + Mutatja az akkumlátor állapot körívet a feloldó kör körül. + + + Zseblámpa ki-bekapcsolása + + + Zseblámpa bekapcsolása a kezdőlap gomb hosszú érintésével + Be-kikapcsolja a zseblámpát zárolt eszköznél. A képernyőnek bekapcsolva kell lennie, ha az eszközből gyárilag hiányzik az ébresztés kezdőlap gomb segítségével funkció. + + + Automatikus bővített panel + + + Menü gomb + Kezdőlap gomb + Vissza gomb + Nemrég használt alkalmazások gomb + Hangerő gombok + Egyéb beállítások + Hosszú érintés művelete + Egyszeri érintés művelete + Dupla érintés művelete + + + Dupla érintés letiltása + + + Jelszint ikon színezés mód + Használja a GravityBox ikonokat (jelerősség szint támogatással) + Használja a gyári ikonokat (jelerősség szint támogatás nélkül) + Nem alkalmaz színezést + From 8d70a8d45384041c6e2a0f3ab224f21f02be4e63 Mon Sep 17 00:00:00 2001 From: Noumi Ryoko Date: Sat, 26 Oct 2013 17:22:25 +0900 Subject: [PATCH 024/255] Fixed Japanese Translation Fixed one mistranslation, we can't set transparency in "Statusbar background color"... --- res/values-ja/strings.xml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index cdac158a33..10ff05891b 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -78,6 +78,10 @@ 展開中 常時点灯オン 常時点灯オフ + Wi-Fi + Wi-Fiオフ + 未接続 + オンにしています... ステータスバークイック設定タイル @@ -86,6 +90,7 @@ 機内モード バッテリー状態 Wi-Fi + Wi-Fi (CMスタイル) Bluetooth GPS GPS (CMスタイル) @@ -114,7 +119,7 @@ ステータスバー背景色 - ステータスバーの背景色と透過度を設定します。 + ステータスバーの背景色を設定します。 スピーチ設定の表示 @@ -642,6 +647,7 @@ 位置 自動(時計の位置に従う) + サイズ @@ -678,7 +684,7 @@ 端末をロックしているときにトーチのオンオフをします。ホームキーで画面をオンにする機能がない場合は画面をオンにしないといけません。 - 自動的に拡張 + 自動的に展開 メニューキー From 5f8c37f7231c2a373f23244537fb618c020bfdcd Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sat, 26 Oct 2013 20:33:14 +0200 Subject: [PATCH 025/255] Navigation Bar Application Launcher --- res/drawable-hdpi/ic_sysbar_apps.png | Bin 0 -> 634 bytes res/drawable-xhdpi/ic_sysbar_apps.png | Bin 0 -> 357 bytes res/layout/navbar_app_dialog.xml | 110 ++++++ res/values/strings.xml | 6 + res/xml/gravitybox.xml | 18 + .../gm2/gravitybox/GravityBoxSettings.java | 52 +++ .../ceco/gm2/gravitybox/KeyButtonView.java | 235 +++++++++++ .../ceco/gm2/gravitybox/ModNavigationBar.java | 371 +++++++++++++++++- 8 files changed, 788 insertions(+), 4 deletions(-) create mode 100644 res/drawable-hdpi/ic_sysbar_apps.png create mode 100644 res/drawable-xhdpi/ic_sysbar_apps.png create mode 100644 res/layout/navbar_app_dialog.xml create mode 100644 src/com/ceco/gm2/gravitybox/KeyButtonView.java diff --git a/res/drawable-hdpi/ic_sysbar_apps.png b/res/drawable-hdpi/ic_sysbar_apps.png new file mode 100644 index 0000000000000000000000000000000000000000..7cadbe840881a46ac354a04f610ca506ecf3095c GIT binary patch literal 634 zcmeAS@N?(olHy`uVBq!ia0vp^?m+Cx!N$PAD6yCOCy>Kl;_2(kewRy%+l-l8K~)tf z#981GSso9eo`c7&i8E|4C$JU|{0(ba4!+xb=4SMlWVZfws*` zO^lA0IJ{0}>*(Zc+3-Q~69<=Fv#Z>JbOE2I+Bev`wUZXMx^lHnIM(3%LByn^;@lyv z*@b!EixkV3|FoBQ_ATwx`%OD<-#(kGHC0Gh_?Y`K_LQ|sQ~#NV+4ufbntFic2-|9z zjYSDTMZ12iT-Il{`cB%@T_-ce?p8BA>DecEmRB<3`J?yhQ$zom*6E4d{qg75ip;i- zU8R20Z?C!Yku&vO4$u$vvadA-J}+;aDjfOIql4Y&u;u)?FI!f+m!(d1cRFVpc~xdV z*GIw2FGMeF|Li1q{lXrf??7EZFoVnNBwuSq^HYFetR z$ueJQcRzGrvTQxa zN2${*IW1@Fs80;)HC~#<1F-}`o{^gRwYgA6e!^{Uj{B3hP6_Il>&-1{PdV-MqxVgZ zNuG^V_LGw6rj{uaOg{Y$pT9x4;7#h{Eye*CGB(_8GMo6tDd+;n5ARc+W#YRIoPWu8 z!IE#8Wbw6=Yt>r5{(H`N_w{?ZUeO|H(VyPGRH_wv#ruy5S>BzN<#b9olPB$REkgt6 z!5PNf2IprMgLK|35VK0E%KbXWX|aD<vSF;ahmN s@Z37R_ZWMKqS`)?ifN70z(#J+F87=Jwp!3{rUb}%Pgg&ebxsLQ0DilRHvj+t literal 0 HcmV?d00001 diff --git a/res/layout/navbar_app_dialog.xml b/res/layout/navbar_app_dialog.xml new file mode 100644 index 0000000000..74056c112c --- /dev/null +++ b/res/layout/navbar_app_dialog.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/values/strings.xml b/res/values/strings.xml index 5a6218ca8c..4ccfec10a8 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -720,4 +720,10 @@ Use stock icons (without signal level support) Do not apply color + + Application launcher + Enable application launcher + Application slot %d + Application on long-press + diff --git a/res/xml/gravitybox.xml b/res/xml/gravitybox.xml index ea26c5d90a..845547eddd 100644 --- a/res/xml/gravitybox.xml +++ b/res/xml/gravitybox.xml @@ -569,6 +569,24 @@ android:title="@string/pref_navbar_enable_title" android:summary="@string/pref_navbar_enable_summary" /> + + + + + + + + + + PREF_KEY_NAVBAR_LAUNCHER_SLOT = new ArrayList(Arrays.asList( + "pref_navbar_launcher_slot0", "pref_navbar_launcher_slot1", "pref_navbar_launcher_slot2", + "pref_navbar_launcher_slot3", "pref_navbar_launcher_slot4", "pref_navbar_launcher_slot5", + "pref_navbar_launcher_slot6", "pref_navbar_launcher_slot7")); public static final String ACTION_PREF_NAVBAR_CHANGED = "gravitybox.intent.action.ACTION_NAVBAR_CHANGED"; public static final String EXTRA_NAVBAR_HEIGHT = "navbarHeight"; public static final String EXTRA_NAVBAR_HEIGHT_LANDSCAPE = "navbarHeightLandscape"; public static final String EXTRA_NAVBAR_WIDTH = "navbarWidth"; public static final String EXTRA_NAVBAR_MENUKEY = "navbarMenukey"; + public static final String EXTRA_NAVBAR_LAUNCHER_ENABLE = "navbarLauncherEnable"; + public static final String EXTRA_NAVBAR_LAUNCHER_SLOT = "navbarLauncherSlot"; + public static final String EXTRA_NAVBAR_LAUNCHER_APP = "navbarLauncherApp"; public static final String PREF_KEY_LOCKSCREEN_TARGETS_ENABLE = "pref_lockscreen_ring_targets_enable"; public static final String PREF_KEY_LOCKSCREEN_TARGETS_APP[] = new String[] { @@ -675,6 +685,10 @@ public static class PrefsFragment extends PreferenceFragment implements OnShared private CheckBoxPreference mPrefVolumePanelExpandable; private CheckBoxPreference mPrefVolumePanelAutoexpand; private CheckBoxPreference mPrefHomeDoubletapDisable; + private PreferenceScreen mPrefCatNavbarLauncher; + private CheckBoxPreference mPrefNavbarLauncherEnable; + private AppPickerPreference mPrefNavbarLauncherLongpress; + private AppPickerPreference[] mPrefNavbarLauncherSlot; @SuppressWarnings("deprecation") @Override @@ -820,6 +834,19 @@ public void onCreate(Bundle savedInstanceState) { mPrefNavbarHeightLandscape = (SeekBarPreference) findPreference(PREF_KEY_NAVBAR_HEIGHT_LANDSCAPE); mPrefNavbarWidth = (SeekBarPreference) findPreference(PREF_KEY_NAVBAR_WIDTH); mPrefNavbarMenukey = (CheckBoxPreference) findPreference(PREF_KEY_NAVBAR_MENUKEY); + mPrefCatNavbarLauncher = (PreferenceScreen) findPreference(PREF_CAT_KEY_NABAR_LAUNCHER); + mPrefNavbarLauncherEnable = (CheckBoxPreference) findPreference(PREF_KEY_NAVBAR_LAUNCHER_ENABLE); + mPrefNavbarLauncherLongpress = (AppPickerPreference) findPreference(PREF_KEY_NAVBAR_LAUNCHER_LONGPRESS); + mPrefNavbarLauncherSlot = new AppPickerPreference[PREF_KEY_NAVBAR_LAUNCHER_SLOT.size()]; + for (int i = 0; i < mPrefNavbarLauncherSlot.length; i++) { + AppPickerPreference appPref = new AppPickerPreference(getActivity(), null); + appPref.setKey(PREF_KEY_NAVBAR_LAUNCHER_SLOT.get(i)); + appPref.setTitle(String.format( + getActivity().getString(R.string.pref_navbar_launcher_slot_title), i + 1)); + appPref.setSummary(getActivity().getString(R.string.app_picker_none)); + mPrefNavbarLauncherSlot[i] = appPref; + mPrefCatNavbarLauncher.addPreference(mPrefNavbarLauncherSlot[i]); + } mPrefLockscreenTargetsApp = new AppPickerPreference[5]; for (int i=0; i<=4; i++) { @@ -1206,6 +1233,7 @@ private void updatePreferences(String key) { mPrefNavbarHeightLandscape.setEnabled(override && mPrefNavbarEnable.isChecked()); mPrefNavbarWidth.setEnabled(override && mPrefNavbarEnable.isChecked()); mPrefNavbarMenukey.setEnabled(override && mPrefNavbarEnable.isChecked()); + mPrefCatNavbarLauncher.setEnabled(override && mPrefNavbarEnable.isChecked()); } if (key == null || key.equals(PREF_KEY_LOCKSCREEN_TARGETS_ENABLE)) { @@ -1264,6 +1292,16 @@ private void updatePreferences(String key) { if (key == null || key.equals(PREF_KEY_STATUSBAR_SIGNAL_COLOR_MODE)) { mPrefSbSignalColorMode.setSummary(mPrefSbSignalColorMode.getEntry()); } + + if (key == null || key.equals(PREF_KEY_NAVBAR_LAUNCHER_ENABLE)) { + final int prefCount = mPrefCatNavbarLauncher.getPreferenceCount(); + for (int i = 0; i < prefCount; i++) { + final Preference p = mPrefCatNavbarLauncher.getPreference(i); + if (!p.getKey().equals(PREF_KEY_NAVBAR_LAUNCHER_ENABLE)) { + p.setEnabled(mPrefNavbarLauncherEnable.isChecked()); + } + } + } } @Override @@ -1506,6 +1544,20 @@ public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { } else if (key.equals(PREF_KEY_NAVBAR_MENUKEY)) { intent.setAction(ACTION_PREF_NAVBAR_CHANGED); intent.putExtra(EXTRA_NAVBAR_MENUKEY, prefs.getBoolean(PREF_KEY_NAVBAR_MENUKEY, false)); + } else if (key.equals(PREF_KEY_NAVBAR_LAUNCHER_ENABLE)) { + intent.setAction(ACTION_PREF_NAVBAR_CHANGED); + intent.putExtra(EXTRA_NAVBAR_LAUNCHER_ENABLE, + prefs.getBoolean(PREF_KEY_NAVBAR_LAUNCHER_ENABLE, false)); + } else if (key.equals(PREF_KEY_NAVBAR_LAUNCHER_LONGPRESS)) { + intent.setAction(ACTION_PREF_NAVBAR_CHANGED); + intent.putExtra(EXTRA_NAVBAR_LAUNCHER_SLOT, -1); + intent.putExtra(EXTRA_NAVBAR_LAUNCHER_APP, + prefs.getString(PREF_KEY_NAVBAR_LAUNCHER_LONGPRESS, null)); + } else if (PREF_KEY_NAVBAR_LAUNCHER_SLOT.contains(key)) { + intent.setAction(ACTION_PREF_NAVBAR_CHANGED); + intent.putExtra(EXTRA_NAVBAR_LAUNCHER_SLOT, + PREF_KEY_NAVBAR_LAUNCHER_SLOT.indexOf(key)); + intent.putExtra(EXTRA_NAVBAR_LAUNCHER_APP, prefs.getString(key, null)); } else if (key.equals(PREF_KEY_STATUSBAR_BRIGHTNESS)) { intent.setAction(ACTION_PREF_STATUSBAR_BRIGHTNESS_CHANGED); intent.putExtra(EXTRA_SB_BRIGHTNESS, prefs.getBoolean(PREF_KEY_STATUSBAR_BRIGHTNESS, false)); diff --git a/src/com/ceco/gm2/gravitybox/KeyButtonView.java b/src/com/ceco/gm2/gravitybox/KeyButtonView.java new file mode 100644 index 0000000000..7a6f5c0b17 --- /dev/null +++ b/src/com/ceco/gm2/gravitybox/KeyButtonView.java @@ -0,0 +1,235 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * Copyright (C) 2013 Peter Gregus for GravityBox Project (C3C076@xda) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.ceco.gm2.gravitybox; + +import de.robv.android.xposed.XposedBridge; +import android.animation.AnimatorSet; +import android.animation.ObjectAnimator; +import android.content.Context; +import android.content.res.Resources; +import android.graphics.drawable.Drawable; +import android.graphics.Canvas; +import android.graphics.RectF; +import android.os.SystemClock; +import android.view.HapticFeedbackConstants; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewConfiguration; +import android.widget.ImageView; + +public class KeyButtonView extends ImageView { + private static final String PACKAGE_NAME = "com.android.systemui"; + private static final String TAG = "GB:KeyButtonView"; + + final float GLOW_MAX_SCALE_FACTOR = 1.8f; + final float BUTTON_QUIESCENT_ALPHA = 0.70f; + + long mDownTime; + int mTouchSlop; + Drawable mGlowBG; + int mGlowWidth, mGlowHeight; + float mGlowAlpha = 0f, mGlowScale = 1f, mDrawingAlpha = 1f; + RectF mRect = new RectF(0f,0f,0f,0f); + AnimatorSet mPressedAnim; + Resources mResources; + boolean mLongPressConsumed; + + Runnable mCheckLongPress = new Runnable() { + public void run() { + if (isPressed()) { + mLongPressConsumed = performLongClick(); + } + } + }; + + public KeyButtonView(Context context) { + super(context); + + mResources = context.getResources(); + + mGlowBG = mResources.getDrawable(mResources.getIdentifier( + "ic_sysbar_highlight", "drawable", PACKAGE_NAME)); + if (mGlowBG != null) { + setDrawingAlpha(BUTTON_QUIESCENT_ALPHA); + mGlowWidth = mGlowBG.getIntrinsicWidth(); + mGlowHeight = mGlowBG.getIntrinsicHeight(); + } + + setClickable(true); + mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); + } + + @Override + protected void onDraw(Canvas canvas) { + if (mGlowBG != null) { + canvas.save(); + final int w = getWidth(); + final int h = getHeight(); + final float aspect = (float)mGlowWidth / mGlowHeight; + final int drawW = (int)(h*aspect); + final int drawH = h; + final int margin = (drawW-w)/2; + canvas.scale(mGlowScale, mGlowScale, w*0.5f, h*0.5f); + mGlowBG.setBounds(-margin, 0, drawW-margin, drawH); + mGlowBG.setAlpha((int)(mDrawingAlpha * mGlowAlpha * 255)); + mGlowBG.draw(canvas); + canvas.restore(); + mRect.right = w; + mRect.bottom = h; + } + super.onDraw(canvas); + } + + public float getDrawingAlpha() { + if (mGlowBG == null) return 0; + return mDrawingAlpha; + } + + @SuppressWarnings("deprecation") + public void setDrawingAlpha(float x) { + if (mGlowBG == null) return; + // Calling setAlpha(int), which is an ImageView-specific + // method that's different from setAlpha(float). This sets + // the alpha on this ImageView's drawable directly + setAlpha((int) (x * 255)); + mDrawingAlpha = x; + } + + public float getGlowAlpha() { + if (mGlowBG == null) return 0; + return mGlowAlpha; + } + + public void setGlowAlpha(float x) { + if (mGlowBG == null) return; + mGlowAlpha = x; + invalidate(); + } + + public float getGlowScale() { + if (mGlowBG == null) return 0; + return mGlowScale; + } + + @SuppressWarnings("unused") + public void setGlowScale(float x) { + if (mGlowBG == null) return; + mGlowScale = x; + final float w = getWidth(); + final float h = getHeight(); + if (GLOW_MAX_SCALE_FACTOR <= 1.0f) { + // this only works if we know the glow will never leave our bounds + invalidate(); + } else { + final float rx = (w * (GLOW_MAX_SCALE_FACTOR - 1.0f)) / 2.0f + 1.0f; + final float ry = (h * (GLOW_MAX_SCALE_FACTOR - 1.0f)) / 2.0f + 1.0f; + invalidateGlobalRegion( + this, + new RectF(getLeft() - rx, + getTop() - ry, + getRight() + rx, + getBottom() + ry)); + + // also invalidate our immediate parent to help avoid situations where nearby glows + // interfere + ((View)getParent()).invalidate(); + } + } + + public void setPressed(boolean pressed) { + if (mGlowBG != null) { + if (pressed != isPressed()) { + if (mPressedAnim != null && mPressedAnim.isRunning()) { + mPressedAnim.cancel(); + } + final AnimatorSet as = mPressedAnim = new AnimatorSet(); + if (pressed) { + if (mGlowScale < GLOW_MAX_SCALE_FACTOR) + mGlowScale = GLOW_MAX_SCALE_FACTOR; + if (mGlowAlpha < BUTTON_QUIESCENT_ALPHA) + mGlowAlpha = BUTTON_QUIESCENT_ALPHA; + setDrawingAlpha(1f); + as.playTogether( + ObjectAnimator.ofFloat(this, "glowAlpha", 1f), + ObjectAnimator.ofFloat(this, "glowScale", GLOW_MAX_SCALE_FACTOR) + ); + as.setDuration(50); + } else { + as.playTogether( + ObjectAnimator.ofFloat(this, "glowAlpha", 0f), + ObjectAnimator.ofFloat(this, "glowScale", 1f), + ObjectAnimator.ofFloat(this, "drawingAlpha", BUTTON_QUIESCENT_ALPHA) + ); + as.setDuration(500); + } + as.start(); + } + } + super.setPressed(pressed); + } + + public boolean onTouchEvent(MotionEvent ev) { + final int action = ev.getAction(); + int x, y; + + switch (action) { + case MotionEvent.ACTION_DOWN: + //Slog.d("KeyButtonView", "press"); + mDownTime = SystemClock.uptimeMillis(); + setPressed(true); + performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); + removeCallbacks(mCheckLongPress); + mLongPressConsumed = false; + postDelayed(mCheckLongPress, ViewConfiguration.getLongPressTimeout()); + break; + case MotionEvent.ACTION_MOVE: + x = (int)ev.getX(); + y = (int)ev.getY(); + setPressed(x >= -mTouchSlop + && x < getWidth() + mTouchSlop + && y >= -mTouchSlop + && y < getHeight() + mTouchSlop); + break; + case MotionEvent.ACTION_CANCEL: + setPressed(false); + removeCallbacks(mCheckLongPress); + break; + case MotionEvent.ACTION_UP: + final boolean doIt = isPressed() && !mLongPressConsumed; + setPressed(false); + if (doIt) { + performClick(); + } + removeCallbacks(mCheckLongPress); + break; + } + + return true; + } + + private static void invalidateGlobalRegion(View view, RectF childBounds) { + while (view.getParent() != null && view.getParent() instanceof View) { + view = (View) view.getParent(); + view.getMatrix().mapRect(childBounds); + view.invalidate((int) Math.floor(childBounds.left), + (int) Math.floor(childBounds.top), + (int) Math.ceil(childBounds.right), + (int) Math.ceil(childBounds.bottom)); + } + } +} diff --git a/src/com/ceco/gm2/gravitybox/ModNavigationBar.java b/src/com/ceco/gm2/gravitybox/ModNavigationBar.java index a4b9e617ac..ff50b9b22c 100644 --- a/src/com/ceco/gm2/gravitybox/ModNavigationBar.java +++ b/src/com/ceco/gm2/gravitybox/ModNavigationBar.java @@ -15,14 +15,35 @@ package com.ceco.gm2.gravitybox; +import java.util.ArrayList; +import java.util.List; + +import android.app.Dialog; import android.content.BroadcastReceiver; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.pm.ActivityInfo; +import android.content.pm.PackageManager; +import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.os.Handler; +import android.text.TextUtils.TruncateAt; +import android.util.TypedValue; +import android.view.Gravity; import android.view.KeyEvent; +import android.view.LayoutInflater; import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; import android.widget.ImageView.ScaleType; import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XSharedPreferences; @@ -32,6 +53,7 @@ public class ModNavigationBar { public static final String PACKAGE_NAME = "com.android.systemui"; private static final String TAG = "GB:ModNavigationBar"; + private static final String SEPARATOR = "#C3C0#"; private static final boolean DEBUG = false; private static final String CLASS_NAVBAR_VIEW = "com.android.systemui.statusbar.phone.NavigationBarView"; @@ -45,6 +67,18 @@ public class ModNavigationBar { private static int mRecentsLongpressAction = 0; private static int mHomeLongpressAction = 0; + // Application launcher + private static boolean mAppLauncherEnabled; + private static KeyButtonView mAppKey0; + private static KeyButtonView mAppKey90; + private static Dialog mDialog; + private static Handler mHandler; + private static AppInfo mAppLongpress; + private static List mAppSlots; + private static PackageManager mPm; + private static Context mGbContext; + private static Resources mResources; + private static void log(String message) { XposedBridge.log(TAG + ": " + message); } @@ -74,6 +108,18 @@ public void onReceive(Context context, Intent intent) { } } } + if (intent.hasExtra(GravityBoxSettings.EXTRA_NAVBAR_LAUNCHER_ENABLE)) { + mAppLauncherEnabled = intent.getBooleanExtra( + GravityBoxSettings.EXTRA_NAVBAR_LAUNCHER_ENABLE, false); + setAppKeyVisibility(mAppLauncherEnabled); + } + if (intent.hasExtra(GravityBoxSettings.EXTRA_NAVBAR_LAUNCHER_SLOT) && + intent.hasExtra(GravityBoxSettings.EXTRA_NAVBAR_LAUNCHER_APP)) { + int slot = intent.getIntExtra(GravityBoxSettings.EXTRA_NAVBAR_LAUNCHER_SLOT, -1); + String app = intent.getStringExtra(GravityBoxSettings.EXTRA_NAVBAR_LAUNCHER_APP); + if (DEBUG) log("appSlot=" + slot + "; app=" + app); + updateAppSlot(slot, app); + } } else if (intent.getAction().equals( GravityBoxSettings.ACTION_PREF_HWKEY_RECENTS_SINGLETAP_CHANGED)) { mRecentsSingletapAction = intent.getIntExtra(GravityBoxSettings.EXTRA_HWKEY_VALUE, 0); @@ -114,6 +160,33 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { Context context = (Context) param.args[0]; if (context == null) return; + mResources = context.getResources(); + mGbContext = context.createPackageContext( + GravityBox.PACKAGE_NAME, Context.CONTEXT_IGNORE_SECURITY); + mHandler = new Handler(); + mPm = context.getPackageManager(); + + mAppLauncherEnabled = prefs.getBoolean( + GravityBoxSettings.PREF_KEY_NAVBAR_LAUNCHER_ENABLE, false); + + mAppLongpress = new AppInfo(-1); + updateAppSlot(-1, prefs.getString( + GravityBoxSettings.PREF_KEY_NAVBAR_LAUNCHER_LONGPRESS, null)); + + mAppSlots = new ArrayList(); + mAppSlots.add(new AppInfo(R.id.quickapp1)); + mAppSlots.add(new AppInfo(R.id.quickapp2)); + mAppSlots.add(new AppInfo(R.id.quickapp3)); + mAppSlots.add(new AppInfo(R.id.quickapp4)); + mAppSlots.add(new AppInfo(R.id.quickapp5)); + mAppSlots.add(new AppInfo(R.id.quickapp6)); + mAppSlots.add(new AppInfo(R.id.quickapp7)); + mAppSlots.add(new AppInfo(R.id.quickapp8)); + for (int i = 0; i < GravityBoxSettings.PREF_KEY_NAVBAR_LAUNCHER_SLOT.size(); i++) { + updateAppSlot(i, prefs.getString( + GravityBoxSettings.PREF_KEY_NAVBAR_LAUNCHER_SLOT.get(i), null)); + } + mNavigationBarView = param.thisObject; IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(GravityBoxSettings.ACTION_PREF_NAVBAR_CHANGED); @@ -136,10 +209,11 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { XposedHelpers.findAndHookMethod(navbarViewClass, "onFinishInflate", new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { - final Resources res = ((View) param.thisObject).getContext().getResources(); - final int backButtonResId = res.getIdentifier("back", "id", PACKAGE_NAME); - final int recentAppsResId = res.getIdentifier("recent_apps", "id", PACKAGE_NAME); - final int homeButtonResId = res.getIdentifier("home", "id", PACKAGE_NAME); + final Context context = ((View) param.thisObject).getContext(); + final Resources gbRes = mGbContext.getResources(); + final int backButtonResId = mResources.getIdentifier("back", "id", PACKAGE_NAME); + final int recentAppsResId = mResources.getIdentifier("recent_apps", "id", PACKAGE_NAME); + final int homeButtonResId = mResources.getIdentifier("home", "id", PACKAGE_NAME); final View[] rotatedViews = (View[]) XposedHelpers.getObjectField(param.thisObject, "mRotatedViews"); @@ -170,6 +244,55 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { index++; } } + + // insert app key + ViewGroup vRot, navButtons; + LinearLayout.LayoutParams lp; + + // insert app key in rot0 view + vRot = (ViewGroup) ((ViewGroup) param.thisObject).findViewById( + mResources.getIdentifier("rot0", "id", PACKAGE_NAME)); + if (vRot != null) { + navButtons = (ViewGroup) vRot.findViewById( + mResources.getIdentifier("nav_buttons", "id", PACKAGE_NAME)); + mAppKey0 = new KeyButtonView(context); + lp = new LinearLayout.LayoutParams( + (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, + mResources.getDisplayMetrics()), + LinearLayout.LayoutParams.MATCH_PARENT); + lp.weight = 0; + mAppKey0.setLayoutParams(lp); + mAppKey0.setScaleType(ScaleType.FIT_CENTER); + mAppKey0.setClickable(true); + mAppKey0.setImageDrawable(gbRes.getDrawable(R.drawable.ic_sysbar_apps)); + mAppKey0.setOnClickListener(mAppKeyOnClickListener); + mAppKey0.setOnLongClickListener(mAppOnLongClick); + navButtons.removeViewAt(0); + navButtons.addView(mAppKey0, 0); + } + + // insert app key in rot90 view + vRot = (ViewGroup) ((ViewGroup) param.thisObject).findViewById( + mResources.getIdentifier("rot90", "id", PACKAGE_NAME)); + if (vRot != null) { + navButtons = (ViewGroup) vRot.findViewById( + mResources.getIdentifier("nav_buttons", "id", PACKAGE_NAME)); + mAppKey90 = new KeyButtonView(context); + lp = new LinearLayout.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, + mResources.getDisplayMetrics())); + lp.weight = 0; + mAppKey90.setLayoutParams(lp); + mAppKey90.setClickable(true); + mAppKey90.setImageDrawable(gbRes.getDrawable(R.drawable.ic_sysbar_apps)); + mAppKey90.setOnClickListener(mAppKeyOnClickListener); + mAppKey90.setOnLongClickListener(mAppOnLongClick); + navButtons.removeViewAt(navButtons.getChildCount() - 1); + navButtons.addView(mAppKey90); + } + + setAppKeyVisibility(mAppLauncherEnabled); updateRecentsKeyCode(); updateHomeKeyLongpressSupport(); } @@ -185,6 +308,19 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { } } }); + + XposedHelpers.findAndHookMethod(navbarViewClass, "setDisabledFlags", + int.class, boolean.class, new XC_MethodHook() { + @Override + protected void beforeHookedMethod(MethodHookParam param) throws Throwable { + boolean visible = mAppLauncherEnabled; + View v = (View) XposedHelpers.callMethod(param.thisObject, "getRecentsButton"); + if (v != null) { + visible &= v.getVisibility() == View.VISIBLE; + } + setAppKeyVisibility(visible); + } + }); } catch(Throwable t) { XposedBridge.log(t); } @@ -223,4 +359,231 @@ private static void updateHomeKeyLongpressSupport() { XposedBridge.log(t); } } + + private static void setAppKeyVisibility(boolean visible) { + final int visibility = visible ? View.VISIBLE : View.INVISIBLE; + if (mAppKey0 != null) { + mAppKey0.setVisibility(visibility); + } + if (mAppKey90 != null) { + mAppKey90.setVisibility(visibility); + } + } + + private static Runnable mDismissAppDialogRunnable = new Runnable() { + @Override + public void run() { + dismissAppDialog(); + } + }; + + private static boolean dismissAppDialog() { + boolean dismissed = false; + mHandler.removeCallbacks(mDismissAppDialogRunnable); + if (mDialog != null && mDialog.isShowing()) { + mDialog.dismiss(); + dismissed = true; + } + mDialog = null; + return dismissed; + } + + private static View.OnClickListener mAppKeyOnClickListener = new View.OnClickListener() { + @Override + public void onClick(View v) { + try { + if (dismissAppDialog()) { + return; + } + + LayoutInflater inflater = LayoutInflater.from(mGbContext); + View appv = inflater.inflate(R.layout.navbar_app_dialog, null); + View appRow1 = appv.findViewById(R.id.appRow1); + View appRow2 = appv.findViewById(R.id.appRow2); + View separator = appv.findViewById(R.id.separator); + int appCount = 0; + boolean appRow1Visible = false; + boolean appRow2Visible = false; + for (AppInfo ai : mAppSlots) { + TextView tv = (TextView) appv.findViewById(ai.getResId()); + if (ai.getValue() == null) { + tv.setVisibility(View.GONE); + continue; + } + + tv.setText(ai.getAppName()); + tv.setTextSize(1, 10); + tv.setMaxLines(2); + tv.setEllipsize(TruncateAt.END); + tv.setCompoundDrawablesWithIntrinsicBounds(null, ai.getAppIcon(), null, null); + tv.setClickable(true); + tv.setOnClickListener(mAppOnClick); + + appRow1Visible |= ai.getResId() == R.id.quickapp1 || ai.getResId() == R.id.quickapp2 || + ai.getResId() == R.id.quickapp3 || ai.getResId() == R.id.quickapp4; + appRow2Visible |= ai.getResId() == R.id.quickapp5 || ai.getResId() == R.id.quickapp6 || + ai.getResId() == R.id.quickapp7 || ai.getResId() == R.id.quickapp8; + + appCount++; + } + + if (appCount == 0) { + return; + } + + appRow1.setVisibility(appRow1Visible ? View.VISIBLE : View.GONE); + appRow2.setVisibility(appRow2Visible ? View.VISIBLE : View.GONE); + separator.setVisibility(appRow1Visible && appRow2Visible ? + View.VISIBLE : View.GONE); + + mDialog = new Dialog(v.getContext()); + mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + mDialog.setContentView(appv); + mDialog.setCanceledOnTouchOutside(true); + mDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL); + int pf = XposedHelpers.getIntField(mDialog.getWindow().getAttributes(), "privateFlags"); + pf |= 0x00000010; + XposedHelpers.setIntField(mDialog.getWindow().getAttributes(), "privateFlags", pf); + mDialog.getWindow().getAttributes().gravity = Gravity.BOTTOM; + mDialog.show(); + mHandler.postDelayed(mDismissAppDialogRunnable, 4000); + } catch (Throwable t) { + log("Error opening navbar app dialog: " + t.getMessage()); + } + } + }; + + private static View.OnClickListener mAppOnClick = new View.OnClickListener() { + @Override + public void onClick(View v) { + dismissAppDialog(); + + AppInfo aiProcessing = null; + try { + for(AppInfo ai : mAppSlots) { + aiProcessing = ai; + if (v.getId() == ai.getResId()) { + startActivity(v.getContext(), ai.getIntent()); + return; + } + } + aiProcessing = null; + } catch (Exception e) { + log("Unable to start activity: " + e.getMessage()); + if (aiProcessing != null) { + aiProcessing.initAppInfo(null); + } + } + } + }; + + private static View.OnLongClickListener mAppOnLongClick = new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (mAppLongpress.getValue() == null) { + return false; + } else { + try { + startActivity(v.getContext(), mAppLongpress.getIntent()); + return true; + } catch (Exception e) { + log("Unable to start activity: " + e.getMessage()); + mAppLongpress.initAppInfo(null); + return false; + } + } + } + }; + + private static void startActivity(Context context, Intent intent) { + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); + context.startActivity(intent); + } + + private static void updateAppSlot(int slot, String value) { + if (slot == -1) { + if (mAppLongpress.getValue() == null || + !mAppLongpress.getValue().equals(value)) { + mAppLongpress.initAppInfo(value); + } + } else { + AppInfo ai = mAppSlots.get(slot); + if (ai.getValue() == null || !ai.getValue().equals(value)) { + ai.initAppInfo(value); + } + } + } + + private static final class AppInfo { + private String mPackageName; + private String mClassName; + private String mAppName; + private Drawable mAppIcon; + private String mValue; + private int mResId; + + public AppInfo(int resId) { + mResId = resId; + } + + public int getResId() { + return mResId; + } + + public String getAppName() { + return (mAppName == null ? + mGbContext.getString(R.string.qs_tile_quickapp) : mAppName); + } + + public Drawable getAppIcon() { + return (mAppIcon == null ? + mResources.getDrawable(android.R.drawable.ic_menu_help) : mAppIcon); + } + + public String getValue() { + return mValue; + } + + public Intent getIntent() { + if (mPackageName == null || mClassName == null) return null; + + Intent i = new Intent(); + i.setClassName(mPackageName, mClassName); + return i; + } + + private void reset() { + mValue = mPackageName = mClassName = mAppName = null; + mAppIcon = null; + } + + public void initAppInfo(String value) { + mValue = value; + if (mValue == null) { + reset(); + return; + } + + try { + String[] splitValue = value.split(SEPARATOR); + mPackageName = splitValue[0]; + mClassName = splitValue[1]; + ComponentName cn = new ComponentName(mPackageName, mClassName); + ActivityInfo ai = mPm.getActivityInfo(cn, 0); + mAppName = ai.loadLabel(mPm).toString(); + Bitmap appIcon = ((BitmapDrawable)ai.loadIcon(mPm)).getBitmap(); + int sizePx = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, + mResources.getDisplayMetrics()); + Bitmap scaledIcon = Bitmap.createScaledBitmap(appIcon, sizePx, sizePx, true); + mAppIcon = new BitmapDrawable(mResources, scaledIcon); + if (DEBUG) log("AppInfo initialized for: " + getAppName()); + } catch (NameNotFoundException e) { + log("App not found: " + ((mPackageName == null) ? "NULL" : mPackageName.toString())); + reset(); + } catch (Exception e) { + log("Unexpected error: " + e.getMessage()); + reset(); + } + } + } } From 1d01c6f65a0ae8610103442d640c28beb116cca5 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sat, 26 Oct 2013 21:24:29 +0200 Subject: [PATCH 026/255] OngoingNotifPreference: prevent crash when reading drawable --- .../gm2/gravitybox/preference/OngoingNotifPreference.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/com/ceco/gm2/gravitybox/preference/OngoingNotifPreference.java b/src/com/ceco/gm2/gravitybox/preference/OngoingNotifPreference.java index 477fcafef9..215ee594c7 100644 --- a/src/com/ceco/gm2/gravitybox/preference/OngoingNotifPreference.java +++ b/src/com/ceco/gm2/gravitybox/preference/OngoingNotifPreference.java @@ -181,7 +181,11 @@ public Drawable getIconLeft() { } } - mIcon = res.getDrawable(mIconId); + try { + mIcon = res.getDrawable(mIconId); + } catch (Resources.NotFoundException nfe) { + // + } } return mIcon; From 2dfe7f1182b969f4d437d78740a7a6c07ed042e7 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sun, 27 Oct 2013 10:59:50 +0100 Subject: [PATCH 027/255] Make App launcher an independent unit Allows more generic use, e.g. can be set as hardware key action (to be implemented) or for additional navigation bar app launcher key, or anything else in the future. --- res/values/strings.xml | 13 +- res/xml/gravitybox.xml | 30 +- src/com/ceco/gm2/gravitybox/AppLauncher.java | 307 ++++++++++++++++++ .../gm2/gravitybox/GravityBoxSettings.java | 75 ++--- .../ceco/gm2/gravitybox/ModNavigationBar.java | 278 +--------------- .../preference/AppPickerPreference.java | 4 + 6 files changed, 372 insertions(+), 335 deletions(-) create mode 100644 src/com/ceco/gm2/gravitybox/AppLauncher.java diff --git a/res/values/strings.xml b/res/values/strings.xml index 4ccfec10a8..c8be7ebdeb 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -720,10 +720,13 @@ Use stock icons (without signal level support) Do not apply color - - Application launcher - Enable application launcher - Application slot %d - Application on long-press + + Application launcher + Dialog allowing to define up to 8 apps which can be assigned as HW Key Action or used as additional navigation bar key + Application slot %d + No apps assigned. Use GravityBox / Application launcher menu to assign apps. + + + Show app launcher key diff --git a/res/xml/gravitybox.xml b/res/xml/gravitybox.xml index 845547eddd..3ad89e0d9a 100644 --- a/res/xml/gravitybox.xml +++ b/res/xml/gravitybox.xml @@ -569,23 +569,10 @@ android:title="@string/pref_navbar_enable_title" android:summary="@string/pref_navbar_enable_summary" /> - - - - - - - - - + + + + + + + mAppSlots; + private View mAppView; + + private static void log(String message) { + XposedBridge.log(TAG + ": " + message); + } + + private Runnable mDismissAppDialogRunnable = new Runnable() { + @Override + public void run() { + dismissDialog(); + } + }; + + private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (DEBUG) log("Broadcast received: " + intent.toString()); + + if (intent.getAction().equals(GravityBoxSettings.ACTION_PREF_APP_LAUNCHER_CHANGED)) { + if (intent.hasExtra(GravityBoxSettings.EXTRA_APP_LAUNCHER_SLOT) && + intent.hasExtra(GravityBoxSettings.EXTRA_APP_LAUNCHER_APP)) { + int slot = intent.getIntExtra(GravityBoxSettings.EXTRA_APP_LAUNCHER_SLOT, -1); + String app = intent.getStringExtra(GravityBoxSettings.EXTRA_APP_LAUNCHER_APP); + if (DEBUG) log("appSlot=" + slot + "; app=" + app); + updateAppSlot(slot, app); + } + } + } + }; + + public AppLauncher(Context context, XSharedPreferences prefs) { + mContext = context; + mResources = mContext.getResources(); + try { + mGbContext = mContext.createPackageContext( + GravityBox.PACKAGE_NAME, Context.CONTEXT_IGNORE_SECURITY); + } catch (NameNotFoundException e) { + log("Error creating GB context: " + e.getMessage()); + } + mHandler = new Handler(); + mPm = mContext.getPackageManager(); + + mAppSlots = new ArrayList(); + mAppSlots.add(new AppInfo(R.id.quickapp1)); + mAppSlots.add(new AppInfo(R.id.quickapp2)); + mAppSlots.add(new AppInfo(R.id.quickapp3)); + mAppSlots.add(new AppInfo(R.id.quickapp4)); + mAppSlots.add(new AppInfo(R.id.quickapp5)); + mAppSlots.add(new AppInfo(R.id.quickapp6)); + mAppSlots.add(new AppInfo(R.id.quickapp7)); + mAppSlots.add(new AppInfo(R.id.quickapp8)); + + for (int i = 0; i < GravityBoxSettings.PREF_KEY_APP_LAUNCHER_SLOT.size(); i++) { + updateAppSlot(i, prefs.getString( + GravityBoxSettings.PREF_KEY_APP_LAUNCHER_SLOT.get(i), null)); + } + + IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(GravityBoxSettings.ACTION_PREF_APP_LAUNCHER_CHANGED); + mContext.registerReceiver(mBroadcastReceiver, intentFilter); + } + + public boolean dismissDialog() { + boolean dismissed = false; + mHandler.removeCallbacks(mDismissAppDialogRunnable); + if (mDialog != null && mDialog.isShowing()) { + mDialog.dismiss(); + dismissed = true; + } + return dismissed; + } + + public void showDialog() { + try { + if (dismissDialog()) { + return; + } + + if (mDialog == null) { + LayoutInflater inflater = LayoutInflater.from(mGbContext); + mAppView = inflater.inflate(R.layout.navbar_app_dialog, null); + mDialog = new Dialog(mContext); + mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + mDialog.setContentView(mAppView); + mDialog.setCanceledOnTouchOutside(true); + mDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL); + int pf = XposedHelpers.getIntField(mDialog.getWindow().getAttributes(), "privateFlags"); + pf |= 0x00000010; + XposedHelpers.setIntField(mDialog.getWindow().getAttributes(), "privateFlags", pf); + mDialog.getWindow().getAttributes().gravity = Gravity.BOTTOM; + } + + View appRow1 = mAppView.findViewById(R.id.appRow1); + View appRow2 = mAppView.findViewById(R.id.appRow2); + View separator = mAppView.findViewById(R.id.separator); + int appCount = 0; + boolean appRow1Visible = false; + boolean appRow2Visible = false; + for (AppInfo ai : mAppSlots) { + TextView tv = (TextView) mAppView.findViewById(ai.getResId()); + if (ai.getValue() == null) { + tv.setVisibility(View.GONE); + continue; + } + + tv.setText(ai.getAppName()); + tv.setTextSize(1, 10); + tv.setMaxLines(2); + tv.setEllipsize(TruncateAt.END); + tv.setCompoundDrawablesWithIntrinsicBounds(null, ai.getAppIcon(), null, null); + tv.setClickable(true); + tv.setOnClickListener(mAppOnClick); + + appRow1Visible |= ai.getResId() == R.id.quickapp1 || ai.getResId() == R.id.quickapp2 || + ai.getResId() == R.id.quickapp3 || ai.getResId() == R.id.quickapp4; + appRow2Visible |= ai.getResId() == R.id.quickapp5 || ai.getResId() == R.id.quickapp6 || + ai.getResId() == R.id.quickapp7 || ai.getResId() == R.id.quickapp8; + + appCount++; + } + + if (appCount == 0) { + Toast.makeText(mContext, mGbContext.getString(R.string.app_launcher_no_apps), + Toast.LENGTH_LONG).show(); + return; + } + + appRow1.setVisibility(appRow1Visible ? View.VISIBLE : View.GONE); + appRow2.setVisibility(appRow2Visible ? View.VISIBLE : View.GONE); + separator.setVisibility(appRow1Visible && appRow2Visible ? + View.VISIBLE : View.GONE); + + mDialog.show(); + mHandler.postDelayed(mDismissAppDialogRunnable, 4000); + } catch (Throwable t) { + log("Error opening app launcher dialog: " + t.getMessage()); + } + } + + private View.OnClickListener mAppOnClick = new View.OnClickListener() { + @Override + public void onClick(View v) { + dismissDialog(); + + AppInfo aiProcessing = null; + try { + for(AppInfo ai : mAppSlots) { + aiProcessing = ai; + if (v.getId() == ai.getResId()) { + startActivity(v.getContext(), ai.getIntent()); + return; + } + } + aiProcessing = null; + } catch (Exception e) { + log("Unable to start activity: " + e.getMessage()); + if (aiProcessing != null) { + aiProcessing.initAppInfo(null); + } + } + } + }; + + private void startActivity(Context context, Intent intent) { + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); + context.startActivity(intent); + } + + private void updateAppSlot(int slot, String value) { + AppInfo ai = mAppSlots.get(slot); + if (ai.getValue() == null || !ai.getValue().equals(value)) { + ai.initAppInfo(value); + } + } + + private final class AppInfo { + private String mPackageName; + private String mClassName; + private String mAppName; + private Drawable mAppIcon; + private String mValue; + private int mResId; + + public AppInfo(int resId) { + mResId = resId; + } + + public int getResId() { + return mResId; + } + + public String getAppName() { + return mAppName; + } + + public Drawable getAppIcon() { + return (mAppIcon == null ? + mResources.getDrawable(android.R.drawable.ic_menu_help) : mAppIcon); + } + + public String getValue() { + return mValue; + } + + public Intent getIntent() { + if (mPackageName == null || mClassName == null) return null; + + Intent i = new Intent(); + i.setClassName(mPackageName, mClassName); + return i; + } + + private void reset() { + mValue = mPackageName = mClassName = mAppName = null; + mAppIcon = null; + } + + public void initAppInfo(String value) { + mValue = value; + if (mValue == null) { + reset(); + return; + } + + try { + String[] splitValue = value.split(SEPARATOR); + mPackageName = splitValue[0]; + mClassName = splitValue[1]; + ComponentName cn = new ComponentName(mPackageName, mClassName); + ActivityInfo ai = mPm.getActivityInfo(cn, 0); + mAppName = ai.loadLabel(mPm).toString(); + Bitmap appIcon = ((BitmapDrawable)ai.loadIcon(mPm)).getBitmap(); + int sizePx = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, + mResources.getDisplayMetrics()); + Bitmap scaledIcon = Bitmap.createScaledBitmap(appIcon, sizePx, sizePx, true); + mAppIcon = new BitmapDrawable(mResources, scaledIcon); + if (DEBUG) log("AppInfo initialized for: " + getAppName()); + } catch (NameNotFoundException e) { + log("App not found: " + ((mPackageName == null) ? "NULL" : mPackageName.toString())); + reset(); + } catch (Exception e) { + log("Unexpected error: " + e.getMessage()); + reset(); + } + } + } +} diff --git a/src/com/ceco/gm2/gravitybox/GravityBoxSettings.java b/src/com/ceco/gm2/gravitybox/GravityBoxSettings.java index 8d54404490..9bbbd51e68 100644 --- a/src/com/ceco/gm2/gravitybox/GravityBoxSettings.java +++ b/src/com/ceco/gm2/gravitybox/GravityBoxSettings.java @@ -367,21 +367,13 @@ public class GravityBoxSettings extends Activity implements GravityBoxResultRece public static final String PREF_KEY_NAVBAR_HEIGHT_LANDSCAPE = "pref_navbar_height_landscape"; public static final String PREF_KEY_NAVBAR_WIDTH = "pref_navbar_width"; public static final String PREF_KEY_NAVBAR_MENUKEY = "pref_navbar_menukey"; - public static final String PREF_CAT_KEY_NABAR_LAUNCHER = "pref_cat_navbar_launcher"; public static final String PREF_KEY_NAVBAR_LAUNCHER_ENABLE = "pref_navbar_launcher_enable"; - public static final String PREF_KEY_NAVBAR_LAUNCHER_LONGPRESS = "pref_navbar_launcher_longpress"; - public static final List PREF_KEY_NAVBAR_LAUNCHER_SLOT = new ArrayList(Arrays.asList( - "pref_navbar_launcher_slot0", "pref_navbar_launcher_slot1", "pref_navbar_launcher_slot2", - "pref_navbar_launcher_slot3", "pref_navbar_launcher_slot4", "pref_navbar_launcher_slot5", - "pref_navbar_launcher_slot6", "pref_navbar_launcher_slot7")); public static final String ACTION_PREF_NAVBAR_CHANGED = "gravitybox.intent.action.ACTION_NAVBAR_CHANGED"; public static final String EXTRA_NAVBAR_HEIGHT = "navbarHeight"; public static final String EXTRA_NAVBAR_HEIGHT_LANDSCAPE = "navbarHeightLandscape"; public static final String EXTRA_NAVBAR_WIDTH = "navbarWidth"; public static final String EXTRA_NAVBAR_MENUKEY = "navbarMenukey"; public static final String EXTRA_NAVBAR_LAUNCHER_ENABLE = "navbarLauncherEnable"; - public static final String EXTRA_NAVBAR_LAUNCHER_SLOT = "navbarLauncherSlot"; - public static final String EXTRA_NAVBAR_LAUNCHER_APP = "navbarLauncherApp"; public static final String PREF_KEY_LOCKSCREEN_TARGETS_ENABLE = "pref_lockscreen_ring_targets_enable"; public static final String PREF_KEY_LOCKSCREEN_TARGETS_APP[] = new String[] { @@ -438,7 +430,15 @@ public class GravityBoxSettings extends Activity implements GravityBoxResultRece public static final String EXTRA_DT_ENABLE = "dtEnable"; public static final String EXTRA_DT_POSITION = "dtPosition"; public static final String EXTRA_DT_SIZE = "dtSize"; - + + public static final String PREF_CAT_KEY_APP_LAUNCHER = "pref_cat_app_launcher"; + public static final List PREF_KEY_APP_LAUNCHER_SLOT = new ArrayList(Arrays.asList( + "pref_app_launcher_slot0", "pref_app_launcher_slot1", "pref_app_launcher_slot2", + "pref_app_launcher_slot3", "pref_app_launcher_slot4", "pref_app_launcher_slot5", + "pref_app_launcher_slot6", "pref_app_launcher_slot7")); + public static final String ACTION_PREF_APP_LAUNCHER_CHANGED = "gravitybox.intent.action.APP_LAUNCHER_CHANGED"; + public static final String EXTRA_APP_LAUNCHER_SLOT = "appLauncherSlot"; + public static final String EXTRA_APP_LAUNCHER_APP = "appLauncherApp"; private static final List rebootKeys = new ArrayList(Arrays.asList( PREF_KEY_FIX_DATETIME_CRASH, @@ -685,10 +685,9 @@ public static class PrefsFragment extends PreferenceFragment implements OnShared private CheckBoxPreference mPrefVolumePanelExpandable; private CheckBoxPreference mPrefVolumePanelAutoexpand; private CheckBoxPreference mPrefHomeDoubletapDisable; - private PreferenceScreen mPrefCatNavbarLauncher; + private PreferenceScreen mPrefCatAppLauncher; private CheckBoxPreference mPrefNavbarLauncherEnable; - private AppPickerPreference mPrefNavbarLauncherLongpress; - private AppPickerPreference[] mPrefNavbarLauncherSlot; + private AppPickerPreference[] mPrefAppLauncherSlot; @SuppressWarnings("deprecation") @Override @@ -834,19 +833,7 @@ public void onCreate(Bundle savedInstanceState) { mPrefNavbarHeightLandscape = (SeekBarPreference) findPreference(PREF_KEY_NAVBAR_HEIGHT_LANDSCAPE); mPrefNavbarWidth = (SeekBarPreference) findPreference(PREF_KEY_NAVBAR_WIDTH); mPrefNavbarMenukey = (CheckBoxPreference) findPreference(PREF_KEY_NAVBAR_MENUKEY); - mPrefCatNavbarLauncher = (PreferenceScreen) findPreference(PREF_CAT_KEY_NABAR_LAUNCHER); mPrefNavbarLauncherEnable = (CheckBoxPreference) findPreference(PREF_KEY_NAVBAR_LAUNCHER_ENABLE); - mPrefNavbarLauncherLongpress = (AppPickerPreference) findPreference(PREF_KEY_NAVBAR_LAUNCHER_LONGPRESS); - mPrefNavbarLauncherSlot = new AppPickerPreference[PREF_KEY_NAVBAR_LAUNCHER_SLOT.size()]; - for (int i = 0; i < mPrefNavbarLauncherSlot.length; i++) { - AppPickerPreference appPref = new AppPickerPreference(getActivity(), null); - appPref.setKey(PREF_KEY_NAVBAR_LAUNCHER_SLOT.get(i)); - appPref.setTitle(String.format( - getActivity().getString(R.string.pref_navbar_launcher_slot_title), i + 1)); - appPref.setSummary(getActivity().getString(R.string.app_picker_none)); - mPrefNavbarLauncherSlot[i] = appPref; - mPrefCatNavbarLauncher.addPreference(mPrefNavbarLauncherSlot[i]); - } mPrefLockscreenTargetsApp = new AppPickerPreference[5]; for (int i=0; i<=4; i++) { @@ -879,6 +866,19 @@ public void onCreate(Bundle savedInstanceState) { mPrefDataTrafficPosition = (ListPreference) findPreference(PREF_KEY_DATA_TRAFFIC_POSITION); mPrefDataTrafficSize = (ListPreference) findPreference(PREF_KEY_DATA_TRAFFIC_SIZE); + mPrefCatAppLauncher = (PreferenceScreen) findPreference(PREF_CAT_KEY_APP_LAUNCHER); + mPrefAppLauncherSlot = new AppPickerPreference[PREF_KEY_APP_LAUNCHER_SLOT.size()]; + for (int i = 0; i < mPrefAppLauncherSlot.length; i++) { + AppPickerPreference appPref = new AppPickerPreference(getActivity(), null); + appPref.setKey(PREF_KEY_APP_LAUNCHER_SLOT.get(i)); + appPref.setTitle(String.format( + getActivity().getString(R.string.pref_app_launcher_slot_title), i + 1)); + appPref.setDefaultSummary(getActivity().getString(R.string.app_picker_none)); + appPref.setSummary(getActivity().getString(R.string.app_picker_none)); + mPrefAppLauncherSlot[i] = appPref; + mPrefCatAppLauncher.addPreference(mPrefAppLauncherSlot[i]); + } + // Remove Phone specific preferences on Tablet devices if (sSystemProperties.isTablet) { mPrefCatStatusbarQs.removePreference(mPrefAutoSwitchQs); @@ -1233,7 +1233,7 @@ private void updatePreferences(String key) { mPrefNavbarHeightLandscape.setEnabled(override && mPrefNavbarEnable.isChecked()); mPrefNavbarWidth.setEnabled(override && mPrefNavbarEnable.isChecked()); mPrefNavbarMenukey.setEnabled(override && mPrefNavbarEnable.isChecked()); - mPrefCatNavbarLauncher.setEnabled(override && mPrefNavbarEnable.isChecked()); + mPrefNavbarLauncherEnable.setEnabled(override && mPrefNavbarEnable.isChecked()); } if (key == null || key.equals(PREF_KEY_LOCKSCREEN_TARGETS_ENABLE)) { @@ -1292,16 +1292,6 @@ private void updatePreferences(String key) { if (key == null || key.equals(PREF_KEY_STATUSBAR_SIGNAL_COLOR_MODE)) { mPrefSbSignalColorMode.setSummary(mPrefSbSignalColorMode.getEntry()); } - - if (key == null || key.equals(PREF_KEY_NAVBAR_LAUNCHER_ENABLE)) { - final int prefCount = mPrefCatNavbarLauncher.getPreferenceCount(); - for (int i = 0; i < prefCount; i++) { - final Preference p = mPrefCatNavbarLauncher.getPreference(i); - if (!p.getKey().equals(PREF_KEY_NAVBAR_LAUNCHER_ENABLE)) { - p.setEnabled(mPrefNavbarLauncherEnable.isChecked()); - } - } - } } @Override @@ -1548,16 +1538,11 @@ public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { intent.setAction(ACTION_PREF_NAVBAR_CHANGED); intent.putExtra(EXTRA_NAVBAR_LAUNCHER_ENABLE, prefs.getBoolean(PREF_KEY_NAVBAR_LAUNCHER_ENABLE, false)); - } else if (key.equals(PREF_KEY_NAVBAR_LAUNCHER_LONGPRESS)) { - intent.setAction(ACTION_PREF_NAVBAR_CHANGED); - intent.putExtra(EXTRA_NAVBAR_LAUNCHER_SLOT, -1); - intent.putExtra(EXTRA_NAVBAR_LAUNCHER_APP, - prefs.getString(PREF_KEY_NAVBAR_LAUNCHER_LONGPRESS, null)); - } else if (PREF_KEY_NAVBAR_LAUNCHER_SLOT.contains(key)) { - intent.setAction(ACTION_PREF_NAVBAR_CHANGED); - intent.putExtra(EXTRA_NAVBAR_LAUNCHER_SLOT, - PREF_KEY_NAVBAR_LAUNCHER_SLOT.indexOf(key)); - intent.putExtra(EXTRA_NAVBAR_LAUNCHER_APP, prefs.getString(key, null)); + } else if (PREF_KEY_APP_LAUNCHER_SLOT.contains(key)) { + intent.setAction(ACTION_PREF_APP_LAUNCHER_CHANGED); + intent.putExtra(EXTRA_APP_LAUNCHER_SLOT, + PREF_KEY_APP_LAUNCHER_SLOT.indexOf(key)); + intent.putExtra(EXTRA_APP_LAUNCHER_APP, prefs.getString(key, null)); } else if (key.equals(PREF_KEY_STATUSBAR_BRIGHTNESS)) { intent.setAction(ACTION_PREF_STATUSBAR_BRIGHTNESS_CHANGED); intent.putExtra(EXTRA_SB_BRIGHTNESS, prefs.getBoolean(PREF_KEY_STATUSBAR_BRIGHTNESS, false)); diff --git a/src/com/ceco/gm2/gravitybox/ModNavigationBar.java b/src/com/ceco/gm2/gravitybox/ModNavigationBar.java index ff50b9b22c..a4f7fb4d2c 100644 --- a/src/com/ceco/gm2/gravitybox/ModNavigationBar.java +++ b/src/com/ceco/gm2/gravitybox/ModNavigationBar.java @@ -15,35 +15,17 @@ package com.ceco.gm2.gravitybox; -import java.util.ArrayList; -import java.util.List; - -import android.app.Dialog; import android.content.BroadcastReceiver; -import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.content.pm.ActivityInfo; -import android.content.pm.PackageManager; -import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Resources; -import android.graphics.Bitmap; -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.Drawable; -import android.os.Handler; -import android.text.TextUtils.TruncateAt; import android.util.TypedValue; -import android.view.Gravity; import android.view.KeyEvent; -import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.view.Window; -import android.view.WindowManager; import android.widget.ImageView; import android.widget.LinearLayout; -import android.widget.TextView; import android.widget.ImageView.ScaleType; import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XSharedPreferences; @@ -53,7 +35,6 @@ public class ModNavigationBar { public static final String PACKAGE_NAME = "com.android.systemui"; private static final String TAG = "GB:ModNavigationBar"; - private static final String SEPARATOR = "#C3C0#"; private static final boolean DEBUG = false; private static final String CLASS_NAVBAR_VIEW = "com.android.systemui.statusbar.phone.NavigationBarView"; @@ -67,17 +48,13 @@ public class ModNavigationBar { private static int mRecentsLongpressAction = 0; private static int mHomeLongpressAction = 0; - // Application launcher + // Application launcher key private static boolean mAppLauncherEnabled; private static KeyButtonView mAppKey0; private static KeyButtonView mAppKey90; - private static Dialog mDialog; - private static Handler mHandler; - private static AppInfo mAppLongpress; - private static List mAppSlots; - private static PackageManager mPm; - private static Context mGbContext; private static Resources mResources; + private static Context mGbContext; + private static AppLauncher mAppLauncher; private static void log(String message) { XposedBridge.log(TAG + ": " + message); @@ -113,13 +90,6 @@ public void onReceive(Context context, Intent intent) { GravityBoxSettings.EXTRA_NAVBAR_LAUNCHER_ENABLE, false); setAppKeyVisibility(mAppLauncherEnabled); } - if (intent.hasExtra(GravityBoxSettings.EXTRA_NAVBAR_LAUNCHER_SLOT) && - intent.hasExtra(GravityBoxSettings.EXTRA_NAVBAR_LAUNCHER_APP)) { - int slot = intent.getIntExtra(GravityBoxSettings.EXTRA_NAVBAR_LAUNCHER_SLOT, -1); - String app = intent.getStringExtra(GravityBoxSettings.EXTRA_NAVBAR_LAUNCHER_APP); - if (DEBUG) log("appSlot=" + slot + "; app=" + app); - updateAppSlot(slot, app); - } } else if (intent.getAction().equals( GravityBoxSettings.ACTION_PREF_HWKEY_RECENTS_SINGLETAP_CHANGED)) { mRecentsSingletapAction = intent.getIntExtra(GravityBoxSettings.EXTRA_HWKEY_VALUE, 0); @@ -154,6 +124,9 @@ public static void init(final XSharedPreferences prefs, final ClassLoader classL XposedBridge.log(nfe); } + mAppLauncherEnabled = prefs.getBoolean( + GravityBoxSettings.PREF_KEY_NAVBAR_LAUNCHER_ENABLE, false); + XposedBridge.hookAllConstructors(navbarViewClass, new XC_MethodHook() { @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { @@ -163,29 +136,8 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { mResources = context.getResources(); mGbContext = context.createPackageContext( GravityBox.PACKAGE_NAME, Context.CONTEXT_IGNORE_SECURITY); - mHandler = new Handler(); - mPm = context.getPackageManager(); - - mAppLauncherEnabled = prefs.getBoolean( - GravityBoxSettings.PREF_KEY_NAVBAR_LAUNCHER_ENABLE, false); - - mAppLongpress = new AppInfo(-1); - updateAppSlot(-1, prefs.getString( - GravityBoxSettings.PREF_KEY_NAVBAR_LAUNCHER_LONGPRESS, null)); - - mAppSlots = new ArrayList(); - mAppSlots.add(new AppInfo(R.id.quickapp1)); - mAppSlots.add(new AppInfo(R.id.quickapp2)); - mAppSlots.add(new AppInfo(R.id.quickapp3)); - mAppSlots.add(new AppInfo(R.id.quickapp4)); - mAppSlots.add(new AppInfo(R.id.quickapp5)); - mAppSlots.add(new AppInfo(R.id.quickapp6)); - mAppSlots.add(new AppInfo(R.id.quickapp7)); - mAppSlots.add(new AppInfo(R.id.quickapp8)); - for (int i = 0; i < GravityBoxSettings.PREF_KEY_NAVBAR_LAUNCHER_SLOT.size(); i++) { - updateAppSlot(i, prefs.getString( - GravityBoxSettings.PREF_KEY_NAVBAR_LAUNCHER_SLOT.get(i), null)); - } + + mAppLauncher = new AppLauncher(context, prefs); mNavigationBarView = param.thisObject; IntentFilter intentFilter = new IntentFilter(); @@ -266,7 +218,6 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { mAppKey0.setClickable(true); mAppKey0.setImageDrawable(gbRes.getDrawable(R.drawable.ic_sysbar_apps)); mAppKey0.setOnClickListener(mAppKeyOnClickListener); - mAppKey0.setOnLongClickListener(mAppOnLongClick); navButtons.removeViewAt(0); navButtons.addView(mAppKey0, 0); } @@ -287,7 +238,6 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { mAppKey90.setClickable(true); mAppKey90.setImageDrawable(gbRes.getDrawable(R.drawable.ic_sysbar_apps)); mAppKey90.setOnClickListener(mAppKeyOnClickListener); - mAppKey90.setOnLongClickListener(mAppOnLongClick); navButtons.removeViewAt(navButtons.getChildCount() - 1); navButtons.addView(mAppKey90); } @@ -370,220 +320,12 @@ private static void setAppKeyVisibility(boolean visible) { } } - private static Runnable mDismissAppDialogRunnable = new Runnable() { - @Override - public void run() { - dismissAppDialog(); - } - }; - - private static boolean dismissAppDialog() { - boolean dismissed = false; - mHandler.removeCallbacks(mDismissAppDialogRunnable); - if (mDialog != null && mDialog.isShowing()) { - mDialog.dismiss(); - dismissed = true; - } - mDialog = null; - return dismissed; - } - private static View.OnClickListener mAppKeyOnClickListener = new View.OnClickListener() { @Override public void onClick(View v) { - try { - if (dismissAppDialog()) { - return; - } - - LayoutInflater inflater = LayoutInflater.from(mGbContext); - View appv = inflater.inflate(R.layout.navbar_app_dialog, null); - View appRow1 = appv.findViewById(R.id.appRow1); - View appRow2 = appv.findViewById(R.id.appRow2); - View separator = appv.findViewById(R.id.separator); - int appCount = 0; - boolean appRow1Visible = false; - boolean appRow2Visible = false; - for (AppInfo ai : mAppSlots) { - TextView tv = (TextView) appv.findViewById(ai.getResId()); - if (ai.getValue() == null) { - tv.setVisibility(View.GONE); - continue; - } - - tv.setText(ai.getAppName()); - tv.setTextSize(1, 10); - tv.setMaxLines(2); - tv.setEllipsize(TruncateAt.END); - tv.setCompoundDrawablesWithIntrinsicBounds(null, ai.getAppIcon(), null, null); - tv.setClickable(true); - tv.setOnClickListener(mAppOnClick); - - appRow1Visible |= ai.getResId() == R.id.quickapp1 || ai.getResId() == R.id.quickapp2 || - ai.getResId() == R.id.quickapp3 || ai.getResId() == R.id.quickapp4; - appRow2Visible |= ai.getResId() == R.id.quickapp5 || ai.getResId() == R.id.quickapp6 || - ai.getResId() == R.id.quickapp7 || ai.getResId() == R.id.quickapp8; - - appCount++; - } - - if (appCount == 0) { - return; - } - - appRow1.setVisibility(appRow1Visible ? View.VISIBLE : View.GONE); - appRow2.setVisibility(appRow2Visible ? View.VISIBLE : View.GONE); - separator.setVisibility(appRow1Visible && appRow2Visible ? - View.VISIBLE : View.GONE); - - mDialog = new Dialog(v.getContext()); - mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - mDialog.setContentView(appv); - mDialog.setCanceledOnTouchOutside(true); - mDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL); - int pf = XposedHelpers.getIntField(mDialog.getWindow().getAttributes(), "privateFlags"); - pf |= 0x00000010; - XposedHelpers.setIntField(mDialog.getWindow().getAttributes(), "privateFlags", pf); - mDialog.getWindow().getAttributes().gravity = Gravity.BOTTOM; - mDialog.show(); - mHandler.postDelayed(mDismissAppDialogRunnable, 4000); - } catch (Throwable t) { - log("Error opening navbar app dialog: " + t.getMessage()); - } - } - }; - - private static View.OnClickListener mAppOnClick = new View.OnClickListener() { - @Override - public void onClick(View v) { - dismissAppDialog(); - - AppInfo aiProcessing = null; - try { - for(AppInfo ai : mAppSlots) { - aiProcessing = ai; - if (v.getId() == ai.getResId()) { - startActivity(v.getContext(), ai.getIntent()); - return; - } - } - aiProcessing = null; - } catch (Exception e) { - log("Unable to start activity: " + e.getMessage()); - if (aiProcessing != null) { - aiProcessing.initAppInfo(null); - } - } - } - }; - - private static View.OnLongClickListener mAppOnLongClick = new View.OnLongClickListener() { - @Override - public boolean onLongClick(View v) { - if (mAppLongpress.getValue() == null) { - return false; - } else { - try { - startActivity(v.getContext(), mAppLongpress.getIntent()); - return true; - } catch (Exception e) { - log("Unable to start activity: " + e.getMessage()); - mAppLongpress.initAppInfo(null); - return false; - } + if (mAppLauncher != null) { + mAppLauncher.showDialog(); } } }; - - private static void startActivity(Context context, Intent intent) { - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); - context.startActivity(intent); - } - - private static void updateAppSlot(int slot, String value) { - if (slot == -1) { - if (mAppLongpress.getValue() == null || - !mAppLongpress.getValue().equals(value)) { - mAppLongpress.initAppInfo(value); - } - } else { - AppInfo ai = mAppSlots.get(slot); - if (ai.getValue() == null || !ai.getValue().equals(value)) { - ai.initAppInfo(value); - } - } - } - - private static final class AppInfo { - private String mPackageName; - private String mClassName; - private String mAppName; - private Drawable mAppIcon; - private String mValue; - private int mResId; - - public AppInfo(int resId) { - mResId = resId; - } - - public int getResId() { - return mResId; - } - - public String getAppName() { - return (mAppName == null ? - mGbContext.getString(R.string.qs_tile_quickapp) : mAppName); - } - - public Drawable getAppIcon() { - return (mAppIcon == null ? - mResources.getDrawable(android.R.drawable.ic_menu_help) : mAppIcon); - } - - public String getValue() { - return mValue; - } - - public Intent getIntent() { - if (mPackageName == null || mClassName == null) return null; - - Intent i = new Intent(); - i.setClassName(mPackageName, mClassName); - return i; - } - - private void reset() { - mValue = mPackageName = mClassName = mAppName = null; - mAppIcon = null; - } - - public void initAppInfo(String value) { - mValue = value; - if (mValue == null) { - reset(); - return; - } - - try { - String[] splitValue = value.split(SEPARATOR); - mPackageName = splitValue[0]; - mClassName = splitValue[1]; - ComponentName cn = new ComponentName(mPackageName, mClassName); - ActivityInfo ai = mPm.getActivityInfo(cn, 0); - mAppName = ai.loadLabel(mPm).toString(); - Bitmap appIcon = ((BitmapDrawable)ai.loadIcon(mPm)).getBitmap(); - int sizePx = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, - mResources.getDisplayMetrics()); - Bitmap scaledIcon = Bitmap.createScaledBitmap(appIcon, sizePx, sizePx, true); - mAppIcon = new BitmapDrawable(mResources, scaledIcon); - if (DEBUG) log("AppInfo initialized for: " + getAppName()); - } catch (NameNotFoundException e) { - log("App not found: " + ((mPackageName == null) ? "NULL" : mPackageName.toString())); - reset(); - } catch (Exception e) { - log("Unexpected error: " + e.getMessage()); - reset(); - } - } - } } diff --git a/src/com/ceco/gm2/gravitybox/preference/AppPickerPreference.java b/src/com/ceco/gm2/gravitybox/preference/AppPickerPreference.java index 14f3d6baf6..82f5a37d36 100644 --- a/src/com/ceco/gm2/gravitybox/preference/AppPickerPreference.java +++ b/src/com/ceco/gm2/gravitybox/preference/AppPickerPreference.java @@ -147,6 +147,10 @@ protected void onSetInitialValue(boolean restoreValue, Object defaultValue) { } } + public void setDefaultSummary(String summary) { + mDefaultSummaryText = summary; + } + private void setData() { mAsyncTask = new AsyncTask() { @Override From 360f3b7d1134bd713a0eef493df53ecc7a2a5a1e Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sun, 27 Oct 2013 11:25:27 +0100 Subject: [PATCH 028/255] HW Key Actions: action to show application launcher --- res/values/arrays.xml | 2 ++ res/values/strings.xml | 3 +++ .../ceco/gm2/gravitybox/GravityBoxSettings.java | 1 + src/com/ceco/gm2/gravitybox/ModHwKeys.java | 17 +++++++++++++++++ 4 files changed, 23 insertions(+) diff --git a/res/values/arrays.xml b/res/values/arrays.xml index db9b3f0e12..12b609fd64 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -216,6 +216,7 @@ @string/hwkey_action_kill @string/hwkey_action_sleep @string/hwkey_action_recent_apps + @string/hwkey_action_app_launcher @string/hwkey_action_custom_app @string/hwkey_action_custom_app2 @string/hwkey_action_menu @@ -231,6 +232,7 @@ 4 5 6 + 12 7 8 9 diff --git a/res/values/strings.xml b/res/values/strings.xml index c8be7ebdeb..97ffa9273a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -729,4 +729,7 @@ Show app launcher key + + Show application launcher + diff --git a/src/com/ceco/gm2/gravitybox/GravityBoxSettings.java b/src/com/ceco/gm2/gravitybox/GravityBoxSettings.java index 9bbbd51e68..c805583187 100644 --- a/src/com/ceco/gm2/gravitybox/GravityBoxSettings.java +++ b/src/com/ceco/gm2/gravitybox/GravityBoxSettings.java @@ -241,6 +241,7 @@ public class GravityBoxSettings extends Activity implements GravityBoxResultRece public static final int HWKEY_ACTION_MENU = 9; public static final int HWKEY_ACTION_EXPANDED_DESKTOP = 10; public static final int HWKEY_ACTION_TORCH = 11; + public static final int HWKEY_ACTION_APP_LAUNCHER = 12; public static final int HWKEY_DOUBLETAP_SPEED_DEFAULT = 400; public static final int HWKEY_KILL_DELAY_DEFAULT = 1000; public static final String ACTION_PREF_HWKEY_MENU_LONGPRESS_CHANGED = "gravitybox.intent.action.HWKEY_MENU_LONGPRESS_CHANGED"; diff --git a/src/com/ceco/gm2/gravitybox/ModHwKeys.java b/src/com/ceco/gm2/gravitybox/ModHwKeys.java index 3d3b59e312..503bf10684 100644 --- a/src/com/ceco/gm2/gravitybox/ModHwKeys.java +++ b/src/com/ceco/gm2/gravitybox/ModHwKeys.java @@ -95,6 +95,7 @@ public class ModHwKeys { private static boolean mVolumeRockerWakeDisabled = false; private static boolean mHwKeysEnabled = true; private static XSharedPreferences mPrefs; + private static AppLauncher mAppLauncher; private static List mKillIgnoreList = new ArrayList(Arrays.asList( "com.android.systemui", @@ -500,6 +501,8 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { mStrCustomAppMissing = res.getString(R.string.hwkey_action_custom_app_missing); mStrExpandedDesktopDisabled = res.getString(R.string.hwkey_action_expanded_desktop_disabled); + mAppLauncher = new AppLauncher(mContext, mPrefs); + IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(GravityBoxSettings.ACTION_PREF_HWKEY_MENU_LONGPRESS_CHANGED); intentFilter.addAction(GravityBoxSettings.ACTION_PREF_HWKEY_MENU_DOUBLETAP_CHANGED); @@ -643,6 +646,8 @@ private static void performAction(HwKeyTrigger keyTrigger) { toggleExpandedDesktop(); } else if (action == GravityBoxSettings.HWKEY_ACTION_TORCH) { toggleTorch(); + } else if (action == GravityBoxSettings.HWKEY_ACTION_APP_LAUNCHER) { + showAppLauncher(); } } @@ -887,4 +892,16 @@ private static void toggleTorch() { log("Error toggling Torch: " + t.getMessage()); } } + + private static void showAppLauncher() { + Handler handler = (Handler) XposedHelpers.getObjectField(mPhoneWindowManager, "mHandler"); + if (handler == null || mAppLauncher == null) return; + + handler.post(new Runnable() { + @Override + public void run() { + mAppLauncher.showDialog(); + } + }); + } } \ No newline at end of file From d0862ba7b261d631a1e4dde169539b08a8415913 Mon Sep 17 00:00:00 2001 From: Bruno Martins Date: Sun, 27 Oct 2013 11:12:29 +0000 Subject: [PATCH 029/255] Updated SB background color summary - transparency is not set here anymore --- res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 97ffa9273a..eacbb3f1a7 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -134,7 +134,7 @@ Statusbar background color - Allows to set statusbar background color and transparency + Allows to set statusbar background color Fix speech settings From 9f3dfe152fca3c6784e590f8fd63d1ba9b789c44 Mon Sep 17 00:00:00 2001 From: Eric850130 Date: Sun, 27 Oct 2013 19:13:58 +0800 Subject: [PATCH 030/255] Update strings.xml Traditional Chinese (Taiwan) translation updated --- res/values-zh-rTW/strings.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index a274d52a97..a553b6440e 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -715,4 +715,13 @@ 使用預設圖示 (沒有支援訊號等級) 不要套用顏色 + + 應用程式啟動器 + 對話框允許最多8個應用程式分配到硬體按鍵操作上或是做為額外的海苔條按鍵 + 應用程式槽 %d + 沒有應用程式被分配. 使用 GravityBox / 程式啟動器選單來分配應用程式. + + + 顯示程式啟動器按鍵 + From 16a531889aa9705555abbe43f9a23776603148ea Mon Sep 17 00:00:00 2001 From: Bruno Martins Date: Sun, 27 Oct 2013 11:32:52 +0000 Subject: [PATCH 031/255] Updated Portuguese (PT) translation --- res/values-pt-rPT/strings.xml | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index c6a781d15a..80abbaa795 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -39,7 +39,7 @@ Teclas de volume +/- movem o cursor para a esquerda/direita Teclas de volume +/- movem o cursor para a direita/esquerda - Limpar todas as tarefas recentes + Limpar todas as aplicações recentes Corrigir problema nas definições de data e hora Selecionar caso tenha problemas ao aceder à configuração de data e hora nas definições do telefone (necessário reiniciar) @@ -94,7 +94,7 @@ Bluetooth GPS GPS (estilo CM) - Dados 3G + Dados móveis Modo de Rede Utilização de dados Perfis de áudio @@ -519,7 +519,7 @@ Ignorar predefinições de sistema Ativação global dos ajustes da Barra de Navegação (necessário reiniciar) Ativar Barra de Navegação - Necessário reiniciar + Permite ativar Barra de Navegação (necessário reiniciar) Altura da Barra de Navegação Aplicável à barra horizontal e orientação de ecrã vertical Aplicável à barra horizontal e orientação de ecrã horizontal @@ -662,14 +662,14 @@ %1$s livres %1$s utiliz. - Indicação RAM nas tarefas recentes + Indicação RAM nas aplicações recentes Desativada Topo superior Topo inferior - Ação após pressão da tecla Tarefas recentes - Ação ao manter pressionada a tecla Tarefas recentes + Ação após pressão da tecla Aplicações recentes + Ação ao manter pressionada a tecla Aplicações recentes Mostrar arco de bateria @@ -689,7 +689,7 @@ Tecla Menu Tecla Casa Tecla Atrás - Tecla Tarefas Recentes + Tecla Aplicações Recentes Teclas de volume Outras definições Ação ao manter pressionada @@ -705,4 +705,16 @@ Aplicar com indicadores padrão (sem indicação do nível de sinal) Não aplicar coloração + + Lançador de aplicações + Permite definir até 8 aplicações como ações para as teclas físicas ou para mostrar em botão adicional na Barra de Navegação + Aplicação posição %d + Nenhuma aplicação definida. Aceda a \"GravityBox / Lançador de aplicações\" para definir aplicações. + + + Mostrar botão Lançador aplicações + + + Mostrar lançador de aplicações + From 9c3195cbd7abacc0e462b9ff5d0d74f79573cc3c Mon Sep 17 00:00:00 2001 From: Bruno Martins Date: Sun, 27 Oct 2013 11:33:06 +0000 Subject: [PATCH 032/255] Updated Portuguese (BR) translation --- res/values-pt/strings.xml | 603 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 575 insertions(+), 28 deletions(-) diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 877100690f..5e1623ffb4 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -5,9 +5,9 @@ Estilo do indicador de bateria Indicador de bateria padrão - Indicador de bateria circular com porcentagem - Texto da porcentagem grande - Texto de porcentagem com icone padrão + Indicador de bateria circular + Indicador de bateria circular com porcentagem + Texto da porcentagem de bateria Nenhum Teclas de volume trocam de faixa @@ -39,11 +39,10 @@ Teclas de volume +/- movem o cursor para a esquerda/direita Teclas de volume +/- movem o cursor para a direita/esquerda - Limpar todas as tarefas recentes - Habilitar o botão de limpar todas as tarefas recentes de uma vez na janela de tarefas recentes + Limpar todos os aplicativos recentes - Ajustar erro de Data&Hora - Habilitar esta opção caso esteja tendo problema ao acessar a opção de Data&Hora nas configurações (necessário reiniciar) + Corrigir erro de Data e Hora + Habilitar esta opção caso esteja tendo problema ao acessar a opção de Data e hora nas configurações (necessário reiniciar) Corrigir contatos em ligação Habilitar caso um contato não seja reconhecido quando recebendo uma ligação (necessário reiniciar) @@ -62,42 +61,65 @@ Mostra a foto do contato em tela cheia quando recebe ligação - Sync On - Sync Off - Wi-Fi AP On - Wi-Fi AP Off - Torch On - Torch Off + Sinc. ativada + Sinc. desativada + PA Wi-Fi ativado + PA Wi-Fi desativado + Tocha ligada + Tocha desligada Toque para desligar + Tocando… + Gravando… + Gravado + Longa pressionada para gravar + Toque para parar gravação + Desativado + Normal + Expandido + Manter ligado + Não manter ligado + Wi-Fi + Wi-Fi desativado + Não conectado + Ligando... - Barra de Status Rápidas + Configurações rápidas na Barra de Status Habilitar escolher quais configurações rápidas visualizar Perfil do Usuário Modo Avião Status da Bateria Wi-Fi + Wi-Fi (estilo CM) Bluetooth GPS - Dados 3G + GPS (estilo CM) + Dados móveis Modo de Rede Uso de dados - Perfils de Audio + Perfis de áudio Brilho - Tempo Limite de Tela + Tempo limite de tela Auto rotação Sincronização - Wi-Fi Access Point + Ponto de Acesso Wi-Fi Tocha GravityBox + Dormir + Gravação rápida + Configurações + Volume + Ambiente de trabalho expandido + Manter ligado + Captura de tela - Escolha a Cor + Escolha a cor Pressione na cor para aplicar Cor do fundo da Barra de Status - Permite escolhe a cor e transparencia da cor do fundo + Permite escolhe a cor do fundo Corrigir configurações de fala @@ -134,20 +156,20 @@ Modo Engenharia - Roda os aplicativos em modo engenharia + Roda o aplicativo Modo Engenharia Toques para cada SIM - Roda o aplicativo que permite que cada cartão SIM tenha sons de toque e notificações específicas para cada cartão + Roda o aplicativo que permite configurar sons de toque e notificações específicas para cada cartão SIM - Ajustes na tela de bloqueio - Contém diversos ajustes na tela de bloqueio + Ajustes da tela de bloqueio + Contém diversos ajustes relacionados com a tela de bloqueio Fundo da tela de bloqueio Estilo do fundo - Papel de Parede padão + Papel de parede padrão Cor - Imagem Customizada + Imagem customizada Escolha a cor Permite escolher uma cor customizada para a tela de bloqueio Escolha uma imagem @@ -159,15 +181,540 @@ Quando habilitado, os widgets de tela de bloqueio serão maximizados por padrão - Ajustes de Bateria - Contém varios ajustes relacionados a bateria + Ajustes de energia + Contém diversos ajustes relacionados com a energia Desabilitar LED piscante Desabilitar o LED quando a bateria estiver baixa e não carregando + + Ajustes da tela + Contém diversos ajustes relacionados com a tela + + + Minimum brightness level + Allows to set minimum brightness level. Applies to manual brightness setting. (requires reboot) + + + Autobrightness levels + Allows to set ambient light levels and corresponding LCD backlight values + Level + Lux max + Brightness (%d – 255) + Specified number is not valid + It is not recommended to set brightness below %d + Brightness cannot be greater than 255 + Values cannot be lower or equal to zero + Values on lower levels cannot be greater than values on higher levels + Values on higher levels cannot be smaller than values on lower levels + Values for %s set + New autobrightness configuration saved + Autobrightness configuration was NOT saved + Set + + + Enable lockscreen rotation + WARNING: can swap unlock ring targets on some devices in case AOSP lockscreen has been modified by vendor + + + Enable menu key + Allows menu key to be used for quick-unlocking the device while on lockscreen (requires reboot) + + + Fix messaging wakelock + Prevents screen from turning on when new message arrives (requires reboot) + + + Centrar relógio + + + Media tweaks + Contains various tweaks for media and audio system + + + More music volume steps + Adds more volume steps for music stream (requires reboot) + + + Safe headset media volume + Activates or deactivates safe headset media volume feature + + + Disable charging LED + Disables LED while charging + + + Hardware key actions + Allows to set custom actions on hardware keys + Menu key long-press action + Menu key double-tap action + Back key long-press action + Default + Search + Voice search + Switch to previous app + Kill foreground app + Go to sleep + Kill app long-press delay + Applies to Kill foreground app action. Defines for how long key must be pressed to trigger kill + Double-tap speed + Applies to Menu key double-tap action. Defines how fast key must be tapped to trigger double-tap + %s killed + There\'s nothing to kill + No previous app found + + + Ajustes de telefone + Contém diversos ajustes relacionados com o telefone + + + Flip action while ringing + Allows to define action to be performed when device is flipped face down while ringing + Do nothing + Mute ringer + Dismiss call + + + Soft reboot + + + Solid black background + Use solid black background for default Holo system theme instead of black-grey gradient (requires reboot) + + + Tiles per row + Defines how many QuickSettings tiles to display per one row. Tiles will be resized accordingly. Applies to portrait mode. + + + Exibir dia da semana + + + Expandable volume panel + Enables expandable volume panel with ability to set volumes for different streams + + + Link ringtone & notifications volumes + When disabled, volumes for ringtone and notifications can be set independently + + + Auto-switch QuickSettings + QuickSettings will show automatically when status bar is pulled down while there are no notifications + + + Quick pulldown + Edge of the status bar pulls down QuickSettings + Desabilitado + Direita + Esquerda + + + Desabilitar ligação de tela + Para dispositivos onde as teclas de volume ligam inadvertidamente a tela + + + Cores da Barra de Status + + + Enable icon colors + + + Statusbar icon color + Sets color for statusbar icons and clock + + + Data activity color + Sets color for data activity indicators + + + QuickSettings management + + + Notification drawer style + + + Notification drawer background + Default background + Color fill + Custom image + Set background color + Set portrait image + Set landscape image + Background transparency + Background mode + Overlay + Underlay + + + Disable roaming indicators + When disabled, R indicator will not be visible while roaming. Use with caution. + + + A carregar (%d%%) + Carregado + %d%% restante + + + Fora de serviço + Modo de avião ativado + Apenas chamadas de emergência + + + Controles Pie + Ativar controles Pie + Exibir botão Pesquisa + Dimensão dos botões de navegação + Posições de ativação + Borda esquerda do ecrã + Borda inferior do ecrã + Borda direita do ecrã + Borda superior do ecrã + + + Button backlight mode + Default + Disable button backlight + Always on while screen is on + Button backlight notifications + EXPERIMENTAL! Blinks button backlight when there is a notification. Use in case your device lacks notification LED. May consume battery. + + + Hide navigation bar + Hides navigation bar while Pie Controls are enabled (for devices that have navigation bar, requires reboot) + + + Dithered Holo background + Replaces standard Holo background with dithered one to suppress color banding (requires reboot) + + + Disable hardware keys + Disables MENU, BACK, HOME while Pie Controls are enabled. HW keys actions will still work. (for devices having HW keys) + + + Use Holo Dark theme + Switches GB UI to use Holo Dark theme instead of Holo Light + + + Desabilitado + Canto superior esquerdo + Canto superior direito + Canto inferior esquerdo + Canto inferior direito + + + Ajustar margem superior + + + Disable roaming warnings + Disables roaming warnings when sending messages or making phone calls while roaming + + + Pesquise + (Nenhum) + + + Aplicativo rápido + Configurações do painel Aplicativo rápido + Aplicativo principal + Longa pressionada aplicativo posição 1 + Longa pressionada aplicativo posição 2 + Longa pressionada aplicativo posição 3 + Longa pressionada aplicativo posição 4 + + + GPS ativado + GPS desativado + GPS fixado + + + Exibir sempre botão Menu + + + Ringer mode + + + Configurações do relógio + + + Esconder AM/PM + + + Esconder relógio + + + Trigger size + + + Gerenciamento de transparências + Barra de Status no inicializador + Barra de Status na tela de bloqueio + Barra de Navegação no inicializador + Barra de Navegação na tela de bloqueio + + + Esconder indicador de alarme + + + Screen dim level + Amount of brightness for dim state - when screen is about to be turned off (requires reboot) + telefone tablet + + Brightness settings + Enable brightness settings + Use only in case your device supports standard Android brightness features. Keep disabled if you experience brightness related issues. (requires reboot) + + + Exibir aplicativos recentes + + + Home key long-press action + + + Lançar aplicativo 1 + Definir aplicativo 1 + Lançar aplicativo 2 + Definir aplicativo 2 + Nenhum aplicativo definido! + Aplicativo não encontrado! + + + Notification panel clock app + Links notification panel clock to a specified app instead of Date&Time settings + + + Waiting for response from GravityBox system framework… + GravityBox system framework not responding. Exiting. + + + National data roaming + Connect to data services when nationally roaming + + + Expanded desktop mode + Disabled + Hide statusbar + Hide navigation bar + Hide both + Expanded desktop + Expanded desktop is ON + Expanded desktop is OFF + + + Captura de tela + + + Exibir menu + + + Toggle expanded desktop + Expanded desktop mode is disabled! + + + Ajustes da Barra de Navegação + Contém diversos ajustes relacionados com a Barra de Navegação + Override system defaults + Master switch for navigation bar tweaks (requires reboot) + Enable navigation bar + Requires reboot + Navigation bar height + Applies to horizontal navigation bar and portrait orientation + Applies to horizontal navigation bar and landscape orientation + Navigation bar width + Applies to vertical navigation bar + Always show menu key + + + Captura de tela no Menu de Desligar + + + Unlock ring settings + Enable unlock ring targets + Master switch for unlock ring targets + Target application %s + Unlock ring vertical offset + Unlock ring horizontal offset + + + Enable brightness control + Adjusts brightness by sliding over statusbar (requires automatic brightness to be disabled) + + + Celular + Mensagens + Dados móveis + + + Strip unicode + Converts unicode characters to normal characters. Decreases overall message size. + Leave characters intact + Strip non-encodable characters + Strip all unicode characters + + + Disable slow 2G data warning + Disables warning about slow data speed when turning on mobile data in QuickSettings for SIM in 2G mode + + + Follow stock battery color + Makes statusbar clock, percentage and circle battery use the color of stock battery icon. Applies when icon coloring is off. + + + Network mode tile mode + 2G/2G+3G/3G/(LTE) + 2G/2G+3G/(LTE) + 2G/3G/(LTE) + + + Permitir todas as rotações + + + Override default tile behaviour + Overrides touch/long-touch behaviour for selected tiles (requires reboot) + + + Network mode tile SIM slot + Defines SIM slot to which network mode tile applies (%s) + SIM slot 1 + SIM slot 2 + + + Never + Always + When expanded desktop on + When expanded desktop hides navigation bar + + + Leave stock battery icon intact + Use in case stock battery icon was replaced with 3rd party battery mod + + + Unplug turns on screen + If enabled, the screen will come on when you plug/unplug usb/power/whatever (requires reboot) + + + Mute volume adjust sound + Disables sound played when adjusting volume using volume keys + + + Call vibrations + On call connected + On call disconnected + On call waiting + Every 45th second during outgoing call + + + Tile reordering + Allows reordering of QuickSettings tiles + + + Ongoing notification blocker + Allows blocking of selected ongoing notifications + The list will get populated automatically for every ongoing notification that occurs. + You can then decide whether to block ongoing notification next time it occurs. Use with caution. + Reset list + Are you sure you want to reset list? + This will clear current list and unblock all ongoing notifications previously blocked. + (list is empty) + + + Quick unlock + Unlock automatically when the correct PIN/password is entered + + + Desabilitado + Padrão + Maiúsculas + Minúsculas + + + Statusbar lock policy + Default + Unlocked if keyguard insecured + Locked + + + Data traffic monitor + Enable monitoring + Shows data traffic monitor automatically whenever data connection is active + Position + Auto (center or right depending on clock position) + Esquerda + Direita + Size + Normal + Smaller + Smallest + B + KB + MB + s + + + Disable widget limit + Allows unlimited number of lockscreen widgets + + + + %1$s livre + + %1$s usada + Indicação RAM nos aplicativos recentes + Desabilitado + Topo superior + Topo inferior + + + Recents key single-tap action + Recents key long-press action + + + Show battery arc + Shows battery status arc drawn around unlock ring handle + + + Comutar tocha + + + Torch on home key long-press + Toggles torch on/off when device locked. Screen has to be turned on if device lacks native wake by home key support. + + + Expandir automaticamente + + + Menu key + Home key + Back key + Recents key + Volume keys + Other settings + Long-press action + Single-tap action + Double-tap action + + + Disable double-tap + + + Signal color mode + Use GravityBox icons (with signal level support) + Use stock icons (without signal level support) + Do not apply color + + + Application launcher + Dialog allowing to define up to 8 apps which can be assigned as HW Key Action or used as additional navigation bar key + Application slot %d + No apps assigned. Use GravityBox / Application launcher menu to assign apps. + + + Show app launcher key + + + Show application launcher + From 2950d4c80cca71b7bffc1fec969c733616b621a4 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sun, 27 Oct 2013 12:39:35 +0100 Subject: [PATCH 033/255] Pie: turn Search key into multi-functional key Allows Search action or App launcher action --- res/values-ar/strings.xml | 1 - res/values-cs/strings.xml | 1 - res/values-de/strings.xml | 1 - res/values-es/strings.xml | 1 - res/values-fr/strings.xml | 1 - res/values-hu/strings.xml | 1 - res/values-in/strings.xml | 1 - res/values-it/strings.xml | 1 - res/values-ja/strings.xml | 1 - res/values-nl/strings.xml | 1 - res/values-pl/strings.xml | 1 - res/values-pt-rPT/strings.xml | 1 - res/values-ru/strings.xml | 1 - res/values-sk/strings.xml | 1 - res/values-tr/strings.xml | 1 - res/values-vi/strings.xml | 1 - res/values-zh-rCN/strings.xml | 1 - res/values-zh-rTW/strings.xml | 1 - res/values/arrays.xml | 12 ++++++ res/values/strings.xml | 7 +++- res/xml/gravitybox.xml | 10 +++-- .../gm2/gravitybox/GravityBoxSettings.java | 19 +++++++-- .../ceco/gm2/gravitybox/ModPieControls.java | 19 ++++++--- .../gm2/gravitybox/pie/PieController.java | 39 ++++++++++++++++--- 24 files changed, 87 insertions(+), 37 deletions(-) diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index 7c40911ee6..20aec51987 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -377,7 +377,6 @@ اعدادات Pie تفعيل اعدادات Pie - اضهار زر البحث حجم أزرار التنقل مواقع التشغيل يسار الشاشة diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index b969603aaf..20992a7245 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -360,7 +360,6 @@ Koláč Zapnout koláč - Povolit tlačítko hledání Velikost koláče Pozice koláče Levý okraj obrazovky diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 28e0284c0f..d437ecc7fb 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -362,7 +362,6 @@ Pie-Steuerung Aktiviere Pie-Steuerung - Suchschaltfläche anzeigen Größe der Navigationstasten Auslöse-Positionen linker Bildschirmrand diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index ab91b831ca..f63955b7ff 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -360,7 +360,6 @@ Controles Pie Habilitar controles Pie - Mostrar el botón de búsqueda Tamaño de las teclas de navegación Posiciones del disparador Borde izquierdo de la pantalla diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 1f5d13aa66..dc09b2c8ea 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -377,7 +377,6 @@ Touches flottantes Activer les touches flottantes - Afficher le bouton de recherche Taille des touches de navigation Positions du déclencheur À gauche diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml index 6b3eef136d..693960ebf5 100644 --- a/res/values-hu/strings.xml +++ b/res/values-hu/strings.xml @@ -377,7 +377,6 @@ Pie Vezérlők Pie Vezérlők engedélyezése - Keresés gomb mutatása Navigációs gomb méret Kioldógomb pozíció Bal oldali képernyőszél diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml index 391bc75fb2..fbb99802a5 100644 --- a/res/values-in/strings.xml +++ b/res/values-in/strings.xml @@ -376,7 +376,6 @@ Kontrol Pie Hidupkan kontrol Pie - Tampilkan tombol pencarian Ukuran tombol navigasi Posisi pemicu Batas kiri layar diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 72acd94fc3..4d92f2e318 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -350,7 +350,6 @@ Pie controls Abilita pie controls - Mostra bottone ricerca Grandezza tasto navigazione Posizione trigger Bordo sinistro schermo diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index 10ff05891b..79598e27ed 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -366,7 +366,6 @@ パイ操作 パイ操作を有効化 - 検索キーを表示 ナビキーのサイズ 起動位置 画面左端 diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index 5d668b5286..ee01f3c6d2 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -376,7 +376,6 @@ Pie controls Enable pie controls - Show search button Navigation key size Trigger positions Left screen border diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 4b44f0e4a6..a386f065e5 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -249,7 +249,6 @@ Tylko połączenia alarmowe Interfejs Kontroli Pie Włącz interfejs kontroli Pie - Pokaż przycisk wyszukiwania Wielkość klawisza nawigacji Pozycja aktywnej strefy Lewy margines ekranu diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index c6a781d15a..af12ba80b7 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -362,7 +362,6 @@ Controlos Pie Ativar controlos Pie - Mostrar botão Pesquisa Dimensão dos botões de navegação Posições de ativação Borda esquerda do ecrã diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index ea01977ef7..7f80998793 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -377,7 +377,6 @@ Веерное меню Включить веерное меню - Включить кнопку поиска Размер навигационных кнопок Позиция переключателей Левая граница diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index 94dd8bc9aa..2ff4cca09f 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -356,7 +356,6 @@ Koláč Zapnúť koláč - Povoliť tlačidlo hľadania Veľkosť koláča Pozície koláča Ľavý okraj obrazovky diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index f558621970..e66fd1c3cb 100755 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -376,7 +376,6 @@ Pasta dilimi kontrolleri Pasta dilimi kontrollerini etkinleştir - Arama düğmesini göster Gezinme tuşu boyutu Tetikleme konumu Sol ekran kenarı diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index 83dc9c6c6c..8556b346b3 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -371,7 +371,6 @@ Điều khiển Pie Cho phép - Hiện nút bấm tìm kiếm Kích thước khóa chuyển hướng Vị trí kích hoạt Viền màn hình trái diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index b9675141af..730fb6daa8 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -377,7 +377,6 @@ 虚拟键控制 启用Pie Controls虚拟键控制 - 显示搜索键 虚拟键大小 触发位置 屏幕左边缘 diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index a274d52a97..6dba5f282d 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -367,7 +367,6 @@ Pie 控制 啟用 Pie 控制 - 顯示搜尋按鍵 導航鍵大小 觸發位置 螢幕左邊緣 diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 12b609fd64..58cede7036 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -594,4 +594,16 @@ 2 + + @string/pie_custom_key_off + @string/pie_custom_key_search + @string/pie_custom_key_app_launcher + + + + 0 + 1 + 2 + + diff --git a/res/values/strings.xml b/res/values/strings.xml index 97ffa9273a..deee66827f 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -377,7 +377,6 @@ Pie controls Enable pie controls - Show search button Navigation key size Trigger positions Left screen border @@ -732,4 +731,10 @@ Show application launcher + + Show custom key + Disabled + Search + Application launcher + diff --git a/res/xml/gravitybox.xml b/res/xml/gravitybox.xml index 3ad89e0d9a..fbbab650e3 100644 --- a/res/xml/gravitybox.xml +++ b/res/xml/gravitybox.xml @@ -384,10 +384,12 @@ android:entryValues="@array/pie_controls_enable_values" android:defaultValue="0" /> - + Date: Sun, 27 Oct 2013 11:56:26 +0000 Subject: [PATCH 034/255] Updated Portuguese (PT) translation --- res/values-pt-rPT/strings.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index 1a4d386c5f..df41cf7a46 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -716,4 +716,10 @@ Mostrar lançador de aplicações + + Mostrar botão personalizado + Desativado + Pesquisa + Lançador de aplicações + From 69e614740ef85988fe9b2d0ae3853949280b853a Mon Sep 17 00:00:00 2001 From: Bruno Martins Date: Sun, 27 Oct 2013 11:56:37 +0000 Subject: [PATCH 035/255] Updated Portuguese (BR) translation --- res/values-pt/strings.xml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 5e1623ffb4..5b027ad408 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -362,7 +362,6 @@ Controles Pie Ativar controles Pie - Exibir botão Pesquisa Dimensão dos botões de navegação Posições de ativação Borda esquerda do ecrã @@ -712,9 +711,15 @@ No apps assigned. Use GravityBox / Application launcher menu to assign apps. - Show app launcher key + Exibir botão Lançador aplicativos - Show application launcher + Exibir lançador de aplicativos + + + Exibir botão customizado + Desabilitado + Pesquisa + Lançador de aplicativos From 8f850dd027e02af7860b9d5aee6857f8c884b998 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sun, 27 Oct 2013 17:43:53 +0100 Subject: [PATCH 036/255] Pie: add disable navigation key support for recents key and app launcher --- res/values-cs/strings.xml | 6 +++--- res/values-sk/strings.xml | 6 +++--- res/values/strings.xml | 6 +++--- src/com/ceco/gm2/gravitybox/ModHwKeys.java | 9 ++++++++- src/com/ceco/gm2/gravitybox/ModNavigationBar.java | 13 +++++++++++-- 5 files changed, 28 insertions(+), 12 deletions(-) diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index 20992a7245..ab6591bc34 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -383,9 +383,9 @@ Vyhlazené Holo pozadí Nahradí standardní Holo pozadí vyhlazeným obrázkem za účelem eliminace pruhů barevného přechodu (vyžaduje restart) - - Zablokovat HW tlačítka - Zablokuje MENU, ZPĚT, DOMŮ, pokud je zapnutý koláč. Akce HW tlačítek budou nadále fungovat (pro zařízení s HW tlačítky) + + Zablokovat navigační tlačítka + Zablokuje ťuknutí na tlačítka pokud je zapnutý koláč Použít tmavé téma diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index 2ff4cca09f..d23ea1adec 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -379,9 +379,9 @@ Vyhladené Holo pozadie Nahradí štandardné Holo pozadie vyhladeným obrázkom za účelom eliminácie pruhov farebného prechodu (vyžaduje reštart) - - Zablokovať HW tlačidlá - Zablokuje MENU, SPÄŤ, DOMOV pokiaľ je zapnutý koláč. Akcie HW tlačidiel budú naďalej fungovať (pre zariadenia s HW tlačidlami) + + Zablokovať navigačné tlačidlá + Zablokuje ťuknutie na tlačidlá pokiaľ je zapnutý koláč Použiť tmavú tému diff --git a/res/values/strings.xml b/res/values/strings.xml index 9927d70054..3fad835f6d 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -400,9 +400,9 @@ Dithered Holo background Replaces standard Holo background with dithered one to suppress color banding (requires reboot) - - Disable hardware keys - Disables MENU, BACK, HOME while Pie Controls are enabled. HW keys actions will still work. (for devices having HW keys) + + Disable navigation keys + Disables single-tap on keys while Pie Controls are enabled Use Holo Dark theme diff --git a/src/com/ceco/gm2/gravitybox/ModHwKeys.java b/src/com/ceco/gm2/gravitybox/ModHwKeys.java index 503bf10684..24b03536ab 100644 --- a/src/com/ceco/gm2/gravitybox/ModHwKeys.java +++ b/src/com/ceco/gm2/gravitybox/ModHwKeys.java @@ -404,11 +404,18 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { } if (keyCode == KeyEvent.KEYCODE_APP_SWITCH) { - if (!hasAction(HwKey.RECENTS)) return; + if (!hasAction(HwKey.RECENTS) && mHwKeysEnabled) return; if (!down) { mHandler.removeCallbacks(mRecentsLongPress); if (!mIsRecentsLongPressed) { + if (!mHwKeysEnabled && + event.getRepeatCount() == 0 && + ((event.getFlags() & KeyEvent.FLAG_FROM_SYSTEM) != 0)) { + if (DEBUG) log("APP_SWITCH KeyEvent coming from HW key and keys disabled. Ignoring."); + param.setResult(-1); + return; + } if (mRecentsSingletapAction != GravityBoxSettings.HWKEY_ACTION_DEFAULT) { performAction(HwKeyTrigger.RECENTS_SINGLETAP); } else { diff --git a/src/com/ceco/gm2/gravitybox/ModNavigationBar.java b/src/com/ceco/gm2/gravitybox/ModNavigationBar.java index a4f7fb4d2c..7bcdfe00af 100644 --- a/src/com/ceco/gm2/gravitybox/ModNavigationBar.java +++ b/src/com/ceco/gm2/gravitybox/ModNavigationBar.java @@ -47,6 +47,7 @@ public class ModNavigationBar { private static int mRecentsSingletapAction = 0; private static int mRecentsLongpressAction = 0; private static int mHomeLongpressAction = 0; + private static boolean mHwKeysEnabled; // Application launcher key private static boolean mAppLauncherEnabled; @@ -102,6 +103,10 @@ public void onReceive(Context context, Intent intent) { GravityBoxSettings.ACTION_PREF_HWKEY_HOME_LONGPRESS_CHANGED)) { mHomeLongpressAction = intent.getIntExtra(GravityBoxSettings.EXTRA_HWKEY_VALUE, 0); updateHomeKeyLongpressSupport(); + } else if (intent.getAction().equals(GravityBoxSettings.ACTION_PREF_PIE_CHANGED) && + intent.hasExtra(GravityBoxSettings.EXTRA_PIE_HWKEYS_DISABLE)) { + mHwKeysEnabled = !intent.getBooleanExtra(GravityBoxSettings.EXTRA_PIE_HWKEYS_DISABLE, false); + updateRecentsKeyCode(); } } }; @@ -126,6 +131,7 @@ public static void init(final XSharedPreferences prefs, final ClassLoader classL mAppLauncherEnabled = prefs.getBoolean( GravityBoxSettings.PREF_KEY_NAVBAR_LAUNCHER_ENABLE, false); + mHwKeysEnabled = !prefs.getBoolean(GravityBoxSettings.PREF_KEY_HWKEYS_DISABLE, false); XposedBridge.hookAllConstructors(navbarViewClass, new XC_MethodHook() { @Override @@ -145,6 +151,7 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { intentFilter.addAction(GravityBoxSettings.ACTION_PREF_HWKEY_RECENTS_SINGLETAP_CHANGED); intentFilter.addAction(GravityBoxSettings.ACTION_PREF_HWKEY_RECENTS_LONGPRESS_CHANGED); intentFilter.addAction(GravityBoxSettings.ACTION_PREF_HWKEY_HOME_LONGPRESS_CHANGED); + intentFilter.addAction(GravityBoxSettings.ACTION_PREF_PIE_CHANGED); context.registerReceiver(mBroadcastReceiver, intentFilter); if (DEBUG) log("NavigationBarView constructed; Broadcast receiver registered"); } @@ -292,7 +299,9 @@ private static void updateRecentsKeyCode() { } private static boolean recentsKeyHasAction() { - return (mRecentsSingletapAction != 0 || mRecentsLongpressAction != 0); + return (mRecentsSingletapAction != 0 || + mRecentsLongpressAction != 0 || + !mHwKeysEnabled); } private static void updateHomeKeyLongpressSupport() { @@ -323,7 +332,7 @@ private static void setAppKeyVisibility(boolean visible) { private static View.OnClickListener mAppKeyOnClickListener = new View.OnClickListener() { @Override public void onClick(View v) { - if (mAppLauncher != null) { + if (mAppLauncher != null && mHwKeysEnabled) { mAppLauncher.showDialog(); } } From 527814b3625e7a13d5f686235f28228d4b7d8f75 Mon Sep 17 00:00:00 2001 From: ch-vox Date: Mon, 28 Oct 2013 03:01:58 +0100 Subject: [PATCH 037/255] Updated French translation - Pie: add disable navigation key support for recents key and app launcher - Pie: turn Search key into multi-functional key - Updated SB background color summary - HW Key Actions: action to show application launcher - Make App launcher an independent unit --- res/values-fr/strings.xml | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index dc09b2c8ea..05901c2dba 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -134,7 +134,7 @@ Couleur barre d\'état - Permet de choisir la couleur de fond de la barre d\'état et sa transparence + Permet de choisir la couleur de fond de la barre d\'état Paramètres liés à la parole @@ -400,9 +400,9 @@ Arrière-plan Holo tramé Remplace l\'arrière-plan Holo standard par un arrière-plan tramé pour supprimer les bandes de couleur (nécessite un redémarrage) - - Désactiver les touches matérielles - Désactive les touches MENU, RETOUR, et HOME si les touches flottantes sont activées. Les actions des touches matérielles fonctionneront toujours (pour les appareils ayant des touches matérielles) + + Désactiver les touches de navigation + Désactive l\'appui simple sur les touches de navigation lorsque les touches flottantes sont activées Utiliser le thème Holo Dark @@ -719,4 +719,22 @@ Utiliser les icônes par défaut (niveau du signal non supporté) Ne pas modifier les couleurs + + Lanceur d\'applications + Boîte de dialogue qui permet de définir jusqu\'à 8 applications pouvant être assignées à une action sur touche matérielle ou utilisées comme touche supplémentaire dans la barre de navigation + Application de l\'emplacement %d + Aucune application assignée. Utiliser l\'item GravityBox / Lanceur d\'applications pour assigner des applications + + + Afficher la touche lanceur d\'appli + + + Afficher le lanceur d\'application + + + Afficher la touche personnalisée + Désactivé + Rechercher + Lanceur d\'applications + From 0c4b758f4fc7cc21b6b038fcaa66aad555fb7e8b Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 28 Oct 2013 07:30:28 +0100 Subject: [PATCH 038/255] Updated Hungarian translations (thanks to benjoe1) --- res/values-hu/strings.xml | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml index 693960ebf5..c81f8ba2c1 100644 --- a/res/values-hu/strings.xml +++ b/res/values-hu/strings.xml @@ -134,7 +134,7 @@ Állapotsáv háttérszín - Lehetővé teszi, hogy beállíthassa az Állapotsáv háttérszínét és átlátszóságát + Lehetővé teszi az Állapotsáv háttérszínének a beállítását Javítja a beszéd beállításokat @@ -719,4 +719,22 @@ Használja a gyári ikonokat (jelerősség szint támogatás nélkül) Nem alkalmaz színezést + + Alkalmazás Indító + Alkalmazás ablak 8 beállítható applikációval, melynek a megjelenítése hozzárendelhető hardver gomb művelethez vagy egy külön navigációs sáv gombhoz + Alkalmazás hely %d + Nincs beállítva alkalmazás. Applikációk hozzárendeléséhez használja a GravityBox / Alkalmazás Indító menüt. + + + Alkalmazás Indító gomb mutatása + + + Alkalmazás Indító megjelenítése + + + Egyéni gomb mutatása + Letiltva + Keresés + Alkalmazás Indító + From beda670a3f31ac12ff480c822021a0e630c1602f Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 28 Oct 2013 07:34:27 +0100 Subject: [PATCH 039/255] Updated German translations (thanks to samsonbear) --- res/values-de/strings.xml | 123 +++++++++++++++++++++++--------------- 1 file changed, 75 insertions(+), 48 deletions(-) diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index d437ecc7fb..037753b666 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -3,7 +3,7 @@ GravityBox - Akkuanzeige-Stil + Akkuanzeige-Stil Standard Akkuanzeige Runde Akkuanzeige Runde Akkuanzeige mit Prozentwert @@ -31,7 +31,7 @@ Erweitertes Neustart-Menü Aktiviert erweitertes Neustart-Menü mit der Option direkt die Recovery zu starten Recovery - Bootloader + Bootloader Cursor mittels Lautstärketasten bewegen Den Cursor mit den Lautstärketasten in Textfeldern steuern @@ -78,22 +78,22 @@ Erweitert Wachhalten an Wachhalten aus - WLAN + WLAN WLAN aus Getrennt - Aktiviere... + Aktiviere… - + Schnelleinstellungs-Verknüpfungen in der Statusleiste Erlaubt es, Schnelleinstellungs-Verknüpfungen in der Statusleiste anzuzeigen oder zu verstecken Benutzerprofil Flugmodus Akku WLAN - WLAN (CM-Stil) + WLAN (CM-Stil) Bluetooth GPS - GPS (CM-Stil) + GPS (CM-Stil) Mobile Daten Netzmodus Mobiler Datenverkehr @@ -108,24 +108,24 @@ Schlafmodus Aufnahme Einstellungen - Lautstärke + Lautstärke Erweiterter Desktop Wachhalten - Screenshot + Screenshot Farbwähler Zur Bestätigung auf Farbfeld drücken - + Hintergrundfarbe der Statusleiste - Erlaubt es, die Hintergrundfarbe und Transparenz der Statusleiste zu ändern + Erlaubt es, die Hintergrundfarbe der Statusleiste zu ändern - + Behebt Spracheingabe-Einstellungen Schaltet \'Sprachsuche\' und \'Text-in-Sprache-Ausgabe\' im \'Sprache & Eingabe\'-Einstellungsmenü frei (Neustart erforderlich) - + Erweiterte Entwickler-Optionen Schaltet erweiterte Entwickler-Optionen frei (Neustart erforderlich) @@ -162,7 +162,7 @@ Dual-SIM Lautstärke Startet eine Anwendung, die es erlaubt, für die beiden SIM-Karten unterschiedliche Rufton- und Benachrichtigungslautstärken einzustellen - + Sperrbildschirm optimieren Beinhaltet Optionen, um den Sperrbildschirm anzupassen Sperrbildschirm-Hintergrund @@ -180,11 +180,11 @@ Widgets maximieren Wenn aktiviert, werden Widgets auf dem Sperrbildschirm maximiert - + Ausschaltmenü optimieren Beinhaltet energiebezogene Optionen, um das Ausschaltmenü anzupassen - + Deaktiviere blinkende LED Deaktivert aufdringlich blinkende LED, wenn der Akkustatus niedrig ist und nicht geladen wird. @@ -196,7 +196,7 @@ Minimale Helligkeitsstufe Erlaubt es, die minimale Helligkeitsstufe zu ändern. Wirkt sich auf die manuelle Helligkeitseinstellung aus. (Neustart erforderlich) - + Automatische Helligkeitsstufen Erlaubt es, für eine bestimmte Umgebungshelligkeit die Bildschirmhelligkeit zu bestimmen Helligkeitsstufe @@ -211,7 +211,7 @@ Werte für %s gesetzt Neue automatische Helligkeitsregelung gespeichert Neue automatische Helligkeitsregelung nicht gespeichert - Übernehmen + Übernehmen Aktiviere Sperrbildschirm-Rotation @@ -264,7 +264,7 @@ Nichts zu beenden Keine vorherige App gefunden - + Anrufe optimieren Beinhaltet Anruf-bezogene Optionen @@ -274,11 +274,11 @@ Keine Aktion ausführen Auf Lautlos stellen Anruf ablehnen - - + + Sanfter Neustart - + Schwarzer Hintergrund Benutze einen schwarzen Hintergrund für das Holo-System-Theme, anstelle des Schwarz-Grau Verlaufs (Neustart erforderlich) @@ -286,7 +286,7 @@ Verknüpfungen pro Reihe Legt fest, wie viele Schnelleinstellungs-Verknüpfungen in einer Reihe angezeigt werden sollen. Die Verknüpfungen werden in der Größe angepasst. Betrifft den Portrait-Modus (Hochformat). - + Zeige den Wochentag an @@ -381,13 +381,13 @@ Verstecke Navigationsleiste Versteckt die Navigationsleiste, wenn Pie-Steuerung aktiviert ist (Für Geräte, die eine Navigationsleiste haben. Neustart erforderlich.) - + Geditherter Holo-Hintergrund Ersetzt den Standard Holo-Hintergrund mit einem geditherten, um Farbstreifenbildung zu minimieren (Neustart erforderlich) - - Deaktiviert Hardwaretasten - Deaktiviert die Menü-, Zurück- & Home-Taste, wenn die Pie-Steuerung aktiviert ist. Hardwaretastenbelegung funktioniert weiterhin (lange drücken, doppelt drücken). (Für Geräte die Hardwaretasten besitzen) + + Deaktiviert Navigationstasten + Deaktiviert einfachen Tastenklick, während Pie Controls aktiviert sind Verwende dunkles Holo-Theme @@ -460,8 +460,8 @@ Telefon Tablet - - + + Helligkeitseinstellungen Aktiviere Helligkeitseinstellungen Nur anwenden, falls Ihr Gerät standardmäßig Helligkeitsfunktionalitäten unterstützt. Bei auftretenden Problemen bitte wieder deaktivieren. (Neustart erforderlich) @@ -501,8 +501,8 @@ Erweiterter Desktop Erweiterter Desktop ist AN Erweiterter Desktop ist AUS - - + + Screenshot @@ -575,8 +575,8 @@ Überschreibt das Verhalten ausgewählter Kacheln beim Drücken/langen Drücken (Neustart erforderlich) - Network mode tile SIM slot - Defines SIM slot to which network mode tile applies (%s) + Netzmodus-Kachel SIM-Steckplatz + Definiert SIM-Steckplatz, den die Netzmodus-Kachel verwendet (%s) SIM-Steckplatz 1 SIM-Steckplatz 2 @@ -604,18 +604,18 @@ Anruf getrennt Anruf wartend Alle 45 Sekunden bei ausgehendem Anruf - - + + Kachelanordnung ändern Erlaubt die Neuanordnung der Schnelleinstellungs-Kacheln - - + + Fortlaufende Benachrichtigungen blocken Erlaubt es, fortlaufende Benachrichtigungen selektiv zu blockieren Jede fortlaufende Benachrichtigung wird automatisch in die Liste eingetragen. Du kannst dann entscheiden, ob du die fortlaufende Benachrichtigung beim nächsten Erscheinen blockierst. Mit Vorsicht verwenden. Liste zurücksetzen Wollen Sie die Liste wirklich zurücksetzen? Löscht die aktuelle Liste und gibt alle Benachrichtigungen frei, die zuvor blockiert wurden. - (Liste ist leer) + (Liste ist leer) Schnelle Entsperrung @@ -640,12 +640,12 @@ Position Auto (Zentriert oder rechts, abhängig von der Uhrposition) Links - Rechts + Rechts Größe Normal Kleiner Sehr klein - B + B KB MB s @@ -653,8 +653,8 @@ Widget-Beschränkung aufheben Erlaubt es, eine unbeschränkte Anzahl an Sperrbildschirm-Widgets einzurichten - - + + %1$s frei @@ -676,8 +676,8 @@ Toggle torch - Torch on home key long-press - Toggles torch on/off when device locked. Screen has to be turned on if device lacks native wake by home key support. + Taschenlampe bei langem Druck auf die Home-Taste + Schaltet Taschenlampe An/Aus während das Gerät gesperrt ist. Screen has to be turned on if device lacks native wake by home key support. Automatisches expandieren @@ -688,9 +688,36 @@ Zurück-Taste Recents key Lautstärketasten - Other settings - Long-press action - Single-tap action - Double-tap action + Andere Einstellungen + Aktion bei langem Druck + Aktion beim Einzelklick + Aktion beim Doppelklick + + + Doppelklick deaktivieren + + + Signal color mode + Use GravityBox icons (with signal level support) + Use stock icons (without signal level support) + Do not apply color + + + App-Launcher + Dialog allowing to define up to 8 apps which can be assigned as HW Key Action or used as additional navigation bar key + Application slot %d + Keine Apps zugeordnet. GravityBox / App-Launcher-Menü verwenden, um Apps zuzuordnen. + + + Zeige App-Launcher-Taste + + + Zeige App-Launcher + + + Zeige benutzerdefinierte Taste + Deaktiviert + Suchen + App-Launcher \ No newline at end of file From 677ccad4bc3c3ab28e0cbb6c99c74ff860e41eb2 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 28 Oct 2013 12:45:02 +0100 Subject: [PATCH 040/255] Pie colors --- res/values/strings.xml | 9 +++ res/xml/gravitybox.xml | 41 ++++++++++ .../gm2/gravitybox/GravityBoxSettings.java | 65 ++++++++++++++- .../ceco/gm2/gravitybox/ModPieControls.java | 23 +++++- .../gm2/gravitybox/pie/PieController.java | 80 ++++++++++++++++++- src/com/ceco/gm2/gravitybox/pie/PieItem.java | 16 ++-- .../ceco/gm2/gravitybox/pie/PieSysInfo.java | 11 ++- .../colorpicker/ColorPickerPreference.java | 8 ++ 8 files changed, 237 insertions(+), 16 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 3fad835f6d..ada0835d32 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -737,4 +737,13 @@ Search Application launcher + + Pie colors + Background color + Foreground color + Outline color + Key selected color + Text color + Reset colors + diff --git a/res/xml/gravitybox.xml b/res/xml/gravitybox.xml index fbbab650e3..b15725dbcc 100644 --- a/res/xml/gravitybox.xml +++ b/res/xml/gravitybox.xml @@ -427,6 +427,47 @@ android:summary="@string/pref_hwkeys_disable_summary" android:defaultValue="false" /> + + + + + + + + + + + + + + + + Date: Mon, 28 Oct 2013 13:29:15 +0100 Subject: [PATCH 041/255] Updated French translation Pie colors --- res/values-fr/strings.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 05901c2dba..826498d4d7 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -737,4 +737,13 @@ Rechercher Lanceur d\'applications + + Couleurs touches flottantes + Couleur arrière-plan + Couleur premier plan + Couleur du contour + Couleur de la touche sélectionnée + Couleur du texte + Réinitialiser les couleurs + From caa8bd7b07e35b24d4778c5a127e43bd15699b9b Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 28 Oct 2013 14:41:39 +0100 Subject: [PATCH 042/255] Custom unknown caller photo --- res/values/dimens.xml | 4 + res/values/strings.xml | 6 ++ res/xml/gravitybox.xml | 9 ++ .../gm2/gravitybox/GravityBoxSettings.java | 83 ++++++++++++++++--- src/com/ceco/gm2/gravitybox/ModCallCard.java | 40 ++++++++- 5 files changed, 130 insertions(+), 12 deletions(-) diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 50b9b4bbe0..ed05c7c3c8 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -46,4 +46,8 @@ 128dip + + 180dp + 320dp + diff --git a/res/values/strings.xml b/res/values/strings.xml index ada0835d32..59989ffb10 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -746,4 +746,10 @@ Text color Reset colors + + Enable unknown caller photo + Set unknown caller photo + Photo changed + Photo not changed + diff --git a/res/xml/gravitybox.xml b/res/xml/gravitybox.xml index b15725dbcc..481937c3e0 100644 --- a/res/xml/gravitybox.xml +++ b/res/xml/gravitybox.xml @@ -816,6 +816,15 @@ android:summary="@string/caller_fullscreen_photo_summary" android:defaultValue="false" /> + + + + rebootKeys = new ArrayList(Arrays.asList( PREF_KEY_FIX_DATETIME_CRASH, PREF_KEY_FIX_CALENDAR, @@ -711,6 +715,9 @@ public static class PrefsFragment extends PreferenceFragment implements OnShared private PreferenceScreen mPrefCatAppLauncher; private CheckBoxPreference mPrefNavbarLauncherEnable; private AppPickerPreference[] mPrefAppLauncherSlot; + private File callerPhotoFile; + private CheckBoxPreference mPrefCallerUnknownPhotoEnable; + private Preference mPrefCallerUnknownPhoto; @SuppressWarnings("deprecation") @Override @@ -768,6 +775,7 @@ public void onCreate(Bundle savedInstanceState) { wallpaperTemporary = new File(getActivity().getCacheDir() + "/lockwallpaper.tmp"); notifBgImagePortrait = new File(getActivity().getFilesDir() + "/notifwallpaper"); notifBgImageLandscape = new File(getActivity().getFilesDir() + "/notifwallpaper_landscape"); + callerPhotoFile = new File(getActivity().getFilesDir() + "/caller_photo"); mPrefCatHwKeyActions = (PreferenceScreen) findPreference(PREF_CAT_HWKEY_ACTIONS); mPrefCatHwKeyMenu = (PreferenceCategory) findPreference(PREF_CAT_HWKEY_MENU); @@ -884,6 +892,8 @@ public void onCreate(Bundle savedInstanceState) { mPrefCatPhoneMobileData = (PreferenceCategory) findPreference(PREF_CAT_KEY_PHONE_MOBILE_DATA); mPrefMobileDataSlow2gDisable = (CheckBoxPreference) findPreference(PREF_KEY_MOBILE_DATA_SLOW2G_DISABLE); mPrefCallVibrations = (MultiSelectListPreference) findPreference(PREF_KEY_CALL_VIBRATIONS); + mPrefCallerUnknownPhotoEnable = (CheckBoxPreference) findPreference(PREF_KEY_CALLER_UNKNOWN_PHOTO_ENABLE); + mPrefCallerUnknownPhoto = (Preference) findPreference(PREF_KEY_CALLER_UNKNOWN_PHOTO); mPrefNetworkModeTileMode = (ListPreference) findPreference(PREF_KEY_NETWORK_MODE_TILE_MODE); mPrefQsTileBehaviourOverride = @@ -1327,6 +1337,10 @@ private void updatePreferences(String key) { if (key == null || key.equals(PREF_KEY_PIE_CONTROL_CUSTOM_KEY)) { mPrefPieCustomKey.setSummary(mPrefPieCustomKey.getEntry()); } + + if (key == null || key.equals(PREF_KEY_CALLER_UNKNOWN_PHOTO_ENABLE)) { + mPrefCallerUnknownPhoto.setEnabled(mPrefCallerUnknownPhotoEnable.isChecked()); + } } @Override @@ -1715,8 +1729,11 @@ public boolean onPreferenceTreeClick(PreferenceScreen prefScreen, Preference pre pieIntent.putExtra(EXTRA_PIE_COLOR_SELECTED, selectedColor); pieIntent.putExtra(EXTRA_PIE_COLOR_TEXT, textColor); getActivity().sendBroadcast(pieIntent); + } else if (pref == mPrefCallerUnknownPhoto) { + setCustomCallerImage(); + return true; } - + if (intent != null) { try { startActivity(intent); @@ -1781,7 +1798,7 @@ private void setCustomLockscreenImage() { wallpaperTemporary.setWritable(true, false); intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(wallpaperTemporary)); intent.putExtra("return-data", false); - getActivity().startActivityFromFragment(this, intent, LOCKSCREEN_BACKGROUND); + getActivity().startActivityFromFragment(this, intent, REQ_LOCKSCREEN_BACKGROUND); } catch (Exception e) { Toast.makeText(getActivity(), getString( R.string.lockscreen_background_result_not_successful), @@ -1817,7 +1834,7 @@ private void setCustomNotifBgPortrait() { wallpaperTemporary.createNewFile(); wallpaperTemporary.setWritable(true, false); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(wallpaperTemporary)); - startActivityForResult(intent, NOTIF_BG_IMAGE_PORTRAIT); + startActivityForResult(intent, REQ_NOTIF_BG_IMAGE_PORTRAIT); } catch (Exception e) { Toast.makeText(getActivity(), getString( R.string.lockscreen_background_result_not_successful), @@ -1853,7 +1870,7 @@ private void setCustomNotifBgLandscape() { wallpaperTemporary.createNewFile(); wallpaperTemporary.setWritable(true, false); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(wallpaperTemporary)); - startActivityForResult(intent, NOTIF_BG_IMAGE_LANDSCAPE); + startActivityForResult(intent, REQ_NOTIF_BG_IMAGE_LANDSCAPE); } catch (Exception e) { Toast.makeText(getActivity(), getString( R.string.lockscreen_background_result_not_successful), @@ -1862,9 +1879,38 @@ private void setCustomNotifBgLandscape() { } } + private void setCustomCallerImage() { + int width = getResources().getDimensionPixelSize(R.dimen.caller_id_photo_width); + int height = getResources().getDimensionPixelSize(R.dimen.caller_id_photo_height); + Intent intent = new Intent(Intent.ACTION_PICK, + android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + intent.setType("image/*"); + intent.putExtra("crop", "true"); + boolean isPortrait = getResources() + .getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT; + intent.putExtra("aspectX", isPortrait ? width : height); + intent.putExtra("aspectY", isPortrait ? height : width); + intent.putExtra("outputX", isPortrait ? width : height); + intent.putExtra("outputY", isPortrait ? height : width); + intent.putExtra("scale", true); + intent.putExtra("scaleUpIfNeeded", true); + intent.putExtra("outputFormat", Bitmap.CompressFormat.PNG.toString()); + try { + wallpaperTemporary.createNewFile(); + wallpaperTemporary.setWritable(true, false); + intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(wallpaperTemporary)); + startActivityForResult(intent, REQ_CALLER_PHOTO); + } catch (Exception e) { + Toast.makeText(getActivity(), getString( + R.string.caller_unkown_photo_result_not_successful), + Toast.LENGTH_SHORT).show(); + e.printStackTrace(); + } + } + @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { - if (requestCode == LOCKSCREEN_BACKGROUND) { + if (requestCode == REQ_LOCKSCREEN_BACKGROUND) { if (resultCode == Activity.RESULT_OK) { if (wallpaperTemporary.exists()) { wallpaperTemporary.renameTo(wallpaperImage); @@ -1881,7 +1927,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { R.string.lockscreen_background_result_not_successful), Toast.LENGTH_SHORT).show(); } - } else if (requestCode == NOTIF_BG_IMAGE_PORTRAIT) { + } else if (requestCode == REQ_NOTIF_BG_IMAGE_PORTRAIT) { if (resultCode == Activity.RESULT_OK) { if (wallpaperTemporary.exists()) { wallpaperTemporary.renameTo(notifBgImagePortrait); @@ -1900,7 +1946,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { } Intent intent = new Intent(ACTION_NOTIF_BACKGROUND_CHANGED); getActivity().sendBroadcast(intent); - } else if (requestCode == NOTIF_BG_IMAGE_LANDSCAPE) { + } else if (requestCode == REQ_NOTIF_BG_IMAGE_LANDSCAPE) { if (resultCode == Activity.RESULT_OK) { if (wallpaperTemporary.exists()) { wallpaperTemporary.renameTo(notifBgImageLandscape); @@ -1919,6 +1965,23 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { } Intent intent = new Intent(ACTION_NOTIF_BACKGROUND_CHANGED); getActivity().sendBroadcast(intent); + } else if (requestCode == REQ_CALLER_PHOTO) { + if (resultCode == Activity.RESULT_OK) { + if (wallpaperTemporary.exists()) { + wallpaperTemporary.renameTo(callerPhotoFile); + } + callerPhotoFile.setReadable(true, false); + Toast.makeText(getActivity(), getString( + R.string.caller_unknown_photo_result_successful), + Toast.LENGTH_SHORT).show(); + } else { + if (wallpaperTemporary.exists()) { + wallpaperTemporary.delete(); + } + Toast.makeText(getActivity(), getString( + R.string.caller_unkown_photo_result_not_successful), + Toast.LENGTH_SHORT).show(); + } } } } diff --git a/src/com/ceco/gm2/gravitybox/ModCallCard.java b/src/com/ceco/gm2/gravitybox/ModCallCard.java index 4650bda9a5..5466bdcb20 100644 --- a/src/com/ceco/gm2/gravitybox/ModCallCard.java +++ b/src/com/ceco/gm2/gravitybox/ModCallCard.java @@ -15,10 +15,17 @@ package com.ceco.gm2.gravitybox; +import java.io.File; + +import android.content.Context; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.graphics.Color; import android.os.Build; import android.view.View; import android.view.ViewGroup; +import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import de.robv.android.xposed.XC_MethodHook; @@ -54,8 +61,8 @@ public static void init(final XSharedPreferences prefs, ClassLoader classLoader) if (DEBUG) XposedBridge.log(TAG + ": init"); try { - Class callCardClass = XposedHelpers.findClass(CLASS_CALLCARD, classLoader); - Class inCallTouchUiClass = XposedHelpers.findClass(CLASS_IN_CALL_TOUCH_UI, classLoader); + final Class callCardClass = XposedHelpers.findClass(CLASS_CALLCARD, classLoader); + final Class inCallTouchUiClass = XposedHelpers.findClass(CLASS_IN_CALL_TOUCH_UI, classLoader); XposedHelpers.findAndHookMethod(callCardClass, "updateCallInfoLayout", phoneConstStateClass, new XC_MethodHook() { @@ -126,6 +133,35 @@ protected void afterHookedMethod(final MethodHookParam param) throws Throwable { } } }); + + XposedHelpers.findAndHookMethod(callCardClass, "showImage", + ImageView.class, int.class, new XC_MethodHook() { + @Override + protected void beforeHookedMethod(final MethodHookParam param) throws Throwable { + if (!prefs.getBoolean( + GravityBoxSettings.PREF_KEY_CALLER_UNKNOWN_PHOTO_ENABLE, false) || + param.args[0] == null) return; + + final ImageView iv = (ImageView) param.args[0]; + final Context context = iv.getContext(); + final int resId = context.getResources().getIdentifier( + "picture_unknown", "drawable", PACKAGE_NAME); + + if (resId == (Integer) param.args[1]) { + Context gbContext = context.createPackageContext(GravityBox.PACKAGE_NAME, 0); + final String path = gbContext.getFilesDir() + "/caller_photo"; + File f = new File(path); + if (f.exists()) { + Bitmap b = BitmapFactory.decodeFile(path); + if (b != null) { + XposedHelpers.callStaticMethod(callCardClass, "showImage", iv, b); + param.setResult(null); + return; + } + } + } + } + }); } catch (Throwable t) { XposedBridge.log(t); } From 88d8946ce372fbb9d52d39d4309beb4affb21687 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 28 Oct 2013 14:53:17 +0100 Subject: [PATCH 043/255] Updated Polish translations (thanks to xtrem007) --- res/values-pl/strings.xml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index a386f065e5..7c9f4f75c7 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -249,6 +249,7 @@ Tylko połączenia alarmowe Interfejs Kontroli Pie Włącz interfejs kontroli Pie + Pokaż przycisk wyszukiwania Wielkość klawisza nawigacji Pozycja aktywnej strefy Lewy margines ekranu @@ -417,6 +418,7 @@ Pozycja Automatycznie (centralnie lub po prawej w zależności od położenia zegara) Po lewej + Po prawej Rozmiar Normalny Mniejszy @@ -435,4 +437,24 @@ Na dole Akcja kliknięcia klawisza ostatnich aplikacji Akcja przytrzymania klawisza ostatnich aplikacji + Pokaż wskaźnik stanu baterii + Pokazuje stan baterii w kształcie łuku wokół przycisku pierścienia odblokowania + Przełącz latarkę + Latarka przy długim nac. HOME + Umożliwia przełączanie latarki klawiszem HOME gdy urządzenie jest zablokowane. Ekran musi być włączony, jeśli urządzenie nie posiada natywnego wsparcia dla wybudzania klawiszem HOME. + Rozszerz automatycznie panel głośności + Klawisz MENU + Klawisz HOME + Klawisz BACK + Klawisz ostatnich aplikacji + Klawisze głośności + Inne ustawienia + Akcja długiego naciśnięcia + Akcja pojedynczego kliknięcia + Akcja podwójnego kliknięcia + Wyłącz podwójne kliknięcie + Tryb koloru wskaźnika sygnału + Użyj ikon GravityBox (z obsługą poziomu sygnału) + Użyj standardowych ikon (bez obsługi poziomu sygnału) + Nie stosuj koloru From dd3e890654493d200baa441ab05f5a5118723e0d Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 28 Oct 2013 15:35:12 +0100 Subject: [PATCH 044/255] Disable navigation keys only in case PIE is REALLY active --- src/com/ceco/gm2/gravitybox/ModHwKeys.java | 50 +++++++++++++++---- .../ceco/gm2/gravitybox/ModPieControls.java | 22 ++++---- 2 files changed, 52 insertions(+), 20 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/ModHwKeys.java b/src/com/ceco/gm2/gravitybox/ModHwKeys.java index 24b03536ab..45a5cc9454 100644 --- a/src/com/ceco/gm2/gravitybox/ModHwKeys.java +++ b/src/com/ceco/gm2/gravitybox/ModHwKeys.java @@ -96,6 +96,8 @@ public class ModHwKeys { private static boolean mHwKeysEnabled = true; private static XSharedPreferences mPrefs; private static AppLauncher mAppLauncher; + private static int mPieMode; + private static int mExpandedDesktopMode; private static List mKillIgnoreList = new ArrayList(Arrays.asList( "com.android.systemui", @@ -189,9 +191,13 @@ public void onReceive(Context context, Intent intent) { mVolumeRockerWakeDisabled = intent.getBooleanExtra( GravityBoxSettings.EXTRA_VOLUME_ROCKER_WAKE_DISABLE, false); if (DEBUG) log("mVolumeRockerWakeDisabled set to: " + mVolumeRockerWakeDisabled); - } else if (action.equals(GravityBoxSettings.ACTION_PREF_PIE_CHANGED) && - intent.hasExtra(GravityBoxSettings.EXTRA_PIE_HWKEYS_DISABLE)) { - mHwKeysEnabled = !intent.getBooleanExtra(GravityBoxSettings.EXTRA_PIE_HWKEYS_DISABLE, false); + } else if (action.equals(GravityBoxSettings.ACTION_PREF_PIE_CHANGED)) { + if (intent.hasExtra(GravityBoxSettings.EXTRA_PIE_HWKEYS_DISABLE)) { + mHwKeysEnabled = !intent.getBooleanExtra(GravityBoxSettings.EXTRA_PIE_HWKEYS_DISABLE, false); + } + if (intent.hasExtra(GravityBoxSettings.EXTRA_PIE_ENABLE)) { + mPieMode = intent.getIntExtra(GravityBoxSettings.EXTRA_PIE_ENABLE, 0); + } } else if (action.equals(ACTION_SCREENSHOT) && mPhoneWindowManager != null) { try { XposedHelpers.callMethod(mPhoneWindowManager, "takeScreenshot"); @@ -213,6 +219,9 @@ public void onReceive(Context context, Intent intent) { } catch (Throwable t) { log("Error executing PhoneWindowManager.showGlobalActionsDialog(): " + t.getMessage()); } + } else if (action.equals(GravityBoxSettings.ACTION_PREF_EXPANDED_DESKTOP_MODE_CHANGED)) { + mExpandedDesktopMode = intent.getIntExtra( + GravityBoxSettings.EXTRA_ED_MODE, GravityBoxSettings.ED_DISABLED); } } }; @@ -250,6 +259,21 @@ public static void initZygote(final XSharedPreferences prefs) { GravityBoxSettings.PREF_KEY_VOLUME_ROCKER_WAKE_DISABLE, false); mHwKeysEnabled = !prefs.getBoolean(GravityBoxSettings.PREF_KEY_HWKEYS_DISABLE, false); + mPieMode = ModPieControls.PIE_DISABLED; + try { + mPieMode = Integer.valueOf(prefs.getString(GravityBoxSettings.PREF_KEY_PIE_CONTROL_ENABLE, "0")); + } catch (NumberFormatException nfe) { + log("Invalid preference value for Pie Mode"); + } + + mExpandedDesktopMode = GravityBoxSettings.ED_DISABLED; + try { + mExpandedDesktopMode = Integer.valueOf(prefs.getString( + GravityBoxSettings.PREF_KEY_EXPANDED_DESKTOP, "0")); + } catch (NumberFormatException nfe) { + log("Invalid value for PREF_KEY_EXPANDED_DESKTOP preference"); + } + final Class classPhoneWindowManager = XposedHelpers.findClass(CLASS_PHONE_WINDOW_MANAGER, null); classActivityManagerNative = XposedHelpers.findClass(CLASS_ACTIVITY_MANAGER_NATIVE, null); @@ -290,7 +314,7 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { param.setResult(0); return; } - if (!mHwKeysEnabled && + if (!areHwKeysEnabled() && event.getRepeatCount() == 0 && (event.getFlags() & KeyEvent.FLAG_FROM_SYSTEM) != 0) { if (DEBUG) log("HOME KeyEvent coming from HW key and keys disabled. Ignoring."); @@ -329,7 +353,7 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { if (DEBUG) log("keyCode=" + keyCode); if (keyCode == KeyEvent.KEYCODE_MENU) { - if (!hasAction(HwKey.MENU) && mHwKeysEnabled) return; + if (!hasAction(HwKey.MENU) && areHwKeysEnabled()) return; if (!down) { mHandler.removeCallbacks(mMenuLongPress); @@ -337,7 +361,7 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { param.setResult(-1); return; } - if (!mHwKeysEnabled && + if (!areHwKeysEnabled() && event.getRepeatCount() == 0 && ((event.getFlags() & KeyEvent.FLAG_FROM_SYSTEM) != 0)) { if (DEBUG) log("MENU KeyEvent coming from HW key and keys disabled. Ignoring."); @@ -374,7 +398,7 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { } if (keyCode == KeyEvent.KEYCODE_BACK) { - if (!hasAction(HwKey.BACK) && mHwKeysEnabled) return; + if (!hasAction(HwKey.BACK) && areHwKeysEnabled()) return; if (!down) { mHandler.removeCallbacks(mBackLongPress); @@ -382,7 +406,7 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { param.setResult(-1); return; } - if (!mHwKeysEnabled && + if (!areHwKeysEnabled() && event.getRepeatCount() == 0 && ((event.getFlags() & KeyEvent.FLAG_FROM_SYSTEM) != 0)) { if (DEBUG) log("BACK KeyEvent coming from HW key and keys disabled. Ignoring."); @@ -404,12 +428,12 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { } if (keyCode == KeyEvent.KEYCODE_APP_SWITCH) { - if (!hasAction(HwKey.RECENTS) && mHwKeysEnabled) return; + if (!hasAction(HwKey.RECENTS) && areHwKeysEnabled()) return; if (!down) { mHandler.removeCallbacks(mRecentsLongPress); if (!mIsRecentsLongPressed) { - if (!mHwKeysEnabled && + if (!areHwKeysEnabled() && event.getRepeatCount() == 0 && ((event.getFlags() & KeyEvent.FLAG_FROM_SYSTEM) != 0)) { if (DEBUG) log("APP_SWITCH KeyEvent coming from HW key and keys disabled. Ignoring."); @@ -525,12 +549,18 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { intentFilter.addAction(ACTION_SCREENSHOT); intentFilter.addAction(ACTION_SHOW_POWER_MENU); intentFilter.addAction(GravityBoxSettings.ACTION_PREF_DISPLAY_ALLOW_ALL_ROTATIONS_CHANGED); + intentFilter.addAction(GravityBoxSettings.ACTION_PREF_EXPANDED_DESKTOP_MODE_CHANGED); mContext.registerReceiver(mBroadcastReceiver, intentFilter); if (DEBUG) log("Phone window manager initialized"); } }; + private static boolean areHwKeysEnabled() { + return (mHwKeysEnabled || + !ModPieControls.isPieEnabled(mContext, mPieMode, mExpandedDesktopMode)); + } + private static Runnable mMenuLongPress = new Runnable() { @Override diff --git a/src/com/ceco/gm2/gravitybox/ModPieControls.java b/src/com/ceco/gm2/gravitybox/ModPieControls.java index 28f81a9f58..514573f3b2 100644 --- a/src/com/ceco/gm2/gravitybox/ModPieControls.java +++ b/src/com/ceco/gm2/gravitybox/ModPieControls.java @@ -372,29 +372,31 @@ public void onChange(boolean selfChange) { } } - private static boolean isPieEnabled() { - final ContentResolver cr = mContext.getContentResolver(); - if (DEBUG) log("isPieEnabled: mPieMode = " + mPieMode); + public static boolean isPieEnabled(Context context, int pieMode, int expandedDesktopMode) { + if (context == null) return false; - switch(mPieMode) { + final ContentResolver cr = context.getContentResolver(); + if (DEBUG) log("isPieEnabled: mPieMode = " + pieMode); + + switch(pieMode) { case PIE_DISABLED: return false; case PIE_ENABLED_ALWAYS: return true; case PIE_ENABLED_ED: case PIE_ENABLED_ED_NAVBAR_HIDDEN: - if (DEBUG) log("isPieEnabled: SETTING_EXPANDED_DESKTOP_MODE = " + mExpandedDesktopMode); + if (DEBUG) log("isPieEnabled: SETTING_EXPANDED_DESKTOP_MODE = " + expandedDesktopMode); final boolean edEnabled = Settings.System.getInt( cr, ModExpandedDesktop.SETTING_EXPANDED_DESKTOP_STATE, 0) == 1; if (DEBUG) log("isPieEnabled: SETTING_EXPANDED_DESKTOP_STATE = " + edEnabled); - return edEnabled && (mPieMode == PIE_ENABLED_ED || - (mPieMode == PIE_ENABLED_ED_NAVBAR_HIDDEN - && (mExpandedDesktopMode == GravityBoxSettings.ED_NAVBAR || - mExpandedDesktopMode == GravityBoxSettings.ED_BOTH))); + return edEnabled && (pieMode == PIE_ENABLED_ED || + (pieMode == PIE_ENABLED_ED_NAVBAR_HIDDEN + && (expandedDesktopMode == GravityBoxSettings.ED_NAVBAR || + expandedDesktopMode == GravityBoxSettings.ED_BOTH))); default: return false; } } private static void attachPie() { - if (isPieEnabled()) { + if (isPieEnabled(mContext, mPieMode, mExpandedDesktopMode)) { // Create our container, if it does not exist already if (mPieContainer == null) { From 2a1bbeb4da46632ee02edfdb58c0062da3ad7d9b Mon Sep 17 00:00:00 2001 From: ch-vox Date: Mon, 28 Oct 2013 17:07:33 +0100 Subject: [PATCH 045/255] Updated French translation Custom unknown caller photo --- res/values-fr/strings.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 826498d4d7..e67d3764d1 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -746,4 +746,10 @@ Couleur du texte Réinitialiser les couleurs + + Activer la photo pour appelant non identifié + Définir la photo pour appelant non identifié + Photo changée + Photo non changée + From 73174a3d8831e73814263ebe2d56e9b3250942f0 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 28 Oct 2013 17:50:48 +0100 Subject: [PATCH 046/255] ... --- res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 59989ffb10..2a5dd3a8e6 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -96,7 +96,7 @@ Wi-Fi Wi-Fi off Not connected - Turning on... + Turning on… Statusbar QuickSettings tiles From ad521e944476ba5795eadb33afb6b197a3ad8e41 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 28 Oct 2013 18:02:23 +0100 Subject: [PATCH 047/255] Updated Slovak translations --- res/values-sk/strings.xml | 42 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index d23ea1adec..6e3b047979 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -681,4 +681,46 @@ Akcia na ťuknutie Akcia na dvojité ťuknutie + + Vypnúť dvojité ťuknutie + + + Režim vyfarbovania signálu + Použiť GravityBox ikony (s podporou úrovne signálu) + Použiť originál ikony (bez podpory úrovne signálu) + Nevyfarbovať + + + Spúšťač aplikácií + Dialóg s aplikáciami, ktorý môže byť aktivovaný na akciu tlačidla, alebo cez dodatočné tlačidlo navigačnej lišty, alebo z koláča + Aplikácia %d + Nie sú priradené žiadne aplikácie. Použite GravityBox / Spúšťač aplikácií pre priradenie aplikácií. + + + Tlačidlo spúštača aplikácií + + + Zobraziť spúšťač aplikácií + + + Voliteľné tlačidlo + Vypnuté + Hľadať + Spúšťač aplikácií + + + Farby koláča + Farba pozadia + Farba ikon + Farba okraja + Farba aktívneho tlačidla + Farba textu + Resetovať farby + + + Povoliť foto neznámeho čísla + Nastaviť foto neznámeho čísla + Foto nastavené + Foto nebolo nastavené + From d2d28ab9df9da3ea94b70a879a4c42f8e58486da Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 28 Oct 2013 18:08:50 +0100 Subject: [PATCH 048/255] Updated Czech translations --- res/values-cs/strings.xml | 42 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index ab6591bc34..5c7aedd0b8 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -687,4 +687,46 @@ Akce na ťuknutí Akce na dvojité ťuknutí + + Vypnout dvojité ťuknutí + + + Režim vybarvování signálu + Použít GravityBox ikony (s podporou úrovně signálu) + Použít originál ikony (bez podpory úrovně signálu) + Nevybarvovat + + + Spouštěč aplikací + Dialog s aplikacemi, který může být aktivován na akcii tlačítka, nebo přes dodatečné tlačítko navigační lišty, nebo z koláče + Aplikace %d + Nejsou přiřazeny žádné aplikace. Použijte GravityBox / Spouštěč aplikací pro přiřazení aplikací. + + + Tlačítko spouštěče aplikací + + + Zobrazit spouštěč aplikací + + + Volitelné tlačítko + Vypnuto + Hledat + Spouštěč aplikací + + + Barvy koláče + Barva pozadí + Barva ikon + Barva okraje + Barva aktivního tlačítka + Barva textu + Resetovat barvy + + + Povolit foto neznámého čísla + Nastavit foto neznámého čísla + Foto nastaveno + Foto nebylo nastaveno + From f7e9bf727c2899b07207fc49868efb24df693fd6 Mon Sep 17 00:00:00 2001 From: ch-vox Date: Mon, 28 Oct 2013 18:52:05 +0100 Subject: [PATCH 049/255] Updated French translation ... --- res/values-fr/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index e67d3764d1..fdc8b4f525 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -96,7 +96,7 @@ Wi-Fi Wi-Fi off Non connecté - Mise en route... + Mise en route… Touches des paramètres rapides From 49b5f5e883ecc910f99ab58b67ee93a555dcc8eb Mon Sep 17 00:00:00 2001 From: Bruno Martins Date: Mon, 28 Oct 2013 18:13:43 +0000 Subject: [PATCH 050/255] Updated Portuguese (PT) translation --- res/values-pt-rPT/strings.xml | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index df41cf7a46..17de5c0bc0 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -45,11 +45,11 @@ Selecionar caso tenha problemas ao aceder à configuração de data e hora nas definições do telefone (necessário reiniciar) Corrigir problema na identificação de contatos na aplicação de telefone - Selecionar caso um contacto não seja reconhecido quando recebe uma chamada (necessário reiniciar) + Selecionar caso um contato não seja reconhecido quando recebe uma chamada (necessário reiniciar) Após reiniciar o telefone, deve limpar e readicionar os seus contatos para que a alteração possa ter efeito! Para isso, aceda a \"Definições / Aplicações / Todas\" para limpar os dados do Armazenamento de contatos. Corrigir problema na aplicação de mensagens - Selecionar caso obtenha conversações divididas em varios tópicos para o mesmo contacto (necessário reiniciar) + Selecionar caso obtenha conversações divididas em varios tópicos para o mesmo contato (necessário reiniciar) Após reiniciar o telefone, deve limpar todas as conversações divididas para que a alteração possa ter efeito! Corrigir problema na aplicação de calendário @@ -57,8 +57,8 @@ Importante - Imagem do contacto em ecrã completo - Mostra a imagem do contacto em ecrã completo quando recebe uma chamada + Imagem do contato em ecrã completo + Mostra a imagem do contato em ecrã completo quando recebe uma chamada Sinc. ativada @@ -81,7 +81,7 @@ Wi-Fi Wi-Fi desativado Não ligado - A ligar... + A ligar… Definições rápidas na Barra de Status @@ -385,9 +385,9 @@ Fundo pontilhado Substituir o fundo do tema padrão por um pontilhado por forma a evitar o efeito de bandas de cores (necessário reiniciar) - - Desativar teclas físicas - Desativa as teclas de Menu, Atrás e Casa quando os controlos Pie estão ativados. As teclas físicas continuam a funcionar (para dispositivos com teclas físicas) + + Desativar botões de navegação + Desativa as ações de toque nos botões da Barra de Navegação quando os controlos Pie estiverem ativados Utilizar tema escuro @@ -722,4 +722,19 @@ Pesquisa Lançador de aplicações + + Coloração dos controlos Pie + Cor de segundo plano + Cor de primeiro plano + Cor do rebordo + Cor do botão quando pressionado + Cor do texto + Repor cores pré-definidas + + + Ativar imagem de contato desconhecido + Definir imagem de contato desconhecido + Imagem alterada + Imagem não alterada + From 9792aa1f26d9f1605d041b83bff28cc326783867 Mon Sep 17 00:00:00 2001 From: Bruno Martins Date: Mon, 28 Oct 2013 18:13:50 +0000 Subject: [PATCH 051/255] Updated Portuguese (BR) translation --- res/values-pt/strings.xml | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 5b027ad408..5998c7c466 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -81,7 +81,7 @@ Wi-Fi Wi-Fi desativado Não conectado - Ligando... + Ligando… Configurações rápidas na Barra de Status @@ -385,9 +385,9 @@ Dithered Holo background Replaces standard Holo background with dithered one to suppress color banding (requires reboot) - - Disable hardware keys - Disables MENU, BACK, HOME while Pie Controls are enabled. HW keys actions will still work. (for devices having HW keys) + + Disable navigation keys + Disables single-tap on keys while Pie Controls are enabled Use Holo Dark theme @@ -722,4 +722,19 @@ Pesquisa Lançador de aplicativos + + Pie colors + Background color + Foreground color + Outline color + Key selected color + Text color + Reset colors + + + Enable unknown caller photo + Set unknown caller photo + Photo changed + Photo not changed + From 89666b5a9050e565ccd87c1eb6b312d91f59b912 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 28 Oct 2013 19:28:58 +0100 Subject: [PATCH 052/255] AppLauncher: make app view visible as it might have been hidden previously --- src/com/ceco/gm2/gravitybox/AppLauncher.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/com/ceco/gm2/gravitybox/AppLauncher.java b/src/com/ceco/gm2/gravitybox/AppLauncher.java index 87743de2e2..2505e12412 100644 --- a/src/com/ceco/gm2/gravitybox/AppLauncher.java +++ b/src/com/ceco/gm2/gravitybox/AppLauncher.java @@ -170,6 +170,7 @@ public void showDialog() { tv.setCompoundDrawablesWithIntrinsicBounds(null, ai.getAppIcon(), null, null); tv.setClickable(true); tv.setOnClickListener(mAppOnClick); + tv.setVisibility(View.VISIBLE); appRow1Visible |= ai.getResId() == R.id.quickapp1 || ai.getResId() == R.id.quickapp2 || ai.getResId() == R.id.quickapp3 || ai.getResId() == R.id.quickapp4; From ba9bd371494e45ac23358bcbd50496ec88580923 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 28 Oct 2013 20:31:42 +0100 Subject: [PATCH 053/255] Updated Hungarian translations (thanks to benjoe1) --- res/values-hu/strings.xml | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml index c81f8ba2c1..6497386c5b 100644 --- a/res/values-hu/strings.xml +++ b/res/values-hu/strings.xml @@ -96,7 +96,7 @@ Wi-Fi Wi-Fi kikapcsolva Nincs csatlakozva - Bekapcsolás... + Bekapcsolás… Állapotsáv Gyorsbeállítások csempéi @@ -400,9 +400,9 @@ Nagyobb színmélységű Holo háttér Lecseréli a szabvány Holo hátteret nagyobb színmélységű típusra a színátmenetek folyamatosságának megtörése ellen (újraindítás szükséges) - - Hardver gombok letiltása - Letiltja a MENÜ, VISSZA, KEZDŐLAP gombokat, ha a Pie Vezérlők engedélyezve vannak. A HW gombok műveletei működni fognak. (HW gombokkal ellátot eszközök esetén) + + Navigációs gombok letiltása + Letiltja a gombok egyszeri érintését, ha a Pie Vezérlők engedélyezve vannak Holo Sötét téma használata @@ -737,4 +737,19 @@ Keresés Alkalmazás Indító + + Pie színek + Háttérszín + Előtérszín + Körvonal színe + Kiválasztott gomb színe + Szöveg színe + Színek visszaállítása + + + Ismeretlen hívó fotó engedélyezése + Ismeretlen hívó fotó beállítása + Fotó megváltoztatva + Fotó nincs megváltoztatva + From e8fd21ae08eb66f2a79ec72c6629b64caf905d77 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Tue, 29 Oct 2013 08:11:06 +0100 Subject: [PATCH 054/255] Implemented recovery from minimum brightess set too low --- res/values/strings.xml | 4 ++ .../gm2/gravitybox/GravityBoxSettings.java | 10 +++++ src/com/ceco/gm2/gravitybox/ModHwKeys.java | 39 ++++++++++++++++++- 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 2a5dd3a8e6..c376eec30e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -752,4 +752,8 @@ Photo changed Photo not changed + + Your screen might not support values lower than 20. If your screen doesn\'t light up, + hold Volume+ key for at least 7 seconds to reset brightness and then adjust minimum brightness to use higher values. + diff --git a/src/com/ceco/gm2/gravitybox/GravityBoxSettings.java b/src/com/ceco/gm2/gravitybox/GravityBoxSettings.java index 96af95d780..6c41017abb 100644 --- a/src/com/ceco/gm2/gravitybox/GravityBoxSettings.java +++ b/src/com/ceco/gm2/gravitybox/GravityBoxSettings.java @@ -1663,6 +1663,16 @@ public void onClick(DialogInterface dialog, int which) { mDialog.show(); } + if (key.equals(PREF_KEY_BRIGHTNESS_MIN) && + prefs.getInt(PREF_KEY_BRIGHTNESS_MIN, 20) < 20) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder.setTitle(R.string.important); + builder.setMessage(R.string.screen_brightness_min_warning); + builder.setPositiveButton(android.R.string.ok, null); + mDialog = builder.create(); + mDialog.show(); + } + if (rebootKeys.contains(key)) Toast.makeText(getActivity(), getString(R.string.reboot_required), Toast.LENGTH_SHORT).show(); } diff --git a/src/com/ceco/gm2/gravitybox/ModHwKeys.java b/src/com/ceco/gm2/gravitybox/ModHwKeys.java index 45a5cc9454..d4e48069a5 100644 --- a/src/com/ceco/gm2/gravitybox/ModHwKeys.java +++ b/src/com/ceco/gm2/gravitybox/ModHwKeys.java @@ -34,6 +34,7 @@ import android.hardware.input.InputManager; import android.os.Build; import android.os.Handler; +import android.os.IBinder; import android.os.PowerManager; import android.os.Process; import android.os.SystemClock; @@ -296,6 +297,16 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { boolean keyguardOn = (Boolean) XposedHelpers.callMethod(mPhoneWindowManager, "keyguardOn"); Handler handler = (Handler) XposedHelpers.getObjectField(param.thisObject, "mHandler"); + if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) { + if (!down) { + handler.removeCallbacks(mResetBrightnessRunnable); + } else { + if (event.getRepeatCount() == 0) { + handler.postDelayed(mResetBrightnessRunnable, 7000); + } + } + } + if (mVolumeRockerWakeDisabled && (keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)) { @@ -610,6 +621,32 @@ public void run() { } }; + private static Runnable mResetBrightnessRunnable = new Runnable() { + + @Override + public void run() { + try { + Class classSm = XposedHelpers.findClass("android.os.ServiceManager", null); + Class classIpm = XposedHelpers.findClass("android.os.IPowerManager.Stub", null); + IBinder b = (IBinder) XposedHelpers.callStaticMethod( + classSm, "getService", Context.POWER_SERVICE); + Object power = XposedHelpers.callStaticMethod(classIpm, "asInterface", b); + if (power != null) { + Settings.System.putInt(mContext.getContentResolver(), + Settings.System.SCREEN_BRIGHTNESS_MODE, 0); + final String bcMethod = Build.VERSION.SDK_INT > 16 ? + "setTemporaryScreenBrightnessSettingOverride" : "setBacklightBrightness"; + XposedHelpers.callMethod(power, bcMethod, 100); + Settings.System.putInt(mContext.getContentResolver(), + Settings.System.SCREEN_BRIGHTNESS, 100); + if (DEBUG) log("Screen brightness reset to manual with level set to 100"); + } + } catch (Throwable t) { + XposedBridge.log(t); + } + } + }; + private static int getActionForHwKeyTrigger(HwKeyTrigger keyTrigger) { int action = GravityBoxSettings.HWKEY_ACTION_DEFAULT; @@ -941,4 +978,4 @@ public void run() { } }); } -} \ No newline at end of file +} From e20afaa2bb4ee2404065205ba76dbe9bd0a8ca62 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Tue, 29 Oct 2013 08:34:57 +0100 Subject: [PATCH 055/255] Updated Slovak translations --- res/values-sk/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index 6e3b047979..7ab36afb8e 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -723,4 +723,8 @@ Foto nastavené Foto nebolo nastavené + + Vaša obrazovka nemusí podporovať hodnoty jasu nižšie ako 20. Ak sa obrazovka nerozsvieti, + držte tlačidlo Hlasitosť+ po dobu 7 sekúnd pre rozsvietenie obrazovky. Následne zmeňte nastavenie minimálneho jasu na vyššiu hodnotu. + From 0f14ba8880c1625c3bf3349b18f857122cb500d0 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Tue, 29 Oct 2013 08:36:29 +0100 Subject: [PATCH 056/255] Updated Czech translations --- res/values-cs/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index 5c7aedd0b8..7317c77ecd 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -729,4 +729,8 @@ Foto nastaveno Foto nebylo nastaveno + + Vaše obrazovka nemusí podporovat hodnoty jasu nižší než 20. Pokud se obrazovka nerozsvítí, + držte tlačítko Hlasitost+ po dobu 7 sekund pro rozsvícení obrazovky. Následně změňte nastavení minimálního jasu na vyšší hodnotu. + From 880840ce1c1fe223872b3ef9846ce6c5f60c4dd7 Mon Sep 17 00:00:00 2001 From: ch-vox Date: Tue, 29 Oct 2013 08:43:35 +0100 Subject: [PATCH 057/255] Updated French translation Implemented recovery from minimum brightess set too low --- res/values-fr/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index fdc8b4f525..cc07126653 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -751,5 +751,9 @@ Définir la photo pour appelant non identifié Photo changée Photo non changée + + + Il se pourrait que votre écran ne supporte pas de valeurs inférieures à 20. Si votre écran ne s\'allume pas, + maintenez la touche Volume+ enfoncée au moins 7 secondes pour réinitialiser la luminosité, règlez-la ensuite à une valeur supérieure From eda1fab96e372569dc21c61f95b0b8c910f5eb30 Mon Sep 17 00:00:00 2001 From: Roman Butok Date: Tue, 29 Oct 2013 13:44:14 +0300 Subject: [PATCH 058/255] Updated Russian translation --- res/values-ru/strings.xml | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 7f80998793..8d01874309 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -719,4 +719,41 @@ Использовать станд. иконки (без поддержки уровня) Не применять цвет + + Запуск приложений + Диалог, позволяющий выбрать до 8 приложений, которые можно назначить для действий кнопок или поместить на панель навигации + Слот приложения %d + Приложения не выбраны. Используйте GravityBox / Запуск приложений для выбора приложений. + + + Показывать кнопку запуска приложения + + + Запустить приложение + + + Показать пользовательскую кнопку + Отключено + Поиск + Запуск приложений + + + Цвет веерного меню + Цвет фона + Цвет переднего плана + Цвет контура + Цвет выбранной кнопки + Цвет текста + Сбросить цвета + + + Включить фото неизвестного звонящего + Задать фото + Фото изменено + Фото не изменено + + + Ваш экран может не поддерживать значения меньше 20. Если ваш экран не засветится, + зажмите кнопку Громкость+ как минимум на 7 секунд для сброса яркости и затем исправьте значение яркости на большее. + From 01f2b7d9b69948978268ff9be3f5b6ae59aa9794 Mon Sep 17 00:00:00 2001 From: Noumi Ryoko Date: Tue, 29 Oct 2013 22:41:24 +0900 Subject: [PATCH 059/255] Updated Japanese Translation --- res/values-ja/strings.xml | 40 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index 79598e27ed..9ddcf9d0da 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -81,7 +81,7 @@ Wi-Fi Wi-Fiオフ 未接続 - オンにしています... + オンにしています… ステータスバークイック設定タイル @@ -705,4 +705,42 @@ 標準アイコンを使用(信号強度非対応) 色を適用しない + + アプリランチャー/string> + HWキーアクションやナビバーのボタンとして使える、アプリを8個まで登録できるダイアログです。 + アプリスロット %d + アプリが登録されていません。GravityBox / アプリランチャーで登録してください。 + + + アプリランチャーキー + + + アプリランチャーを表示 + + + カスタムキーの表示 + 無効 + 検索 + アプリランチャー + + + パイの色 + 背景色 + 前景色 + アウトラインの色 + 選択したキーの色 + 文字色 + 色の初期化 + + + <不明な発信者画像を有効化/string> + 不明な発信者用の画像をセット + 変更しました。 + 変更しませんでした。 + + + 20以下の明るさに対応していない画面です。 画面が点灯しなくなった場合、 + 音量上キーを7秒以上押し続けると明るさを初期化できるので最低値を修正してください。 + + From ef434a4cef66c0fe0758538e67128163f0fecab3 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Tue, 29 Oct 2013 17:40:18 +0100 Subject: [PATCH 060/255] Fixed JP translations --- res/values-ja/strings.xml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index 9ddcf9d0da..50188d87f8 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -706,7 +706,7 @@ 色を適用しない - アプリランチャー/string> + アプリランチャー HWキーアクションやナビバーのボタンとして使える、アプリを8個まで登録できるダイアログです。 アプリスロット %d アプリが登録されていません。GravityBox / アプリランチャーで登録してください。 @@ -733,7 +733,7 @@ 色の初期化 - <不明な発信者画像を有効化/string> + 不明な発信者画像を有効化 不明な発信者用の画像をセット 変更しました。 変更しませんでした。 @@ -742,5 +742,4 @@ 20以下の明るさに対応していない画面です。 画面が点灯しなくなった場合、 音量上キーを7秒以上押し続けると明るさを初期化できるので最低値を修正してください。 - From 235497156397052eb39c3c6721aa9db7e62586e9 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Tue, 29 Oct 2013 18:02:03 +0100 Subject: [PATCH 061/255] Version 2.6.6 --- AndroidManifest.xml | 4 ++-- CHANGELOG.txt | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index cc220aa5b9..4c8f5c395e 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -16,8 +16,8 @@ + android:versionCode="42" + android:versionName="2.6.6" > Date: Tue, 29 Oct 2013 20:43:57 +0000 Subject: [PATCH 062/255] Updated Portuguese (PT) translation --- res/values-pt-rPT/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index 17de5c0bc0..0bf0db126d 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -127,7 +127,7 @@ Desbloquear opções de programador avançadas - Desbloqueia as opções de programador avançadas nas definições do telefone (necessário reiniciar) + Desbloqueia as opções de programador avançadas nas definições (necessário reiniciar) Ajustes da Barra de Status @@ -737,4 +737,8 @@ Imagem alterada Imagem não alterada + + O ecrã poderá não suportar valores de brilho inferiores a 20. Caso o ecrã não se ligue após a alteração, + mantenha a tecla de volume + pressionada durante pelo menos 7 segundos para repor o valor pré-definido e poder reajustar o nível de brilho mínimo para um valor superior. + From 6e3212e5849b1bfe36ee7bf5bbe172dc1343a5d7 Mon Sep 17 00:00:00 2001 From: Bruno Martins Date: Tue, 29 Oct 2013 20:44:14 +0000 Subject: [PATCH 063/255] Updated Portuguese (BR) translation --- res/values-pt/strings.xml | 42 +++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 5998c7c466..22a0ee4162 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -193,25 +193,25 @@ Contém diversos ajustes relacionados com a tela - Minimum brightness level - Allows to set minimum brightness level. Applies to manual brightness setting. (requires reboot) + Nível de brilho mínimo + Permite definir o nível de brilho mínimo, aplicável apenas ao modo manual (necessário reiniciar) - Autobrightness levels - Allows to set ambient light levels and corresponding LCD backlight values - Level - Lux max - Brightness (%d – 255) - Specified number is not valid - It is not recommended to set brightness below %d - Brightness cannot be greater than 255 - Values cannot be lower or equal to zero - Values on lower levels cannot be greater than values on higher levels - Values on higher levels cannot be smaller than values on lower levels - Values for %s set - New autobrightness configuration saved - Autobrightness configuration was NOT saved - Set + Níveis de brilho automático + Permite ajustar os níveis de luz ambiente e os correspondentes valores para o brilho da tela + Nível + Lux máx. + Brilho (%d – 255) + Valor especificado inválido + Não é aconselhável um valor inferior a %d + O valor não pode ser superior a 255 + O valor não pode ser negativo + O valor do patamar inferior não pode ser maior que o do patamar superior + O valor do patamar superior não pode ser menor que o do patamar inferior + Valores de %s definidos + Nova configuração de níveis de brilho automático gravada + Configuração de níveis de brilho automático não gravada + Definir Enable lockscreen rotation @@ -229,8 +229,8 @@ Centrar relógio - Media tweaks - Contains various tweaks for media and audio system + Ajustes multimédia + Contém diversos ajustes relacionados com multimédia More music volume steps @@ -737,4 +737,8 @@ Photo changed Photo not changed + + Your screen might not support values lower than 20. If your screen doesn\'t light up, + hold Volume+ key for at least 7 seconds to reset brightness and then adjust minimum brightness to use higher values. + From 022cbbb29344829599e96271ca0ebfb173ee80ed Mon Sep 17 00:00:00 2001 From: Eric850130 Date: Wed, 30 Oct 2013 17:59:14 +0800 Subject: [PATCH 064/255] Update strings.xml Updated Traditional Chinese(Taiwan) translation --- res/values-zh-rTW/strings.xml | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index 3e8dbae9b4..b483ca62de 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -716,11 +716,39 @@ 應用程式啟動器 - 對話框允許最多8個應用程式分配到硬體按鍵操作上或是做為額外的海苔條按鍵 + 對話框允許最多 8 個應用程式分配到硬體按鍵操作上或是做為額外的海苔條按鍵 應用程式槽 %d 沒有應用程式被分配. 使用 GravityBox / 程式啟動器選單來分配應用程式. 顯示程式啟動器按鍵 + + 顯示應用程式啟動器 + + + 顯示自訂按鍵 + 停用 + 搜尋 + 應用程式啟動器 + + + Pie 控制顏色 + 背景顏色 + 前景顏色 + 邊框顏色 + 按鍵選中顏色 + 文字顏色 + 重設顏色 + + + Ena啟用未知來電撥號者照片o + 設定未知來電撥號者 + 照片已更改 + 照片未更改 + + + 您的裝置可能不支援低於 20 的數值,如果您的裝置螢幕亮不起來,您可以按住音量鍵 + 至少 7 秒,然後將會還原亮度,並請設定較高的數值. + + From 076578f162a22a321910a9a283dffa890f2086ea Mon Sep 17 00:00:00 2001 From: C3C0 Date: Wed, 30 Oct 2013 13:01:52 +0100 Subject: [PATCH 065/255] Added com.android.smspush to kill ignore list --- src/com/ceco/gm2/gravitybox/ModHwKeys.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/com/ceco/gm2/gravitybox/ModHwKeys.java b/src/com/ceco/gm2/gravitybox/ModHwKeys.java index d4e48069a5..a08d494320 100644 --- a/src/com/ceco/gm2/gravitybox/ModHwKeys.java +++ b/src/com/ceco/gm2/gravitybox/ModHwKeys.java @@ -104,7 +104,8 @@ public class ModHwKeys { "com.android.systemui", "com.mediatek.bluetooth", "android.process.acore", - "com.google.process.gapps" + "com.google.process.gapps", + "com.android.smspush" )); private static void log(String message) { From c73d21fac54949b91619cc6ec189116b61bd1ec0 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Wed, 30 Oct 2013 16:39:04 +0100 Subject: [PATCH 066/255] Navbar app key: fixed SystemUI crash on tablets Plus improved compatibility with Xperias and possibly other non-AOSP devices --- .../ceco/gm2/gravitybox/ModNavigationBar.java | 117 +++++++++++++----- 1 file changed, 83 insertions(+), 34 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/ModNavigationBar.java b/src/com/ceco/gm2/gravitybox/ModNavigationBar.java index 7bcdfe00af..3635c348a6 100644 --- a/src/com/ceco/gm2/gravitybox/ModNavigationBar.java +++ b/src/com/ceco/gm2/gravitybox/ModNavigationBar.java @@ -39,6 +39,7 @@ public class ModNavigationBar { private static final String CLASS_NAVBAR_VIEW = "com.android.systemui.statusbar.phone.NavigationBarView"; private static final String CLASS_PHONE_STATUSBAR = "com.android.systemui.statusbar.phone.PhoneStatusBar"; + private static final String CLASS_KEY_BUTTON_VIEW = "com.android.systemui.statusbar.policy.KeyButtonView"; private static boolean mAlwaysShowMenukey; private static Object mNavigationBarView; @@ -51,11 +52,10 @@ public class ModNavigationBar { // Application launcher key private static boolean mAppLauncherEnabled; - private static KeyButtonView mAppKey0; - private static KeyButtonView mAppKey90; private static Resources mResources; private static Context mGbContext; private static AppLauncher mAppLauncher; + private static NavbarViewInfo[] mNavbarViewInfo = new NavbarViewInfo[2]; private static void log(String message) { XposedBridge.log(TAG + ": " + message); @@ -66,6 +66,13 @@ static class HomeKeyInfo { public boolean supportsLongPressDefault; } + static class NavbarViewInfo { + ViewGroup navButtons; + View originalView; + KeyButtonView appLauncherView; + int position; + } + private static BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { @@ -212,41 +219,48 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { vRot = (ViewGroup) ((ViewGroup) param.thisObject).findViewById( mResources.getIdentifier("rot0", "id", PACKAGE_NAME)); if (vRot != null) { - navButtons = (ViewGroup) vRot.findViewById( - mResources.getIdentifier("nav_buttons", "id", PACKAGE_NAME)); - mAppKey0 = new KeyButtonView(context); + KeyButtonView appKey = new KeyButtonView(context); lp = new LinearLayout.LayoutParams( (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, mResources.getDisplayMetrics()), LinearLayout.LayoutParams.MATCH_PARENT); lp.weight = 0; - mAppKey0.setLayoutParams(lp); - mAppKey0.setScaleType(ScaleType.FIT_CENTER); - mAppKey0.setClickable(true); - mAppKey0.setImageDrawable(gbRes.getDrawable(R.drawable.ic_sysbar_apps)); - mAppKey0.setOnClickListener(mAppKeyOnClickListener); - navButtons.removeViewAt(0); - navButtons.addView(mAppKey0, 0); + appKey.setLayoutParams(lp); + appKey.setScaleType(ScaleType.FIT_CENTER); + appKey.setClickable(true); + appKey.setImageDrawable(gbRes.getDrawable(R.drawable.ic_sysbar_apps)); + appKey.setOnClickListener(mAppKeyOnClickListener); + navButtons = (ViewGroup) vRot.findViewById( + mResources.getIdentifier("nav_buttons", "id", PACKAGE_NAME)); + log("navButtonsWidth=" + vRot.getWidth() + "; navButtonsHeight=" + vRot.getHeight()); + prepareNavbarViewInfo(navButtons, 0, appKey); } // insert app key in rot90 view vRot = (ViewGroup) ((ViewGroup) param.thisObject).findViewById( mResources.getIdentifier("rot90", "id", PACKAGE_NAME)); if (vRot != null) { + KeyButtonView appKey = new KeyButtonView(context); + if (Utils.isPhoneUI(context)) { + lp = new LinearLayout.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, + mResources.getDisplayMetrics())); + } else { + lp = new LinearLayout.LayoutParams( + (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, + mResources.getDisplayMetrics()), + LinearLayout.LayoutParams.MATCH_PARENT); + } + lp.weight = 0; + appKey.setLayoutParams(lp); + appKey.setClickable(true); + appKey.setImageDrawable(gbRes.getDrawable(R.drawable.ic_sysbar_apps)); + appKey.setOnClickListener(mAppKeyOnClickListener); navButtons = (ViewGroup) vRot.findViewById( mResources.getIdentifier("nav_buttons", "id", PACKAGE_NAME)); - mAppKey90 = new KeyButtonView(context); - lp = new LinearLayout.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, - (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, - mResources.getDisplayMetrics())); - lp.weight = 0; - mAppKey90.setLayoutParams(lp); - mAppKey90.setClickable(true); - mAppKey90.setImageDrawable(gbRes.getDrawable(R.drawable.ic_sysbar_apps)); - mAppKey90.setOnClickListener(mAppKeyOnClickListener); - navButtons.removeViewAt(navButtons.getChildCount() - 1); - navButtons.addView(mAppKey90); + log("navButtonsWidth=" + vRot.getWidth() + "; navButtonsHeight=" + vRot.getHeight()); + prepareNavbarViewInfo(navButtons, 1, appKey); } setAppKeyVisibility(mAppLauncherEnabled); @@ -283,6 +297,51 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { } } + private static void prepareNavbarViewInfo(ViewGroup navButtons, int index, KeyButtonView appView) { + try { + mNavbarViewInfo[index] = new NavbarViewInfo(); + mNavbarViewInfo[index].navButtons = navButtons; + mNavbarViewInfo[index].appLauncherView = appView; + + int searchPosition = index == 0 ? 0 : navButtons.getChildCount()-1; + View v = navButtons.getChildAt(searchPosition); + if (v.getId() == -1 && !v.getClass().getName().equals(CLASS_KEY_BUTTON_VIEW)) { + mNavbarViewInfo[index].originalView = v; + } else { + searchPosition = searchPosition == 0 ? navButtons.getChildCount()-1 : 0; + v = navButtons.getChildAt(searchPosition); + if (v.getId() == -1 && !v.getClass().getName().equals(CLASS_KEY_BUTTON_VIEW)) { + mNavbarViewInfo[index].originalView = v; + } + } + mNavbarViewInfo[index].position = searchPosition; + } catch (Throwable t) { + log("Error preparing NavbarViewInfo: " + t.getMessage()); + } + } + + private static void setAppKeyVisibility(boolean visible) { + try { + for (int i = 0; i <= 1; i++) { + if (mNavbarViewInfo[i].originalView != null) { + mNavbarViewInfo[i].navButtons.removeViewAt(mNavbarViewInfo[i].position); + mNavbarViewInfo[i].navButtons.addView(visible ? + mNavbarViewInfo[i].appLauncherView : mNavbarViewInfo[i].originalView, + mNavbarViewInfo[i].position); + } else { + if (visible) { + mNavbarViewInfo[i].navButtons.addView(mNavbarViewInfo[i].appLauncherView, + mNavbarViewInfo[i].position); + } else { + mNavbarViewInfo[i].navButtons.removeView(mNavbarViewInfo[i].appLauncherView); + } + } + } + } catch (Throwable t) { + log("Error setting app key visibility: " + t.getMessage()); + } + } + private static void updateRecentsKeyCode() { if (mRecentsKeys == null) return; @@ -319,16 +378,6 @@ private static void updateHomeKeyLongpressSupport() { } } - private static void setAppKeyVisibility(boolean visible) { - final int visibility = visible ? View.VISIBLE : View.INVISIBLE; - if (mAppKey0 != null) { - mAppKey0.setVisibility(visibility); - } - if (mAppKey90 != null) { - mAppKey90.setVisibility(visibility); - } - } - private static View.OnClickListener mAppKeyOnClickListener = new View.OnClickListener() { @Override public void onClick(View v) { From cc5a8f8e0f74f8417a3c36eae2eda99f76341b7e Mon Sep 17 00:00:00 2001 From: C3C0 Date: Wed, 30 Oct 2013 16:45:02 +0100 Subject: [PATCH 067/255] Navbar app key: remove forgotten logging --- src/com/ceco/gm2/gravitybox/ModNavigationBar.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/ModNavigationBar.java b/src/com/ceco/gm2/gravitybox/ModNavigationBar.java index 3635c348a6..8e7280b549 100644 --- a/src/com/ceco/gm2/gravitybox/ModNavigationBar.java +++ b/src/com/ceco/gm2/gravitybox/ModNavigationBar.java @@ -232,7 +232,6 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { appKey.setOnClickListener(mAppKeyOnClickListener); navButtons = (ViewGroup) vRot.findViewById( mResources.getIdentifier("nav_buttons", "id", PACKAGE_NAME)); - log("navButtonsWidth=" + vRot.getWidth() + "; navButtonsHeight=" + vRot.getHeight()); prepareNavbarViewInfo(navButtons, 0, appKey); } @@ -259,7 +258,6 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { appKey.setOnClickListener(mAppKeyOnClickListener); navButtons = (ViewGroup) vRot.findViewById( mResources.getIdentifier("nav_buttons", "id", PACKAGE_NAME)); - log("navButtonsWidth=" + vRot.getWidth() + "; navButtonsHeight=" + vRot.getHeight()); prepareNavbarViewInfo(navButtons, 1, appKey); } From ed0cb0c080a5e9827c0210436b5492ea02d238c6 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Wed, 30 Oct 2013 16:50:17 +0100 Subject: [PATCH 068/255] App launcher: specify intent action when launching apps --- src/com/ceco/gm2/gravitybox/AppLauncher.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/com/ceco/gm2/gravitybox/AppLauncher.java b/src/com/ceco/gm2/gravitybox/AppLauncher.java index 2505e12412..9115a6f558 100644 --- a/src/com/ceco/gm2/gravitybox/AppLauncher.java +++ b/src/com/ceco/gm2/gravitybox/AppLauncher.java @@ -223,6 +223,7 @@ public void onClick(View v) { }; private void startActivity(Context context, Intent intent) { + intent.setAction(Intent.ACTION_MAIN); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); context.startActivity(intent); } From 7a0be881b5e1dfaad09463d7125944ec039f37b3 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Wed, 30 Oct 2013 16:50:17 +0100 Subject: [PATCH 069/255] Specify intent action when launching apps --- src/com/ceco/gm2/gravitybox/AppLauncher.java | 1 + src/com/ceco/gm2/gravitybox/ModLockscreen.java | 2 +- src/com/ceco/gm2/gravitybox/quicksettings/QuickAppTile.java | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/AppLauncher.java b/src/com/ceco/gm2/gravitybox/AppLauncher.java index 2505e12412..9115a6f558 100644 --- a/src/com/ceco/gm2/gravitybox/AppLauncher.java +++ b/src/com/ceco/gm2/gravitybox/AppLauncher.java @@ -223,6 +223,7 @@ public void onClick(View v) { }; private void startActivity(Context context, Intent intent) { + intent.setAction(Intent.ACTION_MAIN); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); context.startActivity(intent); } diff --git a/src/com/ceco/gm2/gravitybox/ModLockscreen.java b/src/com/ceco/gm2/gravitybox/ModLockscreen.java index 4f5536986d..ff00626a61 100644 --- a/src/com/ceco/gm2/gravitybox/ModLockscreen.java +++ b/src/com/ceco/gm2/gravitybox/ModLockscreen.java @@ -625,7 +625,7 @@ private static AppInfo getAppInfo(Context context, String app) { String[] splitValue = app.split(AppPickerPreference.SEPARATOR); ComponentName cn = new ComponentName(splitValue[0], splitValue[1]); - Intent i = new Intent(); + Intent i = new Intent(Intent.ACTION_MAIN); i.setComponent(cn); appInfo.intent = i; diff --git a/src/com/ceco/gm2/gravitybox/quicksettings/QuickAppTile.java b/src/com/ceco/gm2/gravitybox/quicksettings/QuickAppTile.java index 1eb5da32af..12f35a3b9b 100644 --- a/src/com/ceco/gm2/gravitybox/quicksettings/QuickAppTile.java +++ b/src/com/ceco/gm2/gravitybox/quicksettings/QuickAppTile.java @@ -106,7 +106,7 @@ public String getValue() { public Intent getIntent() { if (mPackageName == null || mClassName == null) return null; - Intent i = new Intent(); + Intent i = new Intent(Intent.ACTION_MAIN); i.setClassName(mPackageName, mClassName); return i; } From c5361d9c0aa8e759019ba48dc696bd7287825277 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Thu, 31 Oct 2013 07:53:47 +0100 Subject: [PATCH 070/255] Updated Ukrainian translations (thanks to egor4yk90) --- res/values-uk/strings.xml | 705 ++++++++++++++++++++++++-------------- 1 file changed, 453 insertions(+), 252 deletions(-) diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index 1e6dec05cb..941c8c6f74 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -1,280 +1,481 @@ - GravityBox - - Стиль індикатора батареї - Стандартний індикатор - Круговий з процентами - Цифри процентів - Ніякого - - Гортання треків гучністю - Гортає музичні треки довгим натисканням гучності коли екран заблоковано - + Вид індикатора заряду + Стоковий індикатор + Круглий індикатор + Круглий індикатор з відсотками + Індикатор з відсотками + Не показувати + Пропуск треку з допомогу клавіш гучності + Пропускати треки довгим натисканням клавіш гучності при вимкненому екрані Попередження про низький заряд - Спливаюче вікно та звук - Тільки вікно + Повідомлення і звук + Тільки повідомлення Тільки звук - Вимкнене - + Не попереджати Зміни набудуть чинності після перезавантаження - - Приховування іконок сигналу - Автоматично приховує іконки сигналу обраних SIM-слотів за відсутності карток, вимикає повідомлення \"SIM-картка відсутня\" - Приховувати у 1-му SIM-слоті - Приховувати у 2-му SIM-слоті - Вимкнути повідомлення \"SIM-картка відсутня\" - Вимкнути повідомлення \"SIM-картка відсутня\" - - Варіанти вимкнення - Додає варіанти вимкнення пристрою з перезавантаженням та меню відновлення (рекавері) - Меню відновлення (рекавері) - - Керування курсором гучністю - Дозволяє рухати курсор клавішами гучності в текстових полях - Вимкнено - Збільш./зменш. гучності рухає курсор вліво/вправо - Збільш./зменш. гучності рухає курсор вправо/вліво - - Завершення усіх завдань - В меню поточних завдань створює кнопку для завершення одразу усіх завдань - - Виправлення дати та часу - Увімкніть, якщо трапляються збої під час налаштування дати та часу (потрібне перезавантаження) - - Виправлення ID дзвінка - Увімкніть, якщо трапляється неспівпадіння під час вхідного дзвінка (потрібне перезавантаження) - Для набуття чинності після перезавантаження очистіть та знову додайте контакти! Налаштування / Програми / Усі - очистити дані Пам\'яті контактів. - - Виправлення ID повідомлень - Увімкніть, якщо трапляються розрізнені ланцюжки повідомлень для одного контакту (потрібне перезавантаження) - Для набуття чинності після перезавантаження видаліть всі розрізнені ланцюжки повідомлень! - - Виправлення календаря - Увімкніть, якщо трапляються періодичні самовмикання екрану (потрібне перезавантаження) - + Автоматично приховувати іконку антени + Автоматично приховує іконку антени для вибраного SIM-слота коли SIM-карта в цьому слоті відсутня, відключає повідомлення \"Відсутня SIM\" + Приховувати перший слот + Приховувати другий слот + Вимкнути сповіщення + Сповіщення \"Відсутня SIM\" відключені + Розширене меню перезавантаження + Включає розширене меню перезавантаження з можливістю перезавантаження у відновлення + Відновлення + Завантажувач + Управління курсором клавішами гучності + Дозволяє управляти курсором в текстових полях клавішами гучності + Відключено + Звук вгору/вниз для переміщення курсору вліво/вправо + Звук вгору/вниз для переміщення курсору вправо/вліво + Закрити всі поточні завдання + Падіння діалогу Дата і час + Включити, якщо при вході в налаштування Дати та часу відбувається падіння (Необхідна перезавантаження) + Визначення номера для дзвінка + Включити, якщо номер абонента не співпадає з контактом при вхідному дзвінку (Необхідна перезавантаження) + Після перезавантаження необхідно видалити і заново додати контакти, щоб зміни вступили в силу! Використовуйте Настройки - Додатки - Сховище контактів - Очистити дані. + Визначника номера для повідомлень + Включити, якщо спостерігається проблема кількох гілок повідомлень для одного контакту (Необхідна перезавантаження) + Після перезавантаження необхідно видалити всі роздільні гілки у Повідомленнях, щоб зміни вступили в силу! + Додаток Календар + Включити, якщо є проблема з періодично вмикаючимся екраном в сплячому режимі Важливо - - Повноекранне фото - Під час вхідного дзвінка показує фото контакту на повний екран - - - Синхр. увімк. - Синхр. вимк. + Фото того, хто телефонує на весь екран + Відображати фото того, хто телефонує на весь екран при вимк.иках + Синхрон. увімк. + Синхрон. вимк. ТД Wi-Fi увімк. ТД Wi-Fi вимк. Ліхтарик увімк. Ліхтарик вимк. - Натисніть для вимк. - Відтворення… - Запис… + Натисніть для вимкнення + Відтворення... + Запис... Записано - Довг. натис. для запису - Завершити запис - - - Плитки швидких налаштувань - Дозволяє показати або сховати плитки швидких налаштувань у панелі сповіщень - Користувач - Режим літака - Стан батареї + Утримаєте для запису + Торкніться щоб зупинити запис + Відключено + Нормальний + Розширений + Не засинати увімк. + Не засинати вимк. + Wi-Fi + Wi-Fi вимк. + Чи не підключено + Включення... + Іконки швидких налаштувань статусбару + Дозволяє вмикати/вимикати іконки швидких налаштувань в статусбаре + Профіль користувача + Режим польоту + Заряд батареї Wi-Fi + Wi-Fi (CM стиль) Bluetooth GPS - Мобільні дані - Режим мережі - Використання даних + GPS (CM стиль) + Мобільний інтернет + Режим мережі (2G/3G) + Передача даних (статистика) Профілі звуку Яскравість - Час гасіння екрану - Автообертання екрану + Таймер відключення екрану + Автоповорот Синхронізація - Портативна точка доступу + Точка доступу Wi-Fi Ліхтарик GravityBox - Блокування - Швидкий запис - - - Змішувач кольорів - Натисніть для обрання кольору - - - Тло панелі сповіщень - Дозволяє призначати колір тла та прозорість панелі сповіщень - - - Синтез мовлення - Розблокує налаштування голосового пошуку та виводу синтезу мовлення з тексту в налаштуваннях мови та введення (потрібне перезавантаження) - - - Параметри розробника - Розблокує додаткові параметри розробника (потрібне перезавантаження) - - - Твіки панелі сповіщень - Різноманітні твіки панелі сповіщень - Різне - Решта твіків, що не підпадають під конкретну категорію - Основні твіки - Основні виправлення для MTK6589. Використовуйте лише в разі необхідності. - - + Сон + Швидка запис + Налаштування + Звук + Розширений робочий стіл + Не засинати + Знімок екрану + Вибір кольору + Натисніть на колір для застосування + Колір панелі повідомлень + Дозволяє задати колір і прозорість панелі повідомлень + Виправлення мовних налаштувань + Розблокує голосовий пошук і розпізнавання мови в налаштуваннях Мова і введення (Необхідна перезавантаження) + Розширені параметри Для розробника + Розблокує розширені параметри Для розробника (Необхідна перезавантаження) + Налаштування статусбара + Містить деякі налаштування статусбара + Різні налаштування + Містить налаштування, що не відносяться до інших категорій + Загальні налаштування + Містить загальні налаштування, пов\'язані з MTK6589. Використовувати тільки при необхідності. Про програму - Автор коду C3C076@XDA. Натисніть щоб зайти на офіційну сторінку обговорення. - Xposed framework - Автор коду rovo89@XDA. Натисніть щоб зайти на офіційну сторінку обговорення. - Пожертва авторові - Зробіть пожертву якщо вважаєте додаток вартим цього! Приділіть також увагу пожертві для rovo89 за його чудовий Xposed framework. - - - %s буде перезавантажений. - %s буде перезавантажений у меню відновлення (рекавері). - - - Ефект старого кінескопу - Вмикає анімацію, що імітуючє вимкнення старого кінескопу (або ж CRT, ЕПТ, ЭЛТ) під час вимкнення екрану - - + Кодується C3C076@XDA. Натисніть для переходу до офіційної темі. + Експоузд рамках + Кодується rovo89 @ XDA. Натисніть для переходу до офіційної темі. + Пожертвувати + Пожертвуйте, якщо вважаєте, що додаток варто того! Також задумайтеся про пожертву rovo89 за його чудовий Експоузд рамки. + %s буде перезавантажено. + %s буде перезавантажений у відновленні. + %s буде перезавантажений в завантажувач. + Ефект кіноскопу вимкнення екрану + Дозволяє включити анімацію, яка імітує вимикання старих ЕПТ-моніторів, при вимк.юченні екрану Інженерне меню - Запускає додаток інженерного меню - - - Dual SIM Ringer - Запускає додаток, що дозволяє призначити мелодії дзвінка та звуки сповіщень для кожної SIM-картки окремо - - - Твіки екрану блокування - Різноманітні твіки екрану блокування - Тло екрану блокування - Стиль тла - Шпалери за умовчанням - Заливка кольором - Зображення на вибір - Призначити колір - Дозволяє на вибір призначати тло та колір екрану блокування - Зображення на вибір - Дозволяє на вибір призначати фонове зображення екрану блокування - Тло змінене - Тло не змінене - Інше - Максимізація віджетів - Якщо увімкнено, то віджети екрану блокування будуть максимізовані за умовчанням - - - Твіки живлення - Різноманітні твіки стосовно живлення - - - Мерехтіння світлодіода - Вимикає докучливе мерехтіння світлодіода за низького рівня заряду та коли батарея не заряджається - - - Твіки екрану - Різноманітні твіки екрану - - + Дозволяє запустити Інженерне меню + Мелодія дзвінка для 2-х SIM + Запускає додаток, що дозволяє встановити мелодію дзвінка і повідомлень окремо для кожної SIM-карти + Налаштування екрану блокування + Містить різні налаштування екрану блокування + Фон екрану блокування + Стиль фону + Стандартні шпалери + Заповнення кольором + Користувацького зображення + Задати колір + Дозволяє задати колір фону для екрану блокування + Задати зображення + Дозволяє встановити користувацького зображення для екрану блокування + Фон змінений + Фон не змінений + Інші + Розгорнути віджети + Коли включено, віджети будуть максимізувати за замовчуванням + Налаштування живлення + Містить різні налаштування, пов\'язані з зарядом + Вимкнути спалах + Відключає спалах при малому заряді батареї і відключеному зарядному пристрої + Налаштування екрану + Містить різні настройки екрану Мінімальний рівень яскравості - Дозволяє призначити мінімальний рівень яскравості. Застосовується для ручного налаштування яскравості (потрібне перезавантаження) - - - Автоматична яскравість - Дозволяє призначати значення рівня зовнішнього освітлення та відповідні значення рівнів підсвітки екрану + Дозволяє встановити мінімальний рівень яскравості. Застосовується до ручному налаштуванні яскравості. (Необхідна перезавантаження) + Рівні автояскравості + Дозволяє налаштувати рівні яскравості підсвічування залежно від зовнішньої освітленості Рівень - Люкс макс. - Яскравість (%d – 255) - Невірне значення - Не рекомендовано призначати яскравість нижче %d - Яскравість не може бути більшою за 255 - Значення не можуть бути меншими нуля - Значення для нижчих рівнів не можуть бути більшими значень для вищих - Значення для вищих рівнів не можуть бути меншими значень для нижчих - Значення для %s задано - Нова конфігурація автоматичної яскравості збережена - Конфігурація автоматичної яскравості НЕ збережена - - - Автообертання е. б. - УВАГА: на деяких пристроях можлива зміна мішеней кільця розблокування, якщо екран блокування AOSP був модифікований виробником - - - Задіяти кнопку меню - Дозволяє використовувати кнопку меню для швидкого розблокування пристрою в режимі екрану блокування (потрібне перезавантаження) - - - Пробудження повідомленням - Запобігає увімкненню екрану під час надходження повідомлення (потрібне перезавантаження) - - - Центрування годинника - - - Твіки медіа - Різноманітні твіки для медіа та аудіосистеми - - - Більше кроків гучності - Додає більше кроків регулювання гучності для музики (потрібне перезавантаження) - - - Безпечна гучність навушників - Активує та деактивує установку безпечного рівня гучності медіа для навушників - - - Світлодіод зарядження - Вимикає світлодіод під час зарядження пристрою - - - Дії апаратних кнопок - Дозволяє призначати дії на апаратні кнопки - Довге натискання кнопки меню - Подвійний дотик кнопки меню - Довге натискання кнопки назад - За умовчанням + Максимальна освітленість + Яскравість ( %d - 255) + Некоректне значення + Не рекомендовано установлювати яскравість нижче %d + Яскравість не може бути вище 255 + Значення не повинно бути менше 0 + Значення на нижньому рівні не може бути вище значень на верхніх рівнях + Значення на верхньому рівні не може бути нижче значень на нижніх рівнях + Значення для %s встановлено + Нова конфігурація автояркость збережена + Конфігурація автояркость НЕ БУЛА збережена + Встановити + Включити поворот екрану блокування + УВАГА: може перемістити цілі для кільця розблокування на деяких пристроях у разі, якщо екран блокування з AOSP був змінений виробником + Включити Меню + Дозволяє швидко розблокувати пристрій з екрану блокування клавішею Меню (Необхідна перезавантаження) + Виправлення прокидання бенкет вхідних повідомленнях + Запобігає включення екрану при вхідних повідомленнях (Необхідна перезавантаження) + Годинники в центрі + Налаштування мультимедіа + Містить різні налаштування для медіа-та аудіосистеми + Більше рівнів гучності для музики + Додає більше кроків для зміни гучності музики (Необхідна перезавантаження) + Безпечний звук у навушниках + Дозволяє включити або вимк.ючити функцію безпечного звуку в навушниках + Вимкнути діод зарядки + Дозволяє відключити діод під час заряду + Дії кнопок + Дозволяє задати свої дії для кнопок телефону + Довге натиснення Меню + Подвійне натискання Меню + Довге натиснення Назад + Дія за замовчуванням Пошук Голосовий пошук - До попереднього додатку - Завершити усі поточні - Заблокувати - Довге натискання завершення - Застосовується до дії завершення усіх поточних завдань. Визначає тривалість натискання для спрацьовування - Швидкість подвійного дотику - Застосовується до дії подвійного дотику меню. Визначає швидкість подвійного дотику для спрацьовування - Завдання %s завершене - Нічого завершувати - Немає попереднього додатку - - - Твіки телефонії - Різноманітні твіки телефонії - - - Перегортання під час дзвінка - Дозволяє призначити дію на перегортання пристрою лицем донизу під час вхідного дзвінка + Переключиться на попередній додаток + Закрити поточний додаток + Вимкнути екран + Затримка довгого натискання для закриття програми + Застосовується до кнопці Закрити поточний додаток. Визначає, як довго потрібно тримати кнопку щоб закрити програму + Швидкість подвійного натискання + Застосовується до подвійному натисненню Меню. Визначає, як швидко потрібно натиснути на кнопку Меню для спрацьовування подвійного натискання. + Додаток %s закрито + Нема чого закривати + Попереднє додаток не знайдено + Налаштування телефонії + Містить різні налаштування телефону + Переворот під час дзвінка + Дозволяє задати дію при перевертанні телефону під час вхідного дзвінка Нічого не робити - Заглушити дзвінок - Покласти слухавку - - - Вимкнення вібрації з\'єднання - Вимикає вібрацію під час з\'єднання дзвінка - - - М\'яке перезавантаження - - - Суцільне чорне тло - Призначає суцільне чорне тло замість чорно-сірого градієнту для системної теми за умовчанням Holo (потрібне перезавантаження) - - - Плиток в рядку - Призначає скільки плиток швидких налаштувань розміщувати в одному рядку. Розмір буде змінений належним чином. Застосовується до портретного режиму. - - - Показувати день тижня - - - Пристрій - + Вимкнути звук + Скинути дзвінок + М\'які перезавантаження + Чорний задній фон + Використовувати чорний фон для системної Holo-теми за замовчуванням замість темно-сірого градієнта (Необхідна перезавантаження) + Іконок в ряд + Визначає, як багато іконок швидких налаштувань буде показано в одному ряду. Розміри зміняться відповідно. Застосовується до портретному режиму. + Відображати день тижня + Розширювана звукова панель + Включає розширювану звукову панель, на якій можна міняти звук для різних потоків + Зв\'язати гучність рінгтона і повідомлень + Коли відключено, гучність повідомлень і рінгтона можна задавати незалежно + Автоувімкнення швидких налаштувань + Швидкі налаштування будуть показані автоматично (якщо немає повідомлень) при витягуванні статусбара + Швидке витягування + За край статусбара можна витягнути швидкі налаштування + Вимкнено + Праворуч + Зліва + Відключення виходу зі сну клавішами гучності + Для пристроїв на зразок Jiayu G3s, G4 де зміна звуку будить пристрій + Кольори статусбара + Включити кольору іконок + Колір іконок статусбара + Задає кольори для іконок статусбара і годин + Колір активності даних + Задає кольори для індикаторів активності даних + Управління Швидкими налаштуваннями + Стиль шторки повідомлень + Фон шторки повідомлень + Стандартний фон + Заповнення кольором + Користувацького зображення + Задати колір фону + Задати портретну картинку + Задати ландшафтну картинку + Прозорість фону + Режим фону + Передній план + Задній план + Відключити індикатор роумінгу + При відключенні R-індикатор не буде відображатися. Використовуйте з обережністю. + Зарядка ( %d%%) + Заряджений + %d%% залишилося + Немає мережі + Режим польоту + Тільки екстрені + Віялове меню + Включити віялове меню + Розмір навігаційних кнопок + Позиція перемикачів + Ліва межа + Нижня межа + Права межа + Верхня межа + Режим підсвічування клавіш + Стандартний + Відключити підсвічування + Включати завжди, коли включений екран + Сповіщення підсвічуванням клавіш + ЕКСПЕРИМЕНТАЛЬНО! Бликаюче підсвічування клавіш при повідомленнях. Використовувати тільки у разі відсутності світлодіодних індикатора. Може призвести до погіршення життя батареї. + Приховати панель навігації + Приховує панель навігації, коли включено віялове меню (для пристроїв з програмними кнопками навігації, необхідне перезавантаження) + Згладжений Holo фон + Замінює стандартний фон на згладжений для уникнення неплавного градієнта (необхідне перезавантаження) + Вимкнути залізні кнопки + Відключає кнопки НАЗАД, ДОДОМУ, МЕНЮ при включеному віяловому меню. Нестандартні дії цих кнопок по раніше будуть працювати. (Для пристроїв із залізними кнопками) + Використовувати тему Holo Dark + Перемикає тему інтерфейсу GravityBox зі світлою на темну + Вимкнено + Зверху зліва + Зверху справа + Знизу ліворуч + Знизу праворуч + Налаштувати відступ зверху + Вимкнути попередження про роумінг + Вимкнути попередження про роумінг при відправці повідомлень або здійснення дзвінків у роумінгу + Пошук + (Ні) + Швидкий запуск + Налаштування тайла Швидкого запуску + Основний додаток + Довгий тап, слот 1 + Довгий тап, слот 2 + Довгий тап, слот 3 + Довгий тап, слот 4 + GPS вкл + GPS вимк. + GPS блок + Завжди показувати Меню + Режим дзвінка + Налаштування годин + Ховати AM/PM + Ховати годинник + Розмір перемикачів + Управління прозорістю + Статусбар для головного екрану + Статусбара для екрану блокування + Панель навігації для ланчера + Панель наві. для екрану блокування + Заховати значок будильника + Рівень загасання підсвічування + Яскравість для приглушеної підсвічування - коли екран майже вимк.ючився (необхідне перезавантаження) + Телефон + Планшет + Налаштування яскравості + Увімкнути налаштування яскравості + Включити тільки у випадку, якщо пристрій використовує стандартний механізм Android для регулювання яскравості. Залиште вимкненим, якщо є проблеми, якось пов\'язані з яскравістю. (Необхідна перезавантаження) + Показати нещодавні додатки + Дія за довгому натисненню Головна + Запустити додаток 1 + Вибрати додаток 1 + Запустити програму 2 + Вибрати додаток 2 + Додаток не вибрано! + Додаток не знайдено! + Додаток-годинник для панелі повідомлень + Пов\'язує годинник на статусбаре з обраним додатком замість налаштувань Дати та часу + Очікування відгуку від системного фреймворку GravityBox... + Системний фреймворк GravityBox не відповідає. Вихід. + Національний роумінг + Підключатися до служб передачі даних в національному роумінгу + Розширений робочий стіл + Відключено + Заховати статусбар + Заховати панель навігації + Ховати все + Розширений робочий стіл + Розширений робочий стіл ВКЛЮЧЕНИЙ + Расшренний робочий стіл ВИМКНЕНИЙ + Знімок екрану + Показати меню + Включити розширений робочий стіл + Розширений робочий стіл відключений! + Налаштування панелі навігації + Містить різні налаштування панелі навігації + Переписати налаштування за замовчуванням + Дозволяє включити всі твіки панелі навігації (Необхідна перезавантаження) + Включити панель навігації + Необхідне перезавантаження + Висота панелі навігації + Застосовується до портретної орієнтації + Застосовувати для горизонтальної та вертикальної орієнтацій + Ширина панелі навігації + Застосовується до ландшафтної орієнтації + Завжди показувати кнопку меню + Скріншот в меню вимкнення + Цілі екрану блокування + Включити цілі екрану блокування + Загальний перемикач цілей екрану блокування + Цільове додаток %s + Вертикальний зсув кільця розблокування + Горизонтальне зміщення + Включити контроль яскравості + Міняти яскравість слайдом вздовж статусбара + Телефонія + Повідомлення + Передача даних + Змінювати Unicode + Конвертує Unicode символи в звичайні символи. Зменшує загальний розмір повідомлення. + Не скидати символи + Змінювати некодовані символи + Змінювати всі символи Unicode + Вимкнути 2G попередження + Відключає попередження про повільної швидкості передачі даних коли у швидких налаштуваннях включений режим 2G для SIM-карти + Слідувати кольором батареї + Дозволяє годинах в статусбаре, батареї і тексту з відсотками використовувати колір стокової батареї. Працює при вимкненому зміну кольорів іконок. + Режим тайла Режим мережі + 2G/2G+3G/3G/(LTE) + 2G/2G+3G/(LTE) + 2G/3G/(LTE) + Дозволити всі повороти + Замінити стандартну поведінку тайлів + Замінює поведінка торкання/довгого торкання для обраних тайлів (необхідне перезавантаження) + Слот SIM для тайла Режим мережі + Визначає слот, для якого працює тайл Режим мережі ( %s) + SIM-слот 1 + SIM-слот 2 + Ніколи + Завжди + При включеному розширеному дисплеї + Коли розширений дисплей без панелі навігації + Не чіпати значок батареї + Використовувати в випад заміни стокового значка батареї стороннім модом + Увімкнути. екран при підключенні + Якщо включено, екран буде включаться при підключенні/відключенні USB/навушників (необхідне перезавантаження) + Вимкнути. звук регулювання гучності + Відключає звук, біп при регулюваннні гучності + Вібрація дзвінка + На початку дзвінка + Наприкінці дзвінка + При очікуванні дзвінка + Кожні 45 секунд при вихідному + Сортування тайлів + Дозволяє сортувати тайли + Блокування повідомлень + Дозволяє блокувати вибрані повідомлення + Список формується автоматично при появі повідомлення. Ви можете вирішити пізніше, яке сповіщення блокувати. Використовуйте з обережністю. + Скинути список + Ви впевнені, що хочете скинути список? Це очистить список і розблокує всі поточні повідомлення. + (Список порожній) + Швидка розблокування + Розблокувати автоматично при введенні вірного PIN/пароля. + Відключено + Типово + рядковими + ВЕЛИКИМИ + Правила блокування статусбара + Типово + Розблоковано якщо блокування клавіатури ненадіне + Заблокований + Монітор трафіку + Включити моніторинг + Показує трафік завжди, коли включена передача даних + Позиція + Автоматично (у центрі або праворуч залежно від позиції годин) + Зліва + Праворуч + Розмір + Звичайний + Маленький + Дуже маленький + B + КБ + Мегабайт + з + Відключити обмеження віджетів + Дозволяє отримати необмежену кількість віджетів екрану блокування + %1$s вільно + %1$s використано + Панель пам\'яті поточних завдань + вимкнено + зверху + знизу + Дія з одиночного торкання + Дія по довгому торкання + Статус батареї + Показувати арку батареї, намальовану навколо кільця розблокування + Включити ліхтарик + Ліхтарик по довгому натисненню Головна + Включити ліхтарик при заблокованому пристрої. Екран повинен бути включений, якщо пристрій не може зчитувати натискання кнопки у сні + Розширювати автоматично + Кнопка Меню + Кнопка Додому + Кнопка Назад + Кнопка Недавні + Кнопки гучності + Інші установки + Дія за довгому натисненню + Дейтсвіе за одним натисканням + Дія за подвійним торкання + Вимкнути подвійне торкання + Режим кольору сигналу + Використовувати іконки Гб (з підтримкою рівня) + Використовувати стандартні іконки (без підтримки рівня) + Не застосовувати колір + Запуск додатків + Діалог, що дозволяє вибрати до 8 додатків, які можна призначити для дій кнопок або помістити на панель навігації + Слот додатки %d + Додатки не вибрані. Використовуйте GravityBox/Запуск додатків для вибору додатків. + Показувати кнопку запуску програми + Запустити програму + Показати призначену для користувача кнопку + Відключено + Пошук + Запуск додатків + Колір веєрного меню + Колір фону + Колір переднього плану + Колір контуру + Колір обраної кнопки + Колір тексту + Скинути кольору + Включити фото невідомого абонента + Задати фото + Фото змінено + Фото не змінено + Ваш екран може не підтримувати значення менше 20. Якщо ваш екран не засвітиться, затисніть кнопку Гучність+ як мінімум на 7 секунд для скидання яскравості і потім виправте значення яскравості на більше. From 1f801157c70ab6a6258c4d8c96015291b2026832 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Thu, 31 Oct 2013 08:08:33 +0100 Subject: [PATCH 071/255] Version 2.6.7 --- AndroidManifest.xml | 4 ++-- CHANGELOG.txt | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 4c8f5c395e..d9736174aa 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -16,8 +16,8 @@ + android:versionCode="43" + android:versionName="2.6.7" > Date: Thu, 31 Oct 2013 17:46:12 +0800 Subject: [PATCH 072/255] Update strings.xml Fixed Tr.Chinese(Taiwan) translation error --- res/values-zh-rTW/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index b483ca62de..773022e833 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -742,7 +742,7 @@ 重設顏色 - Ena啟用未知來電撥號者照片o + 啟用未知來電撥號者照片 設定未知來電撥號者 照片已更改 照片未更改 From daa65520199e2f1c5d012a3a752906aca14c81fd Mon Sep 17 00:00:00 2001 From: pitone02 Date: Thu, 31 Oct 2013 12:06:57 +0100 Subject: [PATCH 073/255] update italian translation to v2.6.6 update italian translation to v2.6.6 now v2.6.6 is already released. can i check in any way my translation to my phone without wait your next release (that will include my new translation)? --- res/values-it/strings.xml | 86 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 4d92f2e318..e78cc08c31 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -631,4 +631,90 @@ Disabilita limitazione widget Consenti numero illimitato widget in lockscreen + + + %1$s liberi + + %1$s usati + Memoria Applicazioni recenti + Spento + In alto + In basso + + + Azione pressione breve + Azione pressione lunga + + + Mostra Arco batteria + Mostra arco stato batteria disegnato nell\'anello di sblocco schermo + + + Torcia attiva/disattiva + + + Torcia su pressione lunga tasto home + Torcia on/off se telefono bloccato. Lo schermo deve essere acceso se il telefono non supporta nativamente lo sblocco usando il tasto home. + + + Espandi automaticamente + + + Tatso Menu + Tasto Home + Tasto Indietro + Tasto Recenti + Tasti volume + Altre impostazioni + Azione pressione lunga + Azione pressione corta + Azione doppio tap + + + Disabilita doppio tap + + + Colori icona segnale + Usa icone GravityBox (con supporto del segnale) + Usa icona stock (senza supporto del segnale) + Non applicare colore + + + Avvio applicazioni + Consente di definire fino a 8 app che possono essere assegnate a azioni tasti hardware or usate come barra di navigazione aggiuntiva + Application slot %d + Nessuna app assegnata. Usa GravityBox / Menu Launcher Applicazioni per assegnare le applicazioni. + + + Mostra Tasto Avvio Applicazioni + + + Mostra Launcher app + + + Mostra tasti personalizzati + Disabilitato + Cerca + Launcher app + + + Colori Pie + Colore sfondo + Colore primo piano + Colore sottolineatura + Key selected color + Colore testo + Reset colori + + + Abilita foto per chiamante sconosciuto + Imposta foto chiamante sconosciuto + Foto cambiata + Foto non cambiata + + + Il tuo schermo potrebbe non supportare valori inferiori a 20. Se il tuo schermo non si accende, + tieni premuto il tasto Volume+ per almeno 7 secondi per resettare l'impostazione luminosità e poi reimposta la luminosità con un valore superiore. + + From 1d5284bcc6b01f6209db1f5bee9cc788afa128e8 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Thu, 31 Oct 2013 13:42:14 +0100 Subject: [PATCH 074/255] Updated Italian translations (thanks to pitone02) --- res/values-it/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index e78cc08c31..cab2d62daa 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -714,7 +714,7 @@ Il tuo schermo potrebbe non supportare valori inferiori a 20. Se il tuo schermo non si accende, - tieni premuto il tasto Volume+ per almeno 7 secondi per resettare l'impostazione luminosità e poi reimposta la luminosità con un valore superiore. + tieni premuto il tasto Volume+ per almeno 7 secondi per resettare l\'impostazione luminosità e poi reimposta la luminosità con un valore superiore. From c90ce716ca16762d75e1be09abba4b7ee61cb533 Mon Sep 17 00:00:00 2001 From: Mohammad Abu-Garbeyyeh Date: Thu, 31 Oct 2013 15:42:45 +0200 Subject: [PATCH 075/255] Fix volume panel expansion on Xperia devices. --- src/com/ceco/gm2/gravitybox/ModVolumePanel.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/com/ceco/gm2/gravitybox/ModVolumePanel.java b/src/com/ceco/gm2/gravitybox/ModVolumePanel.java index bc3988645e..c4bade77b5 100644 --- a/src/com/ceco/gm2/gravitybox/ModVolumePanel.java +++ b/src/com/ceco/gm2/gravitybox/ModVolumePanel.java @@ -119,6 +119,20 @@ protected void afterHookedMethod(final MethodHookParam param) throws Throwable { context.registerReceiver(mBrodcastReceiver, intentFilter); } }); + + if (Utils.isXperiaDevice()) { + try { + XposedHelpers.findAndHookMethod(classVolumePanel, "inflateUi", new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) throws Throwable { + mVoiceCapable = XposedHelpers.getBooleanField(param.thisObject, "mVoiceCapable"); + updateVolumePanelMode(); + } + }); + } catch (Throwable t) { + if (DEBUG) log("We might want to fix our Xperia detection..."); + } + } XposedHelpers.findAndHookMethod(classVolumePanel, "createSliders", new XC_MethodHook() { @Override From 8dc42f37d6f24f6da7061ad69ee668e7a15a88a5 Mon Sep 17 00:00:00 2001 From: Mohammad Abu-Garbeyyeh Date: Thu, 31 Oct 2013 16:29:40 +0200 Subject: [PATCH 076/255] Make expandable volume panel take all the wasted space. --- src/com/ceco/gm2/gravitybox/ModVolumePanel.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/com/ceco/gm2/gravitybox/ModVolumePanel.java b/src/com/ceco/gm2/gravitybox/ModVolumePanel.java index bc3988645e..b6738e7f84 100644 --- a/src/com/ceco/gm2/gravitybox/ModVolumePanel.java +++ b/src/com/ceco/gm2/gravitybox/ModVolumePanel.java @@ -205,6 +205,22 @@ protected void beforeHookedMethod(final MethodHookParam param) throws Throwable } } }); + + XposedHelpers.findAndHookMethod(classVolumePanel, "expand", new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) throws Throwable { + View mMoreButton = (View) XposedHelpers.getObjectField(mVolumePanel, "mMoreButton"); + View mDivider = (View) XposedHelpers.getObjectField(mVolumePanel, "mDivider"); + + if (mMoreButton != null) { + mMoreButton.setVisibility(View.GONE); + } + + if (mDivider != null) { + mDivider.setVisibility(View.GONE); + } + } + }); XposedBridge.hookAllConstructors(classAudioService, new XC_MethodHook() { From c158646ea543efcf3b4e6a24755272f6442e44d9 Mon Sep 17 00:00:00 2001 From: Mohammad Abu-Garbeyyeh Date: Thu, 31 Oct 2013 16:47:39 +0200 Subject: [PATCH 077/255] Add an option to make the panel fully expand. --- res/values/strings.xml | 4 ++++ res/xml/gravitybox.xml | 12 ++++++++---- src/com/ceco/gm2/gravitybox/GravityBoxSettings.java | 9 +++++++++ src/com/ceco/gm2/gravitybox/ModVolumePanel.java | 10 ++++++++++ 4 files changed, 31 insertions(+), 4 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index c376eec30e..79dc667064 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -308,6 +308,10 @@ Expandable volume panel Enables expandable volume panel with ability to set volumes for different streams + + Fully expandable volume panel + Allows the volume panel to take up all the space provided + Link ringtone & notifications volumes When disabled, volumes for ringtone and notifications can be set independently diff --git a/res/xml/gravitybox.xml b/res/xml/gravitybox.xml index 481937c3e0..5c60b267da 100644 --- a/res/xml/gravitybox.xml +++ b/res/xml/gravitybox.xml @@ -894,12 +894,16 @@ android:key="pref_volume_panel_expandable" android:title="@string/pref_volume_panel_expandable_title" android:summary="@string/pref_volume_panel_expandable_summary" - android:defaultValue="false" /> + android:defaultValue="false" /> - + android:title="@string/pref_volume_panel_autoexpand_title" /> Date: Thu, 31 Oct 2013 16:55:01 +0200 Subject: [PATCH 078/255] Oops, got confused with the intent key and the pref key. --- src/com/ceco/gm2/gravitybox/ModVolumePanel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/ceco/gm2/gravitybox/ModVolumePanel.java b/src/com/ceco/gm2/gravitybox/ModVolumePanel.java index 5e9eea6fc8..a7b9fc2245 100644 --- a/src/com/ceco/gm2/gravitybox/ModVolumePanel.java +++ b/src/com/ceco/gm2/gravitybox/ModVolumePanel.java @@ -71,7 +71,7 @@ public void onReceive(Context context, Intent intent) { } if (intent.hasExtra(GravityBoxSettings.EXTRA_EXPANDABLE_FULLY)) { mExpandFully = intent.getBooleanExtra( - GravityBoxSettings.PREF_KEY_VOLUME_PANEL_FULLY_EXPANDABLE, false); + GravityBoxSettings.EXTRA_EXPANDABLE_FULLY, false); } if (intent.hasExtra(GravityBoxSettings.EXTRA_AUTOEXPAND)) { mAutoExpand = intent.getBooleanExtra(GravityBoxSettings.EXTRA_AUTOEXPAND, false); From aa99a6ebf8488816cf77505186907a101253e90c Mon Sep 17 00:00:00 2001 From: Mohammad Abu-Garbeyyeh Date: Thu, 31 Oct 2013 16:56:13 +0200 Subject: [PATCH 079/255] Fixed XML formatting, eclipse messed it up. --- res/xml/gravitybox.xml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/res/xml/gravitybox.xml b/res/xml/gravitybox.xml index 5c60b267da..318dc99f09 100644 --- a/res/xml/gravitybox.xml +++ b/res/xml/gravitybox.xml @@ -894,11 +894,13 @@ android:key="pref_volume_panel_expandable" android:title="@string/pref_volume_panel_expandable_title" android:summary="@string/pref_volume_panel_expandable_summary" - android:defaultValue="false" /> + + + android:defaultValue="false" /> Date: Thu, 31 Oct 2013 17:16:14 +0200 Subject: [PATCH 080/255] Completely missed the fact that there was an existing hook for the method "expand". --- .../ceco/gm2/gravitybox/ModVolumePanel.java | 31 ++++++++----------- 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/ModVolumePanel.java b/src/com/ceco/gm2/gravitybox/ModVolumePanel.java index a7b9fc2245..9d2f6ac0fb 100644 --- a/src/com/ceco/gm2/gravitybox/ModVolumePanel.java +++ b/src/com/ceco/gm2/gravitybox/ModVolumePanel.java @@ -165,6 +165,19 @@ protected void afterHookedMethod(final MethodHookParam param) throws Throwable { @Override protected void afterHookedMethod(final MethodHookParam param) throws Throwable { hideNotificationSliderIfLinked(); + + if (!mExpandFully) + return; + View mMoreButton = (View) XposedHelpers.getObjectField(mVolumePanel, "mMoreButton"); + View mDivider = (View) XposedHelpers.getObjectField(mVolumePanel, "mDivider"); + + if (mMoreButton != null) { + mMoreButton.setVisibility(View.GONE); + } + + if (mDivider != null) { + mDivider.setVisibility(View.GONE); + } } }); @@ -227,24 +240,6 @@ protected void beforeHookedMethod(final MethodHookParam param) throws Throwable } } }); - - XposedHelpers.findAndHookMethod(classVolumePanel, "expand", new XC_MethodHook() { - @Override - protected void afterHookedMethod(MethodHookParam param) throws Throwable { - if (!mExpandFully) - return; - View mMoreButton = (View) XposedHelpers.getObjectField(mVolumePanel, "mMoreButton"); - View mDivider = (View) XposedHelpers.getObjectField(mVolumePanel, "mDivider"); - - if (mMoreButton != null) { - mMoreButton.setVisibility(View.GONE); - } - - if (mDivider != null) { - mDivider.setVisibility(View.GONE); - } - } - }); XposedBridge.hookAllConstructors(classAudioService, new XC_MethodHook() { From 23499e7b071b302e3fe11ae06d77203550054b1c Mon Sep 17 00:00:00 2001 From: C3C0 Date: Fri, 1 Nov 2013 09:20:13 +0100 Subject: [PATCH 081/255] Pie: fixed crash when changing Pie properties and Pie is not active yet --- src/com/ceco/gm2/gravitybox/ModPieControls.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/ModPieControls.java b/src/com/ceco/gm2/gravitybox/ModPieControls.java index 514573f3b2..1a430e673f 100644 --- a/src/com/ceco/gm2/gravitybox/ModPieControls.java +++ b/src/com/ceco/gm2/gravitybox/ModPieControls.java @@ -106,7 +106,9 @@ public void onReceive(Context context, Intent intent) { String[] triggers = intent.getStringArrayExtra( GravityBoxSettings.EXTRA_PIE_TRIGGERS); mPieTriggerSlots = getTriggerSlotsFromArray(triggers); - mPieContainer.setTriggerSlots(mPieTriggerSlots); + if (mPieContainer != null) { + mPieContainer.setTriggerSlots(mPieTriggerSlots); + } attachPie(); } if (intent.hasExtra(GravityBoxSettings.EXTRA_PIE_TRIGGER_SIZE)) { @@ -115,7 +117,9 @@ public void onReceive(Context context, Intent intent) { } if (intent.hasExtra(GravityBoxSettings.EXTRA_PIE_SIZE)) { mPieSize = intent.getIntExtra(GravityBoxSettings.EXTRA_PIE_SIZE, 1000); - mPieContainer.setPieSize(mPieSize); + if (mPieContainer != null) { + mPieContainer.setPieSize(mPieSize); + } attachPie(); } if (intent.hasExtra(GravityBoxSettings.EXTRA_PIE_HWKEYS_DISABLE)) { From dbd415622e365f961ce47c6be5d252640eef9815 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Fri, 1 Nov 2013 11:05:00 +0100 Subject: [PATCH 082/255] Yet another improvement of navbar layout heuristics --- .../ceco/gm2/gravitybox/ModNavigationBar.java | 65 +++++++++++++------ 1 file changed, 45 insertions(+), 20 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/ModNavigationBar.java b/src/com/ceco/gm2/gravitybox/ModNavigationBar.java index 8e7280b549..91f33f87ca 100644 --- a/src/com/ceco/gm2/gravitybox/ModNavigationBar.java +++ b/src/com/ceco/gm2/gravitybox/ModNavigationBar.java @@ -213,19 +213,12 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { // insert app key ViewGroup vRot, navButtons; - LinearLayout.LayoutParams lp; // insert app key in rot0 view vRot = (ViewGroup) ((ViewGroup) param.thisObject).findViewById( mResources.getIdentifier("rot0", "id", PACKAGE_NAME)); if (vRot != null) { KeyButtonView appKey = new KeyButtonView(context); - lp = new LinearLayout.LayoutParams( - (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, - mResources.getDisplayMetrics()), - LinearLayout.LayoutParams.MATCH_PARENT); - lp.weight = 0; - appKey.setLayoutParams(lp); appKey.setScaleType(ScaleType.FIT_CENTER); appKey.setClickable(true); appKey.setImageDrawable(gbRes.getDrawable(R.drawable.ic_sysbar_apps)); @@ -240,19 +233,6 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { mResources.getIdentifier("rot90", "id", PACKAGE_NAME)); if (vRot != null) { KeyButtonView appKey = new KeyButtonView(context); - if (Utils.isPhoneUI(context)) { - lp = new LinearLayout.LayoutParams( - LinearLayout.LayoutParams.MATCH_PARENT, - (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, - mResources.getDisplayMetrics())); - } else { - lp = new LinearLayout.LayoutParams( - (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, - mResources.getDisplayMetrics()), - LinearLayout.LayoutParams.MATCH_PARENT); - } - lp.weight = 0; - appKey.setLayoutParams(lp); appKey.setClickable(true); appKey.setImageDrawable(gbRes.getDrawable(R.drawable.ic_sysbar_apps)); appKey.setOnClickListener(mAppKeyOnClickListener); @@ -297,6 +277,10 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { private static void prepareNavbarViewInfo(ViewGroup navButtons, int index, KeyButtonView appView) { try { + final int size = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, + 40, navButtons.getResources().getDisplayMetrics()); + if (DEBUG) log("App key view minimum size=" + size); + mNavbarViewInfo[index] = new NavbarViewInfo(); mNavbarViewInfo[index].navButtons = navButtons; mNavbarViewInfo[index].appLauncherView = appView; @@ -313,6 +297,47 @@ private static void prepareNavbarViewInfo(ViewGroup navButtons, int index, KeyBu } } mNavbarViewInfo[index].position = searchPosition; + + // determine app key layout + LinearLayout.LayoutParams lp = null; + if (mNavbarViewInfo[index].originalView != null) { + // determine layout from layout of placeholder view we found + ViewGroup.LayoutParams ovlp = mNavbarViewInfo[index].originalView.getLayoutParams(); + if (DEBUG) log("originalView: lpWidth=" + ovlp.width + "; lpHeight=" + ovlp.height); + if (ovlp.width >= 0) { + lp = new LinearLayout.LayoutParams(size, LinearLayout.LayoutParams.MATCH_PARENT, 0); + } else if (ovlp.height >= 0) { + lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, size, 0); + } else { + log("Weird layout of placeholder view detected"); + } + } else { + // determine layout from Back key + final int resId = navButtons.getResources().getIdentifier("back", "id", PACKAGE_NAME); + if (resId != 0) { + View back = navButtons.findViewById(resId); + if (back != null) { + ViewGroup.LayoutParams blp = back.getLayoutParams(); + if (blp.width >= 0) { + lp = new LinearLayout.LayoutParams(size, LinearLayout.LayoutParams.MATCH_PARENT, 0); + } else if (blp.height >= 0) { + lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, size, 0); + } else { + log("Weird layout of back button view detected"); + } + } else { + log("Could not find back button view"); + } + } else { + log("Could not find back button resource ID"); + } + } + // worst case scenario (should never happen, but just to make sure) + if (lp == null) { + lp = new LinearLayout.LayoutParams(size, size, 0); + } + if (DEBUG) log("appView: lpWidth=" + lp.width + "; lpHeight=" + lp.height); + mNavbarViewInfo[index].appLauncherView.setLayoutParams(lp); } catch (Throwable t) { log("Error preparing NavbarViewInfo: " + t.getMessage()); } From 7b4c0dbe1754a6397a75da80935fd7f23cf82617 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Fri, 1 Nov 2013 17:07:01 +0100 Subject: [PATCH 083/255] App key: change visibility only in case new state is different from previous state --- src/com/ceco/gm2/gravitybox/ModNavigationBar.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/com/ceco/gm2/gravitybox/ModNavigationBar.java b/src/com/ceco/gm2/gravitybox/ModNavigationBar.java index 91f33f87ca..c24d566f7d 100644 --- a/src/com/ceco/gm2/gravitybox/ModNavigationBar.java +++ b/src/com/ceco/gm2/gravitybox/ModNavigationBar.java @@ -71,6 +71,7 @@ static class NavbarViewInfo { View originalView; KeyButtonView appLauncherView; int position; + boolean visible; } private static BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { @@ -261,7 +262,7 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { XposedHelpers.findAndHookMethod(navbarViewClass, "setDisabledFlags", int.class, boolean.class, new XC_MethodHook() { @Override - protected void beforeHookedMethod(MethodHookParam param) throws Throwable { + protected void afterHookedMethod(MethodHookParam param) throws Throwable { boolean visible = mAppLauncherEnabled; View v = (View) XposedHelpers.callMethod(param.thisObject, "getRecentsButton"); if (v != null) { @@ -346,6 +347,8 @@ private static void prepareNavbarViewInfo(ViewGroup navButtons, int index, KeyBu private static void setAppKeyVisibility(boolean visible) { try { for (int i = 0; i <= 1; i++) { + if (mNavbarViewInfo[i].visible == visible) continue; + if (mNavbarViewInfo[i].originalView != null) { mNavbarViewInfo[i].navButtons.removeViewAt(mNavbarViewInfo[i].position); mNavbarViewInfo[i].navButtons.addView(visible ? @@ -359,6 +362,9 @@ private static void setAppKeyVisibility(boolean visible) { mNavbarViewInfo[i].navButtons.removeView(mNavbarViewInfo[i].appLauncherView); } } + mNavbarViewInfo[i].visible = visible; + mNavbarViewInfo[i].navButtons.requestLayout(); + if (DEBUG) log("setAppKeyVisibility: visible=" + visible); } } catch (Throwable t) { log("Error setting app key visibility: " + t.getMessage()); From 5b21a2b359f01f9b90c061836fa2f3cb913f6732 Mon Sep 17 00:00:00 2001 From: ch-vox Date: Fri, 1 Nov 2013 21:28:06 +0100 Subject: [PATCH 084/255] Updated French translation --- res/values-fr/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index cc07126653..924cf44099 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -308,6 +308,10 @@ Panneau de volume extensible Active le panneau de volume extensible avec la possibilité de régler les volumes pour différents flux sonores + + Panneau de volume maximisé + Permet d\'utiliser tout l\'espace à l\'écran pour le panneau de volume + Volumes sonnerie & notifications liés Si désactivé, les volumes de la sonnerie et des notifications peuvent être réglés indépendamment From 5874bd4b86e629f929800592cb2e16d2fec344f7 Mon Sep 17 00:00:00 2001 From: "Eric Deng (Eric850130)" Date: Sat, 2 Nov 2013 19:29:21 +0800 Subject: [PATCH 085/255] Update strings.xml Update the Tr.Chinese translation and fix the bad translation --- res/values-zh-rTW/strings.xml | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index 773022e833..43001d2391 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -194,21 +194,21 @@ 包含各種顯示相關的校正選項 - 最低亮度層級 - 可以設定最低的亮度層級。在手動設定亮度時適用。(需要重新啟動) + 最低亮度等級 + 可以設定最低的亮度等級。在手動設定亮度時適用。(需要重新啟動) - 自動亮度層級 - 可以設定環境的亮度層級與相對應的 LCD 背光值 + 自動亮度等級 + 可以設定環境的亮度等級與相對應的 LCD 背光值 等級 最大照度(lux) 亮度(%d – 255) - 指定的值不被接受 + 指定的數值不被接受 不建議將亮度設為 %d 以下 亮度無法大於 255 - 值無法低於 0 - 較低層級的值無法大於較高層級的值 - 較高層級的值無法小於較低層級的值 + 數值無法低於 0 + 較低等級數值無法大於較高等級的數值 + 較高等級數值無法小於較低等級的數值 已設定%s 的數值 已儲存新的自動亮度組態 "尚未"儲存新的自動亮度組態 @@ -297,6 +297,11 @@ 可擴展音量面板 啟用此選項使您可以調整不同串流的音量 + + + + 完全擴展音量調節面板 + 允許音量調節面板使用所有可提供的空間 將鈴聲音量與通知音量連結 @@ -490,7 +495,7 @@ 正在等待 GravityBox 系統框架回應… - GravityBox 系統框架沒有回應,正在退出中. + GravityBox 系統框架沒有回應,正在退出. 國內資料漫遊 @@ -636,8 +641,8 @@ 停用 標準 - 小寫字符 - 大寫字符 + 小寫字符(僅英文有效) + 大寫字符(僅英文有效) 鎖定螢幕時的狀態列鎖定政策 @@ -671,7 +676,7 @@ %1$s 空閒 %1$s 已使用 - 最近執行的任務 RAM 欄 + RAM 使用狀況欄 關閉 頂部 按鍵 @@ -681,8 +686,8 @@ 近期按鍵長按操作 - 顯示電池狀態弧線 - 鎖定螢幕狀態下在解鎖環附近顯示當前電量狀態弧線 + 顯示電池狀態圓弧 + 鎖定螢幕狀態下在解鎖環附近顯示當前電量狀態圓弧 切換手電筒 From 05c9709183075275e09300bc798aa7c90975f593 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sat, 2 Nov 2013 14:04:31 +0100 Subject: [PATCH 086/255] Simplify battery styles mod Avoid adding views into internal label and image lists since we want exclusive control over visibility settings --- .../ceco/gm2/gravitybox/ModBatteryStyle.java | 179 ++++++------------ 1 file changed, 60 insertions(+), 119 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java b/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java index 48c9bcc2c2..155502dc82 100644 --- a/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java +++ b/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java @@ -15,11 +15,6 @@ package com.ceco.gm2.gravitybox; -import static de.robv.android.xposed.XposedHelpers.findClass; -import static de.robv.android.xposed.XposedHelpers.findAndHookMethod; - -import java.util.ArrayList; - import android.content.BroadcastReceiver; import android.content.Intent; import android.content.Context; @@ -38,23 +33,25 @@ import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_InitPackageResources.InitPackageResourcesParam; import de.robv.android.xposed.callbacks.XC_LayoutInflated; -import de.robv.android.xposed.callbacks.XCallback; public class ModBatteryStyle { private static final String TAG = "GB:ModBatteryStyle"; public static final String PACKAGE_NAME = "com.android.systemui"; - public static final String CLASS_PHONE_STATUSBAR = "com.android.systemui.statusbar.phone.PhoneStatusBar"; - public static final String CLASS_BATTERY_CONTROLLER = "com.android.systemui.statusbar.policy.BatteryController"; + public static final String CLASS_BATTERY_CONTROLLER = + "com.android.systemui.statusbar.policy.BatteryController"; private static final boolean DEBUG = false; - private static final String ACTION_MTK_BATTERY_PERCENTAGE_SWITCH = "mediatek.intent.action.BATTERY_PERCENTAGE_SWITCH"; + private static final String ACTION_MTK_BATTERY_PERCENTAGE_SWITCH = + "mediatek.intent.action.BATTERY_PERCENTAGE_SWITCH"; public static final String EXTRA_MTK_BATTERY_PERCENTAGE_STATE = "state"; public static final String SETTING_MTK_BATTERY_PERCENTAGE = "battery_percentage"; private static int mBatteryStyle; - private static boolean mBatteryPercentText; - private static boolean mMtkPercentText; - private static Object mBatteryController; + private static boolean mBatteryPercentTextEnabled; + private static boolean mMtkPercentTextEnabled; + private static TextView mPercentText; + private static CmCircleBattery mCircleBattery; + private static ImageView mStockBattery; private static void log(String message) { XposedBridge.log(TAG + ": " + message); @@ -70,13 +67,13 @@ public void onReceive(Context context, Intent intent) { if (DEBUG) log("mBatteryStyle changed to: " + mBatteryStyle); } if (intent.hasExtra("batteryPercent")) { - mBatteryPercentText = intent.getBooleanExtra("batteryPercent", false); - if (DEBUG) log("mBatteryPercentText changed to: " + mBatteryPercentText); + mBatteryPercentTextEnabled = intent.getBooleanExtra("batteryPercent", false); + if (DEBUG) log("mBatteryPercentText changed to: " + mBatteryPercentTextEnabled); } updateBatteryStyle(); } else if (intent.getAction().equals(ACTION_MTK_BATTERY_PERCENTAGE_SWITCH)) { - mMtkPercentText = intent.getIntExtra(EXTRA_MTK_BATTERY_PERCENTAGE_STATE, 0) == 1; - if (DEBUG) log("mMtkPercentText changed to: " + mMtkPercentText); + mMtkPercentTextEnabled = intent.getIntExtra(EXTRA_MTK_BATTERY_PERCENTAGE_STATE, 0) == 1; + if (DEBUG) log("mMtkPercentText changed to: " + mMtkPercentTextEnabled); updateBatteryStyle(); } } @@ -94,25 +91,25 @@ public void handleLayoutInflated(LayoutInflatedParam liparam) throws Throwable { liparam.res.getIdentifier("signal_battery_cluster", "id", PACKAGE_NAME)); // inject percent text if it doesn't exist - TextView percText = (TextView) vg.findViewById(liparam.res.getIdentifier( + mPercentText = (TextView) vg.findViewById(liparam.res.getIdentifier( "percentage", "id", PACKAGE_NAME)); - if (percText == null) { - percText = new TextView(vg.getContext()); - percText.setTag("percentage"); + if (mPercentText == null) { + mPercentText = new TextView(vg.getContext()); + mPercentText.setTag("percentage"); LinearLayout.LayoutParams lParams = new LinearLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); - percText.setLayoutParams(lParams); - percText.setPadding(4, 0, 0, 0); - percText.setTextSize(1, 16); - percText.setTextColor(vg.getContext().getResources().getColor( + mPercentText.setLayoutParams(lParams); + mPercentText.setPadding(4, 0, 0, 0); + mPercentText.setTextSize(1, 16); + mPercentText.setTextColor(vg.getContext().getResources().getColor( android.R.color.holo_blue_dark)); - percText.setVisibility(View.GONE); - vg.addView(percText); + mPercentText.setVisibility(View.GONE); + vg.addView(mPercentText); if (DEBUG) log("Battery percent text injected"); } else { - percText.setTag("percentage"); + mPercentText.setTag("percentage"); } - ModStatusbarColor.setPercentage(percText); + ModStatusbarColor.setPercentage(mPercentText); // GM2 specific - if there's already view with id "circle_battery", remove it if (Build.DISPLAY.toLowerCase().contains("gravitymod")) { @@ -125,23 +122,23 @@ public void handleLayoutInflated(LayoutInflatedParam liparam) throws Throwable { } // inject circle battery view - CmCircleBattery circleBattery = new CmCircleBattery(vg.getContext()); - circleBattery.setTag("circle_battery"); + mCircleBattery = new CmCircleBattery(vg.getContext()); + mCircleBattery.setTag("circle_battery"); LinearLayout.LayoutParams lParams = new LinearLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); - circleBattery.setLayoutParams(lParams); - circleBattery.setPadding(4, 0, 0, 0); - circleBattery.setVisibility(View.GONE); - ModStatusbarColor.setCircleBattery(circleBattery); - vg.addView(circleBattery); + mCircleBattery.setLayoutParams(lParams); + mCircleBattery.setPadding(4, 0, 0, 0); + mCircleBattery.setVisibility(View.GONE); + ModStatusbarColor.setCircleBattery(mCircleBattery); + vg.addView(mCircleBattery); if (DEBUG) log("CmCircleBattery injected"); // find battery - ImageView battery = (ImageView) vg.findViewById( + mStockBattery = (ImageView) vg.findViewById( liparam.res.getIdentifier("battery", "id", PACKAGE_NAME)); - if (battery != null) { - battery.setTag("stock_battery"); - ModStatusbarColor.setBattery(battery); + if (mStockBattery != null) { + mStockBattery.setTag("stock_battery"); + ModStatusbarColor.setBattery(mStockBattery); } } @@ -152,65 +149,27 @@ public void handleLayoutInflated(LayoutInflatedParam liparam) throws Throwable { } public static void init(final XSharedPreferences prefs, ClassLoader classLoader) { - if (DEBUG) log("init"); try { - - Class phoneStatusBarClass = findClass(CLASS_PHONE_STATUSBAR, classLoader); - Class batteryControllerClass = findClass(CLASS_BATTERY_CONTROLLER, classLoader); - - findAndHookMethod(phoneStatusBarClass, "makeStatusBarView", new XC_MethodHook(XCallback.PRIORITY_HIGHEST) { - - @Override - protected void afterHookedMethod(MethodHookParam param) throws Throwable { - - Object mBatteryController = XposedHelpers.getObjectField(param.thisObject, "mBatteryController"); - View mStatusBarView = (View) XposedHelpers.getObjectField(param.thisObject, "mStatusBarView"); - - ImageView circleBattery = (ImageView) mStatusBarView.findViewWithTag("circle_battery"); - if (circleBattery != null) { - XposedHelpers.callMethod(mBatteryController, "addIconView", circleBattery); - if (DEBUG) log("BatteryController.addIconView(circleBattery)"); - } - - TextView percText = (TextView) mStatusBarView.findViewWithTag("percentage"); - if (percText != null) { - // add percent text only in case there is no label with "percentage" tag present - @SuppressWarnings("unchecked") - ArrayList mLabelViews = - (ArrayList) XposedHelpers.getObjectField(mBatteryController, "mLabelViews"); - boolean percentTextExists = false; - for (TextView tv : mLabelViews) { - if ("percentage".equals(tv.getTag())) { - percentTextExists = true; - break; - } - } - if (!percentTextExists) { - XposedHelpers.callMethod(mBatteryController, "addLabelView", percText); - if (DEBUG) log("BatteryController.addLabelView(percText)"); - } - } - } - }); + Class batteryControllerClass = XposedHelpers.findClass(CLASS_BATTERY_CONTROLLER, classLoader); XposedBridge.hookAllConstructors(batteryControllerClass, new XC_MethodHook() { @Override protected void afterHookedMethod(final MethodHookParam param) throws Throwable { - mBatteryController = param.thisObject; - prefs.reload(); - mBatteryStyle = Integer.valueOf(prefs.getString(GravityBoxSettings.PREF_KEY_BATTERY_STYLE, "1")); - mBatteryPercentText = prefs.getBoolean(GravityBoxSettings.PREF_KEY_BATTERY_PERCENT_TEXT, false); + mBatteryStyle = Integer.valueOf(prefs.getString( + GravityBoxSettings.PREF_KEY_BATTERY_STYLE, "1")); + mBatteryPercentTextEnabled = prefs.getBoolean( + GravityBoxSettings.PREF_KEY_BATTERY_PERCENT_TEXT, false); // handle obsolete settings if (mBatteryStyle == 4) { mBatteryStyle = GravityBoxSettings.BATTERY_STYLE_STOCK; } - Context context = (Context) XposedHelpers.getObjectField(mBatteryController, "mContext"); - mMtkPercentText = Utils.isMtkDevice() ? + Context context = (Context) XposedHelpers.getObjectField(param.thisObject, "mContext"); + mMtkPercentTextEnabled = Utils.isMtkDevice() ? Settings.Secure.getInt(context.getContentResolver(), SETTING_MTK_BATTERY_PERCENTAGE, 0) == 1 : false; @@ -221,15 +180,8 @@ protected void afterHookedMethod(final MethodHookParam param) throws Throwable { } context.registerReceiver(mBroadcastReceiver, intentFilter); - if (DEBUG) log("BatteryController constructed"); - } - }); - - findAndHookMethod(batteryControllerClass, "onReceive", Context.class, Intent.class, new XC_MethodHook() { - - @Override - protected void afterHookedMethod(MethodHookParam param) throws Throwable { updateBatteryStyle(); + if (DEBUG) log("BatteryController constructed"); } }); } @@ -239,37 +191,26 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { } private static void updateBatteryStyle() { - if (mBatteryController == null) return; - try { - @SuppressWarnings("unchecked") - ArrayList mIconViews = - (ArrayList) XposedHelpers.getObjectField(mBatteryController, "mIconViews"); - @SuppressWarnings("unchecked") - ArrayList mLabelViews = - (ArrayList) XposedHelpers.getObjectField(mBatteryController, "mLabelViews"); - - for (ImageView iv : mIconViews) { - if ("stock_battery".equals(iv.getTag())) { - iv.setVisibility((mBatteryStyle == GravityBoxSettings.BATTERY_STYLE_STOCK) ? - View.VISIBLE : View.GONE); - } else if ("circle_battery".equals(iv.getTag())) { - iv.setVisibility((mBatteryStyle == GravityBoxSettings.BATTERY_STYLE_CIRCLE || - mBatteryStyle == GravityBoxSettings.BATTERY_STYLE_CIRCLE_PERCENT) ? - View.VISIBLE : View.GONE); - ((CmCircleBattery)iv).setPercentage( - mBatteryStyle == GravityBoxSettings.BATTERY_STYLE_CIRCLE_PERCENT); - } + if (mStockBattery != null) { + mStockBattery.setVisibility((mBatteryStyle == GravityBoxSettings.BATTERY_STYLE_STOCK) ? + View.VISIBLE : View.GONE); } - - for (TextView tv : mLabelViews) { - if ("percentage".equals(tv.getTag())) { - tv.setVisibility( - ((mBatteryPercentText || mMtkPercentText) ? View.VISIBLE : View.GONE)); - } + + if (mCircleBattery != null) { + mCircleBattery.setVisibility((mBatteryStyle == GravityBoxSettings.BATTERY_STYLE_CIRCLE || + mBatteryStyle == GravityBoxSettings.BATTERY_STYLE_CIRCLE_PERCENT) ? + View.VISIBLE : View.GONE); + ((CmCircleBattery)mCircleBattery).setPercentage( + mBatteryStyle == GravityBoxSettings.BATTERY_STYLE_CIRCLE_PERCENT); + } + + if (mPercentText != null) { + mPercentText.setVisibility(((mBatteryPercentTextEnabled || mMtkPercentTextEnabled) ? + View.VISIBLE : View.GONE)); } } catch (Throwable t) { XposedBridge.log(t); } } -} \ No newline at end of file +} From 3a9d88ec1ad490359e5aa648afca0e6f00a7a0c0 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sat, 2 Nov 2013 14:13:39 +0100 Subject: [PATCH 087/255] Updated Insonesian translations (thanks to awaaas) --- res/values-in/strings.xml | 58 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 54 insertions(+), 4 deletions(-) diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml index fbb99802a5..050c82d211 100644 --- a/res/values-in/strings.xml +++ b/res/values-in/strings.xml @@ -307,6 +307,10 @@ Panel volume yang bisa dibuka Menghidupkan panel volume yang bisa dibuka dengan kemampuan untuk men-set volume-volume dengan alur yang berbeda + + Panel volume yang bisa dibuka secara penuh + Membolehkan panel volume untuk menggunakan seluruh tempat yang disediakan + Gabungkan alur ringtone & notifikasi Ketika dimatikan, alur volume untuk ringtone dan notifikasi bisa di set secara independen @@ -399,9 +403,9 @@ Latar belakang Holo dithered Ganti latar belakang standar Holo dengan versi yang dithered untuk mengurangi pita warna (requires reboot) - - Matikan tombol fisik - Matikan tombol MENU, BACK, HOME ketika kontrol Pie diaktifkan. Aksi tombol akan tetap bekerja. (untuk perangkat dengan tombol fisik) + + Matikan tombol navigasi + Mematikan aksi tombol navigasi saat ditekan sekali ketika kontrol Pie diaktifkan. Gunakan tema Holo Dark @@ -681,7 +685,7 @@ Bawah - Aksi ketika tombol Recents ditekan + Aksi ketika tombol Recents ditekan sekali Aksi ketika tombol Recents ditahan @@ -709,4 +713,50 @@ Aksi ketika ditekan sekali Aksi ketika ditekan dua kali + + Matikan double-tap + + + Mode pewarnaan sinyal + Gunakan ikon GravityBox (dengan dukungan level sinyal) + Gunakan ikon bawaan (Tanpa dukungan level sinyal) + Jangan terapkan warna + + + Launcher aplikasi + Dialog yang memperbolehkan pengguna menetapkan sampai 8 aplikasi yang bisa ditetapkan sebagai aksi tombol fisik atau tombol tambahan di navbar. + Aplikasi slot %d + Tidak ada aplikasi yang ditetapkan. Gunakan GravityBox / menu Launcher Aplikasi untuk menetapkan aplikasi. + + + Tunjukkan tombol Launcher Aplikasi + + + Tunjukkan Launcher Aplikasi + + + Tunjukkan tombol kustom + Matikan + Pencarian + launcher Aplikasi + + + Warna Pie + Warna latar belakang + Warna latar depan + Warna garis + Warna tombol terpilih + Warna teks + Reset warna + + + Hidupkan foto pemanggil tak dikenal + Tetapkan foto pemanggil tak dikenal + Foto diganti + Foto tidak diganti + + + Layar anda mungkin tidak mendukung nilai kurang dari 20. Jika layar anda tidak hidup, + tahan tombol volume + setidaknya selama 7 detik untuk mereset kecerahan lalu atur nilai yang lebih tinggi. + From 1c5156848ab7cc5637c202d589725b6878f87399 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sat, 2 Nov 2013 14:15:43 +0100 Subject: [PATCH 088/255] Updated Polish translations (thanks to xtrem007) --- res/values-pl/strings.xml | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 7c9f4f75c7..92d608d28a 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -249,7 +249,6 @@ Tylko połączenia alarmowe Interfejs Kontroli Pie Włącz interfejs kontroli Pie - Pokaż przycisk wyszukiwania Wielkość klawisza nawigacji Pozycja aktywnej strefy Lewy margines ekranu @@ -457,4 +456,26 @@ Użyj ikon GravityBox (z obsługą poziomu sygnału) Użyj standardowych ikon (bez obsługi poziomu sygnału) Nie stosuj koloru + Uruchamianie aplikacji + Dialog pozwala na zdefiniowanie do 8 aplikacji, które mogą być przypisane jako akcje klawiszy sprzętowych lub użyte jako dodatkowe przyciski paska nawigacyjnego + Slot aplikacji %d + Brak przypisanych aplikacji. Użyj GravityBox / menu Uruchamiania aplikacji aby przypisać aplikacje. + Pokaż przycisk uruchamiania aplikacji + Pokaż starter aplikacji + Pokaż opcjonalny przycisk + Wyłączone + Przycisk wyszukiwania + Starter aplikacji + Kolory Pie + Kolor tła + Kolor pierwszoplanowy + Kolor konturu + Kolor wybranego przycisku + Kolor tekstu + Resetuj kolory + Zdjęcie nieznanego dzwoniącego + Ustaw zdjęcie dla nieznanego dzwoniącego + Zdjęcie zostało zmienione + Zdjęcie nie zostało zmienione + "Ekran może nie obsługiwać wartości niższych niż 20. Jeśli ekran nie zapala się, przytrzymaj przycisk VOLUME+ przez co najmniej 7 sekund aby zrestetować jasność, a następnie ustaw wyższą wartość minimalnej jasności." From 4801a177978e6a1d061ea2c906a08205d41e7b9a Mon Sep 17 00:00:00 2001 From: Bruno Martins Date: Sat, 2 Nov 2013 13:21:57 +0000 Subject: [PATCH 089/255] Updated Portuguese (PT) translation --- res/values-pt-rPT/strings.xml | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index 0bf0db126d..53a46d1216 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -233,8 +233,8 @@ Contém vários ajustes relacionados com multimédia - Mais passos de volume - Permite controlo mais fino do volume ao adicionar mais passos (necessário reiniciar) + Níveis de volume adicionais + Permite um controlo mais fino do volume ao adicionar mais níveis (necessário reiniciar) Volume de segurança para mãos-livres @@ -293,6 +293,10 @@ Painel de volume expandido Ativa painel de volume expandido com possibilidade de controlar o volume de diferentes fontes + + Painel totalmente expandido + Quando ativado, o painel de volume ocupa todo o espaço disponível no ecrã + Volumes de toque e notificações interligados Quando desativado, os volumes de toque e notificações podem ser controlados de forma independente @@ -346,8 +350,8 @@ Por trás - Desativar indicadores de roaming - Quando selecionado, o indicador R não será visível em roaming (usar com cautela) + Desativar indicadores de deslocamento + Quando selecionado, o indicador R não será visível quando em deslocamento (usar com cautela) A carregar (%d%%) @@ -404,8 +408,8 @@ Ajustar margem superior - Desativar avisos de roaming - Desativa os avisos de roaming aquando do envio de mensagens ou realização de chamadas em roaming + Desativar avisos de deslocamento + Desativa os avisos aquando do envio de mensagens ou realização de chamadas em deslocamento Pesquisa @@ -489,8 +493,8 @@ Estrutura de sistema do GravityBox não responde. A sair. - Roaming de dados nacionais - Permite o estabelecimento de ligação de dados durante roaming em território nacional + Deslocamento de dados nacionais + Permite o estabelecimento de ligação de dados quando em deslocamento em território nacional Modo ambiente de trabalho expandido From c35d609b5b9c98a578d4979b562e3d2526aafeb2 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sat, 2 Nov 2013 19:53:46 +0100 Subject: [PATCH 090/255] QuickSettings: improved tile layout for Android 4.3 - use recursion to find TextView in view hierarchy - adjust ImageView margins according to "Tiles per row" setting --- .../ceco/gm2/gravitybox/ModQuickSettings.java | 97 +++++++++++++++---- 1 file changed, 77 insertions(+), 20 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/ModQuickSettings.java b/src/com/ceco/gm2/gravitybox/ModQuickSettings.java index 29e03adbcd..3bd7fa72a6 100644 --- a/src/com/ceco/gm2/gravitybox/ModQuickSettings.java +++ b/src/com/ceco/gm2/gravitybox/ModQuickSettings.java @@ -59,6 +59,7 @@ import android.os.Build; import android.os.IBinder; import android.provider.Settings; +import android.util.TypedValue; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; @@ -66,6 +67,7 @@ import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.TextView; import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XC_MethodReplacement; @@ -270,43 +272,98 @@ private static void updateTileOrderAndVisibility() { XposedHelpers.callMethod(mContainerView, "updateResources"); } + private static TextView findTileTextView(ViewGroup viewGroup) { + if (viewGroup == null) return null; + + TextView textView = null; + final int childCount = viewGroup.getChildCount(); + for (int i = 0; i < childCount; i++) { + View childView = viewGroup.getChildAt(i); + if (childView instanceof ViewGroup) { + textView = findTileTextView((ViewGroup) childView); + } else if (childView instanceof TextView) { + textView = (TextView) childView; + } + if (textView != null) { + break; + } + } + + return textView; + } + private static void updateTileLayout(FrameLayout container, int orientation) { if (container == null) return; int tileCount = container.getChildCount(); int textSize = 12; + final Resources res = container.getResources(); + int imgMarginTop = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, + 27, res.getDisplayMetrics()); + int imgMarginBottom = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, + 17, res.getDisplayMetrics()); + final int imgResId = res.getIdentifier("image", "id", PACKAGE_NAME); + final int rssiImgResId = res.getIdentifier("rssi_image", "id", PACKAGE_NAME); + if (orientation == Configuration.ORIENTATION_PORTRAIT) { switch (mNumColumns) { - case 4: textSize = 10; break; - case 5: textSize = 8; break; + case 4: + textSize = 10; + imgMarginTop = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, + 17, res.getDisplayMetrics()); + imgMarginBottom = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, + 10, res.getDisplayMetrics()); + break; + case 5: + imgMarginTop = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, + 10, res.getDisplayMetrics()); + imgMarginBottom = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, + 5, res.getDisplayMetrics()); + textSize = 8; + break; case 3: - default: textSize = 12; + default: + textSize = 12; + break; } } for(int i = 0; i < tileCount; i++) { ViewGroup viewGroup = (ViewGroup) mContainerView.getChildAt(i); if (viewGroup != null) { - int childCount = viewGroup.getChildCount(); - for(int j = 0; j < childCount; j++) { - View childView = viewGroup.getChildAt(j); - TextView targetView = null; - if (childView instanceof ViewGroup) { - int innerChildCount = ((ViewGroup) childView).getChildCount(); - for (int k = 0; k < innerChildCount; k++) { - View innerChildView = ((ViewGroup) childView).getChildAt(k); - if (innerChildView instanceof TextView) { - targetView = (TextView) innerChildView; + TextView textView = findTileTextView(viewGroup); + if (textView != null) { + textView.setTextSize(1, textSize); + textView.setSingleLine(false); + textView.setAllCaps(true); + } + + // adjust layout in case it's AOSP 4.3 tile + if (Build.VERSION.SDK_INT > 17 && imgResId != 0 && rssiImgResId != 0) { + ImageView img = (ImageView) viewGroup.findViewById(imgResId); + if (img != null) { + // basic tile + if (img.getLayoutParams() instanceof LinearLayout.LayoutParams) { + LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) img.getLayoutParams(); + lp.topMargin = imgMarginTop; + lp.bottomMargin = imgMarginBottom; + img.setLayoutParams(lp); + img.requestLayout(); + } + } else { + // RSSI special tile + img = (ImageView) viewGroup.findViewById(rssiImgResId); + if (img != null && img.getParent() instanceof FrameLayout) { + FrameLayout fl = (FrameLayout) img.getParent(); + if (fl.getLayoutParams() instanceof LinearLayout.LayoutParams) { + LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) fl.getLayoutParams(); + lp.topMargin = imgMarginTop; + lp.bottomMargin = imgMarginBottom; + fl.setLayoutParams(lp); + fl.requestLayout(); } } - } else if (childView instanceof TextView) { - targetView = (TextView) childView; - } - if (targetView != null) { - targetView.setTextSize(1, textSize); - targetView.setSingleLine(false); - targetView.setAllCaps(true); } } } From f7f22bde277df4703c7eef06e61b8046f3ec4449 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sat, 2 Nov 2013 20:03:16 +0100 Subject: [PATCH 091/255] Updated Slovak translations --- res/values-sk/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index 7ab36afb8e..d2fe264eb9 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -727,4 +727,8 @@ Vaša obrazovka nemusí podporovať hodnoty jasu nižšie ako 20. Ak sa obrazovka nerozsvieti, držte tlačidlo Hlasitosť+ po dobu 7 sekúnd pre rozsvietenie obrazovky. Následne zmeňte nastavenie minimálneho jasu na vyššiu hodnotu. + + Plná dĺžka posuvníkov + Umožní posuvníkom využiť celú dĺžku panelu nastavenia hlasitosti + From dab0c0ce721346a3d7fab2ad1716227028d81337 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sat, 2 Nov 2013 20:05:40 +0100 Subject: [PATCH 092/255] Updated Czech translations --- res/values-cs/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index 7317c77ecd..e450c9e689 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -733,4 +733,8 @@ Vaše obrazovka nemusí podporovat hodnoty jasu nižší než 20. Pokud se obrazovka nerozsvítí, držte tlačítko Hlasitost+ po dobu 7 sekund pro rozsvícení obrazovky. Následně změňte nastavení minimálního jasu na vyšší hodnotu. + + Plná délka posuvníků + Umožní posuvníkům využít celou délku panelu nastavení hlasitosti + From 3e70edfbf0c887db3a1b382805f304de59db9341 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sat, 2 Nov 2013 20:33:23 +0100 Subject: [PATCH 093/255] Version 2.6.8 --- AndroidManifest.xml | 4 ++-- CHANGELOG.txt | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index d9736174aa..e5e965926a 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -16,8 +16,8 @@ + android:versionCode="44" + android:versionName="2.6.8" > Date: Sun, 3 Nov 2013 00:33:30 +0100 Subject: [PATCH 094/255] Bring back battery percent text into label views list Fixes battery percent text derp --- .../ceco/gm2/gravitybox/ModBatteryStyle.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java b/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java index 155502dc82..b06eb50264 100644 --- a/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java +++ b/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java @@ -15,6 +15,8 @@ package com.ceco.gm2.gravitybox; +import java.util.ArrayList; + import android.content.BroadcastReceiver; import android.content.Intent; import android.content.Context; @@ -33,10 +35,12 @@ import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_InitPackageResources.InitPackageResourcesParam; import de.robv.android.xposed.callbacks.XC_LayoutInflated; +import de.robv.android.xposed.callbacks.XCallback; public class ModBatteryStyle { private static final String TAG = "GB:ModBatteryStyle"; public static final String PACKAGE_NAME = "com.android.systemui"; + public static final String CLASS_PHONE_STATUSBAR = "com.android.systemui.statusbar.phone.PhoneStatusBar"; public static final String CLASS_BATTERY_CONTROLLER = "com.android.systemui.statusbar.policy.BatteryController"; private static final boolean DEBUG = false; @@ -152,8 +156,35 @@ public static void init(final XSharedPreferences prefs, ClassLoader classLoader) if (DEBUG) log("init"); try { + Class phoneStatusBarClass = XposedHelpers.findClass(CLASS_PHONE_STATUSBAR, classLoader); Class batteryControllerClass = XposedHelpers.findClass(CLASS_BATTERY_CONTROLLER, classLoader); + XposedHelpers.findAndHookMethod(phoneStatusBarClass, "makeStatusBarView", + new XC_MethodHook(XCallback.PRIORITY_HIGHEST) { + @Override + protected void afterHookedMethod(final MethodHookParam param) throws Throwable { + final Object batteryController = + XposedHelpers.getObjectField(param.thisObject, "mBatteryController"); + if (mPercentText != null && batteryController != null) { + // add percent text only in case there is no label with "percentage" tag present + @SuppressWarnings("unchecked") + ArrayList mLabelViews = + (ArrayList) XposedHelpers.getObjectField(batteryController, "mLabelViews"); + boolean percentTextExists = false; + for (TextView tv : mLabelViews) { + if ("percentage".equals(tv.getTag())) { + percentTextExists = true; + break; + } + } + if (!percentTextExists) { + XposedHelpers.callMethod(batteryController, "addLabelView", mPercentText); + if (DEBUG) log("BatteryController.addLabelView(percText)"); + } + } + } + }); + XposedBridge.hookAllConstructors(batteryControllerClass, new XC_MethodHook() { @Override @@ -184,6 +215,14 @@ protected void afterHookedMethod(final MethodHookParam param) throws Throwable { if (DEBUG) log("BatteryController constructed"); } }); + + XposedHelpers.findAndHookMethod(batteryControllerClass, "onReceive", + Context.class, Intent.class, new XC_MethodHook() { + @Override + protected void afterHookedMethod(MethodHookParam param) throws Throwable { + updateBatteryStyle(); + } + }); } catch (Throwable t) { XposedBridge.log(t); From 375238f85b054543c0b77e88853f4ababd922e30 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sun, 3 Nov 2013 00:35:47 +0100 Subject: [PATCH 095/255] Version 2.6.9 --- AndroidManifest.xml | 4 ++-- CHANGELOG.txt | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index e5e965926a..696631d044 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -16,8 +16,8 @@ + android:versionCode="45" + android:versionName="2.6.9" > Date: Sun, 3 Nov 2013 13:03:37 +0900 Subject: [PATCH 096/255] Updated Japanese Translation --- res/values-ja/strings.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index 50188d87f8..fdac34f2e9 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -295,7 +295,11 @@ 音量パネルを展開可能にする - 様々な音量を調整できる音量パネルを展開できるようにします。 + 音量パネルを展開して様々な音量を調整できるようにします。 + + + 音量パネルを完全に展開する + 音量パネルを空きスペースいっぱいに展開するようにします。 着信音と通知音の音量をリンクする From 02f5c1884bf9598e3d9e5aab59b03fac3fd12424 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 4 Nov 2013 15:25:35 +0100 Subject: [PATCH 097/255] Added Greek translations (thanks to vagosofron) --- res/values-el/strings.xml | 723 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 723 insertions(+) create mode 100644 res/values-el/strings.xml diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml new file mode 100644 index 0000000000..41c24f051e --- /dev/null +++ b/res/values-el/strings.xml @@ -0,0 +1,723 @@ + + + + + + GravityBox + + Τρόπος ένδειξης μπαταρίας + Εργοστασιακή ένδειξη μπαταρίας + Κυκλική μπαταρία + Κυκλική μπαταρία με ποσοστό + Νούμερο ποσοστού μπαταρίας + Καθόλου + + Πλήκτρα έντασης για μεταπήδηση μουσικού κομματιού + Μεταπήδηση μουσικών κομματιών με παρατεταμένο πάτημα των πλήκτρων έντασης με σβηστή οθόνη + + Προειδοποίηση χαμηλής στάθμης μπαταρίας + Αναδυόμενο παράθυρο και ήχος + Αναδυόμενο παράθυρο μόνο + Ήχος μόνο + Απενεργοποιημένη + + Οι αλλαγές θα εφαρμοστούν μετά από επανεκκίνηση + + Αυτόματη απόκρυψη προειδοποιητικών εικονιδίων + Αποκρύπτει αυτόματα προειδοποιητικά εικονίδια για τις θέσεις των καρτών SIM όταν κάποια κάρτα SIM δεν έχει εισαχθεί, απενεργοποιεί ειδοποιήσεις \"Δεν έχει εισαχθεί κάρτα SIM\" + Αυτόματη απόκρυψη θέσης SIM 1 + Αυτόματη απόκρυψη θέσης SIM 2 + Απενεργοποίηση ειδοποιήσεων + \"Δεν έχει εισαχθεί κάρτα SIM\" ειδοποιήσεις απενεργοποιήθηκαν + + Μενού επανεκκίνησης για προχωρημένους + Ενεργοποιεί το μενού επανεκκίνησης για προχωρημένους με επιλογές για επανεκκίνιση σε recovery + Recovery + Bootloader + + έλεγχος κέρσορα πλήκτρου έντασης + Ελέγχει τον κέρσορα χρησιμοποιώντας τα πλήκτρα έντασης σε πεδία κειμένου + Απενεργοποιημένο + Πλήκτρο έντασης Πάνω/Κάτω μετακινεί τον κέρσορα Αριστερά/Δεξιά + Πλήκτρο έντασης Πάνω/Κάτω μετακινεί τον κέρσορα Δεξιά/Αριστερά + + Εκκαθάριση όλων των πρόσφατων εργασιών + + Επιδιόρθωση ημερομηνίας&Οι ρυθμίσεις της ώρας καταρρίπτονται + Ενεργοποιήστε σε περίπτωση που παρατηρήσετε κατάρρευση κατά την πρόσβαση σε Ημερομηνία&Ρυθμίσεις Ώρας (απαιτείται επανεκκίνηση) + + Επιδιόρθωση αναγνώρισης καλούντος για κλήση + Ενεργοποιήστε σε περίπτωση που η επαφή δεν συμπίπτει με την εισερχόμενη κλήση (απαιτείται επανεκκίνηση) + Μετά την επανεκκίνηση, θα πρέπει να καθαρίσετε και να προσθέσετε εκ νέου τις επαφές σας για την αλλαγή να τεθεί σε ισχύ! Χρησιμοποιήστε Ρυθμίσεις / Εφαρμογές / Όλες - για εκκαθάριση δεδομένων των Επαφών. + + Επιδιόρθωση αναγνώρισης καλούντος για μηνύματα + Ενεργοποιήστε σε περίπτωση που παρατηρήσετε χωρισμένες συνομιλίες με την ίδια επαφή (απαιτείται επανεκκίνηση) + Μετά την επανεκκίνηση, πρέπει να διαγράψετε όλες τις χωρισμένες συνομιλίες για την αλλαγή να τεθεί σε ισχύ! + + Επιδιόρθωση εφαρμογής ημερολογίου + Ενεργοποιήστε σε περίπτωση που παρατηρήσετε αυτόματη περιοδική ενεργοποίηση/απενεργοποίηση της οθόνης (απαιτείται επανεκκίνηση) + + Σημαντικό + + Εικόνα καλούντος σε πλήρη οθόνη + Εμφανίζει την εικόνα καλούντος σε πλήρη οθόνη κατά την κλήση + + + Συγρονισμός on + Συγρονισμός off + Wi-Fi AP on + Wi-Fi AP off + Φακός on + Φακός off + Αγίξτε για απενεργοποίηση + Αναπαραγωγή… + Καταγραφή… + Κατεγράφηκε + Παρατεταμένη πίεση για εγγραφή + Αγγίξτε για διακοπή εγγραφής + Απενεργοποιημένο + Κλασσικό + Διευρυμένο + Επαγρύπνηση ενεργοποιημένη + Επαγρύπνηση απενεργοποιημένη + Wi-Fi + Wi-Fi off + Δεν συνδέθηκε + Ενεργοποίηση... + + + Επιλογές QuickSettings στη Γραμμή Κατάστασης + Επιτρέπει την εμφάνιση ή απόκρυψη των QuickSettings στη Γραμμή Κατάστασης + Προφίλ χρήστη + Λειτουργία αεροπλάνου + Κατάσταση μπαταρίας + Wi-Fi + Wi-Fi (CM style) + Bluetooth + GPS + GPS (CM style) + Δεδομένα + Λειτουργία δικτύου + Χρήση δεδομένων + Προφίλ ήχου + Φωτεινότητα + Παύση οθόνης + Αυτόματη περιστροφή + Συγχρονισμός + Σημείο επαφής Wi-Fi + Φακός + GravityBox + Ύπνος + Γρήγορη Εγγραφή + Ρυθμίσεις + Ένταση + Διευρυμένη επιφάνεια εργασίας + Σε επαγρύπνηση + Εικόνα + + + Επιλογέας χρώματος + Πιέστε στο χρώμα για εφαρμογή + + + Χρώμα φόντου Γραμμής Κατάστασης + Επιτρέπει να ορίσετε το χρώμα φόντου της Γραμμής Κατάστασης και τη διαφάνεια + + + Επιδιόρθωση ρυθμίσεων ομιλίας + Ξεκλειδώνει τις ρυθμίσεις τη φωνητικής αναζήτησης και του κειμένου σε ομιλία στη Γλώσσα&Εισαγωγής (απαιτείται επανεκκίνηση) + + + Προχωρημένες επιλογές προγραμματιστή + Ξεκλειδώνει προχωρημένες επιλογές προγραμματιστή (απαιτείται επανεκκίνηση) + + + Βελτιώσεις της Γραμμής Κατάστασης + Περιέχει διάφορες βελτιώσεις της Γραμμής Κατάστασης + Διάφορες βελτιώσεις + Περιλαμβάνει όσες βελτιώσεις δεν ανήκουν σε συγκεκριμένη κατηγορία + Γενικές επιδιορθώσεις + Περιλαμβάνει συγκεκριμένες επιδιορθώσεις του MTK6589. Μόνο εάν είναι απαραίτητο. + + + Σχετικά + Coded by C3C076@XDA. Touch to visit official thread. + Xposed framework + Coded by rovo89@XDA. Touch to visit official thread. + Donate + Donate to me if you think this app is worth it! Also consider donating to rovo89 for his excellent Xposed framework. + + + Το %s θα επανεκκινήσει. + Το %s θα επανεκκινήσει σε recovery. + Το %s θα επανεκκινήσει σε bootloader. + + + CRT οθόνη off εφε + Ενεργοποιεί το γραφικό που προσομοιώνει παλιά CRT off εφε όταν σβήνει η οθόνη + + + Engineering mode + Ανοίγει την εφαρμογή Engineering mode + + + Dual SIM Ήχος κλήσης + Ανοίγει την εφαρμογή που επιτρέπει τον ορισμό ήχου κλήσης και ειδοποιήσεων ξεχωριστά για κάθε SIM + + + Βελτιώσεις κλειδώματος οθόνης + Περιλαμβάνει διάφορες βελτιώσεις κλειδώματος οθόνης + Κλείδωμα οθόνης φόντου + Φόντο style + Προεπιλεγμένη ταπετσαρία + Γέμισμα χρώματος + Προσαρμοσμένη εικόνα + Ορισμός προσαρμοσμένου χρώματος + Επιτρέπει τον ορισμό προσαρμοσμένου χρώματος φόντου για το κλείδωμα οθόνης + Ορισμός προσαρμοσμένης εικόνας + Επιτρέπει τον ορισμό προσαρμοσμένης εικόνας φόντου για το κλείδωμα οθόνης + Το φόντο άλλαξε + Το φόντο δεν άλλαξε + ʼλλο + Μεγιστοποίηση widgets + Όταν ενεργοποιηθεί, τα widgets του κλειδώματος οθόνης θα μεγιστοποιηθούν από προεπιλογή + + + βελτιώσεις Ενέργειας + Περιλαμβάνει διάφορες βελτιώσεις σχετικές με την Ενέργεια + + + Απενεργοποίηση αναβοσβησίματος LED + Απενεργοποιεί το αναβοσβήσιμο του LED όταν το επίπεδο της μπαταρίας είναι χαμηλό και δεν φορτίζει + + + Βελτώσεις προβολής + Περιλαμβάνει διάφορες βελτιώσεις προβολής + + + Ελάχιστο επίπεδο φωτεινότητας + Επιτρέπει τον ορισμό ελάχιστου επίπεδου φωτεινότητας. Εφαρμόζεται σε χειροκίνητη ρύθμιση φωτεινότητας. (απαιτείται επανεκκίνηση) + + + Επίπεδα αυτόματης φωτεινότητας + Επιτρέπει τον ορισμό γήινων επιπέδων φωτεινότητας και των αντίστοιχων τιμών του οπίσθιου φωτισμού LCD + Επίπεδο + Lux max + Φωτεινότητα (%d – 255) + Ο καθορισμένος αριθμός δεν είναι έγκυρος + Δεν συνιστάται να ρυθμίσετε τη φωτεινότητα χαμηλότερα από %d + Η φωτεινότητα δεν μπορεί να είναι μεγαλύτερη από 255 + Οι τιμές δεν μπορούν να είναι μικρότερες ή ίσες με το μηδέν + Οι τιμές σε χαμηλότερα επίπεδα δεν μπορούν να είναι μεγαλύτερες από τιμές σε υψηλότερα επίπεδα + Οι τιμές σε υψηλότερα επίπεδα δεν μπορούν να είναι μικρότερες από τιμές σε χαμηλότερα επίπεδα + Οι τιμές για %s ορισμός + Νέα ρύθμιση αυτόματης φωτεινότητας αποθηκεύτηκε + Ρύθμιση αυτόματης φωτεινότητας δεν αποθηκεύτηκε + Ορισμός + + + Ενεργοποίηση περιστροφής κλειδώματος οθόνης + ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μπορεί να αλλάξει ξεκλείδωτους κυκλικούς στόχους σε μερικές συσκευές σε περίπτωση που το AOSP κλείδωμα οθόνης έχει τροποποιηθεί από τον vendor + + + Ενεργοποίηση του πλήκτρου Μενού + Επιτρέπει στο πλήκτρο Μενού να χρησιμοποιείται για γρήγορο ξεκλείδωμα της συσκευής όταν είναι κλειδωμένη η οθόνη (απαιτείται επανεκκίνηση) + + + Επισκευή ξεκλειδώματος με μήνυμα + Εμποδίζει την ενεργοποίηση της οθόνης μετά από τη λήψη νέου μηνύματος (απαιτείται επανεκκίνηση) + + + Κεντρικό Ρολόι + + + Βελτιώσεις Media + Περιέχει διάφορες βελτιώσεις για media και audio + + + Περισσότερα επίπεδα έντασης μουσικής + Προσθέτει περισσότερα επίπεδα ήχου στην αναπαραγωγή μουσικής (απαιτείται επανεκκίνηση) + + + Ασφαλής ένταση ακουστικών + Ενεργοποιεί ή απενεργοποιεί τη λειτουργία ασφαλής έντασης ακουστικών + + + Απενεργοποίηση του LED φόρτισης + Απενεργοποιεί το LED κατά τη διάρκεια της φόρτισης + + + Ενέργειες των Hardware πλήκτρων + Επιτρέπει τη ρύθμιση τροποποιημένων ενεργειών για τα hardware πλήκτρα + Πλήκτρο Menu παρατεταμένο πάτημα action + Πλήκτρο Menu διπλό χτύπημα action + Πλήκτρο Back παρατεταμένο πάτημα action + Προεπιλεγμένο + Αναζήτηση + Φωνητική αναζήτηση + Εναλλαγή σε προηγούμενη εφαρμογή + Διακοπή εφαρμογής παρασκηνίου + Πέσε για ύπνο + Καθυστέρηση παρατεταμένου πατήματος διακοπής εφαρμογής + Αφορά την ενέργεια διακοπής εφαρμογής παρασκηνίου. Ορίζει τη διάρκεια πίεσης του πλήκτρου για να ενεργοποιήσει τη διακοπή + Ταχύτητα διπλού χτυπήματος + Αφορά την ενέργεια του διπλού χτυπήματος του πλήκτρου Menu. Ορίζει την ταχύτητα χτυπήματος του πλήκτρου για να ενεργοποιηθεί το διπλό χτύπημα + %s killed + Δεν υπάρχει κάτι για διακοπή + Δεν βρέθηκε προηγούμενη εφαρμογή + + + Βελτιώσεις τηλεφώνου + Περιλαμβάνει διάφορες τηλεφωνικές βελτιώσεις + + + Ενέργεια περιστροφής κατά το κουδούνισμα + Επιτρέπει τον ορισμό ποιας ενέργειας θα πραγματοποιηθεί όταν η συσκευή αναποδογυριστεί κατά το κουδούνισμα + Καμία ενέργεια + Σίγαση κουδουνίσματος + Ματαίωση κλήσης + + + Soft reboot + + + Μαύρο φόντο + Χρήση μαύρου φόντου ως προεπιλογή του Holo θέματος, αντί του μαυρο-γκρι (απαιτείται επανεκκίνηση) + + + Τμήματα ανά σειρά + Ορίζει το πόσα τμήματα γρήγορων ρυθμίσεων θα εμφανίζονται ανά σειρά. Τα τμήματα θα αλλάζουν μέγεθος αναλόγως. Αφορά το portrait mode. + + + Εμφάνιση ημέρας + + + Επεκτάσιμο πεδίο έντασης ήχου + Ενεργοποιεί το επεκτάσιμο πεδίο έντασης ήχου με τη δυνατότητα τον ορισμό εντάσεων για διαφορετικά streams + + + Link ειδοποίησης & εντάσεις ειδοποιήσεων + Όταν είναι απενεργοποιημένο, οι εντάσεις των ήχων κλήσης και ειδοποιήσεων μπορούν να οριστούν ανεξάρτητα + + + Αυτόματη εναλλαγή QuickSettings + Οι QuickSettings θα δείχνουν αυτόματα πότε τραβήχτηκε η γραμμή κατάστασης ενώ δεν υπάρχουν ειδοποιήσεις + + + Γρήγορο τράβηγμα + Η άκρη της γραμμής κατάστασης τραβάει κάτω τα QuickSettings + Κλειστό + Δεξιά + Αριστερά + + + Απενεργοποίηση ξύπνημα με τα πλήκτρα έντασης + Για συσκευές όπως τα Jiayu G3s,G4 όπου τα πλήκτρα έντασης ενεργοποιούν την οθόνη + + + χρώματα γραμμής κατάστασης + + + Ενεργοποίηση χρωμάτων εικονιδίων + + + χρώμα εικονιδίου γραμμής κατάστασης + Ορίζει το χρώμα των εικονιδίων της γραμμής κατάστασης και του ρολογιού + + + χρώμα κίνησης δεδομένων + Ορίζει το χρώμα των δεικτών κίνησης δεδομένων + + + διαχείρηση QuickSettings + + + Στυλ ειδοποιήσεων + + + Φόντο ειδοποιήσεων + Προεπιλεγμένο φόντο + γέμισμα χρώματος + Προσαρμοσμένη εικόνα + Ορισμός χρώματος φόντου + Ορισμός portrait εικόνας + Ορισμός landscape εικόνας + Διαφάνεια φόντου + Λειτουργία φόντου + Overlay + Underlay + + + Απενεργοποίηση δεικτών roaming + Όντας απενεργοποιημένος, ο δείκτης R δεν θα είναι ορατός κατά το roaming. Χρησιμοποιήστε με προσοχή. + + + Φορτίζει (%d%%) + Φορτισμένο + %d%% remaining + + + Δεν υπάρχει διαθέσιμη υπηρεσία + Airplane mode on + Κλήσεις έκτακτης ανάγκης μόνο + + + Pie χειρισμοί + Ενεργοποίηση pie χειρισμών + Εμφάνιση πλήκτρου αναζήτησης + Μέγεθος πλήκτρου πλοήγησης + Έναρξη θέσεων + Αριστερό όριο οθόνης + Κάτω όριο οθόνης + Δεξί όριο οθόνης + Πάνω όριο οθόνης + + + mode οπίσθιου φωτισμού πλήκτρου + Προεπιλεγμένο + Απενεργοποίηση οπίσθιου φωτισμού πλήκτρου + Πάντα on όταν η οθόνη είναι on + Ειδοποιήσεις οπίσθιου φωτισμού πλήκτρου + ΠΕΙΡΑΜΑΤΙΚΟ! Αναβοσβήνει τον οπίσθιο φωτισμό πλήκτρου όταν υπάρχει μία ειδοποίηση. Χρησιμοποιήστε σε περίπτωση που η συσκευή σας δεν έχει LED ειδοποιήσεων. Ενδέχεται να καταναλώνει μπαταρία. + + + Απόκρυψη μπάρας ειδοποιήσεων + Απόκρυψη μπάρας ειδοποιήσεων όταν οι χειρισμοί Pie είναι ενεργοποιημένοι (για συσκευές που έχουν μπάρα ειδοποιήσεων, απαιτείται επανεκκίνηση) + + + Αμφιταλάντευση Holo φόντου + Αντικαθιστά το βασικό Holo φόντο με κάποιο για να καταπιέσει το χρωματικό banding (απαιτείται επανεκκίνηση) + + + Απενεργοποίηση των hardware πλήκτρων + Απενεργοποιεί τα MENU, BACK, HOME όταν οι χειρισμοί Pie είναι ενεργοποιημένοι. Οι ενέργειες των πλήκτρων HW θα συνεχίσουν να λειτουργούν. (για συσκευές που έχουν πλήκτρα HW) + + + Χρήση θέματος Holo Dark + Αλλάζει από GB UI σε θέμα Holo Dark αντί για Holo Light + + + Off + Πάνω αριστερά + Πάνω δεξιά + Κάτω αριστερά + Κάτω δεξιά + + + Ρύθμιση πάνω margin + + + Απενεργοποίηση ειδοποιήσεων roaming + Απενεργοποιεί τις ειδοποιήσεις roaming κατά την αποστολή μηνυμάτων ή πραγματοποίηση τηλεφωνικών κλήσεων κατά τη διάρκεια roaming + + + Αναζήτηση + (τίποτα) + + + Quick App + Ρυθμίσεις κομματιού QuickApp + Κύρια εφαρμογή + εφαρμογή παρατεταμένου πατήματος slot 1 + εφαρμογή παρατεταμένου πατήματος slot 2 + εφαρμογή παρατεταμένου πατήματος slot 3 + εφαρμογή παρατεταμένου πατήματος slot 4 + + + GPS on + GPS off + GPS κλειδωμένο + + + Εμφάνιση πάντα του πλήκτρου μενού + + + Ringer mode + + + ρυθμίσεις ρολογιού + + + απόκρυψη AM/PM + + + απόκρυψη ρολογιού + + + μέγεθος Trigger + + + διαχείριση διαφάνειας + διαφάνεια Statusbar για τον launcher + διαφάνεια Statusbar για τη lockscreen + διαφάνεια Navbar για τον launcher + διαφάνεια Navbar για τη lockscreen + + + απόκρυψη εικονίδιο ξυπνητηριού + + + επίπεδο φωτισμού οθόνης + ποσότητα φωτεινότητας για κάθε επίπεδο φωτισμού - όταν η οθόνη πρόκειται να σβήσει (απαιτείται επανεκκίνηση) + + + τηλέφωνο + tablet + + + ρυθμίσεις φωτεινότητας + ενεργοποίηση ρυθμίσεων φωτεινότητας + Χρήση μόνο σε περίπτωση που η συσκευή σας υποστηρίζει τα βασικά χαρακτηριστικά φωτεινότητας Android. Κρατήστε απενεργοποιημένο αν παρατηρήσετε θέματα με τη φωτεινότητα. (απαιτείται επανεκκίνηση) + + + εμφάνιση πρόσφατων εφαρμογών + + + ενέργεια παρατεταμένου πατήματος του πλήκτρου Home + + + εκκίνηση custom εφαρμογής 1 + ορισμός custom εφαρμογής 1 + εκκίνηση custom εφαρμογής 2 + ορισμός custom εφαρμογής 2 + καμία custom εφαρμογή ορισμένη! + Custom εφαρμογή δεν βρέθηκε! + + + panel ειδοποιήσεων εφαρμογής ρολογιού + συνδέει το panel ειδοποιήσεων του ρολογιού με μία συγκεκριμένη εφαρμογή αντί για Date&Time ρυθμίσεις + + + αναμονή για απάντηση από GravityBox system framework… + GravityBox system framework δεν ανταποκρίνεται. έξοδος. + + + διεθνή δεδομένα roaming + σύνδεση σε υπηρεσίες δεδομένων όταν γίνεται διεθνές roaming + + + Διευρυμένο desktop mode + Απενεργοποιημένο + απόκρυψη statusbar + απόκρυψη navigation bar + απόκρυψη και των δύο + Διευρυμένο desktop + Διευρυμένο desktop ON + Διευρυμένο desktop OFF + + + Screenshot + + + εμφάνιση μενού + + + εναλλαγή διευρυμένου desktop + Διευρυμένο desktop mode είναι απενεργοποιημένο! + + + βελτιώσεις Navigation bar + περιλαμβάνει διάφορες βελτιώσεις της navigation bar + Παράκαμψη προεπιλεγμένων συστήματος + κύριος διακόπτης βελτιώσεων για τη navigation bar (απαιτείται επανεκκίνηση) + ενεργοποίηση navigation bar + απαιτείται επανεκκίνηση + Ύψος Navigation bar + εφαρμόζεται στον οριζόντιο και πορτραίτου προσανατολισμο της navigation bar + εφαρμόζεται στον οριζόντιο και landscape προσανατολισμο της navigation bar + Πλάτος Navigation bar + εφαρμόζεται σε κάθετη navigation bar + εμφάνιση πάντα του πλήκτρου μενού + + + Screenshot in power menu + + + ξεκλείδωμα των ρυθμίσεων του ring + ενεργοποίηση ξεκλειδώματος στόχων ring + κύριος διακόπτης για ξεκλείδωμα στόχων ring + Target εφαρμογή %s + ξεκλείδωμα κάθετου ring offset + ξεκλείδωμα οριζόντιου ring offset + + + ενεργοποίηση ελέγχου φωτεινότητας + ρυθμίζει τη φωτεινότητα γλιστρώντας πάνω στην statusbar (απαιτείται απενεργοποίηση της αυτόματης φωτεινότητας) + + + Κλήσεων + Μηνυμάτων + δεδομένων κινητής + + + Strip unicode + μετατρέπει τους χαρακτήρες unicode characters σε κανονικούς. Μειώνει το μέγεθος του μηνύματος. + Χαρακτήρες ανέπαφοι + Strip non-encodable χαρακτήρες + Strip όλους τους χαρακτήρες unicode + + + Απενεργοποίηση προειδοποίησης αργών 2G δεδομένων + Απενεργοποιεί την προειδοποίηση για αργή ταχύτητα δεδομένων όταν τα δεδομένα κινητής είναι ενεργοποιημένα από QuickSettings για τις SIM σε 2G λειτουργία + + + Follow προεπιλεγμένο χρώμα μπαταρίας + κάνει το ρολόι της statusbar, ποσοστό και κυκλική μπαταρία να χρησιμοποιεί το χρώμα του προεπιλεγμένου εικονίδιου μπαταρίας. Εφαρμόζεται όταν ο χρωματισμός του εικονιδίου είναι off. + + + Network mode tile mode + 2G/2G+3G/3G/(LTE) + 2G/2G+3G/(LTE) + 2G/3G/(LTE) + + + Επιτρέψτε όλες τις περιστροφές + + + Παράκαμψη προεπιλεγμένης συμπεριφοράς tile + Παρακάμπτει τη συμπεριφορά του πατήματος/παρατεταμένου πατήματος για τα επιλεγμένα tiles (απαιτείται επανεκκίνηση) + + + Network mode tile SIM slot + Ορίζει τη SIM slot σε ποιο δίκτυο mode tile applies (%s) + SIM slot 1 + SIM slot 2 + + + Ποτέ + Πάντα + Όταν είναι ενεργοποιημένο το διευρυμένο desktop + Όταν το διευρυμένο desktop αποκρύπτει τη navigation bar + + + Αφήνει το προεπιλεγμένο εικονίδιο μπαταρίας + Χρησιμοποιήστε σε περίπτωση που το προπιλεγμένο εικονίδιο μπαταρίας έχει αντικατασταθεί από εικονίδιο εφαρμογής + + + Αποσύνδεση ενεργοποιεί την οθόνη + Όταν είναι ενεργοποιημένο, η οθόνη θα ξυπνά όταν συνδέετε/αποσυνδέετε usb/φορτιστή/οτιδήποτε (απαιτείται επανεκκίνηση) + + + Ήχος ρύθμισης Mute έντασης + Απενεργοποιεί τον ήχο όταν ρυθμίζεται η ένταση με τα πλήκτρα έντασης + + + Δονήσεις κλήσεων + Κατά την έναρξη της κλήσης + Κατά τον τερματσμό της κλήσης + Κατά την αναμονή κλήσης + Κάθε 45 δευτερόλεπτα κατά τη διάρκεια εξερχόμενης κλήσης + + + Αναδιάταξη Tile + Επιτρέπει την αναδιάταξη των QuickSettings tiles + + + blocker συνεχόμενων ειδοποιήσεων + Επιτρέπει το μπλοκάρισμα επιλεγμένων συνεχόμενων ειδοποιήσεων + Η λίστα θα γεμίζει αυτόματα για κάθε συνεχόμενη ειδοποίηση που προκύπτει. + Μπορείτε μετά να αποφασίσετε αν θα μπλοκάρετε την συνεχόμενη ειδοποίηση ην επόμενη φορά που προκύψει. Χρησιμοποιήστε με προσοχή. + Ανανέωση λίστας + Είστε σίγουροι ότι θέλετε να ανανεώσετε τη λίστα? + This will clear current list and unblock all ongoing notifications previously blocked. + (list is empty) + + + Γρήγορο ξεκλείδωμα + Αυτόματο ξεκλείδωμα όταν εισαχθεί το σωστό PIN/password + + + Απενεργοποιημένο + Βασικό + Lowercase + Uppercase + + + Πολιτική κλειδώματος της γραμμής κατάστασης + Προεπιλογή + Ξεκλείδωτο αν το keyguard είναι ανασφαλές + Κλειδωμένο + + + monitor κίνησης δεδομένων + Ενεργοποίηση monitoring + Προβάλει το monitor κίνησης δεδομένων αυτομάτως μόλις ενεργοποιηθεί η κίνηση δεδομένων + Θέση + Αυτόματα (κεντρικά ή δεξιά αναλόγως τη θέση του ρολογιού) + Αριστερά + Δεξιά + Μέγεθος + Κανονικό + Μικρότερο + Το μικρότερο + B + KB + MB + s + + + Απενεργοποίηση ορίου widget + Επιτρέπει απεριόριστο αριθμό lockscreen widgets + + + + %1$s free + + %1$s used + μπάρα RAM πρόσφατων εργασιών + Off + Κορυφή + Στην κάτω πλευρά + + + Ενέργεια μονού χτυπήματος του πλήκτρου προσφάτων + Ενέργεια παρατεταμένου πατήματος του πλήκτρου προσφάτων + + + Προβολή καμπή μπαταρίας + Προβάλει την καμπή κατάστασης της μπαταρίας περιμετρικά του κύκλου ξεκλειδώματος της οθόνης + + + Αναβοσβήσιμο φακού + + + Φακός με παρατεταμένο πάτημα του πλήκτρου home + Ανάβει/Σβήνει τον φακό when device locked. Screen has to be turned on if device lacks native wake by home key support. + + + Ανάπτυξη αυτόματα + + + Πλήκτρο Μενού + Πλήκτρο Home + Πλήκτρο Πίσω + Πλήκτρο προσφάτων + Πλήκτρα έντασης + ʼλλες ρυθμίσεις + Ενέργεια παρατεταμένου πατήματος + Ενέργεια μονού χτυπήματος + Ενέργεια διπλού χτυπήματος + + + Απενεργοποίηση διπλού χτυπήματος + + + Signal color mode + Χρήση εικονίδια GravityBox (με υποστήριξη επιπέδου σινιάλου) + Χρήση εργοστασιακών εικονιδίων (χωρίς υποστήριξη επιπέδου σινιάλου) + Μη εφαρμογή χρώματος + + \ No newline at end of file From 69fa4d911b2ed6ea014fdd06765743f8ef626d81 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 4 Nov 2013 15:27:37 +0100 Subject: [PATCH 098/255] Updated Polish translations (thanks to xtrem007) --- res/values-pl/strings.xml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 92d608d28a..2b8d31ebdd 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -26,7 +26,7 @@ Recovery Bootloader Kotroluj kursor przyciskiem głośności - Pozwala przesuwać kursor przyciskami głośności w polach tekstowych + Pozwala przesuwać przyciskami głośności kursor w polach tekstowych Wyłącz Głośność góra/dół porusza w lewo/prawo Głośność góra/dół porusza w prawo/lewo @@ -209,6 +209,8 @@ Pokaż dzień tygodnia Rozszerzony panel głośności Uaktywnia rozszerzony panel głośności z możliwością ustawienia głośności dla różnych źródeł + W pełni rozszerzalny panel głośności + Pozwala by panel głośności zajął całe przewidziane miejsce Połączone ust. głośności dzwonka i powiadomień Po wyłączeniu głośność dzwonka i powiadomień można ustawiać niezależnie Autom. Szybkie Ustawienia @@ -308,7 +310,7 @@ Ustawienia jasności Włącz ustawienia jasności Należy używać tylko w przypadku, gdy urządzenie obsługuje standardowe funkcje jasności systemu Android. Pozostaw wyłączone w przypadku wystąpienia problemów związanych z jasnością. (wymagany restart) - Pokaż najnowsze aplikacje + Pokaż ostatnie aplikacje Akcja długiego naciśnięcia HOME Uruchom własną aplikację 1 Ustaw własną aplikację 1 @@ -347,8 +349,8 @@ Dotyczy orientacji poziomej Zawsze pokazuj klawisz menu Zrzut ekranu w menu zasilania - Cele Ekranu Blokady - Włącz Cele Ekranu blokady + Ustawienia Pierścienia Odblokowania + Włącz Cele Ekranu Blokady Główny wyłącznik Celów Ekranu Blokady Aplikacja docelowa %s Pionowe przesunięcie pierścienia @@ -477,5 +479,5 @@ Ustaw zdjęcie dla nieznanego dzwoniącego Zdjęcie zostało zmienione Zdjęcie nie zostało zmienione - "Ekran może nie obsługiwać wartości niższych niż 20. Jeśli ekran nie zapala się, przytrzymaj przycisk VOLUME+ przez co najmniej 7 sekund aby zrestetować jasność, a następnie ustaw wyższą wartość minimalnej jasności." + Ekran może nie obsługiwać wartości niższych niż 20. Jeśli ekran nie zapala się, przytrzymaj przycisk VOLUME+ przez co najmniej 7 sekund aby zrestetować jasność, a następnie ustaw wyższą wartość minimalnej jasności. From bd274a50d815abaf686abbac339c8b8759d5a4cc Mon Sep 17 00:00:00 2001 From: liveasx Date: Mon, 4 Nov 2013 22:48:55 +0800 Subject: [PATCH 099/255] Update strings.xml --- res/values-zh-rCN/strings.xml | 43 ++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 730fb6daa8..90ddb35512 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -306,7 +306,11 @@ 可扩展音量面板 - 启用此选项使您可以调整不同流的音量 + 启用此选项使你可以调整不同的音量 + + + 完整的可扩展音量面板 + 允许音量面板采取了所有空间提供 合并铃声音量与通知音量 @@ -718,5 +722,42 @@ 使用GravityBox图标 (有信号等级) 使用stock图标 (无信号等级) 不使用颜色 + + + 应用启动器 + 对话框允许定义最多8个应用程序,可以分配硬件按键或作为额外的虚拟键 + 应用程序槽 %d + 没有应用程序被分配。使用GravityBox/应用启动器来分配应用程序。 + + + 显示应用程序按键 + + + 显示应用启动器 + + + 显示自定义按键 + 关闭 + 搜索 + 应用启动器 + + + Pie 颜色 + 背景颜色 + 前景颜色 + 边框颜色 + 按键选中颜色 + 文字颜色 + 重设颜色 + + + 开启未知来电者照片 + 设置未知来电照片 + 照片已更改 + 照片未更改 + + + 您的屏幕可能不支持低于20的值。如果您的屏幕亮不起来, + 按住音量+ 键至少7秒钟将会还原亮度,调整亮度使用更大的值。 From 5c27bfa744e37ee485cd598be4877504a66ebddc Mon Sep 17 00:00:00 2001 From: C3C0 Date: Tue, 5 Nov 2013 09:04:07 +0100 Subject: [PATCH 100/255] Updated Chinese (Traditional) translations (thanks to liveasx) --- res/values-zh-rCN/strings.xml | 181 +++++++++++++++++++++------------- 1 file changed, 111 insertions(+), 70 deletions(-) diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 730fb6daa8..e995e19bd5 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -37,18 +37,18 @@ 重新启动以后设置才会启用 自动隐藏信号强度图标 - 当 SIM 卡未插入时,自动隐藏指定 SIM 卡的信号强度图标,并停用“SIM 卡未插入”通知 - 自动隐藏 SIM 卡1 - 自动隐藏 SIM 卡2 + 当SIM卡未插入时,自动隐藏指定SIM卡的信号强度图标,并停用“SIM卡未插入”通知 + 自动隐藏SIM卡1 + 自动隐藏SIM卡2 禁用通知 - “SIM 卡未插入”提醒已停用 + “SIM卡未插入”提醒已停用 高级重新启动菜单 - 启用 重新启动 和 Recovery 选项高级菜单 + 启用重新启动和Recovery选项高级菜单 Recovery Bootloader - 音量键光标控制 + 音量键光标调整 在文字输入区域内,以音量键控制光标位置 禁用 音量键增/减按钮控制光标向左/向右 @@ -61,11 +61,11 @@ 修正通话的来电显示 若您来电画面上显示的联系人与您的通讯录不合,启用这个选项(需要重新启动) - 为了让更改生效,您应该在重新启动后清除并重新添加所有联系人!(使用 设置/应用程序/全部,找到“联系人存储”,清除数据) + 为了让更改生效,您应该在重新启动后清除并重新添加所有联系人(使用 设置/应用程序/全部,找到“联系人存储”,清除数据) 修正短信的来电显示 如果来自同一个人的短信被分成不同的会话,启用这个选项(需要重新启动) - 为了让更动生效,您应该在重新启动后,在“短信”应用程序内删除全部分散的会话! + 为了让更动生效,您应该在重新启动后,在“短信”应用程序内删除全部分散的会话 修正日历应用程序 若您周期性地遇到屏幕自动开启时,启用这个选项(需要重新启动) @@ -78,8 +78,8 @@ 同步开启 同步关闭 - Wi-Fi AP 开启 - Wi-Fi AP 关闭 + Wi-Fi AP开启 + Wi-Fi AP关闭 手电筒开启 手电筒关闭 按下以关闭 @@ -105,10 +105,10 @@ 飞行模式 电池状态 Wi-Fi - Wi-Fi(CM 风格) + Wi-Fi(CM风格) 蓝牙 GPS - GPS(CM 风格) + GPS(CM风格) 移动数据 网络模式 数据使用 @@ -117,7 +117,7 @@ 屏幕超时 自动旋转 同步 - Wi-Fi 接入点 + Wi-Fi接入点 手电筒 GravityBox 睡眠 @@ -150,20 +150,20 @@ 杂项调整 包含所有不属于特定类别的调整选项 通用修正 - 包含 MTK6589 的通用修正。请只在有需要时使用。 + 包含MTK6589的通用修正,请只在有需要时使用 关于 - 由 C3C076@XDA 编写。点击此处以进入官方讨论链接。 + 由C3C076@XDA编写,点击此处以进入官方讨论链接 Xposed 框架 - 由 rovo89@XDA 编写。点击此处以进入官方讨论链接。 + 由rovo89@XDA编写,点击此处以进入官方讨论链接 捐助 - 若您觉得这个程序好用的话请捐助我!也请考虑捐助给rovo89编写出优秀的 Xposed 框架作者。 + 若您觉得这个程序好用的话请捐助我!也请考虑捐助给rovo89编写出优秀的Xposed框架作者 您的%s将重新启动 - 您的%s将重新启动至 Recovery - 您的%s将重新启动至 Bootloader + 您的%s将重新启动至Recovery + 您的%s将重新启动至Bootloader CRT屏幕关闭特效 @@ -174,8 +174,8 @@ 启动“工程模式”应用程序 - 双 SIM 卡铃声 - 启动可以设置各个 SIM 卡的铃声与通知音效的应用程序 + 双SIM卡铃声 + 开启可以设置各个SIM卡的铃声与通知音效 锁屏画面调整 @@ -200,8 +200,8 @@ 包含各种电源相关的调整选项 - 停用 LED 闪烁 - 停掉当低电量且未充电时会出现扰人的 LED 闪烁 + 停用LED闪烁 + 停掉当低电量且未充电时会出现扰人的LED闪烁 显示调整 @@ -209,28 +209,28 @@ 最低亮度级别 - 可以设置最低的亮度级别。在手动设置亮度时适用。(需要重新启动) + 可以设置最低的亮度级别,在手动设置亮度时适用(需要重新启动) 自动亮度级别 - 可以设置环境的亮度级别与相对应的 LCD 背光值 + 可以设置环境的亮度级别与相对应的LCD背光值 级别 最大照度(lux) 亮度(%d – 255) 指定值无效 - 不建议将亮度设为 %d 以下 - 亮度不可大于 255 - 值不可低于 0 + 不建议将亮度设为%d以下 + 亮度不可大于255 + 值不可低于0 较低级别的值不可大于较高级别的值 较高级别的值不可小于较低级别的值 - 已设置 %s 的值 + 已设置%s的值 自动亮度配置已保存 自动亮度配置未保存 设置 启用锁屏画面旋转 - 警告:若 AOSP 的锁定屏幕曾被厂商修改,某些装置的解锁环目标可能遭到互换 + 警告:若AOSP的锁定屏幕曾被厂商修改,某些装置的解锁环目标可能遭到互换 启用菜单键 @@ -253,11 +253,11 @@ 安全的耳机媒体音量 - 启用或停用安全的耳机媒体音量功能 + 启用或停用安全耳机媒体音量功能 - 禁用充电 LED 灯 - 禁用当充电时的 LED 灯 + 禁用充电LED灯 + 禁用当充电时的LED灯 实体按键调整 @@ -272,9 +272,9 @@ 结束前台应用程序 使装置休眠 结束应用程序的长按延迟 - 适用于“结束正在使用的应用程序”动作。定义按键需要按下持续多久才会触发动作 + 适用于“结束正在使用的应用程序”动作,定义按键需要按下持续多久才会触发动作 双击速度 - 适用于菜单键的双击动作。定义按键需要在多少时间内连续按两下才会触发动作 + 适用于菜单键的双击动作,定义按键需要在多少时间内连续按两下才会触发动作 %s 应用程序程序已结束 无应用程序可结束 找不到上一个应用程序 @@ -295,18 +295,22 @@ 纯黑色背景 - 在默认的 Holo 系统主题内使用纯黑色的背景,而不是黑-灰色的渐变(需要重新启动) + 在默认的Holo系统主题内使用纯黑色的背景,而不是黑-灰色的渐变(需要重新启动) 每行方块数 - 定义快速设置内每行有几个方块。开关会根据您的设置自动缩放。适用于竖屏。 + 定义快速设置内每行有几个方块,开关会根据您的设置自动缩放,适用于竖屏 显示星期 可扩展音量面板 - 启用此选项使您可以调整不同流的音量 + 启用此选项使你可以调整不同流的音量 + + + 完整的可扩展音量面板 + 允许音量面板占用所有提供的空间 合并铃声音量与通知音量 @@ -325,7 +329,7 @@ 禁用音量键唤醒屏幕 - 佳域 G3s 和 G4 的实体音量键会唤醒屏幕 + 佳域G3s和G4的实体音量键会唤醒屏幕 状态栏颜色 @@ -362,12 +366,12 @@ 禁用漫游指示 - 禁用时,漫游指示器上(R)不可见。请小心使用 + 禁用时,漫游指示器上(R)不可见,请小心使用 - 充电中(%d%%) - 已充满 - %d%% 剩余 + 充电中:(%d%%) + 已充满! + 剩余:%d%% 无服务 @@ -375,8 +379,8 @@ 仅限紧急呼叫 - 虚拟键控制 - 启用Pie Controls虚拟键控制 + 虚拟键调整 + 启用Pie Controls虚拟键 虚拟键大小 触发位置 屏幕左边缘 @@ -390,23 +394,23 @@ 禁用按键背光 当屏幕亮起时常亮背光灯 背光灯通知 - 这个设置是实验性的!当收到通知时背光灯会闪烁提醒。建议当您的装置没有 LED 通知灯时才开启,此功能可能会消耗部分电量 + 这个设置是实验性的!当收到通知时背光灯会闪烁提醒。建议当您的装置没有LED通知灯时才开启,此功能可能会消耗部分电量 隐藏虚拟键 当Pie Controls虚拟键启用时隐藏系统虚拟键(对于有虚拟键的设备,需要重新启动) - 优化 Holo 背景 - 使用优化过的 Holo 背景以消除色带(需要重新启动) + 优化Holo背景 + 使用优化过的Holo背景以消除色带(需要重新启动) 禁用实体按键 当虚拟键启用时将会禁用菜单键、返回键与主页键功能,但是实体按键功能仍可使用(对于实体按键的设备) - 使用 Holo 黑色背景主题 - 切换 GravityBox 至黑色 Holo 主题,代替白色 Holo 主题 + 使用Holo黑色背景主题 + 切换GravityBox至黑色Holo主题代替白色Holo主题 关闭 @@ -436,8 +440,8 @@ 长按应用槽 4 - 开启 GPS - 关闭 GPS + 开启GPS + 关闭GPS GPS 已定位 @@ -479,7 +483,7 @@ 亮度设置 启用亮度设置 - 这个功能只能在您的设备支持标准的 Android 亮度调整功能才启用。如果遇到任何亮度问题请关闭此选项(需要重新启动) + 这个功能只能在您的设备支持标准的Android亮度调整功能才启用。如果遇到任何亮度问题请关闭此选项(需要重新启动) 显示最近使用的应用程序 @@ -500,8 +504,8 @@ 启用后状态栏的时间将链接到指定应用,而不是日期与时间设置 - 等待 GravityBox 系统框架的响应… - GravityBoy 系统框架未响应,退出中。。。 + 等待GravityBox系统框架的响应… + GravityBoy系统框架未响应,退出中... 国内数据漫游 @@ -562,19 +566,19 @@ 移动数据 - 转换 Unicode - 将 Unicode 字符转换为普通字符。减少整体信息大小。 + 转换Unicode + 将Unicode字符转换为普通字符,减少整体信息大小 保留字符不变 转换不可编码字符 - 转换所有 Unicode 字符 + 转换所有Unicode字符 禁用低速2G网络数据警告 - 当在快速设置中为 SIM 卡启用 2G 移动数据时,禁用低速数据警告 + 当在快速设置中为SIM卡启用2G移动数据时,禁用低速数据警告 跟随原生电池颜色 - 使状态栏时钟、百分比和圆形电池使用原生电池图标的颜色。当图标颜色关闭时有效。 + 使状态栏时钟、百分比和圆形电池使用原生电池图标的颜色。当图标颜色关闭时有效 网络模式 @@ -607,7 +611,7 @@ 拔下电源线开启屏幕 - 如果启用,当你插入或拔出 USB 线/电源线时会亮起屏幕 (需要重新启动) + 如果启用,当你插入或拔出USB线/电源线时会亮起屏幕(需要重新启动) 静音音量调节音效 @@ -627,16 +631,16 @@ 进行中通知阻拦器 允许阻拦选定的进行中通知 - 在每个进行中通知发生时,此列表会被填充。 - 您可以决定在下次发生时是否阻拦进行中通知。小心使用。 + 在每个进行中通知发生时,此列表会被填充 + 您可以决定在下次发生时是否阻拦进行中通知。小心使用 重置列表 是否确实要重置列表? - 这将清空当前列表,并且解除所有之前被阻拦的进行中通知。 + 这将清空当前列表,并且解除所有之前被阻拦的进行中通知 (列表为空) 快速解锁 - 当输入正确的 PIN/密码时,自动解锁 + 当输入正确的PIN/密码时,自动解锁 禁用 @@ -673,9 +677,9 @@ - %1$s 空闲 + 空闲:%1$s - %1$s 使用 + 已用:%1$s 最近任务内存栏 关闭 置顶 @@ -694,7 +698,7 @@ 长按主页键 - 设备锁定时长按切换开/关。如果屏幕已打开设备缺乏本地唤醒主页键的支持。 + 设备锁定时长按切换开/关。如果屏幕已打开设备缺乏本地唤醒主页键的支持 自动展开 @@ -715,8 +719,45 @@ 信号色彩模式 - 使用GravityBox图标 (有信号等级) - 使用stock图标 (无信号等级) + 使用GravityBox图标(有信号等级) + 使用默认图标(无信号等级) 不使用颜色 + + + 应用启动器 + 对话框允许定义最多8个应用程序,可以分配硬件按键或作为额外的虚拟键 + 应用程序槽 %d + 没有应用程序被分配。使用GravityBox/应用启动器来分配应用程序 + + + 显示应用程序按键 + + + 显示应用启动器 + + + 显示自定义按键 + 关闭 + 搜索 + 应用启动器 + + + Pie 颜色 + 背景颜色 + 前景颜色 + 边框颜色 + 按键选中颜色 + 文字颜色 + 重设颜色 + + + 开启未知来电者照片 + 设置未知来电照片 + 照片已更改 + 照片未更改 + + + 您的屏幕可能不支持低于20的值。如果您的屏幕亮不起来, + 按住音量+ 键至少7秒钟将会还原亮度,调整亮度使用更大的值 From f99198477c789f68228ba42d2d5468740f788643 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Tue, 5 Nov 2013 09:41:12 +0100 Subject: [PATCH 101/255] Improved determination of circle battery size --- .../ceco/gm2/gravitybox/CmCircleBattery.java | 41 ++++++++++++++----- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/CmCircleBattery.java b/src/com/ceco/gm2/gravitybox/CmCircleBattery.java index a37ad3bfd5..6f7e745c57 100644 --- a/src/com/ceco/gm2/gravitybox/CmCircleBattery.java +++ b/src/com/ceco/gm2/gravitybox/CmCircleBattery.java @@ -16,6 +16,7 @@ package com.ceco.gm2.gravitybox; +import de.robv.android.xposed.XposedBridge; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -32,10 +33,15 @@ import android.os.BatteryManager; import android.os.Handler; import android.util.AttributeSet; +import android.util.TypedValue; import android.view.ViewGroup.LayoutParams; import android.widget.ImageView; public class CmCircleBattery extends ImageView { + private static final String TAG = "GB:CircleBattery"; + private static final String PACKAGE_NAME = "com.android.systemui"; + private static final boolean DEBUG = false; + private Handler mHandler; private Context mContext; private BatteryReceiver mBatteryReceiver = null; @@ -66,6 +72,10 @@ public class CmCircleBattery extends ImageView { private Paint mPaintSystem; private Paint mPaintRed; + private static void log(String message) { + XposedBridge.log(TAG + ": " + message); + } + // runnable to invalidate view via mHandler.postDelayed() call private final Runnable mInvalidate = new Runnable() { public void run() { @@ -327,18 +337,29 @@ private void initSizeBasedStuff() { * statusbar for all resolutions */ private void initSizeMeasureIconHeight() { - int wifiIconId = - getResources().getIdentifier("stat_sys_wifi_signal_4_fully", "drawable", "com.android.systemui"); - final Bitmap measure = BitmapFactory.decodeResource(getResources(), wifiIconId); - final int x = measure.getWidth() / 2; - - mCircleSize = 2; - for (int y = 0; y < measure.getHeight(); y++) { - int alpha = Color.alpha(measure.getPixel(x, y)); - if (alpha > 5) { - mCircleSize++; + final Resources res = getResources(); + final int minSize = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, + 15, res.getDisplayMetrics()); + try { + final int batteryIconId = + res.getIdentifier("stat_sys_battery_100", "drawable", PACKAGE_NAME); + final Bitmap measure = BitmapFactory.decodeResource(res, batteryIconId); + final int x = measure.getWidth() / 2; + mCircleSize = 0; + for (int y = 0; y < measure.getHeight(); y++) { + int alpha = Color.alpha(measure.getPixel(x, y)); + if (alpha > 5) { + mCircleSize++; + } + } + if (mCircleSize < minSize) { + mCircleSize = minSize; } + } catch (Throwable t) { + log("Error determining Circle Battery size from battery icon: " + t.getMessage()); + mCircleSize = minSize; } + if (DEBUG) log("mCircleSize = " + mCircleSize + "px"); } public void setColor(int color) { From df7fe132e6d66bc4f0f271635b6199432ec21e22 Mon Sep 17 00:00:00 2001 From: liveasx Date: Wed, 6 Nov 2013 03:37:08 +0800 Subject: [PATCH 102/255] Update strings.xml --- res/values-zh-rCN/strings.xml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 65134b3113..3f928ecf6e 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -37,7 +37,7 @@ 重新启动以后设置才会启用 自动隐藏信号强度图标 - 当SIM卡未插入时,自动隐藏指定SIM卡的信号强度图标,并停用“SIM卡未插入”通知 + 当SIM卡未插入时自动隐藏指定SIM卡的信号强度图标,并停用“SIM卡未插入”通知 自动隐藏SIM卡1 自动隐藏SIM卡2 禁用通知 @@ -295,7 +295,7 @@ 纯黑色背景 - 在默认的Holo系统主题内使用纯黑色的背景,而不是黑-灰色的渐变(需要重新启动) + 在默认的Holo系统主题内使用纯黑色的背景而不是黑-灰色的渐变(需要重新启动) 每行方块数 @@ -366,7 +366,7 @@ 禁用漫游指示 - 禁用时,漫游指示器上(R)不可见,请小心使用 + 禁用后漫游指示器上(R)不可见,请小心使用 充电中:(%d%%) @@ -454,7 +454,7 @@ 时钟设置 - 隐藏 AM/PM + 隐藏 上午/下午 隐藏时钟 @@ -505,7 +505,7 @@ 等待GravityBox系统框架的响应… - GravityBoy系统框架未响应,退出中... + GravityBoy系统框架未响应 退出中... 国内数据漫游 @@ -558,7 +558,7 @@ 启用亮度控制 - 启用状态栏调整亮度 + 启用状态栏调整亮度(需要禁用自动亮度) 电话 @@ -577,7 +577,7 @@ 当在快速设置中为SIM卡启用2G移动数据时,禁用低速数据警告 - 跟随原生电池颜色 + 跟随原厂电池颜色 使状态栏时钟、百分比和圆形电池使用原生电池图标的颜色。当图标颜色关闭时有效 @@ -606,8 +606,8 @@ 当扩展桌面隐藏虚拟键时 - 保留原生电池图标 - 使用它以防止原生电池图标被替换第三方电池图标 + 保留原厂电池图标 + 使用它以防止原厂电池图标被替换第三方电池图标 拔下电源线开启屏幕 @@ -719,8 +719,8 @@ 信号色彩模式 - 使用GravityBox图标(有信号等级) - 使用默认图标(无信号等级) + 使用GravityBox图标(有信号等级) + 使用原厂图标(无信号等级) 不使用颜色 @@ -728,7 +728,7 @@ 对话框允许定义最多8个应用程序,可以分配硬件按键或作为额外的虚拟键 应用程序槽 %d - 没有应用程序被分配。使用GravityBox/应用启动器来分配应用程序 + 没有应用程序被分配,使用GravityBox/应用启动器来分配应用程序 显示应用程序按键 From 7917fd7b4646fda2eb511ad9dce29af5e4508570 Mon Sep 17 00:00:00 2001 From: spacecaker Date: Tue, 5 Nov 2013 21:48:41 +0100 Subject: [PATCH 103/255] Add New Statusbar Pngs for adjusting colors These are some pngs based upon Kitkat 4.4 pngs wich i used in my statusbar and seemed to be very nice when coloring Battery icons i needed to make myself from the stock android battery png but also colors very nicely --- res/drawable-xhdpi/stat_sys_battery_0.png | Bin 374 -> 806 bytes res/drawable-xhdpi/stat_sys_battery_100.png | Bin 265 -> 460 bytes res/drawable-xhdpi/stat_sys_battery_15.png | Bin 292 -> 624 bytes res/drawable-xhdpi/stat_sys_battery_28.png | Bin 284 -> 491 bytes res/drawable-xhdpi/stat_sys_battery_43.png | Bin 293 -> 489 bytes res/drawable-xhdpi/stat_sys_battery_57.png | Bin 284 -> 505 bytes res/drawable-xhdpi/stat_sys_battery_71.png | Bin 282 -> 508 bytes res/drawable-xhdpi/stat_sys_battery_85.png | Bin 276 -> 490 bytes .../stat_sys_battery_charge_anim0.png | Bin 530 -> 723 bytes .../stat_sys_battery_charge_anim100.png | Bin 532 -> 3316 bytes .../stat_sys_battery_charge_anim15.png | Bin 553 -> 809 bytes .../stat_sys_battery_charge_anim28.png | Bin 551 -> 776 bytes .../stat_sys_battery_charge_anim43.png | Bin 546 -> 740 bytes .../stat_sys_battery_charge_anim57.png | Bin 552 -> 3426 bytes .../stat_sys_battery_charge_anim71.png | Bin 552 -> 3403 bytes .../stat_sys_battery_charge_anim85.png | Bin 539 -> 3387 bytes res/drawable-xhdpi/stat_sys_signal_0.png | Bin 492 -> 307 bytes .../stat_sys_signal_0_fully.png | Bin 492 -> 313 bytes res/drawable-xhdpi/stat_sys_signal_1.png | Bin 517 -> 327 bytes .../stat_sys_signal_1_fully.png | Bin 559 -> 327 bytes res/drawable-xhdpi/stat_sys_signal_2.png | Bin 557 -> 342 bytes .../stat_sys_signal_2_fully.png | Bin 611 -> 342 bytes res/drawable-xhdpi/stat_sys_signal_3.png | Bin 611 -> 346 bytes .../stat_sys_signal_3_fully.png | Bin 679 -> 346 bytes res/drawable-xhdpi/stat_sys_signal_4.png | Bin 600 -> 335 bytes .../stat_sys_signal_4_fully.png | Bin 687 -> 335 bytes res/drawable-xhdpi/stat_sys_wifi_signal_0.png | Bin 915 -> 831 bytes res/drawable-xhdpi/stat_sys_wifi_signal_1.png | Bin 1008 -> 913 bytes .../stat_sys_wifi_signal_1_fully.png | Bin 1034 -> 913 bytes res/drawable-xhdpi/stat_sys_wifi_signal_2.png | Bin 1110 -> 1001 bytes .../stat_sys_wifi_signal_2_fully.png | Bin 1205 -> 1001 bytes res/drawable-xhdpi/stat_sys_wifi_signal_3.png | Bin 1241 -> 1124 bytes .../stat_sys_wifi_signal_3_fully.png | Bin 1381 -> 1124 bytes res/drawable-xhdpi/stat_sys_wifi_signal_4.png | Bin 1331 -> 1134 bytes .../stat_sys_wifi_signal_4_fully.png | Bin 1526 -> 1134 bytes .../stat_sys_wifi_signal_null.png | Bin 1170 -> 839 bytes 36 files changed, 0 insertions(+), 0 deletions(-) diff --git a/res/drawable-xhdpi/stat_sys_battery_0.png b/res/drawable-xhdpi/stat_sys_battery_0.png index 20d54610d1d55937a5a201be3ed836293e344d95..9e32bf4dae21dd766033dc47da30d5d7bb2b4a59 100644 GIT binary patch literal 806 zcmeAS@N?(olHy`uVBq!ia0vp^5=*!Xn!|m{$9%bUWTdhV`HxO#;hr3CQpnxUm3Hf zn;FNNn=LbzJ7O$y*jQw}v2=pDX{3dDqKRpWu}PGLd8CC!jEPyindv-Zg+s=o31+6V zOqFJsDs42C+F&YGW2W=enDenQXSKObkfl|IxpBLhM!LCiprsYofLUCdBLWP#^pYUI zUO1N0tX5M6dVip?^v?Tly%GWsWw2bVS6mp;_hQJ2v^CxlVg_3--Ar ze{`9Y$#XfvNU+~kIk6?gYVzDO&+hcf@XajYay+wo-Y2D|1tJE|?2^AN;rQkjkox$& zv8l#C_GMj5g9>LgNFGSzoN<{qc)ogqBfG2^XM_>MmsF;(FvcEJrfa7eq-V3_gfg7E z%@R`1ptYOj&0FbXj#C>BD>pnAX7W3KPG4_5$BuQ8VQy*BJ~Uqkip z*LDIQIF@nxv)JsP@$9uU<9qqH-=1Hu|7R&Dzt&*dGa31t)elmtm9M`1w(t0>QtNMm pZ~5zNcz-R<{$T$6QN^R3@f$tdb*$%`gahM^!PC{xWt~$(698k;S7QJG literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^Qb4T2!3HF!TWJXcDaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#S9F5he4R}c>anMprBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejM zo~fRpfx(xeg+NtLJzX3_JiOmdaO7$V5OFnaDzMI7!pq{TYOoo-XC2 zX@P|Wf$HC!6;DJ_Jpb=5u(bOT zoyCt(O#JxqLdo)Fb#q?7{k-e`p1j>(Z|_->UY(wPZAHGJbzfcR)RU1#^I}xAGtPfI lch2icVUADdW5%vW+@(*}HEOCW83H}b;OXk;vd$@?2>@{#kz4=( diff --git a/res/drawable-xhdpi/stat_sys_battery_100.png b/res/drawable-xhdpi/stat_sys_battery_100.png index ffaa9eac66aa150273a02f60b425efa749ce69f6..3daa56c7b0d4f081dbfd79131335a1d8426d716b 100644 GIT binary patch literal 460 zcmeAS@N?(olHy`uVBq!ia0vp^5S?>~@{|Mv5L zHBi}lPZ!4!jq`6Ohl@2C2)JrCHY^aCs>R__CH#HAg?fXW;9W-Z`1g0u+~+y`r&ac0 zg$hH*^JP3vMBFVisVu;BGE9JxA!x6qO({{h0O?kQY5&{an^LB{Ts5 D99jPT literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^Qb4T2!3HF!TWJXcDaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#S9F5he4R}c>anMprBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejM zo~fRpfx(xeg+Nsmo-U3d9^P-yI&w7_@VH!*^FIGF(k9-=Yjr@nVsf*>=87q1Ci`bZ zMsBkWHQC2|H2QgYHPhRdNo>x{J0u+HSFc=nqxr|0d5@K24rN)d4~UWa@sPDOgX^Nm zB2Aazj%5PAinE-y>~9a--y-qL()D)e_j^u}=K}1s*+XB{)&1<%vnd8kBv+YE<XPmFAPIcJ{C egdd(Ld0AR7q`0tQc4KbLh*2~7b1nHXCD literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^Qb4T2!3HF!TWJXcDaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#S9F5he4R}c>anMprBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejM zo~fRpfx(xeg+Nu4JzX3_JiOnY59Df95NJ&-f7BG!^Lpi3zjG}{&lVzLe^I}XOMYAM?c9#3 j@rJLq-L8#jKE%1GEW~W(0?P+L=P`J?`njxgN@xNA0Df%v diff --git a/res/drawable-xhdpi/stat_sys_battery_28.png b/res/drawable-xhdpi/stat_sys_battery_28.png index d8687546886b20c031f2d593a2f35670016e76d4..beb94b5e67b866d4100301fad5dee28a5811410c 100644 GIT binary patch literal 491 zcmeAS@N?(olHy`uVBq!ia0vp^5AK>oj@m=l?3?(Gca(Ai;6L^ zReX5ys{TKVzNxX9=B$5zL~g%*{pQ=dzhYvq{{Isb6BB*$_s<8B3lHx0_Dx%%?oUpWpP zKjMDLB}}1G$u^&hW1(hH`YgUoV^O}ABZ-E`*FQUa$UygYq4*Ky3GQO+lB1U~Zuk=Z z`m9xjK9fb*KOu*kj{>7v9j=uLRPGn7$~207F=NAj&TCWc|44kZxxw5LIOm9ur%Wq@ zCVx;v54)tpx#mCG8mCsRoAGLu&WlBz?xrOd<@)Y+uC$hmYACLkygHw8-5rfP7O}0? YiJZ=i^TSvA1AW8b>FVdQ&MBb@0GspC!2kdN literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^Qb4T2!3HF!TWJXcDaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#S9F5he4R}c>anMprBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejM zo~fRpfx(xeg+Nu^o-U3d9^P*+ALMON;Au@fc4?(V+vIl#YeYL#P4{F3DO9|8*gf&W zKXn;F%lCgnc79xaVWy1yCs~u|D;H*$2%Ft{|TY8*7>VosTXAI5EvZvy> zGb23CI%SCkZJrP%eal%!?v(ZB(uKM%UiTH>#abMh&bDd7tkx@Htv?ceH9u{R%*wDU Z5`X5_Z6@54(+G4HgQu&X%Q~loCIE(8WD5WQ diff --git a/res/drawable-xhdpi/stat_sys_battery_43.png b/res/drawable-xhdpi/stat_sys_battery_43.png index 651443e6351ecfb823e1575920ea435dbc54046e..13c3b80898c161264ce7e8a1de32faf4e2ca5659 100644 GIT binary patch literal 489 zcmeAS@N?(olHy`uVBq!ia0vp^5anMprBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejM zo~fRpfx(xeg+NtPJY5_^JiOmtapY@N;BgI{wsdupVPA>-y7k*s5_C{8B||M&f7Qoy}>Jg?1ehzxYVlWc5L3UR~DcUno6RR}0V0?%h{ohX)Idn3sdMUp4z(x=@(X5Q z;1(AZV`8iL@Zwede-?dHV>8WJ|Ne;Fe*5~(w|9TV#Kd0x{|6++L|^><^Fido!}|}I zW#k!{UTPfv2{hw`r;B5V#`&kGqs1E?Bw8N^D9f%?^9pfNe=_6$|MPDguVtC8i>-LS zuQHAM(DkbGznBA^9xeF4OH#n8%|%XAE6B}=vD>$3fq?YIxi`0LzWsOPFznv-p0 z#(SXT+0SD83^7K&d^1)L?!A|tm^w}gU3}KN$y@NI)78x1_E$q+UKjYJz~W-l!SGQl zQhn{UlUi&!6&o0HDmSn$vGHJ(anMprBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejM zo~fRpfx(xeg+Nu^o-U3d9^P-S268nh@Ej}b4_*Gr!0xK8&HbQEqmPRdv{>FgbXUpy z?=CB7`TlRv&W|fE%#_jpBx@3V<-+6=LEU!?B01%}GBlggmOf+Gl~61%ZaCP;n7Y2z zL}$sj_6u^4z69KxS-Mcy#p}N2yI6}O)73UjnALhkXGxl(Dfh~)igpqIK72f=Wx7Rf aCwG#|`(2$YTD}0C#o+1c=d#Wzp$PzO0A?)! diff --git a/res/drawable-xhdpi/stat_sys_battery_71.png b/res/drawable-xhdpi/stat_sys_battery_71.png index 0081b3fca8a40af39bf52f8f82e056c3bfba8762..e4801ca958365f84055d0f6c522fa38c7dc9516c 100644 GIT binary patch literal 508 zcmeAS@N?(olHy`uVBq!ia0vp^5oLoG^z{DK)6 zxWz@qnAj>lym(drpGDu)*i3WQzds_k-@bnH?cHB7u~+~9iGhIVi@$$9h+KGh{{gd% zJOh(M-;EHU8K*s6978nDzdao-?&KiRn%KIMBQW^IgMbnT^-KT%r@vhpaoVW#YU=yD z=I3)9e?&Zw44;ys(s}p#*#?12%6}UdDWzUG?&z^Rj%RE6;i`qw%9o}5Urbq~Ik!i* zIORpd%(pv=%L8@AEM%(LCQOf7y_9Fd6wyUjrBkOXZERh2@mc+O{h8gUJ38$NN6OK3Em9Jy|?L0}X_tKLM>D@XxQ#T&{Sh6ohI`-Uh nWd;4bwOuj+Mac!vL%8@Szm74KSn|>Y=q(0MS3j3^P6anMprBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejM zo~fRpfx(xeg+NuEo-U3d9^P-S9pr6L;Au@fc4?(V+vIl#YeYLHDCy4x5mWVj+j``Ze_vOL%VufaI*-Np! zo_}n&Sj~@V+x2v}Z${y~L&Y7R#rTdk9yC!|rfA69nd#xV~f1Z$; Yds*`5;?mdCfR1ADboFyt=akR{0QH1q#sB~S diff --git a/res/drawable-xhdpi/stat_sys_battery_85.png b/res/drawable-xhdpi/stat_sys_battery_85.png index f5d5732610adc98490f16b7018956c96ed358526..694857d6f0c4d4601585353aefd28d73a61067ce 100644 GIT binary patch literal 490 zcmeAS@N?(olHy`uVBq!ia0vp^5eew6t2ayX8 z?>}Ick!N6Pe^o97G-Icyi(`n!`M0NE3pEBvv_1?n6Ot`2(kjstvApwtZlv_g%v*W~ zdcNQPZo8S~VfLfV^Hjc1)cG1`&g^uefye!ngyv#JKBpt+o#yTdw(nlKOnO;raJy3b zt!bGrZiyHaKkt5;bX6zJ;@LZ%4d2w}?lC{=&bXIWq1|ci3;G^EVy|lvr&zx^a!)^RVTsY?xl1-ganMprBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejM zo~fRpfx(xeg+Nu!o-U3d9^P-y9^`FM;Awr>w=~$WNB!>MpIP2hrd-JQ)be6syS`iN zcVXjTuS|{HKU!Nlzc$YM_%2Pg#GS9|Fz@?yPwTeq3G6SwzAA1{qxqX}q6;!_?rtv$ zt`!%$6WNj=*yPF~rWgTd$j*A|`qIC$tT6BCT{ROg&feoC3}2rHJ0;C!=LI^4!PC{x JWt~$(698v>VUqv= diff --git a/res/drawable-xhdpi/stat_sys_battery_charge_anim0.png b/res/drawable-xhdpi/stat_sys_battery_charge_anim0.png index 9bdb48051df1cafe83a2ed9bd84847bd941fd4f4..71178a41573938a5d809af598c349864d4f37ff6 100644 GIT binary patch literal 723 zcmeAS@N?(olHy`uVBq!ia0vp^5mEFKaQpV{n3x!EZ|}>OFVCJmJ0&IM>eZ_uAt7B|UA?`%8#Zh>d-klKpWl`( zTY7qWa&mGqGBU1TzaAYO-PhOG*4CDpnORd)Q(awMSy{Pb$BwYDu>1G#-?(ujE-tRB zs%rlH`Fr;4IePTyty{Me5)wi~L+{Z;v^;(|Nw`laiueS0a+-fmbZ(($-r z_2kQ&^=dxs%u*4b{^eDaYSol&Q=IoK+&(Yp&Ru(r<-dPinRe{o8Hwk2#m`tK=eT{i zZg-(tIDP)+n_)Un_`|thKQ>XaIQVPEr$aLr9g^j7e=q2ExH015$0yE7M*lvhJ8_x3 a70&zVygAhCVE`~v7(8A5T-G@yGywpK6IfgT literal 530 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 diff --git a/res/drawable-xhdpi/stat_sys_battery_charge_anim15.png b/res/drawable-xhdpi/stat_sys_battery_charge_anim15.png index 6e517de3f5ac53ad24108d220745cea96d5a5394..1a0ff0a8bfd185f1a6136991d0dc09c7afd60075 100644 GIT binary patch literal 809 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 Dfe>)F literal 546 zcmV+-0^R+IP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0004zNklus$&n&-&KtuC zte$YWyh8^VhR%s0?7`}IE}M5~8~xC^UM%1gR>yPsJVR%YgFVnW8J@F1FW1EJamas6mbpt53QURH1v)#262cl zSUD|d=o#{z?BgST%MvtnhfTbww=6+J^1HZCy=4g+dNkg$1P$f+^3#HbLj3h1|1f8V kgT%M&p-!m}bzW5X0mue~{VHN^5C8xG07*qoM6N<$g7!q{VgLXD diff --git a/res/drawable-xhdpi/stat_sys_battery_charge_anim57.png b/res/drawable-xhdpi/stat_sys_battery_charge_anim57.png index 6341769682a8b0f1688b1888e4abf31dc2f98a51..329bb2254ac265cb4b3691e96e62da3e4f614c7c 100644 GIT binary patch literal 3426 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 Ef^ed3aR2}S literal 552 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 U?{e44K-(ESUHx3vIVCg!0P6>(BLDyZ delta 477 zcmdnY^oDtYWIY=L0|S@2@@yc*SRCZ;#IWw1%u67LCEd~2k%3`jKlh(RRv@3Vz$3Dl zfr0NZ2s0kfUy%Y7lqzwJC<)F_D=AMbN@WO0%*-p%^K%VRC^ObG)iX3O_)@eGXl%5n zi(^QH``PQZ-YkX!4G)7w1huzbc*W)V=fJu8ux##wK^HFh>1-3oVR`@W=dW`QJ?0#F z(0jz^qsi=)=T9G$-8^a0mnf?57Px1IRNKS-zNKYi$)bGQw=~Z@cP>e%c*j!TJ&Ef! zZN{;-b=RoFyT$@I`uv; z-sl`lD(2p8;kaW*u}8#?9nKyOJ9gA&IIP%_yT_T?Pf#h3yZd^O(h+@i{+r=98r~HO zl{Ex8T({ty{b+eZ9+1}`<*Z{wut#&Ol20E zEXkfzqbqw*_=1VwzG+XkKH*)l_OB+888%PR{1e-iYj+AieW`D`cS1TKy7>6rlMh?W z7i@dhwfov(&U}a5+?P8}eyf;lUDfB);16^3nvpBSBfbJ_|slokTx OgTd3)&t;ucLK6TdX3pRM diff --git a/res/drawable-xhdpi/stat_sys_signal_0_fully.png b/res/drawable-xhdpi/stat_sys_signal_0_fully.png index fa82af5b23754492b0f80a62586cfc1ef3e95a34..fef302e4845a11e8b382dddb8469ee832fe15e38 100644 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV4bq(TCGLR|mT08BA_U<))~rXQ)=)=XNiIbyQC~|{K}NzTKFMb9W}vzXPZ!4!i_=Fhc=9zlh%j87 zc1SFMjXhxh_xgywW?jRpa`? znE6ws*GZJG4tUpBtns}d&t)g)(|M6QuUFmKR$bqFyNvhT!Wav24LGzvn6CMEy=2u1 WcCMRqjUNHsz~JfX=d#Wzp$P!*;i1<6 delta 477 zcmdnV^oDtYWIY=L0|S@2@@yc*SRCZ;#IWw1%u67LCEd~2k%3`jKlh(RRv@3Vz$3Dl zfr0NZ2s0kfUy%Y7lqzwJC<)F_D=AMbN@WO0%*-p%^K%VRC^ObG)iX3O_)@eGXl%5n zi(^QH``PQZ-YkX!4G)7w1huzbc*W)V=fJu8ux##wK^HFh>1-3oVR`@W=dW`QJ?0#F z(0jz^qsi=)=T9G$-8^a0mnf?57Px1IRNKS-zNKYi$)bGQw=~Z@cP>e%c*j!TJ&Ef! zZN{;-b=RoFyT$@I`uv; z-sl`lD(2p8;kaW*u}8#?9nKyOJ9gA&IIP%_yT_T?Pf#h3yZd^O(h+@i{+r=98r~HO zl{Ex8T({ty{b+eZ9+1}`<*Z{wut#&Ol20E zEXkfzqbqw*_=1VwzG+XkKH*)l_OB+888%PR{1e-iYj+AieW`D`cS1TKy7>6rlMh?W z7i@dhwfov(&U}a5+?P8}eyf;lUDfB);16^3nvpBSBfbJ_|slokTx OgTd3)&t;ucLK6Tol+NY= diff --git a/res/drawable-xhdpi/stat_sys_signal_1.png b/res/drawable-xhdpi/stat_sys_signal_1.png index 07f1d97a65552c6b9bed89d9c43580da53459d31..02b3373a8c43f12527be6015b832b256e9469fca 100644 GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV4bq@n_RLR|mT3?!#)bOG8TR}$nG z%wVRQrXrsznIx1DYpA2HB$pzUsIR4}AR|%tzcxNdZu2If$~sRM#}JFtM=zY_YcgP9 zz4&Ts6!#AXmyC!1>w~ZGPB5A2Dx6*$mh7{SuSd4^hUW=Uv7MWR3&r)Hco{BVvo2|! zSW&oQ`Q{UM<(1YII;|5ec3PMGPV-5X;`dD_cwZN0n&%x`I#;~dNzXuBsYp?2yTKzn lo*kM>-;=A&>y7`v=2frb6k`3I^Bw3C22WQ%mvv4FO#n@#t0({f delta 502 zcmX@k)XFkJvYw5Bfq~0hc{Y$@EDmyaVpw-h<|UBBlJ4m1$iT3%pZiZDE0E7w;1OBO zz`%DHgc*KPgsd?{K8G`7Uk z#W5tp{p|JqUd)aH4If=Z1htbFDl7>&!ckUV*5t2nBRf5F@&s!E7X!^&X88k`E}dF# zy`Qsh&F0sVV%KLsx_;;1%>DzaORk&rMxShtQ;}~|n|!if`qdkaV_q_PnGG|~^(E;P z?^wcXldx{{VhL@Fm`hSwXIg=xYtA25UHd?++h8G3y!))`*TUZQFm~*N=ouGo)(7?+ zeHK(E(8@Vi_GmGK+2nzQ-XpV(KO(ty{CM)j z`x~Fxg3lJ5x81cCT(;npezd&d+#{7YT)B*MkH$K+0S##9D-H*_DMYyd6~&4e|>=_5X=HY;*La{io#yXS`$PPpFnw18d0rX<>GM$sv|(uzGzL kuUBv4J?*|Md|AtIX8q%`j>Cbnz=&e-boFyt=akR{0CGLp;{X5v diff --git a/res/drawable-xhdpi/stat_sys_signal_1_fully.png b/res/drawable-xhdpi/stat_sys_signal_1_fully.png index 4285ea15552352be6e028021ff65825288550230..02b3373a8c43f12527be6015b832b256e9469fca 100644 GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV4bq@n_RLR|mT3?!#)bOG8TR}$nG z%wVRQrXrsznIx1DYpA2HB$pzUsIR4}AR|%tzcxNdZu2If$~sRM#}JFtM=zY_YcgP9 zz4&Ts6!#AXmyC!1>w~ZGPB5A2Dx6*$mh7{SuSd4^hUW=Uv7MWR3&r)Hco{BVvo2|! zSW&oQ`Q{UM<(1YII;|5ec3PMGPV-5X;`dD_cwZN0n&%x`I#;~dNzXuBsYp?2yTKzn lo*kM>-;=A&>y7`v=2frb6k`3I^Bw3C22WQ%mvv4FO#n@#t0({f delta 545 zcmX@kw4P;xWIY=L0|S@2@@yc*SRCZ;#IWw1%u67LCEd~2k%3`jKlh(RRv@3Vz$3Dl zfr0NZ2s0kfUy%Y7lqzwJC<)F_D=AMbN@WO0%*-p%^K%VRC^ObG)iX3O_)@eGXzV;s z7srqY_p?{+y_g+Ej(_~YAE+&QQL9xbWW(nAlk1+bFdhubPuSX;p*&;Gfep`i%CuA_ z30H9RC*-FqzJ9N3Cz*ciqK(XVQF$I~>-V*Si?%M(xbn&F%AwyErlj7iU;Q~x{n)de zGM9x)Dz*zJZ`M0*!Y+Q{>0Q5`vpZxi^UQIY{sE}qTcPDLPm4yQ9uTK(dh)D>_EO*cS%JG00#y*y?OhuAw(1r4iqxb9%#yTK+}$Q|%6 z+Gxd(vlr!W7H?qI>R-H}^aE>%lzU?754{DOEV!(j0vu8c*&V#E9NpS5eMQ%8*5b}t z7WcOYx!%z!IS?nLzwV~|UykPbWr>$%a#rZ+on=p#xWeG+uxE#fyqwzKi_&bK%ueZ_ zELv30zHSe%(KGOn60n+lRQ2ZuM*SZ#0z8x0TF$u?YFGb!AZdTvpvm!4!-bnS3O{GQ z|JT{%BcZ~}F}GLLeCz$))lU?J!A9-x&yKx&Z-%29SZhi=hy4A!`yWZwu5b>lW)E%n W?Pi>Ob^$O>89ZJ6T-G@yGywpV9^(!G diff --git a/res/drawable-xhdpi/stat_sys_signal_2.png b/res/drawable-xhdpi/stat_sys_signal_2.png index b6e234997edad301e9bc4b18b92c9143d52f6ba5..041ba4df0f71ae2e0f631e6f270d9b6e01ce0678 100644 GIT binary patch literal 342 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV4bq%s41LR|mT3*<7sEd*MsToU9L z%wVRQrXrsznIx1DYpA2HB$pzUSeE%O=6}E+*Pqs3Kh)L6*RsuM1S+reba4!^IDPcg zNxr545toC@dpnpPbm%^A{r}%X_`2S?rXx||UaxO%*e04a^TO??FWz!bEVtm=JNd@t zRqxNlX@1dK82^i0QVH|sR-w>|i|2B`eYW=Y%d!r{`|EiWR(R(lDTTk2uaX0;* oIElRmRhuu){`*=t{$;)0-xGZM`gQBi0Ug2M>FVdQ&MBb@03zqhjsO4v delta 543 zcmcb{w3cOpWIY=L0|S@2@@yc*SRCZ;#IWw1%u67LCEd~2k%3`jKlh(RRv@3Vz$3Dl zfr0NZ2s0kfUy%Y7lqzwJC<)F_D=AMbN@WO0%*-p%^K%VRC^ObG)iX3O_)@eGXzUzM z7srqY_p?`Ry_f?<+8!Q>Z)#o95vD0(*koN_z$x~vi+h8InnA+iBRU6IZ$w3R@7ndz zR?&Uk^LZVH#dD)=Se`$x)7MN|y=qm?PVwT0aXg}~AMfwlC3`gD+-c3+$Bx?=-17$Go`$23PHp;Q%%-xYJCgD2k;01I_ut?D{4?0WxUfaE`QU@*iF+P#?4GpY z4UklLWxLzr&^eB(%NueYS>()}aos?tyWWB?>flD+Y@5D@SUxMK^KG0v?VhqO>3-bc z%M|xxPR|X4h2I~rF6or!YnMGX|8RqW*GpT;;w$p*H>3{xn>qaF19RoJpLwxZTp(`q z_mne%*)g*ZUR=XaZM#Q3x$oB_3F%vf2OZBI`}kq2x!#WJId_!y6hD6$Cvxw`o;}6& d66>>Snf?TA`Mk!5B@P&)44$rjF6*2UngD}0?G^w4 diff --git a/res/drawable-xhdpi/stat_sys_signal_2_fully.png b/res/drawable-xhdpi/stat_sys_signal_2_fully.png index 36a97ec11380708b02bc8e0ca553238ee2d436d4..041ba4df0f71ae2e0f631e6f270d9b6e01ce0678 100644 GIT binary patch literal 342 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV4bq%s41LR|mT3*<7sEd*MsToU9L z%wVRQrXrsznIx1DYpA2HB$pzUSeE%O=6}E+*Pqs3Kh)L6*RsuM1S+reba4!^IDPcg zNxr545toC@dpnpPbm%^A{r}%X_`2S?rXx||UaxO%*e04a^TO??FWz!bEVtm=JNd@t zRqxNlX@1dK82^i0QVH|sR-w>|i|2B`eYW=Y%d!r{`|EiWR(R(lDTTk2uaX0;* oIElRmRhuu){`*=t{$;)0-xGZM`gQBi0Ug2M>FVdQ&MBb@03zqhjsO4v delta 597 zcmV-b0;>Ji0^?_s5+f5{Hfa?0Ay0U=5+nP5*`y)Z zg&>UZY$Zm9hks29!wz)A2+vkxWO&%5E$9g&JX?v8;bBvzK?x%~TZxh3VH2hx4$j4` z0EIahHxCrxT-*$BfKzc%I06n>1}EYo5d19(ocQMGNA>{Zfd1kVl}=wUgu>>;p#pnx z7(ih$_$k0n91ag}c(of`e+#e^m-VhLarH68t+-9Ec7KwrbUv|mD=vFl-Aj}oKCt!) zhPV-z^=jLRa{C?YAdFy${Wu&po-DWDu@;#ML5WA jTt9T@{)Kka4SwhgBYYH-0g?pX00000NkvXXu0mjfc2@oG diff --git a/res/drawable-xhdpi/stat_sys_signal_3.png b/res/drawable-xhdpi/stat_sys_signal_3.png index b06307e4134954861f6ddfae7b8ea7ea73b93570..2b7bc265cd87ae9a2bb305759352c66cf433fe6c 100644 GIT binary patch literal 346 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV4bq|yR>LR|mT1+11ntqZhKsU*lR zn88dpO+`LcGD#>Qwkr33;=j;8-annbek#k132?RkP*)p&eYFP7y4e z3N;3ZxILUKt5_#GRmA%J|4BjH)6VV6IJWEGx-gE{Qw_Em9tm>J+wH7(Te`4)vEp>; z;%%#}4a>!frZer_Bvg2PcE@UI#p_*`isk9+v?o;iJZ^Zs|M8=|8OL4k7E6kk>Km#* unPVwlr1vD|#LfxQt#?+$zq1wpcb)xwj6h_VzM~1yF$|urelF{r5}E++Ld3NI delta 597 zcmV-b0;>Jm0^_-Cr@RnKZ#;o;W-}4-P=`oL@dOsZ!iz-$b{=MsR*q%sMFK?` zq?2RO8k`gf6lIV`j?dB|i;kdBpeTdt<#?CvQ!-`IQh}ljs+B`*n}WBnBrI0SWKf-) ze3n@LYEDb^IiySmmC1Ej{Opy4v)^P;iJW|v9v79^dD#s9F2}-KTOhEgUO5h5dj$en jy>hAWIxX(78RV@m>R`r0r|P`$00000NkvXXu0mjfC_eYR diff --git a/res/drawable-xhdpi/stat_sys_signal_3_fully.png b/res/drawable-xhdpi/stat_sys_signal_3_fully.png index cf0abf90f2402c843721228be49b9d7e7908abad..2b7bc265cd87ae9a2bb305759352c66cf433fe6c 100644 GIT binary patch literal 346 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV4bq|yR>LR|mT1+11ntqZhKsU*lR zn88dpO+`LcGD#>Qwkr33;=j;8-annbek#k132?RkP*)p&eYFP7y4e z3N;3ZxILUKt5_#GRmA%J|4BjH)6VV6IJWEGx-gE{Qw_Em9tm>J+wH7(Te`4)vEp>; z;%%#}4a>!frZer_Bvg2PcE@UI#p_*`isk9+v?o;iJZ^Zs|M8=|8OL4k7E6kk>Km#* unPVwlr1vD|#LfxQt#?+$zq1wpcb)xwj6h_VzM~1yF$|urelF{r5}E++Ld3NI delta 666 zcmcb`w48N7 z?6&yhg(;=mm6IRuv{X6&z^B~W$n4r##mIKyj8}Q?$Byl=R9RiXOOo_v69_5sp(x=$`r5fMj9SDw}QH?EP}f94YUPrG~@=K zaFLbKJSskmHGff@G^3#Qv^$Phtna>!Q{xcvephBc9o0{_>l{;Tqy%fYdy z>Ce+wZx7z~ve~zAUI!<~lmBNouGk{o|3AS0C`-p4a?+(CF7e5=Z`SkITP|k`y8Xh(rDjF5@=}3K8rpx1_ZOby zc#$qVx3h!4v|x#dlh~qbui^`=n9|PAg9$xbc5l~@6E8(K{C)=0Y9!ub`)tmhY4tuY zo@={bP`}AR{J`t9;-dHF6@x}aC zJ6SHJO_&SRJ>j>j?RKC_qsi5W&i`z_9GUb@Y^I}HQT89kecl^59e19dTA>@831s~| w_3_L96t>v{Q`X05)L7^4Ih!;==Pz@q@Xx6H^DkpmfQgC0)78&qol`;+00>nli~s-t diff --git a/res/drawable-xhdpi/stat_sys_signal_4.png b/res/drawable-xhdpi/stat_sys_signal_4.png index 6c28c5c642bf7c7426dd3916fcb701dad0c821bd..d8a049ab75812f13e3eec291d5ffb4b81ae29bc0 100644 GIT binary patch literal 335 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV4bq+$bnLR|mT64>WHI1aQ(z9h&m zn1Qjq@PG6_zdv?gbw9kU%1sRQ{^|6oEHfs+)w-_so$IzjXQ0w1PZ!4!i_=FhoaQ?i zAi?mkxiIAF+IN4x{_EGw30d@3M8adJMYo?nNDO~(kQcw`4&(EHcQ5W}YM0mbzb>ABZHHWWZvX4D?fr#!*B!E) p!u_1-DFjMQ$==uWd-a$7a#@NT*HVw{o(gmggQu&X%Q~loCIIZw$dLd5 delta 586 zcmX@lbc1DrWIY=L0|S@2@@yc*SRCZ;#IWw1%u67LCEd~2k%3`jKlh(RRv@3Vz$3Dl zfr0NZ2s0kfUy%Y7lqzwJC<)F_D=AMbN@WO0%*-p%^K%VRC^ObG)iX3O_)@eGXzX!M z7srqY_p?`Ry_p>aj(zM{pP-ne*c73$ue7Ot?cUa@b9?0#j;fZ=F`HH*TJ%P`Q;ELnISLiHbe{LwN#(?G*B z{+03pKljBK&FhyPT%b~0c#Uxz?+x}}538kkye>^omrQu=uvhpQ7yAt%hxJUw&Dvc_ z^>Q=D?xz--^WN%PA8s~R73@=lkYe- zJ9Oic*!3-pAUtV4bq+$bnLR|mT64>WHI1aQ(z9h&m zn1Qjq@PG6_zdv?gbw9kU%1sRQ{^|6oEHfs+)w-_so$IzjXQ0w1PZ!4!i_=FhoaQ?i zAi?mkxiIAF+IN4x{_EGw30d@3M8adJMYo?nNDO~(kQcw`4&(EHcQ5W}YM0mbzb>ABZHHWWZvX4D?fr#!*B!E) p!u_1-DFjMQ$==uWd-a$7a#@NT*HVw{o(gmggQu&X%Q~loCIIZw$dLd5 delta 674 zcmX@lw4QZ>WIY=L0|S@2@@yc*SRCZ;#IWw1%u67LCEd~2k%3`jKlh(RRv@3Vz$3Dl zfr0NZ2s0kfUy%Y7lqzwJC<)F_D=AMbN@WO0%*-p%^K%VRC^ObG)iX3O_)@fxfq_ZR z)5S3)!u{;@-CoRr0&To(tQ!Sb-ZpV8n%3l6Z=&`w=m$qre!^7t3+w`CkE$-6I#uQ3 z1KrjiEMj8Unx-bKoU8Hb*ZGG&H||FIZ=5hExaLgD%$q+wZrI*ry#GD<x(tqif2)cHUWj{)xhp z84nWH*PjfJ3buUzN!GG+r}Flwyq{*Hu(hHA{$Y z)(_X3swVjO2**=}B@$ULLNoNWICIaLaClOpOQ{a)M!j~{OoQ$i9Rto8SyEuv8cbY2Z*B5HA0ftI-^DU5BF?=3 z8^tHpvsz7?#068+k-YQTxd*22cq^0Ossdj`G~LlIDxJ85Y1u3{OAgI8DW#qV&ug6C z#Hp-oSh*~ax+8-w!>#&?3w;+|Rwt1_oFPe@wfIQh`VlGW`_DxwBgO-=!$Oic*!3-pAUtV6xz`)29;1lBdf5d~|UOTq}10}2^ z$S;_InO8uBk4xRgKQ=8n+|5XqMaUw;OO2H&DAA5lD=JkY#na5#(kWitAXJK--^JaQ zP1!2WRYS=mS}sJD+fPt4QaefC)ZRHjg+tUqUd$)PP{+|Xq5Y#(1Teg(dAc};Se(8Z za?`2FK}43-M0RVymB2vd0@s*JVuw{#PxIz({QrMyn*uA#o2BjNE}toA+xh%nu|7jR z&;0oco>~uF7dE9YG`J$zdF-5i278drK?iH4lOea9oL2IbxS6@XiOku@a5u0=^2}+T zFKp8ftp6?K`uXXL&_3}WL6#wg#xu26$d;AH9T9)Y;A;B8IB3<(yY;IWwxwodPhL=b zm-p)z+2UYj$6wbtI)y*h=ANC(^y1yT&Bv}jSN))ny}EH(@{RVzhE;PcGIRSbhBWS( z_((l$&F;*%%TyERAB?v8L6CMO!iQ!2X~oUl%Zj%;8K;-pYNePeo*kZ=q&()7-Ss-Rm>9WnDir^~Jf3 zjF;CRkGenS&7QzFTf|ZoV~pxcCYLH83x>|r{0+; d-&EhOFSW^Bef!Ig8Nf8a;OXk;vd$@?2>=^q^KAeC literal 915 zcmV;E18n?>P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv00095NklPjCts0ih^#$PectQfAJjWup65)?7%6w z15DPw{8^4L=q~hI&5qnvSS||Vc4hDb<9`homD_?dc#o)`#2vymD?x7{s_+}v;Fhu( zsl&st&MQRws2n{Pqf^1X)R4u{r_rmftWyc8u~Me<#PRi^LQ^( zn~s{-%4MCaGf)XCS9{toZy}AKe|_vZ^DCE&Z6{LTlkn+z?>5FlDhevkYll2Fa0nkz z?x+opu#2qN*F#KrPv{j?o)+!^=h5`Itiw6%{9TL6(b_Ml+#aGv%iJrSPeA|Qh{2;i zyXpj$6Fqfu327^-qx>|MA?j;_xRHCJE~@U) zm}`)rnv3EB^KI%be6f)u=e2Zy6&iho9yF+&28QUjz`W;oui7J-v=LPPhl7hK3MpS` ze9?*OW@#&^{GJu9azB6{B&w6G&7ktEF0O7*9X~)+wwAVo$}`(9e+FJXer;e=5mafF pNB0`(2AvMVi^C|qID9%I{{g)obUyA55_A9n002ovPDHLkV1g7_szLw& diff --git a/res/drawable-xhdpi/stat_sys_wifi_signal_1.png b/res/drawable-xhdpi/stat_sys_wifi_signal_1.png index 37019d1421e66c442506bb228ab69fbf4e59cc6c..17b8e19c2d21f5f865b263eb0f1652e0b849e453 100644 GIT binary patch literal 913 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV6xz`$r4;1lBde-w}&0;28Gn}Ok& zUJ~RN%)rbmAR^4irEcRNla?IrW+cNRWD$|%p~k8alxWYW70oZ1lIm$^W@6SY_C!s#I9V;HN=QL*vFfoa~&KmK3-cU$+v z{GWR-WlZo>oeGSzC7v#hAr_~vhD25$bP$nUw6I4>WvWuI>C&!SUcy_i-MZvj8hrQn z|9U6&N6sA|F162F9(k^&{N2vyaSZ^6VhwC zReI@DLbcusp6$o&QVoCWgft%2zF4ETf^R>w>vapJV)w?m2_4oC4hcSfXfwH|Y4J_H zV@EGKJN0J^YxG>N^zmIksln5?g=49snzWgk`ldNgN*d11_ftB4u{tiM<*Sp~i|PNn zpB4lNwTqI~}B*98A5gFRfB9jBHg-I_ElJo0)cA3d6rmlM}dB1cZd= zi7yO4#KLT!FUEiD%AHo%ctIbNZBw)-Mw%()MxFcWb@E(n*2HN^BDL`oLiRlK{9JKS zEzINu@1*t1ME}b6|4^*ly=n5H(u3FcOW(2o!tzEiIMedi%Swx5-p*UAzcP24$!vU; zJFjkP#oyA;58lQusa+#4Gx7Yx589g#wj{dWzt`(_v7h&k^&cjcWY_4{^M{OpNrb`E L)z4*}Q$iB}m9;X4 literal 1008 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000ADNkl|7r&g=|7tDj*sQyo>RO)JZ2c07eWRc95KC#+mHj|(OvQ^H@6L}+(F(2iHJdoqE zPWUlay;NC)&XR3%R|pXg7UF~4k}X0#Yn+78pxnZJ!qu?`@6<~_K^7%ip91= zT;LPJ-Q(O%sfUCW6g;oFULfflC z-*`Rd=5nzz1O>%0@r&LQR=*!&uP{xn3%8LsqziIb{4EXirG~4=)LJdp*ma>naYp#n ztV}l`E0(JovT^f7Iv{>v77@D$!L2bHvIGSa-3>A#ZY#+mem9niHCB_XL9s%3&RZcu zRfV~~SgbJ;Itj`q{8+32;N6l(Cey)MG!9eAs&DEfDA?zoiW`(Ez>|cl0sV81H}@1Y^DdbFV}i>mQx4ApVaYPHJeT=5qeZ&SC07aMTpIOfi;lD?>K zCNl~e4ahVg#Au;Vn3AvZBf|G7&I$kb>h=0%GUK37m?8OIEEfM*bncrB`hBdLX>tiF z1C>gps!+e;A?2sejj2t)-^Z$%Ca<6vESJmU3O4P9{LK&0-$JilomDeUoOic*!3-pAUtV6xz`$r4;1lBde-w}&0;28Gn}Ok& zUJ~RN%)rbmAR^4irEcRNla?IrW+cNRWD$|%p~k8alxWYW70oZ1lIm$^W@6SY_C!s#I9V;HN=QL*vFfoa~&KmK3-cU$+v z{GWR-WlZo>oeGSzC7v#hAr_~vhD25$bP$nUw6I4>WvWuI>C&!SUcy_i-MZvj8hrQn z|9U6&N6sA|F162F9(k^&{N2vyaSZ^6VhwC zReI@DLbcusp6$o&QVoCWgft%2zF4ETf^R>w>vapJV)w?m2_4oC4hcSfXfwH|Y4J_H zV@EGKJN0J^YxG>N^zmIksln5?g=49snzWgk`ldNgN*d11_ftB4u{tiM<*Sp~i|PNn zpB4lNwTqI~}B*98A5gFRfB9jBHg-I_ElJo0)cA3d6rmlM}dB1cZd= zi7yO4#KLT!FUEiD%AHo%ctIbNZBw)-Mw%()MxFcWb@E(n*2HN^BDL`oLiRlK{9JKS zEzINu@1*t1ME}b6|4^*ly=n5H(u3FcOW(2o!tzEiIMedi%Swx5-p*UAzcP24$!vU; zJFjkP#oyA;58lQusa+#4Gx7Yx589g#wj{dWzt`(_v7h&k^&cjcWY_4{^M{OpNrb`E L)z4*}Q$iB}m9;X4 literal 1034 zcmV+l1oiugP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000AdNkli#7{>9o?s_2-gx8X`25G5kV)Rj zB-03^@H0bl&U+q{b53Gip-}iQm?vvd@vnS7U(>PWa?v6EhwQkE+ znJm`0z9c~x%QdkE%E~<<@OZH@#0F(9?H8-?zrqvCNhD9Xpflu(Sj8;&h4$x!`Fp~1 zRxZjNvHF$MBa_6>WCdL!55+3rJdr-xEo)_I0;^<)ume=85B|&%Gw2$LTg}|L14271 z4BHjKTf8ITtai&~r`!;09ETl(nvtM~#p>`_4hmb!GI0ZL68c;gYaa!7kHyGTU@s+P zFm#uc>kIlsg0c;`hD1TJO@c*F39COCVuLVEjtGyDFQmP)S%O;{=t~V( zkEyjltg(xd2E{JnU(L#N1F~Ydt4TI)-bk$y49p^87a_PcrY}uUFwxy0`^0S}X@sA~ zOtHo)kv1rrg!jA^BB@)#+;0?XjEHK2vI(CTD**VmTr&0!D+%mv+9;rZBVe^T@}7VlYHvYhPEs!|J9gO)j`{aM>$TE-~!`o z>bUS>1MVE>-1Yg=;Pp*qOhLT?nFfUD>+K(W)Aj7_$IhX5pTTd=aZUKYSAC#gDq{|c zo`DzhI)>hV(eHw#?yRWnW|L1lLP@aQ)k&7f_sM!xFUD1INSW}K{o zBB!uFbSw#}bKiArl9KjT%{W;GMYDqa((!N5mm@!Q%z4*JST*Bh9Tcq!``ZiL61wKI zYR2({rezHt(CM+R6Oic*!3-pAUtV6xz`&Rn;1lBde-zL$1g_n1;R8lM zRY{OvFatBMfQT?3m%5FAOj>fdn~@BQkVQn2hZ?I!aH2hH)sfn2|jgXPkJOYX~i^8&(8_$Mw<>5gcg0`vZ-LOmv))C zNQl2~fezD_xq&XMo*u3Kp}w)svBBNm(veG7@HOi-EnmKl|BA+ubH`E`wj2vM<-wzu zdPX6giI>Avj4jyMS1&nZgT&0u1|CrkdzY^{e?TFVGbv(Y^z4;di+6cD&h0(OrgA!& z`&0W|rvAOnTU(XIR}`mxxLw6$8F%2q#Lw3nj%+uS_TtHA49&b{nDOJsub=EJKiJtc z4Nl)=Q1;T1Fx?r^-Xg_yl7&sdA;O}4&gLH8s$D{pHg|D2uucqovup44nAoK~eF-bekEQ7hl59~kCo-PAXHgs!wrxU^UrknC z+`g@@jk@!6)FU}I8Yy@(=f6w!Z>?JB!B}thU9WA$X~ht^DN~xJOcm6#*m8=QNz12G oBT=Ml5>KaAmlmsJn+yZPfj{xx%e?rzfhmZ=)78&qol`;+0Ho(&Qvd(} literal 1110 zcmV-c1gZOpP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000BUNkl4I)IUeV84edeAmP3G@ev=ocxph<<7pe^_1ry6ycQ?isFU zzB6-Yc7$!=wKIF~Ip6cyd(S!dE}EO0`(FqTE<}xAV`F0r+Mt6D;bE-C3M@g?u4nTJ zx)RS}Kfb_uOlB@&94GM>Hp71=s@GAkL6>41K7k?fU{!pNW7rDoMdP%n8q{033tpXQ z@P3`a8(5BL+@>l)w_p^}K!b7t2403JL&u=br2~ixKPcX@C()9pUC?#-8d0&xH?aNZ zaQ+@Ie1_9Fhp1mWAL1c2Getq4!gq)YBtPI3_F*TUu3$U%z#X7lefhHiVbC4uw3@wg zAHjA}7`H2fzg&D8E^7BI_M(PpoWvc%nk_*OBkFJw2jQ0T4AOwRVV^G%?W6MQxfq=a z?xlt-hkgg``pP~nLEVPjyvq#@@d8p|_fbQiMY&y7-@s76dj*ea#85#K%H}D63$8WgCdHeZ9 zdIjacE+Ti4ZJk1@a?qlX6Fm*`0pWf$7@t$P*TD?!ZsBM8<#*%JZXwlE(4yeuIOWwc zKo+Q*S^C}N(}#s~|B<3*SN#NC#z4Om14m|PGtK91+$kL|n=)0#>D;zu5Z%_?QOiY|0z*mGx@1(v>4Z{~3xkY)*z&mMsntuD?U1`?hd{^@c zsv!dSBr&85>?+)r{x10as^_qU+wPrMlGO;u&doPy17X(T&ol>foO54Y6ZKUzc5Wa+ zv65*}Csee`XE^6AU!L`8ipI_jDyY`fYPAalYp!nG^&jA8RjFNzXzbh|gK8~dCyS7? ze80%CwzoWq#?B2os5TJrGJfLw`s`dN8avkv8i|Tlw6PGKYY~kd2@fhN`XEGON5X>( c&)lN_0IQKfsrHiHXaE2J07*qoM6N<$f^QoIc>n+a diff --git a/res/drawable-xhdpi/stat_sys_wifi_signal_2_fully.png b/res/drawable-xhdpi/stat_sys_wifi_signal_2_fully.png index 629de937a3917c9a556171fdd075543d9d8efe2b..744fbd96b431f854324754fd47ccd6de12ec639e 100644 GIT binary patch literal 1001 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV6xz`&Rn;1lBde-zL$1g_n1;R8lM zRY{OvFatBMfQT?3m%5FAOj>fdn~@BQkVQn2hZ?I!aH2hH)sfn2|jgXPkJOYX~i^8&(8_$Mw<>5gcg0`vZ-LOmv))C zNQl2~fezD_xq&XMo*u3Kp}w)svBBNm(veG7@HOi-EnmKl|BA+ubH`E`wj2vM<-wzu zdPX6giI>Avj4jyMS1&nZgT&0u1|CrkdzY^{e?TFVGbv(Y^z4;di+6cD&h0(OrgA!& z`&0W|rvAOnTU(XIR}`mxxLw6$8F%2q#Lw3nj%+uS_TtHA49&b{nDOJsub=EJKiJtc z4Nl)=Q1;T1Fx?r^-Xg_yl7&sdA;O}4&gLH8s$D{pHg|D2uucqovup44nAoK~eF-bekEQ7hl59~kCo-PAXHgs!wrxU^UrknC z+`g@@jk@!6)FU}I8Yy@(=f6w!Z>?JB!B}thU9WA$X~ht^DN~xJOcm6#*m8=QNz12G oBT=Ml5>KaAmlmsJn+yZPfj{xx%e?rzfhmZ=)78&qol`;+0Ho(&Qvd(} literal 1205 zcmV;m1WNmfP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000CeNklkHb%NFhdTYi+Bvwhb%|sg<&wD3=giJaCX@FC^Wt3O{MXXb zGNGDy+iy zir!cuLV3~!U5bxk6|;N^wf_K`zwfx3un(QE`lZu=2a(ET1zm}5SOq+NXvQ|I!>S0@ zq8i!(veg&;dlF{Q7m#T+>&fke+F4<=T`72pdsH~9-D=dL4c0gw?GUON3i<}D4qxFl zXiIq(-hi(_eLjMYadnU4*1(e zwI71McwwkLCAQV)z+P(eqO?XdGN4@qa^D8PXw&&pmu7cj4?lr;*DOOO? z_gatKE3gTlAvjPz=m~3)`Nw(>(|#wU3o80rXb0GinSL&Fp*gJiy8@w4Yo?&0?ZGM< zq`gw}sSH}}T6CgwUDG|avHJSyNt!=evIP}=Nsr9rwmMKzDx4>5Duhz=+ z2GokxQ*CQ%-#^^YdvttTZ1jB1z;_pGW1|=9`x6t5T?bEo($cCR`XX(BKd=^&c9G&t zAtiE9w~!{fH^`1XtsRH99z1@o?8x|a?kCeJjZfUHKK#RPyW6{u(J%Nm9-~cY?4X>2 zx&@c>nb}*{mzW^HEv}j2ESnNjx2p!ezqGHlT|etI_m^-zG_ED*pk>2n7MBl={m!`= zCW_6&XZ~*NJkZ3sQ_~tdDCeM<&y)F?qZwl3vB~SD@w1nC+SfS$*KBiFC!Ctr*g-Q1 zDvJqwj^o`y1%$oC)4RBfVrXn3ePmi4jg`%8gF4thpQ;%A@fzpetDUCe>(f`Z9~gO@bF;rSc2Hh|;t5{q zpB&AgEUG^^I$M#&8apUoL8Xwe|8SfZl52l)Tn?*`!x}p%pFyRVVE?b~_~d^a3*CEZ zSz`y~JE&|R>@7ENN#LHz8apTz)M6ElsM2NK3$ezwm>0z=dM{XGTg;1dPjcQJf-Rd2 TyM!Ck00000NkvXXu0mjfyoo)P diff --git a/res/drawable-xhdpi/stat_sys_wifi_signal_3.png b/res/drawable-xhdpi/stat_sys_wifi_signal_3.png index fc678a1e5521220d059e84028b8772d4f8a6175c..4a4789792af9b29f4e95b0b3766161f6f6e39ba5 100644 GIT binary patch literal 1124 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV6xz`%Gkz$e7@|0o#xA@C+!`8P0L zr=7U=M7nHw0v>gnMc>Kp4E z?Cc%wE*`nGL$2AbDSbgA$CVR#DLF}6rw=5ktyJKeZj?S@YXe)06*u$dRZFLC<>k0> z>!vlw2`>w$y~}e>9C+}ACuzq9Z;2hdZZ2Rb=l5sRXP#h{Kf%7{No9@i-#^Sb29606 zVhTDm{54EE4yU9Z%H6=cy~AU(Mg@l(`>h8oh8sJ6bU1SyS65L}Rb9U15bLEg6O{C1 zb*4nwgpUxlA$mH2Kn*4y~?b eoJKsBz@$~!;G`+M#Q~Vg7(8A5T-G@yGywp+m)ULr literal 1241 zcmV;~1Sb25P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000C?Nkl99gjVKa{fy5@p z#HgU6VpT9k!w&>B61-GJsR|^<5F+-nT`3r)RuOEhsfJXd62WT37`0VH?fTc%=h@6z zhuOE?-F7jx$)~e3bIyCdyEEs^teBgd`(FqTE=SdW{r&yRTDyaG;0D};>#+(^yOu2_ z=sMhoeRvZmFj6p#0UW|E+y%c(RBu7823?K&@fr+K4AzYIaR6Iky=a^|%?9-nZil~4 zH27k@gPmB5Xxy4+f^J41qJi4wBn-R;QHBMBdM`bXsPMJo6}uC4dFBhc32!4R7I_!8 ze*@mXuVxP8D25RAo6mE&4z)~C&@FfmQGw(G9KqA*!re`H0DIsH(5Sxr>%_l7%jI$v z2Oh*iv)Ny+8@7wWxLg^0N47Ow)b3t9g%YB15?2Uo)&+ejYfy9wFTf?`9;5*uhkf3{ ziN3zRkMJ=*!5Q~C?yu)$^j2^!HDo^YlZe*fWS7~BL0yJiyz>nW@eopB*HJ?s@9pg! z!#DVuP=Dg@z!lE_f{XZ^eS>=+Ka5nN)l+Sea$251O6udF^FN1s+2=3wR|r=u%XuH_6sH z;UvqCbr7pkNQFVO20krZ0rpaGl!8;)0PW^4e2#IvhrNIA!0IeRFG0)k?w)U|viuEeAIpDbYfJvjE+CqUZ^F`@+nPaE%76u)3WwqMclFoU{G8PavM#JRH^o4^IQ z6n%^H_>A+;WH0NZFtB|OQOn6WOUO~is6B-u%?8yDzcqung!l_S%OD@J?-yt^(Pn5j ziBbB!4ucwa_u$~*5Vdb-KMa_(5>z+R=~f(Jkn;v81Zt#0zwg){r-tvhH&e6WyQo?X zYNs^}bS@h>GDDkbwtpa+G@2&xi@BN&wHy>aEqpQgEjMt5{U5mJzQ8cb7{Z9hJZGEK z-hFCpPc;qF$YO%Z1=&a3G^PmSz1PF9^}rV!xkP!)z+JRGO22)mKEo5vH?)+X>L7qGF@|)4`8MUU^kc@)W1hoi zF1uHv`V7xANFz%PT1A*m_&(i(MVxb8-4OLv6s)K%L9ve8piHP}md|j`OTMOic*!3-pAUtV6xz`%Gkz$e7@|0o#xA@C+!`8P0L zr=7U=M7nHw0v>gnMc>Kp4E z?Cc%wE*`nGL$2AbDSbgA$CVR#DLF}6rw=5ktyJKeZj?S@YXe)06*u$dRZFLC<>k0> z>!vlw2`>w$y~}e>9C+}ACuzq9Z;2hdZZ2Rb=l5sRXP#h{Kf%7{No9@i-#^Sb29606 zVhTDm{54EE4yU9Z%H6=cy~AU(Mg@l(`>h8oh8sJ6bU1SyS65L}Rb9U15bLEg6O{C1 zb*4nwgpUxlA$mH2Kn*4y~?b eoJKsBz@$~!;G`+M#Q~Vg7(8A5T-G@yGywp+m)ULr literal 1381 zcmV-r1)BPaP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000EkNklQVM`8|7z!4{;%hIikf@Uz*TC`PjxwW>oa((Gj zTg|mkd5)atT);VSY{d5Cez;$*`*-f=zOVZ*Yjkwx~@rurYrSJ$y!YdXF zO;7?$K=G`3qKH*gukdcr>R6Lcl^V!^i@};VOe~^{;AyZXN)!zs;kjTrOem_obU#>u zFBE!XDG=o|p6HcO4puOWXF&b8f%fmiAxdEf)PXf_JPP3=2s>G#H$o#=0bF*&c32Cy z!{QiN205S%Fj;(|p9OGUbY=Ij0~NQyM5kFRR|M*3$tYb(e0ivpoYn7USOb+{&EujB zp_oyk4~05-c@`c3rIee%oiGhFW+&9|^i{P!R$14+wYo95t*RkV=BsI=UaP0WsI8z} zD#@|ZxnSjBmn^w?MU{q>yvKHw#2w%URvwjfZAooQZ=S#By?XHbn?Mndykd-D)phYkM9IGrdCaLW9JpxtFz@6Au4FlX?OGGMsQb9 zWzh~_^>g|Do_Etb2ELa_ydeHdPTP@>AFXQWAf67}t)ciL8}vamcQH7Ul+mK02Hn?s zO>TfytVGRy{+@TVLi8~u;vzWoXU^WEpFH8K^%Gx*EIb!%fh77llEM@XbGV97y%m7>)JD zV~(FGl~JN3MJ%G?NpOSyy}G0S=$7h6r7WFT<Rp|M&0YO#TMxajRJ5k`&<6!A z-GjyTdk#NU;nO9e8_D@l8k^D4|B7NMCX(kU)n-bHSVctx0ncW)yAi2?DKhh zdPfkS@Svpz2Y=HE-(20epK+T(E4Ns&IQ?2(y$Ms$B_2_64TBbP&6KU%-93naR>G9C z&=$&WJ93I#tgm(YetQM=m%B0(5wGYh($swR*{3|4GO>`}Iq+R^oxhZ4C#EIlC2mnj zVr5QHni3q8Gvvn4Snbo+p&3IRI590TFH;c}^N}5){CCpe(AkU^-aJs)6wnpu-Y^cT zQ=9sP`*#l?gm65GOvY42MKZFdSiO_VmjsiT%1xjzHbN=NX;UBie#DsLjCF1v7uqLf zI-(-EpgE|kR+8JvlP~7B9{w<^{namoo>iwdSd~4I&*peb%u7N<;c8y#HOic*!3-pAUtV6xz`%Gqz$e7@|0ozPA@IeB;{-5v zXO;x{1v79cXc!wPiK`?|J^uXv_nYf$TzhYS-I~CYa`E$A9j45u|JK-@``N?G{`bcA zIUUUtmK}R{$FlrNs}q-mq9CJM^13f?m^aT72%C8H?T<3Uvar z&Ye^%RdHaN_lJyfi&f3Qw71jK#WBRt+i&F@JRl&zk;1~--qM!IzHpaz%=EKnhj^Y$^_XD4=uqY2 zUh1TZ#cc7wKZXx+PeV3lTJt4ZJaEkqt(^b z&G{c*J;1P}<1{&)a_eyg{_q?Tn=4cEWT@gb4xd~f$#z={$=sC8&scH z1(u}VJr{Ag)`dS}ntH$y=`%039+~L)tKs1F^DHSXTH!1oyF?zI@f21&<~QrkUF+0W zCOc{w0;Q8Vr?Q{C?09OKke-E3NM)t8bcaTw mk|;BChgMgbiy@CC14G5bxQ&(XUw;CoGzL#sKbLh*2~7Yb1M}|y literal 1331 zcmV-31Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000D{Nkl3)1c91AYsGwik z%WOqjh_ICkti)`kh-lMMhZd-8FUhC~TP3$rTeZ!c{yKZ!;a<5Nzw4bDM{D5Wp53h)6hZC*m z#jZ$U3dMLPG#Y`z=pk4ae1LX%=g|q;WIrAIK_Pbq&k6X33&mzRM&E;u7C3*Zs;X+N zuC9K>^Ey<~b`p-lAvg>tXg&{Du&d|!indPt)7gkEXqk=uK%sPOz+kW-8o6eYJ|O8C z>O1f$q-}x65>Q<`TF+&W>ceg+Y@vJ{|6BOK#{XL&wuMfJwfOucR72fr7>gu*Ed)dJC5LseAI`!h`fkA;xDR(#r~L|4!a>*!i)dd&jP1m`s8OaKx-{s2fwuAP)Ndrv z$DkqgFBsQR-UnLfI<&PzFOaMrUc(3a!j{WV`aeMv=*1x6S{f@sBfXXQwUpZ(Kjm&h zlk%CHNg}>_hHV6i6KnbtxIxke-WlssC)TDz;rzfC$M&?ii23JmgbY#`X6#|d_yp^4FG&~c@s$U{e0 zgZgA+`TCHj85fPp?)9P3>|{n2W@o zOWhRclZj9<1*chXiX_h^z!4Nh62BIn7l^SMrV;b6%SRZQ3YF7150yF;@FAB_xV$gbID@ zlo6mCx)7tar;j&HXX>`(5oN!BtsD@^tlovkVI;O={BWfsog{6diB9Prd=~J;9Flpq8O^s z6o{Dtp0HgTe1#>Oic*!3-pAUtV6xz`%Gqz$e7@|0ozPA@IeB;{-5v zXO;x{1v79cXc!wPiK`?|J^uXv_nYf$TzhYS-I~CYa`E$A9j45u|JK-@``N?G{`bcA zIUUUtmK}R{$FlrNs}q-mq9CJM^13f?m^aT72%C8H?T<3Uvar z&Ye^%RdHaN_lJyfi&f3Qw71jK#WBRt+i&F@JRl&zk;1~--qM!IzHpaz%=EKnhj^Y$^_XD4=uqY2 zUh1TZ#cc7wKZXx+PeV3lTJt4ZJaEkqt(^b z&G{c*J;1P}<1{&)a_eyg{_q?Tn=4cEWT@gb4xd~f$#z={$=sC8&scH z1(u}VJr{Ag)`dS}ntH$y=`%039+~L)tKs1F^DHSXTH!1oyF?zI@f21&<~QrkUF+0W zCOc{w0;Q8Vr?Q{C?09OKke-E3NM)t8bcaTw mk|;BChgMgbiy@CC14G5bxQ&(XUw;CoGzL#sKbLh*2~7Yb1M}|y literal 1526 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000GLNkl>cgDDl$p|n8lQ|T}a17U$w$M>lv2?YAQh0$4gl!1wkO>NH@DedzLL@Ou zOuT(?F=p{H7w3(r#2fg3-nH1ieM(1bu)#}-LZR?WP(_h&WtmcQ-6K`HHTzWBaQqJC`blvY@WkI3{Se{#ZEF;y@ zH%t)SDc{X$Ip*gtHn4=}sucWVr{v!c2BrffO88H4^2+w$`3DaW3x!XFloM3GL` zfqTJbXL&ae+ln(bZu7zgnY`+>%k%L5J&-0_$aJPwe%l~73`m|<9I?& zH+a5!!C`SWdLlTck|78QnxXX|4`_?D^IhCF-GjA#3hgtJ{(9hZ*Dr_cIn2%sW$ z<-&&SN9i$>az%+<7{L43YI9spvJN)69aWn^7AOGp8jCbqV!x+Dy zq!YzUl8_@x900DQGYPh#zK7NNjYzNo&^f9qQP;NQ7+Qz6nY!PiqbS4F{SGb~_QINm zo+lJa1N!U*;vYq^*yYbsF3JhXX_VB)N)mEK2^|tn(auC5&EO8~*rS;ZUE>g+ccbB8 z|DAUD9<{y=aeDyG+?8D}h_g#?f)#YJ5K-b51V!L8Q~uzS?RE&zOt5ksw1iU4rzde1 z>yU?TNo!EQ+9fj|3l$B)F%^b&b`H<1j2v)Txl~wfEWxvwlM|D&U{Mf?nHfRJN?@a0 z#M$_v_#J09jT_ZK%*lyK2}G0#gX}oUD}&-Lkl6fEM^2qJ6-mY0k_)P%HtI9izkTck zn9D~Z{s>f*2#4$>W^aPdOC%#PDtCi@PUwgd+o%uvzK56r#ESpaxj?&L79&c8XBz~% ziIe1hoRiO_n|j_&X?)>hf}W|4+Q1#SfvrFc;gN?#{IOV35uBg5CO4k(dAG!u>7y*; zi5v0E#&cp)f+7lT!Yln6B`b0~DZv&cq9Hr&6y7XpW8uW4Tn$ko#R=Eu1xd((4PHt(DGs*s c|Ho{|zw5Oic*!3-pAUtV6xz`)2F;1lBde-!-xKR>0e9vCj+ zB|(0{49vU&B79ux*8VYR$>DBBGAu$C5uR$S8bOKnjGEE>5-F*6W+qln@!|%dQtU2C zaqgmQO0N3BOdj$fs@#5pkvhhvUbfBwDx3}qVm{iIhOt^4zTOEI_IfvfVLr>##WBR< z^wp5a=q3jdSyuzu=>bzhVgioD1ZK`uxNdT0i|gwD|AVEPLIf^Om$ULWKKyX^_c^;6 zJ{KZ zm*xvTyS~NMkB-h=o@5aybgC(WGv=MqOsy5U`K1dR>z8O=x_u<^)5&RDeqLdVIesPV z71K{Io-Mu7#kG%_bG}{cxpUzE>z5yuTGzd+$d0pYWa(Np|6QrwclPcDsq-B?OV#x?oeT6ckKPM63E!Ii zEIzYxKjX~@`>vTUFN^aii)t@^Q+>4HV{EFEJ$tX6fr56<{S&KKXN6RpSi|o($-*sU z?c&-gB7HwpV%+$q_D%?RyUS01?cb~!JNtj$nse^f##)0Pmoh&;?q1xuyQl jQ|fCMh4TNgu3`46HGjJ+<^EYbP0l+XkKP22SY delta 1161 zcmV;41a|w!29gPo8Gi-<000U%BbxvK00d`2O+f$vv5yP zfP?@5`Tzg`fam}Kbua(`>RI+y?e7jT@qQ9J+u010qNS#tmY4#NNd4#NS*Z>VGd z000_vMObuGZ)S9NVRB^vP+@6qbS_RsR3LUUE;TMOFfjCTp??4X1L8?UK~z{r#hBNN zB}Ej6$2F~SF{6Tt=*prZCR7&mK@m|OL=5Y$$|7PwR7~iAf-YhLQ87K39?X~nnEpAx zudQEmZcp#boteJwfp5C|)JaucRb6+MHX_T*%i*9o=xi4zNzho4cnwDFH!UrYLASJP zAH1RdXgFa6^?zeNGx6q<7VCd7`=b;vMK0FUUgT1w& zOW{z6%@FM2)G@7fNx+I90LiE;Cb#?j|_cbEasKq{B#Q430qZKwS~E| zPKOw$*MEJ2DW&A7BYGsb3w#CpRJi(_oLN22nHaZF(@SC}57d!-1-|#jJ;=%L2>OcE zExb4-Ia)q(U><{CU}qX{hQHupum^oF7AeV5@;Udd!+JV{G`M;G0~+|;kDg2^H7+<> zUatiU+uNSE_$Nbp2)HQzglnKPXxA2Y8cEC&-+%4IE$msaj;^K{Wt3bkeiL2J7c||Z z1twOBdk(mT`Q@0I^JB)RfUEa&IHTz%DKIfgJU4lB`Rz4tZQHNYcK90J1&=@KGP?gc ztyAJ#;`o+c2e&fwsT&`JC?ON{a`+AQK|b&sDlk6HU;J!62hKC|*p|G_YanTa^xy_? z1%LVRPvG8e9;x;ae~(SZHNMZ|BUU8_jX1c)80e1nymp`>u`PbLz~5lps_$4;ilM#K z(WU()7|^}Qwz&$7O|ick{(z^z*QmaK8*@pFi=&g*@14gQ_at?z7MQkTcM-Tn8OM0) z)>l|0PLSaKcK851F`V6Wqrsyq?Vi!xntwh7TMFPOV!K1kzKF?4BB4hOJH4CmTGw<7=nAe(E+iVpS5Tk-*o13&dYoPHc-wLAiG! zJptNjU;R5KlM*xu?gA6v)1K8^RNCDtY}c;(wTKf+0z*c|5p(3+12Zz& Date: Wed, 6 Nov 2013 15:41:04 +0100 Subject: [PATCH 104/255] minor changes to italian translation minor changes to italian translation --- res/values-it/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index cab2d62daa..30b7c051d2 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -238,10 +238,10 @@ Cerca Ricerca vocale Passa alla app precedente - Killa app corrente + Chiusura forzata app corrente Vai in sleep - Durata per Kill app su pressione lunga - Si applica per il Kill della app corrente. Definisce quanto a lungo deve rimanere premuto il tasto per fare la kill + Durata per chiudura forzata app su pressione lunga + Si applica per la chiudura forzata dell\'app corrente. Definisce quanto a lungo deve rimanere premuto il tasto per fare la chiusura forzata Velocità doppio-tap Si applica per il doppio-tap del tasto MENU. Definisce quanto velocemente deve avvenire il secondo tap %s terminata @@ -660,7 +660,7 @@ Espandi automaticamente - Tatso Menu + Tasto Menu Tasto Home Tasto Indietro Tasto Recenti @@ -702,7 +702,7 @@ Colore sfondo Colore primo piano Colore sottolineatura - Key selected color + Colore tasto selezionato Colore testo Reset colori From 670b0504d39a2ba921d1cbd763c3700e347757fe Mon Sep 17 00:00:00 2001 From: C3C0 Date: Thu, 7 Nov 2013 07:42:27 +0100 Subject: [PATCH 105/255] ModBatteryStyle: improved detection of existing battery percent text --- .../ceco/gm2/gravitybox/ModBatteryStyle.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java b/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java index b06eb50264..99b832d9e9 100644 --- a/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java +++ b/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java @@ -85,7 +85,9 @@ public void onReceive(Context context, Intent intent) { public static void initResources(XSharedPreferences prefs, InitPackageResourcesParam resparam) { try { - String layout = Utils.hasGeminiSupport() ? "gemini_super_status_bar" : "super_status_bar"; + final String layout = Utils.hasGeminiSupport() ? "gemini_super_status_bar" : "super_status_bar"; + final String[] batteryPercentTextIds = new String[] { "percentage", "battery_text" }; + resparam.res.hookLayout(PACKAGE_NAME, "layout", layout, new XC_LayoutInflated() { @Override @@ -95,8 +97,18 @@ public void handleLayoutInflated(LayoutInflatedParam liparam) throws Throwable { liparam.res.getIdentifier("signal_battery_cluster", "id", PACKAGE_NAME)); // inject percent text if it doesn't exist - mPercentText = (TextView) vg.findViewById(liparam.res.getIdentifier( - "percentage", "id", PACKAGE_NAME)); + for (String bptId : batteryPercentTextIds) { + final int bptResId = liparam.res.getIdentifier( + bptId, "id", PACKAGE_NAME); + if (bptResId != 0) { + mPercentText = (TextView) vg.findViewById(bptResId); + if (mPercentText != null) { + mPercentText.setTag("percentage"); + if (DEBUG) log("Battery percent text found as: " + bptId); + break; + } + } + } if (mPercentText == null) { mPercentText = new TextView(vg.getContext()); mPercentText.setTag("percentage"); @@ -110,8 +122,6 @@ public void handleLayoutInflated(LayoutInflatedParam liparam) throws Throwable { mPercentText.setVisibility(View.GONE); vg.addView(mPercentText); if (DEBUG) log("Battery percent text injected"); - } else { - mPercentText.setTag("percentage"); } ModStatusbarColor.setPercentage(mPercentText); From 7f0c786ab219f25fb6280b1d6d2cbbcdfbcdb16b Mon Sep 17 00:00:00 2001 From: C3C0 Date: Thu, 7 Nov 2013 07:45:47 +0100 Subject: [PATCH 106/255] ModBatteryStyle: increased Circle Battery left margin a bit --- src/com/ceco/gm2/gravitybox/ModBatteryStyle.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java b/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java index 99b832d9e9..7704d4262f 100644 --- a/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java +++ b/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java @@ -115,7 +115,7 @@ public void handleLayoutInflated(LayoutInflatedParam liparam) throws Throwable { LinearLayout.LayoutParams lParams = new LinearLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); mPercentText.setLayoutParams(lParams); - mPercentText.setPadding(4, 0, 0, 0); + mPercentText.setPadding(6, 0, 0, 0); mPercentText.setTextSize(1, 16); mPercentText.setTextColor(vg.getContext().getResources().getColor( android.R.color.holo_blue_dark)); From 3cd29ddde75f61b8c2a02b8aeb8dbd5db96be917 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Thu, 7 Nov 2013 07:49:10 +0100 Subject: [PATCH 107/255] ModBatteryStyle: make sure found view is actually a TextView --- src/com/ceco/gm2/gravitybox/ModBatteryStyle.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java b/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java index 7704d4262f..3ce635c09e 100644 --- a/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java +++ b/src/com/ceco/gm2/gravitybox/ModBatteryStyle.java @@ -101,8 +101,9 @@ public void handleLayoutInflated(LayoutInflatedParam liparam) throws Throwable { final int bptResId = liparam.res.getIdentifier( bptId, "id", PACKAGE_NAME); if (bptResId != 0) { - mPercentText = (TextView) vg.findViewById(bptResId); - if (mPercentText != null) { + View v = vg.findViewById(bptResId); + if (v != null && v instanceof TextView) { + mPercentText = (TextView) v; mPercentText.setTag("percentage"); if (DEBUG) log("Battery percent text found as: " + bptId); break; From a1686115222540dadf17450471851ce734ed0a3e Mon Sep 17 00:00:00 2001 From: C3C0 Date: Thu, 7 Nov 2013 08:15:23 +0100 Subject: [PATCH 108/255] Pie: be less strict regarding swiping direction --- src/com/ceco/gm2/gravitybox/pie/PieController.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/pie/PieController.java b/src/com/ceco/gm2/gravitybox/pie/PieController.java index fdf6bf0539..a0cc1c8acd 100644 --- a/src/com/ceco/gm2/gravitybox/pie/PieController.java +++ b/src/com/ceco/gm2/gravitybox/pie/PieController.java @@ -195,7 +195,7 @@ public boolean move(MotionEvent event) { if (x < gracePeriod) { initialY = y; } - if (initialY - y < sDistance && y - initialY < sDistance) { + if (initialY - y < (sDistance*3) && y - initialY < (sDistance*3)) { if (x - initialX <= sDistance) { return false; } @@ -203,7 +203,7 @@ public boolean move(MotionEvent event) { } break; case BOTTOM: - if (initialX - x < sDistance && x - initialX < sDistance) { + if (initialX - x < (sDistance*3) && x - initialX < (sDistance*3)) { if (initialY - y <= sDistance) { return false; } @@ -211,7 +211,7 @@ public boolean move(MotionEvent event) { } break; case TOP: - if (initialX - x < sDistance && x - initialX < sDistance) { + if (initialX - x < (sDistance*3) && x - initialX < (sDistance*3)) { if (y - initialY <= sDistance) { return false; } @@ -222,7 +222,7 @@ public boolean move(MotionEvent event) { if (x > gracePeriod) { initialY = y; } - if (initialY - y < sDistance && y - initialY < sDistance) { + if (initialY - y < (sDistance*3) && y - initialY < (sDistance*3)) { if (initialX - x <= sDistance) { return false; } From 1972b278cc2a82778aee7fed5c98c71e087c65cf Mon Sep 17 00:00:00 2001 From: C3C0 Date: Thu, 7 Nov 2013 09:34:13 +0100 Subject: [PATCH 109/255] Enable color value editor for all color pickers by default --- src/net/margaritov/preference/colorpicker/ColorPickerDialog.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/net/margaritov/preference/colorpicker/ColorPickerDialog.java b/src/net/margaritov/preference/colorpicker/ColorPickerDialog.java index d7eecb4209..1d834bea93 100644 --- a/src/net/margaritov/preference/colorpicker/ColorPickerDialog.java +++ b/src/net/margaritov/preference/colorpicker/ColorPickerDialog.java @@ -107,6 +107,7 @@ public void afterTextChanged(Editable s) { } } }); + setHexValueEnabled(true); ((LinearLayout) mOldColor.getParent()).setPadding( Math.round(mColorPicker.getDrawingOffset()), From 9b03a4556be6445b972f807024b356d1edb81f08 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Thu, 7 Nov 2013 11:28:05 +0100 Subject: [PATCH 110/255] SeekBarPreference: added up/down buttons for fine-tuning --- res/drawable-hdpi/arrow_down.png | Bin 0 -> 1292 bytes res/drawable-hdpi/arrow_up.png | Bin 0 -> 1300 bytes res/drawable-xhdpi/arrow_down.png | Bin 0 -> 1351 bytes res/drawable-xhdpi/arrow_up.png | Bin 0 -> 1384 bytes res/layout/slider_preference.xml | 21 +++++++++++++++++- .../preference/SeekBarPreference.java | 19 +++++++++++++++- 6 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 res/drawable-hdpi/arrow_down.png create mode 100644 res/drawable-hdpi/arrow_up.png create mode 100644 res/drawable-xhdpi/arrow_down.png create mode 100644 res/drawable-xhdpi/arrow_up.png diff --git a/res/drawable-hdpi/arrow_down.png b/res/drawable-hdpi/arrow_down.png new file mode 100644 index 0000000000000000000000000000000000000000..915515160a293127a00dca679ce54d9f8e204a79 GIT binary patch literal 1292 zcmV+n1@roeP)sZ~Y9Uw1&3Po*_PrA>`b>bfMX1aBv7l)S%LozEx<^<8rA8o~}S z>SJRNMNiAb&!z)AYf&oJ6B5NQgkSF?VutTq+?Kzup(Vf*kx?D@D12_4}1i4;{8 zfl=T`6_3?#bqvC;FMxUH2+lB@t_Z{;*99&%HdUY#TAj+ERJ(?2yeF$2g}vNU%#U$F zF8zGOv2a+;WI=5NcN;m_$H~(!!Ig!$BY439&iNFYNG$c(-E{vY<=~~(N(@XlX4b*k z`k5427TURC5hXM>m#e6!d%iCHKevDAau71DhHlh}E&a`v=*v!!L{%Ta5}zMoOB@t2 zceXL-neVdelHjBLm1<6S+<2klg_jD!^QHBtD|5WMzI zxf;5jP!=PzFn~r5xA52j?&ZBik{H=Af&JkK@^i^V!e)W1z~Tk^-7xXi*~|E%GX!VS zZ7xKv?UYEr{8+qrZGdG(BiL6rk^(uasf~>vMx=GeD*2VHo)YX!2|qkDAY{AhCW20iMwnQ>&Z~Tg%u>{!K(#ue+~Y5 zqhAT--6Y2dn`c_q!z*O7j!xQ86ZaB?AEUf->Uom=0@q=hfw30vE#~m|H;%ue^g~p1 zVt+p|v{5;kF^{QIAH_o3LJ^B#DH%6V_`~c?(Y45Z|GCl8{Uxq_uM8YXjiI-76HZN! z%JWgVeF3nVMpbgUhWiUS4(MV#A_jUXHmY=TNf z&|5CS1w~kY^p@-WNKHfr)(A9Rh>(;lSZv=g8{Xr9JW)yAL|RnfIzyi0QO&QK!cxs+BtS7f5m(a~5k4IvQ@3B)nIiIPM2a1Sx4HHS zMnMQ*k`5#c)br4gqx`UheB(rFh@C@k*UQSvHJLVsq@YmYMRs4O1={k6F5ug(IJ$N{ zjlpz5$-VKE3!z+juo`F+A&cdWd$ocp@g{>ih^mv^a;vA(Hzs&F|2t_PdBWWN$BJ&m`K^^m z)q#I!Om@nr6xH2^pp<%jc#7RhuD+K~u~rh3*9bu#M-HC>z6ZHz4d)hftc}q;Myj;x zV)hHaA7ON&XJa^#j868EnL~MoemBfTB`CE$Siuh)_^hSyn@Dx3O$c1Cnp7kv`tlAO zV?V@;&vzfzs6S@oHTGb+=|zP&c$89C>DxAv6*-B;a!+b=?iA^MMyk(~z>gg@xG>l0 zmsFm$Y~yMyECBAI-Rp?-7=dr$jG?_LlDuB=?csZj^lQ=xPraifHh!IbAZ3gqThjp) z@EW(2gDT2cPrTb)8IBt@nH3y9O!>FF4oe2X8Q|cc=!qW(PxtY0000< KMNUMnLSTYWN_1TS literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/arrow_down.png b/res/drawable-xhdpi/arrow_down.png new file mode 100644 index 0000000000000000000000000000000000000000..1f6fd44000f45d44e95a71a52f98a26aa292a508 GIT binary patch literal 1351 zcmV-N1-SZ&P)(i?Ge_>EEwjXx7O3k9_&bf&jF4IBkpfSS;IKLq&*$ePpe{NUeikm=?uunGS* zm_FjO*8x|}xqm%Cf1o=)0sND+sx-NNEV~iPTm0TFCm+8_8J}*MGtl?I3K-@d+9S|h z5sdQVLAh5q153nb5ZdcQR~rqo4R~1{7>m63to82I-GTyUtMR!8xC_v`*nfmMA76<+ zS2`q5n4}6FvY;<&K@3M3O~TD|TiQ8-J};oY6?n|t=HZ-!&AIq8^f~J1i}Oijo+gp% zD?!#vqIPNM5#Uqw`RZZXDM|5;Q!YoXl+qMBMmc#@;o}qFfVqHTCC@D$oO2lJ-vM8+ zft&t0paBiPgU(UsqCHkojAa_?zkyx=7z3Kg_`11sjVT@j#TInB1G*teMZHlc%I6Bv zd(1^d@?b=33`6K5kd4-v6EW%x0Zsu+5E!mf3uy;#5cwF2x0}nc80{!rjp)bd^Ns1l zmv7O?F!_qPlb$Q%YM%m5DhXZ~H$zaLkNRcMGr&YK9R~ajyo$L;f$s3*x~MRWv8aCu zvfNy{;TOpT?F3eti{qOBhSQt+pA|z&{k{&7E^#~6cHUMRI1kmY<4g-J06j7FK;oUSQAg^WXWpW zK&|r}@Uyubseu-cVoaD)+z%|s3p8D17QmFG**eqGd|(iUN-5WX9{@fq9Satl-(THr zi=;lfoG$?01V)QTQ(y$Y4&I@8X=j%DtN8yClchs>-DVc?{UTSVCongE$y}CsM~cXK z%Sh`()c&WrZSfQ4IUCL$6Yxopxxiv`sdlX_ct4nz>#dQ1cO~FKU?1jc>ZyWzola@e zTwujfayKetiiB^`V#94gSF6)Mz6LW$&e52m5~4*4^B&~iiOBPeyl5wQUk=vO>x8%H z95N}mpp7wsfn_%Ej5%*;v(6_S3+kbp*2;?KWkqKACjtf2%I(Dl%|1z-9pbLkx7m&$;(j)!FLQ zsdFoY2Cd)^_phqxc@NmpcU|E`|6a0=-@v_e%t!`r2R}EG(70uF*bI&WU5Kkx2hi~q z^d!*hANjTb@+_D=c^&fTScEJBkAXq31(hzazONz2g2TaL@GgDBA({MV!eqkcW1u?^ zynRjEUq?;#SFm-Y)|g_QiBCf|fnUI8-d8k~%pe8bK5zs$%O;-&)`MLVmPW54=XB_& zU;qr!IY(jUQDjW3@6avwX&Sgt9Xr5-c^t*~M?hH*Q(EzKtMmRJt&nH1Ox6B?F66Zj zD82jx?&JH1-al#Ki6G^QH^3R79Aa!928O_LL&e?|%-uk_=N9JwpuP87{0(#~xD5Oq;@+PJw$ZmS#Ivd?FEnHEQW$A3t^&t^y&>*|`!o{?tCoo0wF0w(rCpQ&L$AAPf+3vFz-%{?Fd3eO**Ua(b{u3$l*-S+`UQ9| z#ItVHDPe+N(RQ@9?P^=SVw&9fHV1MIxD}iNriOTo>8?S>$uOO{I$iWr`+bOcdo6r6 zWgIcmu58zm(QaU>2;Yu|=x5=M5YOS6X2@PM(2IqV89&YXR7ebmvC2r#`eD>%i+&nE z1FwN~$ST*9-*%(3VQNAz3h`LiO7_~Sm5pb?-ixNZR#HXIx)3X@jaG5V85f5b33I{m zA>PmpCiC4{-NyHKuo|p{$A)@3<}%u^crszCdzJa7+-y^(oG3P8yh^shDl#05)p1Lg>itYOpDw~hWfR7`&C zI*l_Lrn+KSVG{;zlJ7D1>QsX~xdyym!>eseHcdD}r-1Uu<=|vnn0;X^`ds%evr~5I z%4DSzxqy#;#-q$L$L@{$RGOBX}P~S0%XBNy62Mas#+F#NUnS qHJPOq)1lsE$Dw^y+-aSbyZs9iMQA>3>Pw0M0000 + android:paddingRight="2dp"> + + + + + \ No newline at end of file diff --git a/src/com/ceco/gm2/gravitybox/preference/SeekBarPreference.java b/src/com/ceco/gm2/gravitybox/preference/SeekBarPreference.java index ab1e0e9933..aac9c24f9e 100644 --- a/src/com/ceco/gm2/gravitybox/preference/SeekBarPreference.java +++ b/src/com/ceco/gm2/gravitybox/preference/SeekBarPreference.java @@ -23,11 +23,13 @@ import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; +import android.widget.ImageButton; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView; -public class SeekBarPreference extends Preference implements OnSeekBarChangeListener { +public class SeekBarPreference extends Preference + implements OnSeekBarChangeListener, View.OnClickListener { private int mMinimum = 0; private int mMaximum = 100; @@ -38,6 +40,8 @@ public class SeekBarPreference extends Preference implements OnSeekBarChangeList private TextView mMonitorBox; private SeekBar mBar; + private ImageButton mBtnPlus; + private ImageButton mBtnMinus; private int mValue; private boolean mTracking = false; @@ -66,6 +70,10 @@ protected View onCreateView(ViewGroup parent) { mBar.setMax(mMaximum - mMinimum); mBar.setOnSeekBarChangeListener(this); mBar.setProgress(mValue - mMinimum); + mBtnPlus = (ImageButton) layout.findViewById(R.id.btnPlus); + mBtnPlus.setOnClickListener(this); + mBtnMinus = (ImageButton) layout.findViewById(R.id.btnMinus); + mBtnMinus.setOnClickListener(this); setMonitorBoxText(); return layout; } @@ -128,4 +136,13 @@ public void onStopTrackingTouch(SeekBar seekBar) { mTracking = false; onProgressChanged(seekBar, seekBar.getProgress(), true); } + + @Override + public void onClick(View v) { + if (v == mBtnPlus && ((mValue+mInterval) <= mMaximum)) { + setValue(mValue+mInterval); + } else if (v == mBtnMinus && ((mValue-mInterval) >= mMinimum)) { + setValue(mValue-mInterval); + } + } } \ No newline at end of file From 18374cf28576b0ebd109583e8ae4c6ba9f52e933 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Thu, 7 Nov 2013 12:54:31 +0100 Subject: [PATCH 111/255] SeekBarPreference: don't change preference during rapid pressing on +/- --- .../preference/SeekBarPreference.java | 35 ++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/preference/SeekBarPreference.java b/src/com/ceco/gm2/gravitybox/preference/SeekBarPreference.java index aac9c24f9e..373656df3e 100644 --- a/src/com/ceco/gm2/gravitybox/preference/SeekBarPreference.java +++ b/src/com/ceco/gm2/gravitybox/preference/SeekBarPreference.java @@ -19,6 +19,7 @@ import android.content.Context; import android.content.res.TypedArray; +import android.os.Handler; import android.preference.Preference; import android.util.AttributeSet; import android.view.View; @@ -31,6 +32,8 @@ public class SeekBarPreference extends Preference implements OnSeekBarChangeListener, View.OnClickListener { + private static final int RAPID_PRESS_TIMEOUT = 600; + private int mMinimum = 0; private int mMaximum = 100; private int mInterval = 1; @@ -44,7 +47,18 @@ public class SeekBarPreference extends Preference private ImageButton mBtnMinus; private int mValue; + private int mTmpValue; private boolean mTracking = false; + private boolean mRapidlyPressing = false; + private Handler mHandler; + + private Runnable mRapidPressTimeout = new Runnable() { + @Override + public void run() { + mRapidlyPressing = false; + setValue(mTmpValue); + } + }; public SeekBarPreference(Context context, AttributeSet attrs) { super(context, attrs); @@ -57,6 +71,8 @@ public SeekBarPreference(Context context, AttributeSet attrs) { mMonitorBoxEnabled = attrs.getAttributeBooleanValue(null, "monitorBoxEnabled", false); mMonitorBoxUnit = attrs.getAttributeValue(null, "monitorBoxUnit"); } + + mHandler = new Handler(); } @Override @@ -139,10 +155,21 @@ public void onStopTrackingTouch(SeekBar seekBar) { @Override public void onClick(View v) { - if (v == mBtnPlus && ((mValue+mInterval) <= mMaximum)) { - setValue(mValue+mInterval); - } else if (v == mBtnMinus && ((mValue-mInterval) >= mMinimum)) { - setValue(mValue-mInterval); + if (mRapidlyPressing) { + mHandler.removeCallbacks(mRapidPressTimeout); + } else { + mRapidlyPressing = true; + mTmpValue = mValue; } + mHandler.postDelayed(mRapidPressTimeout, RAPID_PRESS_TIMEOUT); + + if (v == mBtnPlus && ((mTmpValue+mInterval) <= mMaximum)) { + mTmpValue += mInterval; + } else if (v == mBtnMinus && ((mTmpValue-mInterval) >= mMinimum)) { + mTmpValue -= mInterval; + } + + mBar.setProgress(mTmpValue - mMinimum); + setMonitorBoxText(mTmpValue); } } \ No newline at end of file From e065e926dfdb065469d949fa32d93e68c1c6287e Mon Sep 17 00:00:00 2001 From: Bruno Martins Date: Thu, 7 Nov 2013 23:39:50 +0000 Subject: [PATCH 112/255] PatchMasterKey: merge from MasterKeyDualFix (now multi-fix) - Add 2 missing signal checks in getInputStream - Use original RAFStream and ZipInflaterInputStream to prevent problems with libcore variations - Cumulative patches to catch up with android-4.4_r1, closing some additional MK exploits Thanks to Tungstwenty@XDA --- .../ceco/gm2/gravitybox/PatchMasterKey.java | 282 ++++++++++++------ 1 file changed, 196 insertions(+), 86 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/PatchMasterKey.java b/src/com/ceco/gm2/gravitybox/PatchMasterKey.java index 6009bea89a..6fbd31ca7e 100644 --- a/src/com/ceco/gm2/gravitybox/PatchMasterKey.java +++ b/src/com/ceco/gm2/gravitybox/PatchMasterKey.java @@ -17,15 +17,23 @@ package com.ceco.gm2.gravitybox; import static de.robv.android.xposed.XposedHelpers.findField; +import static de.robv.android.xposed.XposedHelpers.findClass; +import static de.robv.android.xposed.XposedHelpers.findConstructorExact; import java.io.BufferedInputStream; +import java.io.DataInputStream; import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; +import java.lang.reflect.Constructor; import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; import java.nio.ByteOrder; import java.nio.charset.Charset; +import java.util.Arrays; import java.util.Map; +import java.util.zip.Inflater; +import java.util.zip.InflaterInputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipException; import java.util.zip.ZipFile; @@ -38,12 +46,16 @@ import libcore.io.HeapBufferIterator; import libcore.io.Streams; +@SuppressWarnings("unchecked") + public class PatchMasterKey { private static final String TAG = "GB:PatchMasterKey"; private static final long CENSIG = 0x2014b50; private static final int GPBF_ENCRYPTED_FLAG = 1 << 0; private static final int GPBF_UNSUPPORTED_MASK = GPBF_ENCRYPTED_FLAG; + private static final long LOCSIG = 0x04034b50; + private static final long ENDSIG = 0x06054b50; private static final int ENDHDR = 22; private static final int CENHDR = 46; @@ -56,7 +68,13 @@ public class PatchMasterKey { private static Field fldLocalHeaderRelOffset; private static Field fldName; private static Field fldRaf; + private static Field fldComment; private static Field fldEntries; + private static Field fldOffset; + private static Field fldLength; + + private static Constructor newRAFStream; + private static Constructor newZipInflaterInputStream; static { fldCompressionMethod = findField(ZipEntry.class, "compressionMethod"); @@ -79,6 +97,28 @@ public class PatchMasterKey { } catch (Throwable t) { fldEntries = findField(ZipFile.class, "entries"); } + try { + fldComment = findField(ZipFile.class, "comment"); + } catch (Throwable t) { + // This implementation didn't yet store the comment + fldComment = null; + } + Class clsRAFStream = findClass("java.util.zip.ZipFile.RAFStream", ZipFile.class.getClassLoader()); + newRAFStream = (Constructor) findConstructorExact(clsRAFStream, RandomAccessFile.class, long.class); + try { + fldOffset = findField(clsRAFStream, "offset"); + } catch (Throwable t) { + fldOffset = findField(clsRAFStream, "mOffset"); + } + try { + fldLength = findField(clsRAFStream, "length"); + } catch (Throwable t) { + fldLength = findField(clsRAFStream, "mLength"); + } + Class clsZipInflaterInputStream = findClass("java.util.zip.ZipFile.ZipInflaterInputStream", + ZipFile.class.getClassLoader()); + newZipInflaterInputStream = (Constructor) findConstructorExact(clsZipInflaterInputStream, + InputStream.class, Inflater.class, int.class, ZipEntry.class); } private static void log(String message) { @@ -89,6 +129,18 @@ public static void initZygote() { try { log("Patching MasterKey vulnerabilities"); + XposedHelpers.findAndHookMethod(ZipFile.class, "getInputStream", ZipEntry.class, new XC_MethodHook() { + + @Override + protected void beforeHookedMethod(MethodHookParam param) throws Throwable { + try { + param.setResult(getInputStream((ZipFile) param.thisObject, (ZipEntry) param.args[0])); + } catch (Exception ex) { + param.setThrowable(ex); + } + } + }); + XposedHelpers.findAndHookMethod(ZipFile.class, "readCentralDir", new XC_MethodHook() { @Override @@ -106,21 +158,89 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable { } } + private static InputStream getInputStream(ZipFile zipFile, ZipEntry entry) throws IOException { + try { + // Make sure this ZipEntry is in this Zip file. We run it through the name lookup. + entry = zipFile.getEntry(entry.getName()); + if (entry == null) { + return null; + } + + RandomAccessFile raf = (RandomAccessFile) fldRaf.get(zipFile); + // Create an InputStream at the right part of the file. + RandomAccessFile localRaf = raf; + synchronized (localRaf) { + // We don't know the entry data's start position. All we have is the + // position of the entry's local header. + // http://www.pkware.com/documents/casestudies/APPNOTE.TXT + InputStream rafStream = newRAFStream.newInstance(localRaf, + fldLocalHeaderRelOffset.getLong(entry)); + DataInputStream is = new DataInputStream(rafStream); + + final int localMagic = Integer.reverseBytes(is.readInt()); + if (localMagic != LOCSIG) { + throwZipException("Local File Header", localMagic); + } + + is.skipBytes(2); + + // At position 6 we find the General Purpose Bit Flag. + int gpbf = Short.reverseBytes(is.readShort()) & 0xffff; + + if ((gpbf & GPBF_UNSUPPORTED_MASK) != 0) { + throw new ZipException("Invalid General Purpose Bit Flag: " + gpbf); + } + + // Offset 26 has the file name length, and offset 28 has the extra field length. + // These lengths can differ from the ones in the central header. + is.skipBytes(18); + int fileNameLength = Short.reverseBytes(is.readShort()) & 0xffff; + int extraFieldLength = Short.reverseBytes(is.readShort()) & 0xffff; + is.close(); + + // Skip the variable-size file name and extra field data. + rafStream.skip(fileNameLength + extraFieldLength); + + // The compressed or stored file data follows immediately after. + if (fldCompressionMethod.getInt(entry) == ZipEntry.STORED) { + fldLength.setLong(rafStream, fldOffset.getLong(rafStream) + entry.getSize()); + return rafStream; + } else { + fldLength.setLong(rafStream, fldOffset.getLong(rafStream) + entry.getCompressedSize()); + int bufSize = Math.max(1024, (int) Math.min(entry.getSize(), 65535L)); + return newZipInflaterInputStream.newInstance(rafStream, new Inflater(true), bufSize, entry); + } + } + } catch (InvocationTargetException e) { + Throwable cause = e.getCause(); + if (cause instanceof IOException) + throw (IOException) cause; + if (cause instanceof RuntimeException) + throw (RuntimeException) cause; + throw new Error(cause); + } catch (InstantiationException e) { + throw new Error(e); + } catch (IllegalAccessException e) { + throw new IllegalAccessError(e.getMessage()); + } + } + private static void readCentralDir(ZipFile zipFile) throws IOException { try { - /* - * Scan back, looking for the End Of Central Directory field. If - * the archive doesn't have a comment, we'll hit it on the first - * try. - * - * No need to synchronize mRaf here -- we only do this when we - * first open the Zip file. - */ - - RandomAccessFile mRaf = (RandomAccessFile) fldRaf.get(zipFile); - long scanOffset = mRaf.length() - ENDHDR; + // Scan back, looking for the End Of Central Directory field. If the zip file doesn't + // have an overall comment (unrelated to any per-entry comments), we'll hit the EOCD + // on the first try. + // No need to synchronize raf here -- we only do this when we first open the zip file. + RandomAccessFile raf = (RandomAccessFile) fldRaf.get(zipFile); + long scanOffset = raf.length() - ENDHDR; if (scanOffset < 0) { - throw new ZipException("File too short to be a zip file: " + mRaf.length()); + throw new ZipException("File too short to be a zip file: " + raf.length()); + } + + raf.seek(0); + final int headerMagic = Integer.reverseBytes(raf.readInt()); + if (headerMagic != LOCSIG) { + throw new ZipException("Not a zip archive"); } long stopOffset = scanOffset - 65536; @@ -128,23 +248,22 @@ private static void readCentralDir(ZipFile zipFile) throws IOException { stopOffset = 0; } - final int ENDHEADERMAGIC = 0x06054b50; while (true) { - mRaf.seek(scanOffset); - if (Integer.reverseBytes(mRaf.readInt()) == ENDHEADERMAGIC) { + raf.seek(scanOffset); + if (Integer.reverseBytes(raf.readInt()) == ENDSIG) { break; } scanOffset--; if (scanOffset < stopOffset) { - throw new ZipException("EOCD not found; not a Zip archive?"); + throw new ZipException("End Of Central Directory signature not found"); } } - // Read the End Of Central Directory. We could use ENDHDR instead of the magic number 18, - // but we don't actually need all the header. - byte[] eocd = new byte[18]; - mRaf.readFully(eocd); + // Read the End Of Central Directory. ENDHDR includes the signature bytes, + // which we've already read. + byte[] eocd = new byte[ENDHDR - 4]; + raf.readFully(eocd); // Pull out the information we need. BufferIterator it = HeapBufferIterator.iterator(eocd, 0, eocd.length, ByteOrder.LITTLE_ENDIAN); @@ -153,90 +272,69 @@ private static void readCentralDir(ZipFile zipFile) throws IOException { int numEntries = it.readShort() & 0xffff; int totalNumEntries = it.readShort() & 0xffff; it.skip(4); // Ignore centralDirSize. - int centralDirOffset = it.readInt(); + long centralDirOffset = ((long) it.readInt()) & 0xffffffffL; + int commentLength = it.readShort() & 0xffff; if (numEntries != totalNumEntries || diskNumber != 0 || diskWithCentralDir != 0) { throw new ZipException("spanned archives not supported"); } - + + if (commentLength > 0) { + byte[] commentBytes = new byte[commentLength]; + raf.readFully(commentBytes); + if (fldComment != null) + fldComment.set(zipFile, new String(commentBytes, 0, commentBytes.length, UTF_8)); + } + // Seek to the first CDE and read all entries. - RAFStream rafs = new RAFStream(mRaf, centralDirOffset); - BufferedInputStream bin = new BufferedInputStream(rafs, 4096); + // We have to do this now (from the constructor) rather than lazily because the + // public API doesn't allow us to throw IOException except from the constructor + // or from getInputStream. + InputStream rafStream = newRAFStream.newInstance(raf, centralDirOffset); + BufferedInputStream bufferedStream = new BufferedInputStream(rafStream, 4096); byte[] hdrBuf = new byte[CENHDR]; // Reuse the same buffer for each entry. - @SuppressWarnings("unchecked") Map mEntries = (Map) fldEntries.get(zipFile); for (int i = 0; i < numEntries; ++i) { - ZipEntry newEntry = loadFromStream(hdrBuf, bin); + ZipEntry newEntry = loadFromStream(hdrBuf, bufferedStream); + if (fldLocalHeaderRelOffset.getLong(newEntry) >= centralDirOffset) { + throw new ZipException("Local file header offset is after central directory"); + } String entryName = newEntry.getName(); if (mEntries.put(entryName, newEntry) != null) { throw new ZipException("Duplicate entry name: " + entryName); } } + } catch (InvocationTargetException e) { + Throwable cause = e.getCause(); + if (cause instanceof IOException) + throw (IOException) cause; + if (cause instanceof RuntimeException) + throw (RuntimeException) cause; + throw new Error(cause); + } catch (InstantiationException e) { + throw new Error(e); } catch (IllegalAccessException e) { throw new IllegalAccessError(e.getMessage()); } } - private static class RAFStream extends InputStream { - - RandomAccessFile mSharedRaf; - long mOffset; - long mLength; - - public RAFStream(RandomAccessFile raf, long pos) throws IOException { - mSharedRaf = raf; - mOffset = pos; - mLength = raf.length(); - } - - @Override - public int available() throws IOException { - return (mOffset < mLength ? 1 : 0); - } - - @Override - public int read() throws IOException { - return Streams.readSingleByte(this); - } - - @Override - public int read(byte[] b, int off, int len) throws IOException { - synchronized (mSharedRaf) { - mSharedRaf.seek(mOffset); - if (len > mLength - mOffset) { - len = (int) (mLength - mOffset); - } - int count = mSharedRaf.read(b, off, len); - if (count > 0) { - mOffset += count; - return count; - } else { - return -1; - } - } - } - - @Override - public long skip(long byteCount) throws IOException { - if (byteCount > mLength - mOffset) { - byteCount = mLength - mOffset; - } - mOffset += byteCount; - return byteCount; - } + private static void throwZipException(String msg, int magic) throws ZipException { + final String hexString = IntegralToString.intToHexString(magic, true, 8); + throw new ZipException(msg + " signature not found; was " + hexString); } - private static ZipEntry loadFromStream(byte[] hdrBuf, BufferedInputStream in) throws IOException { + private static ZipEntry loadFromStream(byte[] cdeHdrBuf, BufferedInputStream cdStream) throws IOException { try { ZipEntry result = new ZipEntry(""); - Streams.readFully(in, hdrBuf, 0, hdrBuf.length); + Streams.readFully(cdStream, cdeHdrBuf, 0, cdeHdrBuf.length); - BufferIterator it = HeapBufferIterator.iterator(hdrBuf, 0, hdrBuf.length, ByteOrder.LITTLE_ENDIAN); + BufferIterator it = HeapBufferIterator.iterator(cdeHdrBuf, 0, cdeHdrBuf.length, + ByteOrder.LITTLE_ENDIAN); int sig = it.readInt(); if (sig != CENSIG) { - throw new ZipException("Central Directory Entry not found"); + throwZipException("Central Directory Entry", sig); } it.seek(8); @@ -280,31 +378,43 @@ private static ZipEntry loadFromStream(byte[] hdrBuf, BufferedInputStream in) th fldLocalHeaderRelOffset.setLong(result, localHeaderRelOffset); byte[] nameBytes = new byte[nameLength]; - Streams.readFully(in, nameBytes, 0, nameBytes.length); + Streams.readFully(cdStream, nameBytes, 0, nameBytes.length); + if (containsNulByte(nameBytes)) { + throw new ZipException("Filename contains NUL byte: " + Arrays.toString(nameBytes)); + } String name; name = new String(nameBytes, 0, nameBytes.length, UTF_8); fldName.set(result, name); + if (extraLength > 0) { + byte[] extra; + extra = new byte[extraLength]; + Streams.readFully(cdStream, extra, 0, extraLength); + result.setExtra(extra); + } + // The RI has always assumed UTF-8. (If GPBF_UTF8_FLAG isn't set, the encoding is // actually IBM-437.) if (commentByteCount > 0) { byte[] commentBytes = new byte[commentByteCount]; - Streams.readFully(in, commentBytes, 0, commentByteCount); + Streams.readFully(cdStream, commentBytes, 0, commentByteCount); String comment; comment = new String(commentBytes, 0, commentBytes.length, UTF_8); result.setComment(comment); - } - if (extraLength > 0) { - byte[] extra; - extra = new byte[extraLength]; - Streams.readFully(in, extra, 0, extraLength); - result.setExtra(extra); - } return result; } catch (IllegalAccessException e) { throw new IllegalAccessError(e.getMessage()); } } + + private static boolean containsNulByte(byte[] bytes) { + for (byte b : bytes) { + if (b == 0) { + return true; + } + } + return false; + } } \ No newline at end of file From 78d24617b72f3321f39bfecb5c12cd8ad55870c1 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Fri, 8 Nov 2013 14:40:36 +0100 Subject: [PATCH 113/255] Improved transparency management - Wallpaper now correctly scales behind navbar when it has transparency set. Works for majority of launchers, including Google Experience Launcher (KitKat) - Standard background color replaced with BackgroundAlphaColorDrawable allowing Transparency manager to use transition animations for Statusbar/Navbar background color --- .../BackgroundAlphaColorDrawable.java | 3 - .../ceco/gm2/gravitybox/ModNavigationBar.java | 13 + .../gm2/gravitybox/ModStatusbarColor.java | 225 +++++++++++++++++- 3 files changed, 225 insertions(+), 16 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/BackgroundAlphaColorDrawable.java b/src/com/ceco/gm2/gravitybox/BackgroundAlphaColorDrawable.java index 1d41eb090b..08a313f2f9 100644 --- a/src/com/ceco/gm2/gravitybox/BackgroundAlphaColorDrawable.java +++ b/src/com/ceco/gm2/gravitybox/BackgroundAlphaColorDrawable.java @@ -34,9 +34,6 @@ public BackgroundAlphaColorDrawable(int bgColor) { } public void setBgColor(int color) { - if (color < 0) { - color = Color.BLACK; - } mBgColor = color; updateColor(); } diff --git a/src/com/ceco/gm2/gravitybox/ModNavigationBar.java b/src/com/ceco/gm2/gravitybox/ModNavigationBar.java index c24d566f7d..1abe7ce662 100644 --- a/src/com/ceco/gm2/gravitybox/ModNavigationBar.java +++ b/src/com/ceco/gm2/gravitybox/ModNavigationBar.java @@ -20,6 +20,9 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.res.Resources; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; import android.util.TypedValue; import android.view.KeyEvent; import android.view.View; @@ -245,6 +248,16 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { setAppKeyVisibility(mAppLauncherEnabled); updateRecentsKeyCode(); updateHomeKeyLongpressSupport(); + + // Set background + final View thisView = (View) param.thisObject; + final Drawable bg = thisView.getBackground(); + int color = Color.BLACK; + if (bg != null && (bg instanceof ColorDrawable)) { + color = ((ColorDrawable) bg).getColor(); + } + BackgroundAlphaColorDrawable newBg = new BackgroundAlphaColorDrawable(color); + thisView.setBackground(newBg); } }); diff --git a/src/com/ceco/gm2/gravitybox/ModStatusbarColor.java b/src/com/ceco/gm2/gravitybox/ModStatusbarColor.java index 69e5fdf9df..f83422466a 100644 --- a/src/com/ceco/gm2/gravitybox/ModStatusbarColor.java +++ b/src/com/ceco/gm2/gravitybox/ModStatusbarColor.java @@ -27,7 +27,6 @@ import android.graphics.Color; import android.graphics.PixelFormat; import android.graphics.Rect; -import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.BatteryManager; import android.os.Build; @@ -38,6 +37,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import de.robv.android.xposed.XC_MethodHook; +import de.robv.android.xposed.XC_MethodHook.Unhook; import de.robv.android.xposed.XC_MethodReplacement; import de.robv.android.xposed.XSharedPreferences; import de.robv.android.xposed.XposedBridge; @@ -55,6 +55,9 @@ public class ModStatusbarColor { "com.android.systemui.statusbar.SignalClusterView"; private static final String CLASS_BATTERY_CONTROLLER = "com.android.systemui.statusbar.policy.BatteryController"; private static final String CLASS_NOTIF_PANEL_VIEW = "com.android.systemui.statusbar.phone.NotificationPanelView"; + private static final String CLASS_POLICY_WINDOW_STATE = "android.view.WindowManagerPolicy$WindowState"; + private static final String CLASS_WINDOW_STATE = "com.android.server.wm.WindowState"; + private static final String CLASS_WINDOW_MANAGER_SERVICE = "com.android.server.wm.WindowManagerService"; private static final boolean DEBUG = false; public static final String ACTION_PHONE_STATUSBAR_VIEW_MADE = "gravitybox.intent.action.PHONE_STATUSBAR_VIEW_MADE"; @@ -79,6 +82,8 @@ public class ModStatusbarColor { private static Context mContextPwm; private static int[] mTransparencyValuesPwm = new int[4]; private static List mBroadcastSubReceivers; + private static Unhook mDisplayContentHook; + private static Object mPhoneWindowManager; static { mIconManager = new StatusBarIconManager(XModuleResources.createInstance(GravityBox.MODULE_PATH, null)); @@ -208,9 +213,12 @@ public void onReceive(Context context, Intent intent) { } }; + // in Zygote hooks public static void initZygote(final XSharedPreferences prefs) { try { final Class phoneWindowManagerClass = XposedHelpers.findClass(CLASS_PHONE_WINDOW_MANAGER, null); + final Class windowStateClass = XposedHelpers.findClass(CLASS_WINDOW_STATE, null); + final Class windowManagerServiceClass = XposedHelpers.findClass(CLASS_WINDOW_MANAGER_SERVICE, null); if (DEBUG) log("replacing getSystemDecorRectLw method"); XposedHelpers.findAndHookMethod(phoneWindowManagerClass, @@ -224,18 +232,14 @@ protected Object replaceHookedMethod(MethodHookParam param) throws Throwable { mTransparencyValuesPwm[1] = prefs.getInt(GravityBoxSettings.PREF_KEY_TM_STATUSBAR_LOCKSCREEN, 0); mTransparencyValuesPwm[2] = prefs.getInt(GravityBoxSettings.PREF_KEY_TM_NAVBAR_LAUNCHER, 0); mTransparencyValuesPwm[3] = prefs.getInt(GravityBoxSettings.PREF_KEY_TM_NAVBAR_LOCKSCREEN, 0); + mPhoneWindowManager = param.thisObject; mContextPwm = (Context) XposedHelpers.getObjectField(param.thisObject, "mContext"); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(GravityBoxSettings.ACTION_PREF_STATUSBAR_COLOR_CHANGED); mContextPwm.registerReceiver(mBroadcastReceiverPwm, intentFilter); } - boolean override = false; - for (int i = 0; i < 4; i++) { - override |= mTransparencyValuesPwm[i] != 0; - } - - if (!override) { + if (!isTransparencyEnabled()) { if (DEBUG) log("getSystemDecorRectLw: calling original method"); return XposedBridge.invokeOriginalMethod(param.method, param.thisObject, param.args); } else { @@ -249,11 +253,202 @@ protected Object replaceHookedMethod(MethodHookParam param) throws Throwable { } } }); + + XposedHelpers.findAndHookMethod(phoneWindowManagerClass, "layoutWindowLw", + CLASS_POLICY_WINDOW_STATE, WindowManager.LayoutParams.class, + CLASS_POLICY_WINDOW_STATE, new XC_MethodHook() { + @Override + protected void afterHookedMethod(final MethodHookParam param) throws Throwable { + final boolean isDefaultDisplay = Build.VERSION.SDK_INT > 16 ? + (Boolean) XposedHelpers.callMethod(param.args[0], "isDefaultDisplay") : true; + if (!isNavbarTransparencyEnabled() || !isDefaultDisplay) return; + + final WindowManager.LayoutParams attrs = (WindowManager.LayoutParams) param.args[1]; + final int fl = attrs.flags; + final int sysUiFl = (Integer) XposedHelpers.callMethod(param.args[0], "getSystemUiVisibility"); + final Rect pf = (Rect) XposedHelpers.getObjectField(param.thisObject, "mTmpParentFrame"); + final Rect df = (Rect) XposedHelpers.getObjectField(param.thisObject, "mTmpDisplayFrame"); + final Rect cf = (Rect) XposedHelpers.getObjectField(param.thisObject, "mTmpContentFrame"); + final Rect vf = (Rect) XposedHelpers.getObjectField(param.thisObject, "mTmpVisibleFrame"); + final Rect of = Build.VERSION.SDK_INT > 17 ? + (Rect) XposedHelpers.getObjectField(param.thisObject, "mTmpOverscanFrame") : null; + + if ((fl & WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN) != 0 || (sysUiFl + & (View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION)) != 0) { + if (attrs.type == WindowManager.LayoutParams.TYPE_WALLPAPER) { + pf.left = df.left = cf.left = Build.VERSION.SDK_INT > 17 ? + XposedHelpers.getIntField(param.thisObject, "mOverscanScreenLeft") : + XposedHelpers.getIntField(param.thisObject, "mUnrestrictedScreenLeft"); + pf.right = df.right = cf.right = pf.left + Build.VERSION.SDK_INT > 17 ? + XposedHelpers.getIntField(param.thisObject, "mOverscanScreenWidth") : + XposedHelpers.getIntField(param.thisObject, "mUnrestrictedScreenWidth"); + pf.top = df.top = cf.top = Build.VERSION.SDK_INT > 17 ? + XposedHelpers.getIntField(param.thisObject, "mOverscanScreenTop") : + XposedHelpers.getIntField(param.thisObject, "mUnrestrictedScreenTop"); + pf.bottom = df.bottom = cf.bottom = pf.top + Build.VERSION.SDK_INT > 17 ? + XposedHelpers.getIntField(param.thisObject, "mOverscanScreenHeight") : + XposedHelpers.getIntField(param.thisObject, "mUnrestrictedScreenHeight"); + if (Build.VERSION.SDK_INT > 17) { + of.set(pf); + } + XposedHelpers.callMethod(param.thisObject, "applyStableConstraints", + sysUiFl, fl, cf); + vf.set(cf); + if (Build.VERSION.SDK_INT > 17) { + XposedHelpers.callMethod(param.args[0], "computeFrameLw", pf, df, of, cf, vf); + } else { + XposedHelpers.callMethod(param.args[0], "computeFrameLw", pf, df, cf, vf); + } + if (DEBUG) log("layoutWindowLw recomputing frame"); + } + } + } + }); + + if (Build.VERSION.SDK_INT > 17) { + XposedHelpers.findAndHookMethod(windowStateClass, "computeFrameLw", + Rect.class, Rect.class, Rect.class, Rect.class, Rect.class, windowStateComputeFrameLw); + } else { + XposedHelpers.findAndHookMethod(windowStateClass, "computeFrameLw", + Rect.class, Rect.class, Rect.class, Rect.class, windowStateComputeFrameLw); + } + + XposedHelpers.findAndHookMethod(windowManagerServiceClass, "adjustWallpaperWindowsLocked", + adjustWallpaperHook); + + XposedHelpers.findAndHookMethod(windowManagerServiceClass, "updateWallpaperOffsetLocked", + CLASS_WINDOW_STATE, boolean.class, adjustWallpaperHook); + } catch (Throwable t) { XposedBridge.log(t); } } + private static XC_MethodHook windowStateComputeFrameLw = new XC_MethodHook() { + @Override + protected void afterHookedMethod(final MethodHookParam param) throws Throwable { + if (isNavbarTransparencyEnabled() && + XposedHelpers.getBooleanField(param.thisObject, "mIsWallpaper")) { + try { + final int width = getWallpaperWidth(); + final int height = getWallpaperHeight(); + if (width > 0 && height > 0) { + XposedHelpers.callMethod( + XposedHelpers.getObjectField(param.thisObject, "mService"), + "updateWallpaperOffsetLocked", + param.thisObject, width, height, false); + if (DEBUG) log("updateWallpaperOffsetLocked: width=" + width + + "; height=" + height); + } + } catch (Throwable t) { + XposedBridge.log(t); + } + } + } + }; + + private static XC_MethodHook adjustWallpaperHook = new XC_MethodHook() { + @Override + protected void beforeHookedMethod(final MethodHookParam param) throws Throwable { + if (!isNavbarTransparencyEnabled()) return; + + try { + if (Build.VERSION.SDK_INT > 16) { + final Class displayContentClass = + XposedHelpers.findClass("com.android.server.wm.DisplayContent", null); + if (DEBUG) log ("adjustWallpaperWindowsLocked: hooking getDisplayInfo"); + mDisplayContentHook = XposedHelpers.findAndHookMethod(displayContentClass, "getDisplayInfo", + new XC_MethodHook() { + @Override + protected void beforeHookedMethod(final MethodHookParam param2) throws Throwable { + Object di = XposedHelpers.getObjectField(param2.thisObject, "mDisplayInfo"); + final int width = getWallpaperWidth(); + final int height = getWallpaperHeight(); + if (width > 0 && height > 0) { + XposedHelpers.setIntField(di, "appWidth", width); + XposedHelpers.setIntField(di, "appHeight", height); + param.setResult(di); + if (DEBUG) log("adjustWallpaperWindowsLocked: getDisplayInfo appWidth=" + width + + "; appHeight=" + height); + } + } + }); + } else { + final int width = getWallpaperWidth(); + final int height = getWallpaperHeight(); + if (width > 0 && height > 0) { + int appWidth = XposedHelpers.getIntField(param.thisObject, "mAppDisplayWidth"); + int appHeight = XposedHelpers.getIntField(param.thisObject, "mAppDisplayHeight"); + XposedHelpers.setAdditionalInstanceField(param.thisObject, "mAppDisplayWidthOrig", appWidth); + XposedHelpers.setAdditionalInstanceField(param.thisObject, "mAppDisplayHeightOrig", appHeight); + XposedHelpers.setIntField(param.thisObject, "mAppDisplayWidth", width); + XposedHelpers.setIntField(param.thisObject, "mAppDisplayHeight", height); + } + } + } catch (Throwable t) { + XposedBridge.log(t); + } + } + @Override + protected void afterHookedMethod(final MethodHookParam param) throws Throwable { + if (!isNavbarTransparencyEnabled()) return; + + try { + if (Build.VERSION.SDK_INT > 16) { + if (mDisplayContentHook != null) { + mDisplayContentHook.unhook(); + mDisplayContentHook = null; + if (DEBUG) log ("adjustWallpaperWindowsLocked: unhooking getDisplayInfo"); + } + } else { + Integer appWidth = (Integer) XposedHelpers.getAdditionalInstanceField( + param.thisObject, "mAppDisplayWidthOrig"); + Integer appHeight = (Integer) XposedHelpers.getAdditionalInstanceField( + param.thisObject, "mAppDisplayHeightOrig"); + if (appWidth != null && appHeight != null) { + XposedHelpers.setIntField(param.thisObject, "mAppDisplayWidth", (int)appWidth); + XposedHelpers.setIntField(param.thisObject, "mAppDisplayHeight", (int)appHeight); + } + } + } catch (Throwable t) { + XposedBridge.log(t); + } + } + }; + + private static boolean isTransparencyEnabled() { + boolean enabled = false; + for (int i = 0; i < 4; i++) { + enabled |= mTransparencyValuesPwm[i] != 0; + } + return enabled; + } + + private static boolean isNavbarTransparencyEnabled() { + return (mTransparencyValuesPwm[2] != 0 || + mTransparencyValuesPwm[3] != 0); + } + + private static int getWallpaperWidth() { + if (mPhoneWindowManager != null) { + final int left = XposedHelpers.getIntField(mPhoneWindowManager, "mUnrestrictedScreenLeft"); + final int width = XposedHelpers.getIntField(mPhoneWindowManager, "mUnrestrictedScreenWidth"); + return left + (left + width); + } + return 0; + } + + private static int getWallpaperHeight() { + if (mPhoneWindowManager != null) { + final int top = XposedHelpers.getIntField(mPhoneWindowManager, "mUnrestrictedScreenTop"); + final int height = XposedHelpers.getIntField(mPhoneWindowManager, "mUnrestrictedScreenHeight"); + return top + (top + height); + } + return 0; + } + + // in process hooks public static void init(final XSharedPreferences prefs, final ClassLoader classLoader) { try { final Class phoneStatusbarViewClass = XposedHelpers.findClass(CLASS_PHONE_STATUSBAR_VIEW, classLoader); @@ -605,12 +800,16 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { } private static void setStatusbarBgColor(int color) { - if (mPanelBar == null) return; - - ColorDrawable colorDrawable = new ColorDrawable(); - colorDrawable.setColor(color); - mPanelBar.setBackground(colorDrawable); - if (DEBUG) log("statusbar background color set to: " + color); + if (mPanelBar != null) { + if (!(mPanelBar.getBackground() instanceof BackgroundAlphaColorDrawable)) { + BackgroundAlphaColorDrawable colorDrawable = new BackgroundAlphaColorDrawable(color); + mPanelBar.setBackground(colorDrawable); + if (DEBUG) log("statusbar view backround replaced with BackgroundAlphaColorDrawable"); + } else { + ((BackgroundAlphaColorDrawable) mPanelBar.getBackground()).setBgColor(color); + if (DEBUG) log("statusbar background color set to: " + color); + } + } } private static void applyIconColors() { From 0540132fec229c101a5c42df4ab87319752552d1 Mon Sep 17 00:00:00 2001 From: Bruno Martins Date: Fri, 8 Nov 2013 18:00:17 +0000 Subject: [PATCH 114/255] Updated Portuguese (PT and BR) translations --- res/values-pt-rPT/strings.xml | 4 ++-- res/values-pt/strings.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index 53a46d1216..3f8b7baa96 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -630,8 +630,8 @@ Desativado Padrão - Maiúsculas - Minúsculas + Minúsculas + Maiúsculas Política de bloqueio da Barra de Status diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 22a0ee4162..88260b60e4 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -626,8 +626,8 @@ Desabilitado Padrão - Maiúsculas - Minúsculas + Minúsculas + Maiúsculas Statusbar lock policy From ff50beed9d0f2e1ecdc05c1d52623699ce3edda6 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Fri, 8 Nov 2013 20:12:06 +0100 Subject: [PATCH 115/255] Reorganized Navigation Bar Tweaks menu --- res/values-cs/strings.xml | 10 +- res/values-sk/strings.xml | 10 +- res/values/strings.xml | 10 +- res/xml/gravitybox.xml | 124 ++++++++++-------- .../gm2/gravitybox/GravityBoxSettings.java | 27 ++-- .../gm2/gravitybox/ModStatusbarColor.java | 15 ++- 6 files changed, 117 insertions(+), 79 deletions(-) diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index e450c9e689..d251fe00c0 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -445,8 +445,8 @@ Nastavení průhlednosti Stavového řádku pro launcher Stavového řádku pro lockscreen - Navigační lišty pro launcher - Navigační lišty pro lockscreen + Průhlednost pro launcher + Průhlednost pro lockscreen Skrýt ikonu alarmu @@ -737,4 +737,10 @@ Plná délka posuvníků Umožní posuvníkům využít celou délku panelu nastavení hlasitosti + + Obecné + Navigační tlačítka + Barva a průhlednost + Rozměry + diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index d2fe264eb9..86405c9b6f 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -441,8 +441,8 @@ Nastavenia priehľadnosti Stavového riadku pre launcher Stavového riadku pre lockscreen - Navigačnej lišty pre launcher - Navigačnej lišty pre lockscreen + Priehľadnosť pre launcher + Priehľadnosť pre lockscreen Skryť ikonu alarmu @@ -731,4 +731,10 @@ Plná dĺžka posuvníkov Umožní posuvníkom využiť celú dĺžku panelu nastavenia hlasitosti + + Všeobecné + Navigačné tlačidlá + Farba a priehľadnosť + Rozmery + diff --git a/res/values/strings.xml b/res/values/strings.xml index 79dc667064..a736de0e4f 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -466,8 +466,8 @@ Transparency management Statusbar transparency for launcher Statusbar transparency for lockscreen - Navbar transparency for launcher - Navbar transparency for lockscreen + Transparency for launcher + Transparency for lockscreen Hide alarm icon @@ -760,4 +760,10 @@ Your screen might not support values lower than 20. If your screen doesn\'t light up, hold Volume+ key for at least 7 seconds to reset brightness and then adjust minimum brightness to use higher values. + + General + Navigation keys + Color and transparency + Dimensions + diff --git a/res/xml/gravitybox.xml b/res/xml/gravitybox.xml index 318dc99f09..94f0c2fd9e 100644 --- a/res/xml/gravitybox.xml +++ b/res/xml/gravitybox.xml @@ -577,9 +577,42 @@ android:title="@string/pref_cat_navigation_bar_title" android:summary="@string/pref_cat_navigation_bar_summary"> - + + + + + + + + + + + + + + + + + - - - - - + - + - + - + - + - + diff --git a/src/com/ceco/gm2/gravitybox/GravityBoxSettings.java b/src/com/ceco/gm2/gravitybox/GravityBoxSettings.java index 52dc9a9ac3..18bf6b79c7 100644 --- a/src/com/ceco/gm2/gravitybox/GravityBoxSettings.java +++ b/src/com/ceco/gm2/gravitybox/GravityBoxSettings.java @@ -378,6 +378,9 @@ public class GravityBoxSettings extends Activity implements GravityBoxResultRece public static final String ACTION_PREF_SAFE_MEDIA_VOLUME_CHANGED = "gravitybox.intent.action.SAFE_MEDIA_VOLUME_CHANGED"; public static final String EXTRA_SAFE_MEDIA_VOLUME_ENABLED = "enabled"; + public static final String PREF_CAT_KEY_NAVBAR_KEYS = "pref_cat_navbar_keys"; + public static final String PREF_CAT_KEY_NAVBAR_COLOR = "pref_cat_navbar_color"; + public static final String PREF_CAT_KEY_NAVBAR_DIMEN = "pref_cat_navbar_dimen"; public static final String PREF_KEY_NAVBAR_OVERRIDE = "pref_navbar_override"; public static final String PREF_KEY_NAVBAR_ENABLE = "pref_navbar_enable"; public static final String PREF_KEY_NAVBAR_HEIGHT = "pref_navbar_height"; @@ -685,11 +688,10 @@ public static class PrefsFragment extends PreferenceFragment implements OnShared private PreferenceScreen mPrefCatMedia; private CheckBoxPreference mPrefSafeMediaVolume; private ListPreference mPrefExpandedDesktop; + private PreferenceCategory mPrefCatNavbarKeys; + private PreferenceCategory mPrefCatNavbarColor; + private PreferenceCategory mPrefCatNavbarDimen; private CheckBoxPreference mPrefNavbarEnable; - private SeekBarPreference mPrefNavbarHeight; - private SeekBarPreference mPrefNavbarHeightLandscape; - private SeekBarPreference mPrefNavbarWidth; - private CheckBoxPreference mPrefNavbarMenukey; private CheckBoxPreference mPrefMusicVolumeSteps; private AppPickerPreference[] mPrefLockscreenTargetsApp; private SeekBarPreference mPrefLockscreenTargetsVerticalOffset; @@ -716,7 +718,6 @@ public static class PrefsFragment extends PreferenceFragment implements OnShared private CheckBoxPreference mPrefVolumePanelAutoexpand; private CheckBoxPreference mPrefHomeDoubletapDisable; private PreferenceScreen mPrefCatAppLauncher; - private CheckBoxPreference mPrefNavbarLauncherEnable; private AppPickerPreference[] mPrefAppLauncherSlot; private File callerPhotoFile; private CheckBoxPreference mPrefCallerUnknownPhotoEnable; @@ -870,12 +871,10 @@ public void onCreate(Bundle savedInstanceState) { mPrefExpandedDesktop = (ListPreference) findPreference(PREF_KEY_EXPANDED_DESKTOP); + mPrefCatNavbarKeys = (PreferenceCategory) findPreference(PREF_CAT_KEY_NAVBAR_KEYS); + mPrefCatNavbarColor = (PreferenceCategory) findPreference(PREF_CAT_KEY_NAVBAR_COLOR); + mPrefCatNavbarDimen = (PreferenceCategory) findPreference(PREF_CAT_KEY_NAVBAR_DIMEN); mPrefNavbarEnable = (CheckBoxPreference) findPreference(PREF_KEY_NAVBAR_ENABLE); - mPrefNavbarHeight = (SeekBarPreference) findPreference(PREF_KEY_NAVBAR_HEIGHT); - mPrefNavbarHeightLandscape = (SeekBarPreference) findPreference(PREF_KEY_NAVBAR_HEIGHT_LANDSCAPE); - mPrefNavbarWidth = (SeekBarPreference) findPreference(PREF_KEY_NAVBAR_WIDTH); - mPrefNavbarMenukey = (CheckBoxPreference) findPreference(PREF_KEY_NAVBAR_MENUKEY); - mPrefNavbarLauncherEnable = (CheckBoxPreference) findPreference(PREF_KEY_NAVBAR_LAUNCHER_ENABLE); mPrefLockscreenTargetsApp = new AppPickerPreference[5]; for (int i=0; i<=4; i++) { @@ -1274,11 +1273,9 @@ private void updatePreferences(String key) { || key.equals(PREF_KEY_NAVBAR_ENABLE)) { final boolean override = mPrefs.getBoolean(PREF_KEY_NAVBAR_OVERRIDE, false); mPrefNavbarEnable.setEnabled(override); - mPrefNavbarHeight.setEnabled(override && mPrefNavbarEnable.isChecked()); - mPrefNavbarHeightLandscape.setEnabled(override && mPrefNavbarEnable.isChecked()); - mPrefNavbarWidth.setEnabled(override && mPrefNavbarEnable.isChecked()); - mPrefNavbarMenukey.setEnabled(override && mPrefNavbarEnable.isChecked()); - mPrefNavbarLauncherEnable.setEnabled(override && mPrefNavbarEnable.isChecked()); + mPrefCatNavbarKeys.setEnabled(override && mPrefNavbarEnable.isChecked()); + mPrefCatNavbarColor.setEnabled(override && mPrefNavbarEnable.isChecked()); + mPrefCatNavbarDimen.setEnabled(override && mPrefNavbarEnable.isChecked()); } if (key == null || key.equals(PREF_KEY_LOCKSCREEN_TARGETS_ENABLE)) { diff --git a/src/com/ceco/gm2/gravitybox/ModStatusbarColor.java b/src/com/ceco/gm2/gravitybox/ModStatusbarColor.java index f83422466a..d69ae3214b 100644 --- a/src/com/ceco/gm2/gravitybox/ModStatusbarColor.java +++ b/src/com/ceco/gm2/gravitybox/ModStatusbarColor.java @@ -80,7 +80,7 @@ public class ModStatusbarColor { private static TransparencyManager mTransparencyManager; private static TrafficMeter mTrafficMeter; private static Context mContextPwm; - private static int[] mTransparencyValuesPwm = new int[4]; + private static int[] mTransparencyValuesPwm = new int[] { 0, 0, 0, 0}; private static List mBroadcastSubReceivers; private static Unhook mDisplayContentHook; private static Object mPhoneWindowManager; @@ -230,8 +230,11 @@ protected Object replaceHookedMethod(MethodHookParam param) throws Throwable { if (DEBUG) log("getSystemDecorRectLw: registering transparency settings receiver"); mTransparencyValuesPwm[0] = prefs.getInt(GravityBoxSettings.PREF_KEY_TM_STATUSBAR_LAUNCHER, 0); mTransparencyValuesPwm[1] = prefs.getInt(GravityBoxSettings.PREF_KEY_TM_STATUSBAR_LOCKSCREEN, 0); - mTransparencyValuesPwm[2] = prefs.getInt(GravityBoxSettings.PREF_KEY_TM_NAVBAR_LAUNCHER, 0); - mTransparencyValuesPwm[3] = prefs.getInt(GravityBoxSettings.PREF_KEY_TM_NAVBAR_LOCKSCREEN, 0); + if (prefs.getBoolean(GravityBoxSettings.PREF_KEY_NAVBAR_OVERRIDE, false) + && prefs.getBoolean(GravityBoxSettings.PREF_KEY_NAVBAR_ENABLE, false)) { + mTransparencyValuesPwm[2] = prefs.getInt(GravityBoxSettings.PREF_KEY_TM_NAVBAR_LAUNCHER, 0); + mTransparencyValuesPwm[3] = prefs.getInt(GravityBoxSettings.PREF_KEY_TM_NAVBAR_LOCKSCREEN, 0); + } mPhoneWindowManager = param.thisObject; mContextPwm = (Context) XposedHelpers.getObjectField(param.thisObject, "mContext"); IntentFilter intentFilter = new IntentFilter(); @@ -517,8 +520,10 @@ protected void afterHookedMethod(final MethodHookParam param) throws Throwable { mTransparencyManager = new TransparencyManager(context); mTransparencyManager.setStatusbar(XposedHelpers.getObjectField(param.thisObject, "mStatusBarView")); - mTransparencyManager.setNavbar(XposedHelpers.getObjectField( - param.thisObject, "mNavigationBarView")); + if (prefs.getBoolean(GravityBoxSettings.PREF_KEY_NAVBAR_OVERRIDE, false)) { + mTransparencyManager.setNavbar(XposedHelpers.getObjectField( + param.thisObject, "mNavigationBarView")); + } mTransparencyManager.initPreferences(prefs); mBroadcastSubReceivers.add(mTransparencyManager); From 82f15a70d58f4db5746631bb5bb4e3a56ed19131 Mon Sep 17 00:00:00 2001 From: Noumi Ryoko Date: Sat, 9 Nov 2013 13:52:26 +0900 Subject: [PATCH 116/255] Updated Japanese Translation --- res/values-ja/strings.xml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index fdac34f2e9..a09b8d49c9 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -455,8 +455,8 @@ 透過度管理 ホームアプリでのステータスバーの透過度 ロック画面でのステータスバーの透過度 - ホームアプリでのナビバーの透過度 - ロック画面でのナビバーの透過度 + ホームアプリでの透過度 + ロック画面での透過度 アラームアイコンを非表示 @@ -746,4 +746,9 @@ 20以下の明るさに対応していない画面です。 画面が点灯しなくなった場合、 音量上キーを7秒以上押し続けると明るさを初期化できるので最低値を修正してください。 + + 基本 + ナビキー + 色と透過度 + サイズ From b18f6ddc0424ccb2ea1a872585abdd07582f4044 Mon Sep 17 00:00:00 2001 From: "Eric Deng (Eric850130)" Date: Sat, 9 Nov 2013 18:39:55 +0800 Subject: [PATCH 117/255] Update strings.xml --- res/values-zh-rTW/strings.xml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index 43001d2391..e0a86968c3 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -456,8 +456,8 @@ 透明度調整 桌面啟動器下的狀態列透明度 鎖定畫面時的狀態列透明度 - 桌面啟動器下的海苔條透明度 - 鎖定畫面時的海苔條透明度 + 桌面啟動器透明度 + 鎖定螢幕透明度 隱藏時鐘圖示 @@ -625,7 +625,7 @@ 可讓的 QuickSettings 瓷貼重新排序 - 運行中的程式通知封鎖器 + 運行中的程式通知封鎖 允許封鎖已選擇的運行中的通知 該清單將為每個正在運行中的通知自動植入封鎖程序. 然後,您可以決定是否封鎖運行中的通知下一次出現。請謹慎使用. @@ -682,8 +682,8 @@ 按鍵 - 近期按鍵單擊操作 - 近期按鍵長按操作 + 近期鍵單擊操作 + 近期鍵長按操作 顯示電池狀態圓弧 @@ -755,5 +755,10 @@ 您的裝置可能不支援低於 20 的數值,如果您的裝置螢幕亮不起來,您可以按住音量鍵 + 至少 7 秒,然後將會還原亮度,並請設定較高的數值. + + 一般 + 海苔條按鍵 + 顏色與透明度 + 尺寸 From 53b19f03cbe7567875a549a94c91316a43341cb6 Mon Sep 17 00:00:00 2001 From: liveasx Date: Sun, 10 Nov 2013 13:14:26 +0800 Subject: [PATCH 118/255] Update strings.xml --- res/values-zh-rCN/strings.xml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 3f928ecf6e..badcfadfce 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -307,7 +307,7 @@ 可扩展音量面板 启用此选项使你可以调整不同流的音量 - + 完整的可扩展音量面板 允许音量面板占用所有提供的空间 @@ -577,8 +577,8 @@ 当在快速设置中为SIM卡启用2G移动数据时,禁用低速数据警告 - 跟随原厂电池颜色 - 使状态栏时钟、百分比和圆形电池使用原生电池图标的颜色。当图标颜色关闭时有效 + 保持原厂电池颜色 + 使状态栏时钟、百分比和圆形电池使用原厂电池图标的颜色。当图标颜色关闭时有效 网络模式 @@ -606,8 +606,8 @@ 当扩展桌面隐藏虚拟键时 - 保留原厂电池图标 - 使用它以防止原厂电池图标被替换第三方电池图标 + 保持原厂电池图标 + 使用它以防止原厂电池图标被替换为第三方电池图标 拔下电源线开启屏幕 @@ -727,7 +727,6 @@ 应用启动器 对话框允许定义最多8个应用程序,可以分配硬件按键或作为额外的虚拟键 应用程序槽 %d - 没有应用程序被分配,使用GravityBox/应用启动器来分配应用程序 @@ -759,6 +758,12 @@ 您的屏幕可能不支持低于20的值。如果您的屏幕亮不起来, - 按住音量+ 键至少7秒钟将会还原亮度,调整亮度使用更大的值 + 按住音量+ 键至少7秒钟将会还原亮度,调整亮度请使用更大的值 + + + 普通 + 虚拟按键 + 颜色和透明度 + 大小 From b109f9ba7ffb9a28901f87429028684b3cb3db18 Mon Sep 17 00:00:00 2001 From: Bruno Martins Date: Sun, 10 Nov 2013 10:23:09 +0000 Subject: [PATCH 119/255] Updated Portuguese (PT) translation --- res/values-pt-rPT/strings.xml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index 3f8b7baa96..9853529bda 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -451,8 +451,8 @@ Gestão de transparências Barra de Status no inicializador Barra de Status no ecrã de bloqueio - Barra de Navegação no inicializador - Barra de Navegação no ecrã de bloqueio + Transparência no inicializador + Transparência no ecrã de bloqueio Ocultar indicador de alarme @@ -745,4 +745,10 @@ O ecrã poderá não suportar valores de brilho inferiores a 20. Caso o ecrã não se ligue após a alteração, mantenha a tecla de volume + pressionada durante pelo menos 7 segundos para repor o valor pré-definido e poder reajustar o nível de brilho mínimo para um valor superior. + + Geral + Teclas de navegação + Cor e transparência + Dimensão + From 5b81d2815ffcdb9331c3f6f6e7dd98ad547d4e4d Mon Sep 17 00:00:00 2001 From: ch-vox Date: Sun, 10 Nov 2013 15:05:17 +0100 Subject: [PATCH 120/255] Updated French translation Reorganized Navigation Bar Tweaks menu --- res/values-fr/strings.xml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 924cf44099..d998514b94 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -466,8 +466,8 @@ Gestion de la transparence Barre d\'état : lanceur Barre d\'état : écran de déverrouillage - Barre de navigation : lanceur - Barre de navigation : écran de déverrouillage + Transparence pour le lanceur + Transparence pour l\'écran de déverrouillage Masquer l\'icône de l\'alarme @@ -760,4 +760,10 @@ Il se pourrait que votre écran ne supporte pas de valeurs inférieures à 20. Si votre écran ne s\'allume pas, maintenez la touche Volume+ enfoncée au moins 7 secondes pour réinitialiser la luminosité, règlez-la ensuite à une valeur supérieure + + Général + Touche de navigation + Couleur et transparence + Dimensions + From 71a75622fe43c0cfc3a073eacb1d85f22eea7a46 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sun, 10 Nov 2013 17:16:28 +0100 Subject: [PATCH 121/255] Revert "Add New Statusbar Pngs for adjusting colors" This reverts commit 7917fd7b4646fda2eb511ad9dce29af5e4508570. --- res/drawable-xhdpi/stat_sys_battery_0.png | Bin 806 -> 374 bytes res/drawable-xhdpi/stat_sys_battery_100.png | Bin 460 -> 265 bytes res/drawable-xhdpi/stat_sys_battery_15.png | Bin 624 -> 292 bytes res/drawable-xhdpi/stat_sys_battery_28.png | Bin 491 -> 284 bytes res/drawable-xhdpi/stat_sys_battery_43.png | Bin 489 -> 293 bytes res/drawable-xhdpi/stat_sys_battery_57.png | Bin 505 -> 284 bytes res/drawable-xhdpi/stat_sys_battery_71.png | Bin 508 -> 282 bytes res/drawable-xhdpi/stat_sys_battery_85.png | Bin 490 -> 276 bytes .../stat_sys_battery_charge_anim0.png | Bin 723 -> 530 bytes .../stat_sys_battery_charge_anim100.png | Bin 3316 -> 532 bytes .../stat_sys_battery_charge_anim15.png | Bin 809 -> 553 bytes .../stat_sys_battery_charge_anim28.png | Bin 776 -> 551 bytes .../stat_sys_battery_charge_anim43.png | Bin 740 -> 546 bytes .../stat_sys_battery_charge_anim57.png | Bin 3426 -> 552 bytes .../stat_sys_battery_charge_anim71.png | Bin 3403 -> 552 bytes .../stat_sys_battery_charge_anim85.png | Bin 3387 -> 539 bytes res/drawable-xhdpi/stat_sys_signal_0.png | Bin 307 -> 492 bytes .../stat_sys_signal_0_fully.png | Bin 313 -> 492 bytes res/drawable-xhdpi/stat_sys_signal_1.png | Bin 327 -> 517 bytes .../stat_sys_signal_1_fully.png | Bin 327 -> 559 bytes res/drawable-xhdpi/stat_sys_signal_2.png | Bin 342 -> 557 bytes .../stat_sys_signal_2_fully.png | Bin 342 -> 611 bytes res/drawable-xhdpi/stat_sys_signal_3.png | Bin 346 -> 611 bytes .../stat_sys_signal_3_fully.png | Bin 346 -> 679 bytes res/drawable-xhdpi/stat_sys_signal_4.png | Bin 335 -> 600 bytes .../stat_sys_signal_4_fully.png | Bin 335 -> 687 bytes res/drawable-xhdpi/stat_sys_wifi_signal_0.png | Bin 831 -> 915 bytes res/drawable-xhdpi/stat_sys_wifi_signal_1.png | Bin 913 -> 1008 bytes .../stat_sys_wifi_signal_1_fully.png | Bin 913 -> 1034 bytes res/drawable-xhdpi/stat_sys_wifi_signal_2.png | Bin 1001 -> 1110 bytes .../stat_sys_wifi_signal_2_fully.png | Bin 1001 -> 1205 bytes res/drawable-xhdpi/stat_sys_wifi_signal_3.png | Bin 1124 -> 1241 bytes .../stat_sys_wifi_signal_3_fully.png | Bin 1124 -> 1381 bytes res/drawable-xhdpi/stat_sys_wifi_signal_4.png | Bin 1134 -> 1331 bytes .../stat_sys_wifi_signal_4_fully.png | Bin 1134 -> 1526 bytes .../stat_sys_wifi_signal_null.png | Bin 839 -> 1170 bytes 36 files changed, 0 insertions(+), 0 deletions(-) diff --git a/res/drawable-xhdpi/stat_sys_battery_0.png b/res/drawable-xhdpi/stat_sys_battery_0.png index 9e32bf4dae21dd766033dc47da30d5d7bb2b4a59..20d54610d1d55937a5a201be3ed836293e344d95 100644 GIT binary patch literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^Qb4T2!3HF!TWJXcDaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#S9F5he4R}c>anMprBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejM zo~fRpfx(xeg+NtLJzX3_JiOmdaO7$V5OFnaDzMI7!pq{TYOoo-XC2 zX@P|Wf$HC!6;DJ_Jpb=5u(bOT zoyCt(O#JxqLdo)Fb#q?7{k-e`p1j>(Z|_->UY(wPZAHGJbzfcR)RU1#^I}xAGtPfI lch2icVUADdW5%vW+@(*}HEOCW83H}b;OXk;vd$@?2>@{#kz4=( literal 806 zcmeAS@N?(olHy`uVBq!ia0vp^5=*!Xn!|m{$9%bUWTdhV`HxO#;hr3CQpnxUm3Hf zn;FNNn=LbzJ7O$y*jQw}v2=pDX{3dDqKRpWu}PGLd8CC!jEPyindv-Zg+s=o31+6V zOqFJsDs42C+F&YGW2W=enDenQXSKObkfl|IxpBLhM!LCiprsYofLUCdBLWP#^pYUI zUO1N0tX5M6dVip?^v?Tly%GWsWw2bVS6mp;_hQJ2v^CxlVg_3--Ar ze{`9Y$#XfvNU+~kIk6?gYVzDO&+hcf@XajYay+wo-Y2D|1tJE|?2^AN;rQkjkox$& zv8l#C_GMj5g9>LgNFGSzoN<{qc)ogqBfG2^XM_>MmsF;(FvcEJrfa7eq-V3_gfg7E z%@R`1ptYOj&0FbXj#C>BD>pnAX7W3KPG4_5$BuQ8VQy*BJ~Uqkip z*LDIQIF@nxv)JsP@$9uU<9qqH-=1Hu|7R&Dzt&*dGa31t)elmtm9M`1w(t0>QtNMm pZ~5zNcz-R<{$T$6QN^R3@f$tdb*$%`gahM^!PC{xWt~$(698k;S7QJG diff --git a/res/drawable-xhdpi/stat_sys_battery_100.png b/res/drawable-xhdpi/stat_sys_battery_100.png index 3daa56c7b0d4f081dbfd79131335a1d8426d716b..ffaa9eac66aa150273a02f60b425efa749ce69f6 100644 GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^Qb4T2!3HF!TWJXcDaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#S9F5he4R}c>anMprBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejM zo~fRpfx(xeg+Nsmo-U3d9^P-yI&w7_@VH!*^FIGF(k9-=Yjr@nVsf*>=87q1Ci`bZ zMsBkWHQC2|H2QgYHPhRdNo>x{J0u+HSFc=nqxr|0d5@K24rN)d4~UWa@sPDOgX^Nm zB2Aazj%5PAinE-y>~9a--y-qL()D)e_j^u}=K}1s*+XB{)&1<%vS?>~@{|Mv5L zHBi}lPZ!4!jq`6Ohl@2C2)JrCHY^aCs>R__CH#HAg?fXW;9W-Z`1g0u+~+y`r&ac0 zg$hH*^JP3vMBFVisVu;BGE9JxA!x6qO({{h0O?kQY5&{an^LB{Ts5 D99jPT diff --git a/res/drawable-xhdpi/stat_sys_battery_15.png b/res/drawable-xhdpi/stat_sys_battery_15.png index e3d4c2fa3dd1b65806717894a0b70ed90ab8555c..d153c5ea5e324d848f0674105b0dd504b51c5143 100644 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^Qb4T2!3HF!TWJXcDaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#S9F5he4R}c>anMprBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejM zo~fRpfx(xeg+Nu4JzX3_JiOnY59Df95NJ&-f7BG!^Lpi3zjG}{&lVzLe^I}XOMYAM?c9#3 j@rJLq-L8#jKE%1GEW~W(0?P+L=P`J?`njxgN@xNA0Df%v literal 624 zcmeAS@N?(olHy`uVBq!ia0vp^5nd8kBv+YE<XPmFAPIcJ{C egdd(Ld0AR7q`0tQc4KbLh*2~7b1nHXCD diff --git a/res/drawable-xhdpi/stat_sys_battery_28.png b/res/drawable-xhdpi/stat_sys_battery_28.png index beb94b5e67b866d4100301fad5dee28a5811410c..d8687546886b20c031f2d593a2f35670016e76d4 100644 GIT binary patch literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^Qb4T2!3HF!TWJXcDaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#S9F5he4R}c>anMprBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejM zo~fRpfx(xeg+Nu^o-U3d9^P*+ALMON;Au@fc4?(V+vIl#YeYL#P4{F3DO9|8*gf&W zKXn;F%lCgnc79xaVWy1yCs~u|D;H*$2%Ft{|TY8*7>VosTXAI5EvZvy> zGb23CI%SCkZJrP%eal%!?v(ZB(uKM%UiTH>#abMh&bDd7tkx@Htv?ceH9u{R%*wDU Z5`X5_Z6@54(+G4HgQu&X%Q~loCIE(8WD5WQ literal 491 zcmeAS@N?(olHy`uVBq!ia0vp^5AK>oj@m=l?3?(Gca(Ai;6L^ zReX5ys{TKVzNxX9=B$5zL~g%*{pQ=dzhYvq{{Isb6BB*$_s<8B3lHx0_Dx%%?oUpWpP zKjMDLB}}1G$u^&hW1(hH`YgUoV^O}ABZ-E`*FQUa$UygYq4*Ky3GQO+lB1U~Zuk=Z z`m9xjK9fb*KOu*kj{>7v9j=uLRPGn7$~207F=NAj&TCWc|44kZxxw5LIOm9ur%Wq@ zCVx;v54)tpx#mCG8mCsRoAGLu&WlBz?xrOd<@)Y+uC$hmYACLkygHw8-5rfP7O}0? YiJZ=i^TSvA1AW8b>FVdQ&MBb@0GspC!2kdN diff --git a/res/drawable-xhdpi/stat_sys_battery_43.png b/res/drawable-xhdpi/stat_sys_battery_43.png index 13c3b80898c161264ce7e8a1de32faf4e2ca5659..651443e6351ecfb823e1575920ea435dbc54046e 100644 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^Qb4T2!3HF!TWJXcDaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#S9F5he4R}c>anMprBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejM zo~fRpfx(xeg+NtPJY5_^JiOmtapY@N;BgI{wsdupVPA>-y7k*s5_C{8B||M&f7Qoy}>Jg?1ehzxYVlWc5L3UR~DanMprBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejM zo~fRpfx(xeg+Nu^o-U3d9^P-S268nh@Ej}b4_*Gr!0xK8&HbQEqmPRdv{>FgbXUpy z?=CB7`TlRv&W|fE%#_jpBx@3V<-+6=LEU!?B01%}GBlggmOf+Gl~61%ZaCP;n7Y2z zL}$sj_6u^4z69KxS-Mcy#p}N2yI6}O)73UjnALhkXGxl(Dfh~)igpqIK72f=Wx7Rf aCwG#|`(2$YTD}0C#o+1c=d#Wzp$PzO0A?)! literal 505 zcmeAS@N?(olHy`uVBq!ia0vp^5cUno6RR}0V0?%h{ohX)Idn3sdMUp4z(x=@(X5Q z;1(AZV`8iL@Zwede-?dHV>8WJ|Ne;Fe*5~(w|9TV#Kd0x{|6++L|^><^Fido!}|}I zW#k!{UTPfv2{hw`r;B5V#`&kGqs1E?Bw8N^D9f%?^9pfNe=_6$|MPDguVtC8i>-LS zuQHAM(DkbGznBA^9xeF4OH#n8%|%XAE6B}=vD>$3fq?YIxi`0LzWsOPFznv-p0 z#(SXT+0SD83^7K&d^1)L?!A|tm^w}gU3}KN$y@NI)78x1_E$q+UKjYJz~W-l!SGQl zQhn{UlUi&!6&o0HDmSn$vGHJ(anMprBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejM zo~fRpfx(xeg+NuEo-U3d9^P-S9pr6L;Au@fc4?(V+vIl#YeYLHDCy4x5mWVj+j``Ze_vOL%VufaI*-Np! zo_}n&Sj~@V+x2v}Z${y~L&Y7R#rTdk9yC!|rfA69nd#xV~f1Z$; Yds*`5;?mdCfR1ADboFyt=akR{0QH1q#sB~S literal 508 zcmeAS@N?(olHy`uVBq!ia0vp^5oLoG^z{DK)6 zxWz@qnAj>lym(drpGDu)*i3WQzds_k-@bnH?cHB7u~+~9iGhIVi@$$9h+KGh{{gd% zJOh(M-;EHU8K*s6978nDzdao-?&KiRn%KIMBQW^IgMbnT^-KT%r@vhpaoVW#YU=yD z=I3)9e?&Zw44;ys(s}p#*#?12%6}UdDWzUG?&z^Rj%RE6;i`qw%9o}5Urbq~Ik!i* zIORpd%(pv=%L8@AEM%(LCQOf7y_9Fd6wyUjrBkOXZERh2@mc+O{h8gUJ38$NN6OK3Em9Jy|?L0}X_tKLM>D@XxQ#T&{Sh6ohI`-Uh nWd;4bwOuj+Mac!vL%8@Szm74KSn|>Y=q(0MS3j3^P6anMprBNVYeY$Kep*R+Vo@qXKw@TIiJqTph(ejM zo~fRpfx(xeg+Nu!o-U3d9^P-y9^`FM;Awr>w=~$WNB!>MpIP2hrd-JQ)be6syS`iN zcVXjTuS|{HKU!Nlzc$YM_%2Pg#GS9|Fz@?yPwTeq3G6SwzAA1{qxqX}q6;!_?rtv$ zt`!%$6WNj=*yPF~rWgTd$j*A|`qIC$tT6BCT{ROg&feoC3}2rHJ0;C!=LI^4!PC{x JWt~$(698v>VUqv= literal 490 zcmeAS@N?(olHy`uVBq!ia0vp^5eew6t2ayX8 z?>}Ick!N6Pe^o97G-Icyi(`n!`M0NE3pEBvv_1?n6Ot`2(kjstvApwtZlv_g%v*W~ zdcNQPZo8S~VfLfV^Hjc1)cG1`&g^uefye!ngyv#JKBpt+o#yTdw(nlKOnO;raJy3b zt!bGrZiyHaKkt5;bX6zJ;@LZ%4d2w}?lC{=&bXIWq1|ci3;G^EVy|lvr&zx^a!)^RVTsY?xl1-gPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0004jNklBdj^$a;ZfZn1IfS zah$=L@mw~wXdk1{xnZo~3D%6~@+n0hkcC6gIVoPmrm~B0-sMw@?yvxzY15pa#3{o0 zRwh;?-;F(NDeKTPBiO+U!g-fTDf)!GecCbf%o3gv&I*@FDGEuE+>K=A-sWIEiI-h; zgK0>17FV!xUUtzTmEFKaQpV{n3x!EZ|}>OFVCJmJ0&IM>eZ_uAt7B|UA?`%8#Zh>d-klKpWl`( zTY7qWa&mGqGBU1TzaAYO-PhOG*4CDpnORd)Q(awMSy{Pb$BwYDu>1G#-?(ujE-tRB zs%rlH`Fr;4IePTyty{Me5)wi~L+{Z;v^;(|Nw`laiueS0a+-fmbZ(($-r z_2kQ&^=dxs%u*4b{^eDaYSol&Q=IoK+&(Yp&Ru(r<-dPinRe{o8Hwk2#m`tK=eT{i zZg-(tIDP)+n_)Un_`|thKQ>XaIQVPEr$aLr9g^j7e=q2ExH015$0yE7M*lvhJ8_x3 a70&zVygAhCVE`~v7(8A5T-G@yGywpK6IfgT diff --git a/res/drawable-xhdpi/stat_sys_battery_charge_anim100.png b/res/drawable-xhdpi/stat_sys_battery_charge_anim100.png index 8b49adf645632e21d4cc045a87d05b0d0c347dc8..0c192208fa9587123a71c451a44a1e090a8c68d1 100644 GIT binary patch literal 532 zcmV+v0_**WP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0004lNkl`SJBWPv7S{PKWPvA8r}$@alG-@8_IP zx2Nx|6-7}ST|aCp>2QnWOta4$B|F?jrld&W?TO@>TV%M49o}s4r$w^I!?W;d58WlX z%AKD@@}=Ys{6ecJ+y5=P!PpNLa1A@xaM2EQPV2@Nyt$BRq-YvCr_JCI-dxC}7RizU z=v*{}TX=IKguJve|j6NPMQ(FQu9bM2VL9lV(+65uxg literal 3316 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 literal 740 zcmeAS@N?(olHy`uVBq!ia0vp^5()JZ@Zk3C+c7aQ-rnAqFJGQLdv;1n%GIk^LqbBjy1IIM zdpB&@aQ5t3KR>@MTekG{^yK8^I5;|HWMo{wemy!m+QG)EudlDIt<5GO?+*<8{rmUM zojcdAT{EA$D^=$jgwY0mohN96X~*KfYP`wKK36NmwYfLQF+|9?;x zSdHk5zkfc6TzGi@0ke!elVVKmW?V&| zH8mmVdv!mtWjYkmHBi$0o(d#wP(6W=XDCwQFgc@+`j0 zi3U8Yv@FE~59_^(Ir6A8MQg5OBui?b+FUQSM}`eC`vUIhO}i$pD#7(rrXk3z$AnUt2wkVXfIq0jGuPJ@YxQD83bQn9l4{ zy~98E1rv|Vff?^5dFl>x=Lz^%yuEC$zhH0qqe@5n4t@c7h5ELKCuC-?JN7K&gr1s9 z#v#3Bn}0sKd^O2#Hj_?xywmEXpQUq-J-Dr``GNWT#$vD9yi1M1_+jvL^>bP0l+XkK Dfe>)F diff --git a/res/drawable-xhdpi/stat_sys_battery_charge_anim57.png b/res/drawable-xhdpi/stat_sys_battery_charge_anim57.png index 329bb2254ac265cb4b3691e96e62da3e4f614c7c..6341769682a8b0f1688b1888e4abf31dc2f98a51 100644 GIT binary patch literal 552 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 Ef^ed3aR2}S diff --git a/res/drawable-xhdpi/stat_sys_battery_charge_anim71.png b/res/drawable-xhdpi/stat_sys_battery_charge_anim71.png index 29ec30d44f2e6f42affaae61ad622365b007d368..3931bb0649b13bca2ab87cfc41582fdf6a79f559 100644 GIT binary patch literal 552 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 OgTd3)&t;ucLK6TdX3pRM literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV4bq(TCGLR|mT08BA_U<))~rXpK$xvHOMk2w)xImz~1E{XZ)5S5w;`H7Ndxe|>Bp3oW z=_wt_?>PT^|8g_mv~334?5?KWEPdK%8?eUX)Kt-9SN(gk<20^6l9|5i+)ndTUp35C zo*v_Re2VjF+8pPdM|bj{TB{MR@^st%!vA;6-FC`8573*#Jp}@-1Ku6jIoq1i;0RlJ U?{e44K-(ESUHx3vIVCg!0P6>(BLDyZ diff --git a/res/drawable-xhdpi/stat_sys_signal_0_fully.png b/res/drawable-xhdpi/stat_sys_signal_0_fully.png index fef302e4845a11e8b382dddb8469ee832fe15e38..fa82af5b23754492b0f80a62586cfc1ef3e95a34 100644 GIT binary patch delta 477 zcmdnV^oDtYWIY=L0|S@2@@yc*SRCZ;#IWw1%u67LCEd~2k%3`jKlh(RRv@3Vz$3Dl zfr0NZ2s0kfUy%Y7lqzwJC<)F_D=AMbN@WO0%*-p%^K%VRC^ObG)iX3O_)@eGXl%5n zi(^QH``PQZ-YkX!4G)7w1huzbc*W)V=fJu8ux##wK^HFh>1-3oVR`@W=dW`QJ?0#F z(0jz^qsi=)=T9G$-8^a0mnf?57Px1IRNKS-zNKYi$)bGQw=~Z@cP>e%c*j!TJ&Ef! zZN{;-b=RoFyT$@I`uv; z-sl`lD(2p8;kaW*u}8#?9nKyOJ9gA&IIP%_yT_T?Pf#h3yZd^O(h+@i{+r=98r~HO zl{Ex8T({ty{b+eZ9+1}`<*Z{wut#&Ol20E zEXkfzqbqw*_=1VwzG+XkKH*)l_OB+888%PR{1e-iYj+AieW`D`cS1TKy7>6rlMh?W z7i@dhwfov(&U}a5+?P8}eyf;lUDfB);16^3nvpBSBfbJ_|slokTx OgTd3)&t;ucLK6Tol+NY= literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV4bq(TCGLR|mT08BA_U<))~rXQ)=)=XNiIbyQC~|{K}NzTKFMb9W}vzXPZ!4!i_=Fhc=9zlh%j87 zc1SFMjXhxh_xgywW?jRpa`? znE6ws*GZJG4tUpBtns}d&t)g)(|M6QuUFmKR$bqFyNvhT!Wav24LGzvn6CMEy=2u1 WcCMRqjUNHsz~JfX=d#Wzp$P!*;i1<6 diff --git a/res/drawable-xhdpi/stat_sys_signal_1.png b/res/drawable-xhdpi/stat_sys_signal_1.png index 02b3373a8c43f12527be6015b832b256e9469fca..07f1d97a65552c6b9bed89d9c43580da53459d31 100644 GIT binary patch delta 502 zcmX@k)XFkJvYw5Bfq~0hc{Y$@EDmyaVpw-h<|UBBlJ4m1$iT3%pZiZDE0E7w;1OBO zz`%DHgc*KPgsd?{K8G`7Uk z#W5tp{p|JqUd)aH4If=Z1htbFDl7>&!ckUV*5t2nBRf5F@&s!E7X!^&X88k`E}dF# zy`Qsh&F0sVV%KLsx_;;1%>DzaORk&rMxShtQ;}~|n|!if`qdkaV_q_PnGG|~^(E;P z?^wcXldx{{VhL@Fm`hSwXIg=xYtA25UHd?++h8G3y!))`*TUZQFm~*N=ouGo)(7?+ zeHK(E(8@Vi_GmGK+2nzQ-XpV(KO(ty{CM)j z`x~Fxg3lJ5x81cCT(;npezd&d+#{7YT)B*MkH$K+0S##9D-H*_DMYyd6~&4e|>=_5X=HY;*La{io#yXS`$PPpFnw18d0rX<>GM$sv|(uzGzL kuUBv4J?*|Md|AtIX8q%`j>Cbnz=&e-boFyt=akR{0CGLp;{X5v literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV4bq@n_RLR|mT3?!#)bOG8TR}$nG z%wVRQrXrsznIx1DYpA2HB$pzUsIR4}AR|%tzcxNdZu2If$~sRM#}JFtM=zY_YcgP9 zz4&Ts6!#AXmyC!1>w~ZGPB5A2Dx6*$mh7{SuSd4^hUW=Uv7MWR3&r)Hco{BVvo2|! zSW&oQ`Q{UM<(1YII;|5ec3PMGPV-5X;`dD_cwZN0n&%x`I#;~dNzXuBsYp?2yTKzn lo*kM>-;=A&>y7`v=2frb6k`3I^Bw3C22WQ%mvv4FO#n@#t0({f diff --git a/res/drawable-xhdpi/stat_sys_signal_1_fully.png b/res/drawable-xhdpi/stat_sys_signal_1_fully.png index 02b3373a8c43f12527be6015b832b256e9469fca..4285ea15552352be6e028021ff65825288550230 100644 GIT binary patch delta 545 zcmX@kw4P;xWIY=L0|S@2@@yc*SRCZ;#IWw1%u67LCEd~2k%3`jKlh(RRv@3Vz$3Dl zfr0NZ2s0kfUy%Y7lqzwJC<)F_D=AMbN@WO0%*-p%^K%VRC^ObG)iX3O_)@eGXzV;s z7srqY_p?{+y_g+Ej(_~YAE+&QQL9xbWW(nAlk1+bFdhubPuSX;p*&;Gfep`i%CuA_ z30H9RC*-FqzJ9N3Cz*ciqK(XVQF$I~>-V*Si?%M(xbn&F%AwyErlj7iU;Q~x{n)de zGM9x)Dz*zJZ`M0*!Y+Q{>0Q5`vpZxi^UQIY{sE}qTcPDLPm4yQ9uTK(dh)D>_EO*cS%JG00#y*y?OhuAw(1r4iqxb9%#yTK+}$Q|%6 z+Gxd(vlr!W7H?qI>R-H}^aE>%lzU?754{DOEV!(j0vu8c*&V#E9NpS5eMQ%8*5b}t z7WcOYx!%z!IS?nLzwV~|UykPbWr>$%a#rZ+on=p#xWeG+uxE#fyqwzKi_&bK%ueZ_ zELv30zHSe%(KGOn60n+lRQ2ZuM*SZ#0z8x0TF$u?YFGb!AZdTvpvm!4!-bnS3O{GQ z|JT{%BcZ~}F}GLLeCz$))lU?J!A9-x&yKx&Z-%29SZhi=hy4A!`yWZwu5b>lW)E%n W?Pi>Ob^$O>89ZJ6T-G@yGywpV9^(!G literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV4bq@n_RLR|mT3?!#)bOG8TR}$nG z%wVRQrXrsznIx1DYpA2HB$pzUsIR4}AR|%tzcxNdZu2If$~sRM#}JFtM=zY_YcgP9 zz4&Ts6!#AXmyC!1>w~ZGPB5A2Dx6*$mh7{SuSd4^hUW=Uv7MWR3&r)Hco{BVvo2|! zSW&oQ`Q{UM<(1YII;|5ec3PMGPV-5X;`dD_cwZN0n&%x`I#;~dNzXuBsYp?2yTKzn lo*kM>-;=A&>y7`v=2frb6k`3I^Bw3C22WQ%mvv4FO#n@#t0({f diff --git a/res/drawable-xhdpi/stat_sys_signal_2.png b/res/drawable-xhdpi/stat_sys_signal_2.png index 041ba4df0f71ae2e0f631e6f270d9b6e01ce0678..b6e234997edad301e9bc4b18b92c9143d52f6ba5 100644 GIT binary patch delta 543 zcmcb{w3cOpWIY=L0|S@2@@yc*SRCZ;#IWw1%u67LCEd~2k%3`jKlh(RRv@3Vz$3Dl zfr0NZ2s0kfUy%Y7lqzwJC<)F_D=AMbN@WO0%*-p%^K%VRC^ObG)iX3O_)@eGXzUzM z7srqY_p?`Ry_f?<+8!Q>Z)#o95vD0(*koN_z$x~vi+h8InnA+iBRU6IZ$w3R@7ndz zR?&Uk^LZVH#dD)=Se`$x)7MN|y=qm?PVwT0aXg}~AMfwlC3`gD+-c3+$Bx?=-17$Go`$23PHp;Q%%-xYJCgD2k;01I_ut?D{4?0WxUfaE`QU@*iF+P#?4GpY z4UklLWxLzr&^eB(%NueYS>()}aos?tyWWB?>flD+Y@5D@SUxMK^KG0v?VhqO>3-bc z%M|xxPR|X4h2I~rF6or!YnMGX|8RqW*GpT;;w$p*H>3{xn>qaF19RoJpLwxZTp(`q z_mne%*)g*ZUR=XaZM#Q3x$oB_3F%vf2OZBI`}kq2x!#WJId_!y6hD6$Cvxw`o;}6& d66>>Snf?TA`Mk!5B@P&)44$rjF6*2UngD}0?G^w4 literal 342 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV4bq%s41LR|mT3*<7sEd*MsToU9L z%wVRQrXrsznIx1DYpA2HB$pzUSeE%O=6}E+*Pqs3Kh)L6*RsuM1S+reba4!^IDPcg zNxr545toC@dpnpPbm%^A{r}%X_`2S?rXx||UaxO%*e04a^TO??FWz!bEVtm=JNd@t zRqxNlX@1dK82^i0QVH|sR-w>|i|2B`eYW=Y%d!r{`|EiWR(R(lDTTk2uaX0;* oIElRmRhuu){`*=t{$;)0-xGZM`gQBi0Ug2M>FVdQ&MBb@03zqhjsO4v diff --git a/res/drawable-xhdpi/stat_sys_signal_2_fully.png b/res/drawable-xhdpi/stat_sys_signal_2_fully.png index 041ba4df0f71ae2e0f631e6f270d9b6e01ce0678..36a97ec11380708b02bc8e0ca553238ee2d436d4 100644 GIT binary patch delta 597 zcmV-b0;>Ji0^?_s5+f5{Hfa?0Ay0U=5+nP5*`y)Z zg&>UZY$Zm9hks29!wz)A2+vkxWO&%5E$9g&JX?v8;bBvzK?x%~TZxh3VH2hx4$j4` z0EIahHxCrxT-*$BfKzc%I06n>1}EYo5d19(ocQMGNA>{Zfd1kVl}=wUgu>>;p#pnx z7(ih$_$k0n91ag}c(of`e+#e^m-VhLarH68t+-9Ec7KwrbUv|mD=vFl-Aj}oKCt!) zhPV-z^=jLRa{C?YAdFy${Wu&po-DWDu@;#ML5WA jTt9T@{)Kka4SwhgBYYH-0g?pX00000NkvXXu0mjfc2@oG literal 342 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV4bq%s41LR|mT3*<7sEd*MsToU9L z%wVRQrXrsznIx1DYpA2HB$pzUSeE%O=6}E+*Pqs3Kh)L6*RsuM1S+reba4!^IDPcg zNxr545toC@dpnpPbm%^A{r}%X_`2S?rXx||UaxO%*e04a^TO??FWz!bEVtm=JNd@t zRqxNlX@1dK82^i0QVH|sR-w>|i|2B`eYW=Y%d!r{`|EiWR(R(lDTTk2uaX0;* oIElRmRhuu){`*=t{$;)0-xGZM`gQBi0Ug2M>FVdQ&MBb@03zqhjsO4v diff --git a/res/drawable-xhdpi/stat_sys_signal_3.png b/res/drawable-xhdpi/stat_sys_signal_3.png index 2b7bc265cd87ae9a2bb305759352c66cf433fe6c..b06307e4134954861f6ddfae7b8ea7ea73b93570 100644 GIT binary patch delta 597 zcmV-b0;>Jm0^_-Cr@RnKZ#;o;W-}4-P=`oL@dOsZ!iz-$b{=MsR*q%sMFK?` zq?2RO8k`gf6lIV`j?dB|i;kdBpeTdt<#?CvQ!-`IQh}ljs+B`*n}WBnBrI0SWKf-) ze3n@LYEDb^IiySmmC1Ej{Opy4v)^P;iJW|v9v79^dD#s9F2}-KTOhEgUO5h5dj$en jy>hAWIxX(78RV@m>R`r0r|P`$00000NkvXXu0mjfC_eYR literal 346 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV4bq|yR>LR|mT1+11ntqZhKsU*lR zn88dpO+`LcGD#>Qwkr33;=j;8-annbek#k132?RkP*)p&eYFP7y4e z3N;3ZxILUKt5_#GRmA%J|4BjH)6VV6IJWEGx-gE{Qw_Em9tm>J+wH7(Te`4)vEp>; z;%%#}4a>!frZer_Bvg2PcE@UI#p_*`isk9+v?o;iJZ^Zs|M8=|8OL4k7E6kk>Km#* unPVwlr1vD|#LfxQt#?+$zq1wpcb)xwj6h_VzM~1yF$|urelF{r5}E++Ld3NI diff --git a/res/drawable-xhdpi/stat_sys_signal_3_fully.png b/res/drawable-xhdpi/stat_sys_signal_3_fully.png index 2b7bc265cd87ae9a2bb305759352c66cf433fe6c..cf0abf90f2402c843721228be49b9d7e7908abad 100644 GIT binary patch delta 666 zcmcb`w48N7 z?6&yhg(;=mm6IRuv{X6&z^B~W$n4r##mIKyj8}Q?$Byl=R9RiXOOo_v69_5sp(x=$`r5fMj9SDw}QH?EP}f94YUPrG~@=K zaFLbKJSskmHGff@G^3#Qv^$Phtna>!Q{xcvephBc9o0{_>l{;Tqy%fYdy z>Ce+wZx7z~ve~zAUI!<~lmBNouGk{o|3AS0C`-p4a?+(CF7e5=Z`SkITP|k`y8Xh(rDjF5@=}3K8rpx1_ZOby zc#$qVx3h!4v|x#dlh~qbui^`=n9|PAg9$xbc5l~@6E8(K{C)=0Y9!ub`)tmhY4tuY zo@={bP`}AR{J`t9;-dHF6@x}aC zJ6SHJO_&SRJ>j>j?RKC_qsi5W&i`z_9GUb@Y^I}HQT89kecl^59e19dTA>@831s~| w_3_L96t>v{Q`X05)L7^4Ih!;==Pz@q@Xx6H^DkpmfQgC0)78&qol`;+00>nli~s-t literal 346 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV4bq|yR>LR|mT1+11ntqZhKsU*lR zn88dpO+`LcGD#>Qwkr33;=j;8-annbek#k132?RkP*)p&eYFP7y4e z3N;3ZxILUKt5_#GRmA%J|4BjH)6VV6IJWEGx-gE{Qw_Em9tm>J+wH7(Te`4)vEp>; z;%%#}4a>!frZer_Bvg2PcE@UI#p_*`isk9+v?o;iJZ^Zs|M8=|8OL4k7E6kk>Km#* unPVwlr1vD|#LfxQt#?+$zq1wpcb)xwj6h_VzM~1yF$|urelF{r5}E++Ld3NI diff --git a/res/drawable-xhdpi/stat_sys_signal_4.png b/res/drawable-xhdpi/stat_sys_signal_4.png index d8a049ab75812f13e3eec291d5ffb4b81ae29bc0..6c28c5c642bf7c7426dd3916fcb701dad0c821bd 100644 GIT binary patch delta 586 zcmX@lbc1DrWIY=L0|S@2@@yc*SRCZ;#IWw1%u67LCEd~2k%3`jKlh(RRv@3Vz$3Dl zfr0NZ2s0kfUy%Y7lqzwJC<)F_D=AMbN@WO0%*-p%^K%VRC^ObG)iX3O_)@eGXzX!M z7srqY_p?`Ry_p>aj(zM{pP-ne*c73$ue7Ot?cUa@b9?0#j;fZ=F`HH*TJ%P`Q;ELnISLiHbe{LwN#(?G*B z{+03pKljBK&FhyPT%b~0c#Uxz?+x}}538kkye>^omrQu=uvhpQ7yAt%hxJUw&Dvc_ z^>Q=D?xz--^WN%PA8s~R73@=lkYe- zJ9Oic*!3-pAUtV4bq+$bnLR|mT64>WHI1aQ(z9h&m zn1Qjq@PG6_zdv?gbw9kU%1sRQ{^|6oEHfs+)w-_so$IzjXQ0w1PZ!4!i_=FhoaQ?i zAi?mkxiIAF+IN4x{_EGw30d@3M8adJMYo?nNDO~(kQcw`4&(EHcQ5W}YM0mbzb>ABZHHWWZvX4D?fr#!*B!E) p!u_1-DFjMQ$==uWd-a$7a#@NT*HVw{o(gmggQu&X%Q~loCIIZw$dLd5 diff --git a/res/drawable-xhdpi/stat_sys_signal_4_fully.png b/res/drawable-xhdpi/stat_sys_signal_4_fully.png index d8a049ab75812f13e3eec291d5ffb4b81ae29bc0..52450d440b94359f05435893a882a2135dbab910 100644 GIT binary patch delta 674 zcmX@lw4QZ>WIY=L0|S@2@@yc*SRCZ;#IWw1%u67LCEd~2k%3`jKlh(RRv@3Vz$3Dl zfr0NZ2s0kfUy%Y7lqzwJC<)F_D=AMbN@WO0%*-p%^K%VRC^ObG)iX3O_)@fxfq_ZR z)5S3)!u{;@-CoRr0&To(tQ!Sb-ZpV8n%3l6Z=&`w=m$qre!^7t3+w`CkE$-6I#uQ3 z1KrjiEMj8Unx-bKoU8Hb*ZGG&H||FIZ=5hExaLgD%$q+wZrI*ry#GD<x(tqif2)cHUWj{)xhp z84nWH*PjfJ3buUzN!GG+r}Flwyq{*Hu(hHA{$Y z)(_X3swVjO2**=}B@$ULLNoNWICIaLaClOpOQ{a)M!j~{OoQ$i9Rto8SyEuv8cbY2Z*B5HA0ftI-^DU5BF?=3 z8^tHpvsz7?#068+k-YQTxd*22cq^0Ossdj`G~LlIDxJ85Y1u3{OAgI8DW#qV&ug6C z#Hp-oSh*~ax+8-w!>#&?3w;+|Rwt1_oFPe@wfIQh`VlGW`_DxwBgO-=!$Oic*!3-pAUtV4bq+$bnLR|mT64>WHI1aQ(z9h&m zn1Qjq@PG6_zdv?gbw9kU%1sRQ{^|6oEHfs+)w-_so$IzjXQ0w1PZ!4!i_=FhoaQ?i zAi?mkxiIAF+IN4x{_EGw30d@3M8adJMYo?nNDO~(kQcw`4&(EHcQ5W}YM0mbzb>ABZHHWWZvX4D?fr#!*B!E) p!u_1-DFjMQ$==uWd-a$7a#@NT*HVw{o(gmggQu&X%Q~loCIIZw$dLd5 diff --git a/res/drawable-xhdpi/stat_sys_wifi_signal_0.png b/res/drawable-xhdpi/stat_sys_wifi_signal_0.png index a3f63dd7dc5b930fc012a1f04d9c5a29c80f777c..c8d4e7ba16603b653e88577e8afe983e7dbd8594 100644 GIT binary patch literal 915 zcmV;E18n?>P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv00095NklPjCts0ih^#$PectQfAJjWup65)?7%6w z15DPw{8^4L=q~hI&5qnvSS||Vc4hDb<9`homD_?dc#o)`#2vymD?x7{s_+}v;Fhu( zsl&st&MQRws2n{Pqf^1X)R4u{r_rmftWyc8u~Me<#PRi^LQ^( zn~s{-%4MCaGf)XCS9{toZy}AKe|_vZ^DCE&Z6{LTlkn+z?>5FlDhevkYll2Fa0nkz z?x+opu#2qN*F#KrPv{j?o)+!^=h5`Itiw6%{9TL6(b_Ml+#aGv%iJrSPeA|Qh{2;i zyXpj$6Fqfu327^-qx>|MA?j;_xRHCJE~@U) zm}`)rnv3EB^KI%be6f)u=e2Zy6&iho9yF+&28QUjz`W;oui7J-v=LPPhl7hK3MpS` ze9?*OW@#&^{GJu9azB6{B&w6G&7ktEF0O7*9X~)+wwAVo$}`(9e+FJXer;e=5mafF pNB0`(2AvMVi^C|qID9%I{{g)obUyA55_A9n002ovPDHLkV1g7_szLw& literal 831 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV6xz`)29;1lBdf5d~|UOTq}10}2^ z$S;_InO8uBk4xRgKQ=8n+|5XqMaUw;OO2H&DAA5lD=JkY#na5#(kWitAXJK--^JaQ zP1!2WRYS=mS}sJD+fPt4QaefC)ZRHjg+tUqUd$)PP{+|Xq5Y#(1Teg(dAc};Se(8Z za?`2FK}43-M0RVymB2vd0@s*JVuw{#PxIz({QrMyn*uA#o2BjNE}toA+xh%nu|7jR z&;0oco>~uF7dE9YG`J$zdF-5i278drK?iH4lOea9oL2IbxS6@XiOku@a5u0=^2}+T zFKp8ftp6?K`uXXL&_3}WL6#wg#xu26$d;AH9T9)Y;A;B8IB3<(yY;IWwxwodPhL=b zm-p)z+2UYj$6wbtI)y*h=ANC(^y1yT&Bv}jSN))ny}EH(@{RVzhE;PcGIRSbhBWS( z_((l$&F;*%%TyERAB?v8L6CMO!iQ!2X~oUl%Zj%;8K;-pYNePeo*kZ=q&()7-Ss-Rm>9WnDir^~Jf3 zjF;CRkGenS&7QzFTf|ZoV~pxcCYLH83x>|r{0+; d-&EhOFSW^Bef!Ig8Nf8a;OXk;vd$@?2>=^q^KAeC diff --git a/res/drawable-xhdpi/stat_sys_wifi_signal_1.png b/res/drawable-xhdpi/stat_sys_wifi_signal_1.png index 17b8e19c2d21f5f865b263eb0f1652e0b849e453..37019d1421e66c442506bb228ab69fbf4e59cc6c 100644 GIT binary patch literal 1008 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000ADNkl|7r&g=|7tDj*sQyo>RO)JZ2c07eWRc95KC#+mHj|(OvQ^H@6L}+(F(2iHJdoqE zPWUlay;NC)&XR3%R|pXg7UF~4k}X0#Yn+78pxnZJ!qu?`@6<~_K^7%ip91= zT;LPJ-Q(O%sfUCW6g;oFULfflC z-*`Rd=5nzz1O>%0@r&LQR=*!&uP{xn3%8LsqziIb{4EXirG~4=)LJdp*ma>naYp#n ztV}l`E0(JovT^f7Iv{>v77@D$!L2bHvIGSa-3>A#ZY#+mem9niHCB_XL9s%3&RZcu zRfV~~SgbJ;Itj`q{8+32;N6l(Cey)MG!9eAs&DEfDA?zoiW`(Ez>|cl0sV81H}@1Y^DdbFV}i>mQx4ApVaYPHJeT=5qeZ&SC07aMTpIOfi;lD?>K zCNl~e4ahVg#Au;Vn3AvZBf|G7&I$kb>h=0%GUK37m?8OIEEfM*bncrB`hBdLX>tiF z1C>gps!+e;A?2sejj2t)-^Z$%Ca<6vESJmU3O4P9{LK&0-$JilomDeUoOic*!3-pAUtV6xz`$r4;1lBde-w}&0;28Gn}Ok& zUJ~RN%)rbmAR^4irEcRNla?IrW+cNRWD$|%p~k8alxWYW70oZ1lIm$^W@6SY_C!s#I9V;HN=QL*vFfoa~&KmK3-cU$+v z{GWR-WlZo>oeGSzC7v#hAr_~vhD25$bP$nUw6I4>WvWuI>C&!SUcy_i-MZvj8hrQn z|9U6&N6sA|F162F9(k^&{N2vyaSZ^6VhwC zReI@DLbcusp6$o&QVoCWgft%2zF4ETf^R>w>vapJV)w?m2_4oC4hcSfXfwH|Y4J_H zV@EGKJN0J^YxG>N^zmIksln5?g=49snzWgk`ldNgN*d11_ftB4u{tiM<*Sp~i|PNn zpB4lNwTqI~}B*98A5gFRfB9jBHg-I_ElJo0)cA3d6rmlM}dB1cZd= zi7yO4#KLT!FUEiD%AHo%ctIbNZBw)-Mw%()MxFcWb@E(n*2HN^BDL`oLiRlK{9JKS zEzINu@1*t1ME}b6|4^*ly=n5H(u3FcOW(2o!tzEiIMedi%Swx5-p*UAzcP24$!vU; zJFjkP#oyA;58lQusa+#4Gx7Yx589g#wj{dWzt`(_v7h&k^&cjcWY_4{^M{OpNrb`E L)z4*}Q$iB}m9;X4 diff --git a/res/drawable-xhdpi/stat_sys_wifi_signal_1_fully.png b/res/drawable-xhdpi/stat_sys_wifi_signal_1_fully.png index 17b8e19c2d21f5f865b263eb0f1652e0b849e453..42e8f92b1f6b96daa1216e9a3a9d6b68b411b6c3 100644 GIT binary patch literal 1034 zcmV+l1oiugP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000AdNkli#7{>9o?s_2-gx8X`25G5kV)Rj zB-03^@H0bl&U+q{b53Gip-}iQm?vvd@vnS7U(>PWa?v6EhwQkE+ znJm`0z9c~x%QdkE%E~<<@OZH@#0F(9?H8-?zrqvCNhD9Xpflu(Sj8;&h4$x!`Fp~1 zRxZjNvHF$MBa_6>WCdL!55+3rJdr-xEo)_I0;^<)ume=85B|&%Gw2$LTg}|L14271 z4BHjKTf8ITtai&~r`!;09ETl(nvtM~#p>`_4hmb!GI0ZL68c;gYaa!7kHyGTU@s+P zFm#uc>kIlsg0c;`hD1TJO@c*F39COCVuLVEjtGyDFQmP)S%O;{=t~V( zkEyjltg(xd2E{JnU(L#N1F~Ydt4TI)-bk$y49p^87a_PcrY}uUFwxy0`^0S}X@sA~ zOtHo)kv1rrg!jA^BB@)#+;0?XjEHK2vI(CTD**VmTr&0!D+%mv+9;rZBVe^T@}7VlYHvYhPEs!|J9gO)j`{aM>$TE-~!`o z>bUS>1MVE>-1Yg=;Pp*qOhLT?nFfUD>+K(W)Aj7_$IhX5pTTd=aZUKYSAC#gDq{|c zo`DzhI)>hV(eHw#?yRWnW|L1lLP@aQ)k&7f_sM!xFUD1INSW}K{o zBB!uFbSw#}bKiArl9KjT%{W;GMYDqa((!N5mm@!Q%z4*JST*Bh9Tcq!``ZiL61wKI zYR2({rezHt(CM+R6Oic*!3-pAUtV6xz`$r4;1lBde-w}&0;28Gn}Ok& zUJ~RN%)rbmAR^4irEcRNla?IrW+cNRWD$|%p~k8alxWYW70oZ1lIm$^W@6SY_C!s#I9V;HN=QL*vFfoa~&KmK3-cU$+v z{GWR-WlZo>oeGSzC7v#hAr_~vhD25$bP$nUw6I4>WvWuI>C&!SUcy_i-MZvj8hrQn z|9U6&N6sA|F162F9(k^&{N2vyaSZ^6VhwC zReI@DLbcusp6$o&QVoCWgft%2zF4ETf^R>w>vapJV)w?m2_4oC4hcSfXfwH|Y4J_H zV@EGKJN0J^YxG>N^zmIksln5?g=49snzWgk`ldNgN*d11_ftB4u{tiM<*Sp~i|PNn zpB4lNwTqI~}B*98A5gFRfB9jBHg-I_ElJo0)cA3d6rmlM}dB1cZd= zi7yO4#KLT!FUEiD%AHo%ctIbNZBw)-Mw%()MxFcWb@E(n*2HN^BDL`oLiRlK{9JKS zEzINu@1*t1ME}b6|4^*ly=n5H(u3FcOW(2o!tzEiIMedi%Swx5-p*UAzcP24$!vU; zJFjkP#oyA;58lQusa+#4Gx7Yx589g#wj{dWzt`(_v7h&k^&cjcWY_4{^M{OpNrb`E L)z4*}Q$iB}m9;X4 diff --git a/res/drawable-xhdpi/stat_sys_wifi_signal_2.png b/res/drawable-xhdpi/stat_sys_wifi_signal_2.png index 744fbd96b431f854324754fd47ccd6de12ec639e..45c942054e43050f15c03895dbc589b3c3267a98 100644 GIT binary patch literal 1110 zcmV-c1gZOpP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000BUNkl4I)IUeV84edeAmP3G@ev=ocxph<<7pe^_1ry6ycQ?isFU zzB6-Yc7$!=wKIF~Ip6cyd(S!dE}EO0`(FqTE<}xAV`F0r+Mt6D;bE-C3M@g?u4nTJ zx)RS}Kfb_uOlB@&94GM>Hp71=s@GAkL6>41K7k?fU{!pNW7rDoMdP%n8q{033tpXQ z@P3`a8(5BL+@>l)w_p^}K!b7t2403JL&u=br2~ixKPcX@C()9pUC?#-8d0&xH?aNZ zaQ+@Ie1_9Fhp1mWAL1c2Getq4!gq)YBtPI3_F*TUu3$U%z#X7lefhHiVbC4uw3@wg zAHjA}7`H2fzg&D8E^7BI_M(PpoWvc%nk_*OBkFJw2jQ0T4AOwRVV^G%?W6MQxfq=a z?xlt-hkgg``pP~nLEVPjyvq#@@d8p|_fbQiMY&y7-@s76dj*ea#85#K%H}D63$8WgCdHeZ9 zdIjacE+Ti4ZJk1@a?qlX6Fm*`0pWf$7@t$P*TD?!ZsBM8<#*%JZXwlE(4yeuIOWwc zKo+Q*S^C}N(}#s~|B<3*SN#NC#z4Om14m|PGtK91+$kL|n=)0#>D;zu5Z%_?QOiY|0z*mGx@1(v>4Z{~3xkY)*z&mMsntuD?U1`?hd{^@c zsv!dSBr&85>?+)r{x10as^_qU+wPrMlGO;u&doPy17X(T&ol>foO54Y6ZKUzc5Wa+ zv65*}Csee`XE^6AU!L`8ipI_jDyY`fYPAalYp!nG^&jA8RjFNzXzbh|gK8~dCyS7? ze80%CwzoWq#?B2os5TJrGJfLw`s`dN8avkv8i|Tlw6PGKYY~kd2@fhN`XEGON5X>( c&)lN_0IQKfsrHiHXaE2J07*qoM6N<$f^QoIc>n+a literal 1001 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV6xz`&Rn;1lBde-zL$1g_n1;R8lM zRY{OvFatBMfQT?3m%5FAOj>fdn~@BQkVQn2hZ?I!aH2hH)sfn2|jgXPkJOYX~i^8&(8_$Mw<>5gcg0`vZ-LOmv))C zNQl2~fezD_xq&XMo*u3Kp}w)svBBNm(veG7@HOi-EnmKl|BA+ubH`E`wj2vM<-wzu zdPX6giI>Avj4jyMS1&nZgT&0u1|CrkdzY^{e?TFVGbv(Y^z4;di+6cD&h0(OrgA!& z`&0W|rvAOnTU(XIR}`mxxLw6$8F%2q#Lw3nj%+uS_TtHA49&b{nDOJsub=EJKiJtc z4Nl)=Q1;T1Fx?r^-Xg_yl7&sdA;O}4&gLH8s$D{pHg|D2uucqovup44nAoK~eF-bekEQ7hl59~kCo-PAXHgs!wrxU^UrknC z+`g@@jk@!6)FU}I8Yy@(=f6w!Z>?JB!B}thU9WA$X~ht^DN~xJOcm6#*m8=QNz12G oBT=Ml5>KaAmlmsJn+yZPfj{xx%e?rzfhmZ=)78&qol`;+0Ho(&Qvd(} diff --git a/res/drawable-xhdpi/stat_sys_wifi_signal_2_fully.png b/res/drawable-xhdpi/stat_sys_wifi_signal_2_fully.png index 744fbd96b431f854324754fd47ccd6de12ec639e..629de937a3917c9a556171fdd075543d9d8efe2b 100644 GIT binary patch literal 1205 zcmV;m1WNmfP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000CeNklkHb%NFhdTYi+Bvwhb%|sg<&wD3=giJaCX@FC^Wt3O{MXXb zGNGDy+iy zir!cuLV3~!U5bxk6|;N^wf_K`zwfx3un(QE`lZu=2a(ET1zm}5SOq+NXvQ|I!>S0@ zq8i!(veg&;dlF{Q7m#T+>&fke+F4<=T`72pdsH~9-D=dL4c0gw?GUON3i<}D4qxFl zXiIq(-hi(_eLjMYadnU4*1(e zwI71McwwkLCAQV)z+P(eqO?XdGN4@qa^D8PXw&&pmu7cj4?lr;*DOOO? z_gatKE3gTlAvjPz=m~3)`Nw(>(|#wU3o80rXb0GinSL&Fp*gJiy8@w4Yo?&0?ZGM< zq`gw}sSH}}T6CgwUDG|avHJSyNt!=evIP}=Nsr9rwmMKzDx4>5Duhz=+ z2GokxQ*CQ%-#^^YdvttTZ1jB1z;_pGW1|=9`x6t5T?bEo($cCR`XX(BKd=^&c9G&t zAtiE9w~!{fH^`1XtsRH99z1@o?8x|a?kCeJjZfUHKK#RPyW6{u(J%Nm9-~cY?4X>2 zx&@c>nb}*{mzW^HEv}j2ESnNjx2p!ezqGHlT|etI_m^-zG_ED*pk>2n7MBl={m!`= zCW_6&XZ~*NJkZ3sQ_~tdDCeM<&y)F?qZwl3vB~SD@w1nC+SfS$*KBiFC!Ctr*g-Q1 zDvJqwj^o`y1%$oC)4RBfVrXn3ePmi4jg`%8gF4thpQ;%A@fzpetDUCe>(f`Z9~gO@bF;rSc2Hh|;t5{q zpB&AgEUG^^I$M#&8apUoL8Xwe|8SfZl52l)Tn?*`!x}p%pFyRVVE?b~_~d^a3*CEZ zSz`y~JE&|R>@7ENN#LHz8apTz)M6ElsM2NK3$ezwm>0z=dM{XGTg;1dPjcQJf-Rd2 TyM!Ck00000NkvXXu0mjfyoo)P literal 1001 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic*!3-pAUtV6xz`&Rn;1lBde-zL$1g_n1;R8lM zRY{OvFatBMfQT?3m%5FAOj>fdn~@BQkVQn2hZ?I!aH2hH)sfn2|jgXPkJOYX~i^8&(8_$Mw<>5gcg0`vZ-LOmv))C zNQl2~fezD_xq&XMo*u3Kp}w)svBBNm(veG7@HOi-EnmKl|BA+ubH`E`wj2vM<-wzu zdPX6giI>Avj4jyMS1&nZgT&0u1|CrkdzY^{e?TFVGbv(Y^z4;di+6cD&h0(OrgA!& z`&0W|rvAOnTU(XIR}`mxxLw6$8F%2q#Lw3nj%+uS_TtHA49&b{nDOJsub=EJKiJtc z4Nl)=Q1;T1Fx?r^-Xg_yl7&sdA;O}4&gLH8s$D{pHg|D2uucqovup44nAoK~eF-bekEQ7hl59~kCo-PAXHgs!wrxU^UrknC z+`g@@jk@!6)FU}I8Yy@(=f6w!Z>?JB!B}thU9WA$X~ht^DN~xJOcm6#*m8=QNz12G oBT=Ml5>KaAmlmsJn+yZPfj{xx%e?rzfhmZ=)78&qol`;+0Ho(&Qvd(} diff --git a/res/drawable-xhdpi/stat_sys_wifi_signal_3.png b/res/drawable-xhdpi/stat_sys_wifi_signal_3.png index 4a4789792af9b29f4e95b0b3766161f6f6e39ba5..fc678a1e5521220d059e84028b8772d4f8a6175c 100644 GIT binary patch literal 1241 zcmV;~1Sb25P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000C?Nkl99gjVKa{fy5@p z#HgU6VpT9k!w&>B61-GJsR|^<5F+-nT`3r)RuOEhsfJXd62WT37`0VH?fTc%=h@6z zhuOE?-F7jx$)~e3bIyCdyEEs^teBgd`(FqTE=SdW{r&yRTDyaG;0D};>#+(^yOu2_ z=sMhoeRvZmFj6p#0UW|E+y%c(RBu7823?K&@fr+K4AzYIaR6Iky=a^|%?9-nZil~4 zH27k@gPmB5Xxy4+f^J41qJi4wBn-R;QHBMBdM`bXsPMJo6}uC4dFBhc32!4R7I_!8 ze*@mXuVxP8D25RAo6mE&4z)~C&@FfmQGw(G9KqA*!re`H0DIsH(5Sxr>%_l7%jI$v z2Oh*iv)Ny+8@7wWxLg^0N47Ow)b3t9g%YB15?2Uo)&+ejYfy9wFTf?`9;5*uhkf3{ ziN3zRkMJ=*!5Q~C?yu)$^j2^!HDo^YlZe*fWS7~BL0yJiyz>nW@eopB*HJ?s@9pg! z!#DVuP=Dg@z!lE_f{XZ^eS>=+Ka5nN)l+Sea$251O6udF^FN1s+2=3wR|r=u%XuH_6sH z;UvqCbr7pkNQFVO20krZ0rpaGl!8;)0PW^4e2#IvhrNIA!0IeRFG0)k?w)U|viuEeAIpDbYfJvjE+CqUZ^F`@+nPaE%76u)3WwqMclFoU{G8PavM#JRH^o4^IQ z6n%^H_>A+;WH0NZFtB|OQOn6WOUO~is6B-u%?8yDzcqung!l_S%OD@J?-yt^(Pn5j ziBbB!4ucwa_u$~*5Vdb-KMa_(5>z+R=~f(Jkn;v81Zt#0zwg){r-tvhH&e6WyQo?X zYNs^}bS@h>GDDkbwtpa+G@2&xi@BN&wHy>aEqpQgEjMt5{U5mJzQ8cb7{Z9hJZGEK z-hFCpPc;qF$YO%Z1=&a3G^PmSz1PF9^}rV!xkP!)z+JRGO22)mKEo5vH?)+X>L7qGF@|)4`8MUU^kc@)W1hoi zF1uHv`V7xANFz%PT1A*m_&(i(MVxb8-4OLv6s)K%L9ve8piHP}md|j`OTMOic*!3-pAUtV6xz`%Gkz$e7@|0o#xA@C+!`8P0L zr=7U=M7nHw0v>gnMc>Kp4E z?Cc%wE*`nGL$2AbDSbgA$CVR#DLF}6rw=5ktyJKeZj?S@YXe)06*u$dRZFLC<>k0> z>!vlw2`>w$y~}e>9C+}ACuzq9Z;2hdZZ2Rb=l5sRXP#h{Kf%7{No9@i-#^Sb29606 zVhTDm{54EE4yU9Z%H6=cy~AU(Mg@l(`>h8oh8sJ6bU1SyS65L}Rb9U15bLEg6O{C1 zb*4nwgpUxlA$mH2Kn*4y~?b eoJKsBz@$~!;G`+M#Q~Vg7(8A5T-G@yGywp+m)ULr diff --git a/res/drawable-xhdpi/stat_sys_wifi_signal_3_fully.png b/res/drawable-xhdpi/stat_sys_wifi_signal_3_fully.png index 4a4789792af9b29f4e95b0b3766161f6f6e39ba5..4cbfad83bfebffeabbe9b26c4dff2f234d694748 100644 GIT binary patch literal 1381 zcmV-r1)BPaP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000EkNklQVM`8|7z!4{;%hIikf@Uz*TC`PjxwW>oa((Gj zTg|mkd5)atT);VSY{d5Cez;$*`*-f=zOVZ*Yjkwx~@rurYrSJ$y!YdXF zO;7?$K=G`3qKH*gukdcr>R6Lcl^V!^i@};VOe~^{;AyZXN)!zs;kjTrOem_obU#>u zFBE!XDG=o|p6HcO4puOWXF&b8f%fmiAxdEf)PXf_JPP3=2s>G#H$o#=0bF*&c32Cy z!{QiN205S%Fj;(|p9OGUbY=Ij0~NQyM5kFRR|M*3$tYb(e0ivpoYn7USOb+{&EujB zp_oyk4~05-c@`c3rIee%oiGhFW+&9|^i{P!R$14+wYo95t*RkV=BsI=UaP0WsI8z} zD#@|ZxnSjBmn^w?MU{q>yvKHw#2w%URvwjfZAooQZ=S#By?XHbn?Mndykd-D)phYkM9IGrdCaLW9JpxtFz@6Au4FlX?OGGMsQb9 zWzh~_^>g|Do_Etb2ELa_ydeHdPTP@>AFXQWAf67}t)ciL8}vamcQH7Ul+mK02Hn?s zO>TfytVGRy{+@TVLi8~u;vzWoXU^WEpFH8K^%Gx*EIb!%fh77llEM@XbGV97y%m7>)JD zV~(FGl~JN3MJ%G?NpOSyy}G0S=$7h6r7WFT<Rp|M&0YO#TMxajRJ5k`&<6!A z-GjyTdk#NU;nO9e8_D@l8k^D4|B7NMCX(kU)n-bHSVctx0ncW)yAi2?DKhh zdPfkS@Svpz2Y=HE-(20epK+T(E4Ns&IQ?2(y$Ms$B_2_64TBbP&6KU%-93naR>G9C z&=$&WJ93I#tgm(YetQM=m%B0(5wGYh($swR*{3|4GO>`}Iq+R^oxhZ4C#EIlC2mnj zVr5QHni3q8Gvvn4Snbo+p&3IRI590TFH;c}^N}5){CCpe(AkU^-aJs)6wnpu-Y^cT zQ=9sP`*#l?gm65GOvY42MKZFdSiO_VmjsiT%1xjzHbN=NX;UBie#DsLjCF1v7uqLf zI-(-EpgE|kR+8JvlP~7B9{w<^{namoo>iwdSd~4I&*peb%u7N<;c8y#HOic*!3-pAUtV6xz`%Gkz$e7@|0o#xA@C+!`8P0L zr=7U=M7nHw0v>gnMc>Kp4E z?Cc%wE*`nGL$2AbDSbgA$CVR#DLF}6rw=5ktyJKeZj?S@YXe)06*u$dRZFLC<>k0> z>!vlw2`>w$y~}e>9C+}ACuzq9Z;2hdZZ2Rb=l5sRXP#h{Kf%7{No9@i-#^Sb29606 zVhTDm{54EE4yU9Z%H6=cy~AU(Mg@l(`>h8oh8sJ6bU1SyS65L}Rb9U15bLEg6O{C1 zb*4nwgpUxlA$mH2Kn*4y~?b eoJKsBz@$~!;G`+M#Q~Vg7(8A5T-G@yGywp+m)ULr diff --git a/res/drawable-xhdpi/stat_sys_wifi_signal_4.png b/res/drawable-xhdpi/stat_sys_wifi_signal_4.png index 0c4a89b4959e836d9836ba38075a3906ee7f69d2..7b1e923880c037ad5c97948382bb3f58c4795eb4 100644 GIT binary patch literal 1331 zcmV-31Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000D{Nkl3)1c91AYsGwik z%WOqjh_ICkti)`kh-lMMhZd-8FUhC~TP3$rTeZ!c{yKZ!;a<5Nzw4bDM{D5Wp53h)6hZC*m z#jZ$U3dMLPG#Y`z=pk4ae1LX%=g|q;WIrAIK_Pbq&k6X33&mzRM&E;u7C3*Zs;X+N zuC9K>^Ey<~b`p-lAvg>tXg&{Du&d|!indPt)7gkEXqk=uK%sPOz+kW-8o6eYJ|O8C z>O1f$q-}x65>Q<`TF+&W>ceg+Y@vJ{|6BOK#{XL&wuMfJwfOucR72fr7>gu*Ed)dJC5LseAI`!h`fkA;xDR(#r~L|4!a>*!i)dd&jP1m`s8OaKx-{s2fwuAP)Ndrv z$DkqgFBsQR-UnLfI<&PzFOaMrUc(3a!j{WV`aeMv=*1x6S{f@sBfXXQwUpZ(Kjm&h zlk%CHNg}>_hHV6i6KnbtxIxke-WlssC)TDz;rzfC$M&?ii23JmgbY#`X6#|d_yp^4FG&~c@s$U{e0 zgZgA+`TCHj85fPp?)9P3>|{n2W@o zOWhRclZj9<1*chXiX_h^z!4Nh62BIn7l^SMrV;b6%SRZQ3YF7150yF;@FAB_xV$gbID@ zlo6mCx)7tar;j&HXX>`(5oN!BtsD@^tlovkVI;O={BWfsog{6diB9Prd=~J;9Flpq8O^s z6o{Dtp0HgTe1#>Oic*!3-pAUtV6xz`%Gqz$e7@|0ozPA@IeB;{-5v zXO;x{1v79cXc!wPiK`?|J^uXv_nYf$TzhYS-I~CYa`E$A9j45u|JK-@``N?G{`bcA zIUUUtmK}R{$FlrNs}q-mq9CJM^13f?m^aT72%C8H?T<3Uvar z&Ye^%RdHaN_lJyfi&f3Qw71jK#WBRt+i&F@JRl&zk;1~--qM!IzHpaz%=EKnhj^Y$^_XD4=uqY2 zUh1TZ#cc7wKZXx+PeV3lTJt4ZJaEkqt(^b z&G{c*J;1P}<1{&)a_eyg{_q?Tn=4cEWT@gb4xd~f$#z={$=sC8&scH z1(u}VJr{Ag)`dS}ntH$y=`%039+~L)tKs1F^DHSXTH!1oyF?zI@f21&<~QrkUF+0W zCOc{w0;Q8Vr?Q{C?09OKke-E3NM)t8bcaTw mk|;BChgMgbiy@CC14G5bxQ&(XUw;CoGzL#sKbLh*2~7Yb1M}|y diff --git a/res/drawable-xhdpi/stat_sys_wifi_signal_4_fully.png b/res/drawable-xhdpi/stat_sys_wifi_signal_4_fully.png index 0c4a89b4959e836d9836ba38075a3906ee7f69d2..ebd7a89969db3c8f496aa2802f120b3e517ce49f 100644 GIT binary patch literal 1526 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv000GLNkl>cgDDl$p|n8lQ|T}a17U$w$M>lv2?YAQh0$4gl!1wkO>NH@DedzLL@Ou zOuT(?F=p{H7w3(r#2fg3-nH1ieM(1bu)#}-LZR?WP(_h&WtmcQ-6K`HHTzWBaQqJC`blvY@WkI3{Se{#ZEF;y@ zH%t)SDc{X$Ip*gtHn4=}sucWVr{v!c2BrffO88H4^2+w$`3DaW3x!XFloM3GL` zfqTJbXL&ae+ln(bZu7zgnY`+>%k%L5J&-0_$aJPwe%l~73`m|<9I?& zH+a5!!C`SWdLlTck|78QnxXX|4`_?D^IhCF-GjA#3hgtJ{(9hZ*Dr_cIn2%sW$ z<-&&SN9i$>az%+<7{L43YI9spvJN)69aWn^7AOGp8jCbqV!x+Dy zq!YzUl8_@x900DQGYPh#zK7NNjYzNo&^f9qQP;NQ7+Qz6nY!PiqbS4F{SGb~_QINm zo+lJa1N!U*;vYq^*yYbsF3JhXX_VB)N)mEK2^|tn(auC5&EO8~*rS;ZUE>g+ccbB8 z|DAUD9<{y=aeDyG+?8D}h_g#?f)#YJ5K-b51V!L8Q~uzS?RE&zOt5ksw1iU4rzde1 z>yU?TNo!EQ+9fj|3l$B)F%^b&b`H<1j2v)Txl~wfEWxvwlM|D&U{Mf?nHfRJN?@a0 z#M$_v_#J09jT_ZK%*lyK2}G0#gX}oUD}&-Lkl6fEM^2qJ6-mY0k_)P%HtI9izkTck zn9D~Z{s>f*2#4$>W^aPdOC%#PDtCi@PUwgd+o%uvzK56r#ESpaxj?&L79&c8XBz~% ziIe1hoRiO_n|j_&X?)>hf}W|4+Q1#SfvrFc;gN?#{IOV35uBg5CO4k(dAG!u>7y*; zi5v0E#&cp)f+7lT!Yln6B`b0~DZv&cq9Hr&6y7XpW8uW4Tn$ko#R=Eu1xd((4PHt(DGs*s c|Ho{|zw5Oic*!3-pAUtV6xz`%Gqz$e7@|0ozPA@IeB;{-5v zXO;x{1v79cXc!wPiK`?|J^uXv_nYf$TzhYS-I~CYa`E$A9j45u|JK-@``N?G{`bcA zIUUUtmK}R{$FlrNs}q-mq9CJM^13f?m^aT72%C8H?T<3Uvar z&Ye^%RdHaN_lJyfi&f3Qw71jK#WBRt+i&F@JRl&zk;1~--qM!IzHpaz%=EKnhj^Y$^_XD4=uqY2 zUh1TZ#cc7wKZXx+PeV3lTJt4ZJaEkqt(^b z&G{c*J;1P}<1{&)a_eyg{_q?Tn=4cEWT@gb4xd~f$#z={$=sC8&scH z1(u}VJr{Ag)`dS}ntH$y=`%039+~L)tKs1F^DHSXTH!1oyF?zI@f21&<~QrkUF+0W zCOc{w0;Q8Vr?Q{C?09OKke-E3NM)t8bcaTw mk|;BChgMgbiy@CC14G5bxQ&(XUw;CoGzL#sKbLh*2~7Yb1M}|y diff --git a/res/drawable-xhdpi/stat_sys_wifi_signal_null.png b/res/drawable-xhdpi/stat_sys_wifi_signal_null.png index 33e8cce07fd41857a1efc876ed521f6e9d60154c..44c1466ebd093abddf89a3d686f6018e89c6ca1b 100644 GIT binary patch delta 1161 zcmV;41a|w!29gPo8Gi-<000U%BbxvK00d`2O+f$vv5yP zfP?@5`Tzg`fam}Kbua(`>RI+y?e7jT@qQ9J+u010qNS#tmY4#NNd4#NS*Z>VGd z000_vMObuGZ)S9NVRB^vP+@6qbS_RsR3LUUE;TMOFfjCTp??4X1L8?UK~z{r#hBNN zB}Ej6$2F~SF{6Tt=*prZCR7&mK@m|OL=5Y$$|7PwR7~iAf-YhLQ87K39?X~nnEpAx zudQEmZcp#boteJwfp5C|)JaucRb6+MHX_T*%i*9o=xi4zNzho4cnwDFH!UrYLASJP zAH1RdXgFa6^?zeNGx6q<7VCd7`=b;vMK0FUUgT1w& zOW{z6%@FM2)G@7fNx+I90LiE;Cb#?j|_cbEasKq{B#Q430qZKwS~E| zPKOw$*MEJ2DW&A7BYGsb3w#CpRJi(_oLN22nHaZF(@SC}57d!-1-|#jJ;=%L2>OcE zExb4-Ia)q(U><{CU}qX{hQHupum^oF7AeV5@;Udd!+JV{G`M;G0~+|;kDg2^H7+<> zUatiU+uNSE_$Nbp2)HQzglnKPXxA2Y8cEC&-+%4IE$msaj;^K{Wt3bkeiL2J7c||Z z1twOBdk(mT`Q@0I^JB)RfUEa&IHTz%DKIfgJU4lB`Rz4tZQHNYcK90J1&=@KGP?gc ztyAJ#;`o+c2e&fwsT&`JC?ON{a`+AQK|b&sDlk6HU;J!62hKC|*p|G_YanTa^xy_? z1%LVRPvG8e9;x;ae~(SZHNMZ|BUU8_jX1c)80e1nymp`>u`PbLz~5lps_$4;ilM#K z(WU()7|^}Qwz&$7O|ick{(z^z*QmaK8*@pFi=&g*@14gQ_at?z7MQkTcM-Tn8OM0) z)>l|0PLSaKcK851F`V6Wqrsyq?Vi!xntwh7TMFPOV!K1kzKF?4BB4hOJH4CmTGw<7=nAe(E+iVpS5Tk-*o13&dYoPHc-wLAiG! zJptNjU;R5KlM*xu?gA6v)1K8^RNCDtY}c;(wTKf+0z*c|5p(3+12Zz&Oic*!3-pAUtV6xz`)2F;1lBde-!-xKR>0e9vCj+ zB|(0{49vU&B79ux*8VYR$>DBBGAu$C5uR$S8bOKnjGEE>5-F*6W+qln@!|%dQtU2C zaqgmQO0N3BOdj$fs@#5pkvhhvUbfBwDx3}qVm{iIhOt^4zTOEI_IfvfVLr>##WBR< z^wp5a=q3jdSyuzu=>bzhVgioD1ZK`uxNdT0i|gwD|AVEPLIf^Om$ULWKKyX^_c^;6 zJ{KZ zm*xvTyS~NMkB-h=o@5aybgC(WGv=MqOsy5U`K1dR>z8O=x_u<^)5&RDeqLdVIesPV z71K{Io-Mu7#kG%_bG}{cxpUzE>z5yuTGzd+$d0pYWa(Np|6QrwclPcDsq-B?OV#x?oeT6ckKPM63E!Ii zEIzYxKjX~@`>vTUFN^aii)t@^Q+>4HV{EFEJ$tX6fr56<{S&KKXN6RpSi|o($-*sU z?c&-gB7HwpV%+$q_D%?RyUS01?cb~!JNtj$nse^f##)0Pmoh&;?q1xuyQl jQ|fCMh4TNgu3`46HGjJ+<^EYbP0l+XkKP22SY From 427e8a2038b4527960a35435946e42edd55a8007 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sun, 10 Nov 2013 17:52:52 +0100 Subject: [PATCH 122/255] Fixed blurry colored statusbar icons Finally found it. The reason why icons were blurry was that the resources were created using XModuleResources instead of getting them from GB context that was cloned from existing real context, that carries the information about device metrics. This means drawable-hdpi lowres icons were always used no matter what the real screen resolution was... Lesson learnt: always clone GB context from existing context if there is a need for using resolution specific resources --- .../gm2/gravitybox/ModStatusbarColor.java | 49 ++++++++++--------- .../gm2/gravitybox/StatusBarIconManager.java | 7 +-- 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/ModStatusbarColor.java b/src/com/ceco/gm2/gravitybox/ModStatusbarColor.java index d69ae3214b..2515d345fd 100644 --- a/src/com/ceco/gm2/gravitybox/ModStatusbarColor.java +++ b/src/com/ceco/gm2/gravitybox/ModStatusbarColor.java @@ -23,7 +23,6 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.res.Resources; -import android.content.res.XModuleResources; import android.graphics.Color; import android.graphics.PixelFormat; import android.graphics.Rect; @@ -86,7 +85,6 @@ public class ModStatusbarColor { private static Object mPhoneWindowManager; static { - mIconManager = new StatusBarIconManager(XModuleResources.createInstance(GravityBox.MODULE_PATH, null)); mIconColorEnabled = false; mSkipBatteryIcon = false; mBatteryLevel = 0; @@ -144,7 +142,8 @@ public void onReceive(Context context, Intent intent) { @Override public void onReceive(Context context, Intent intent) { if (DEBUG) log("received broadcast: " + intent.toString()); - if (intent.getAction().equals(GravityBoxSettings.ACTION_PREF_STATUSBAR_COLOR_CHANGED)) { + if (intent.getAction().equals(GravityBoxSettings.ACTION_PREF_STATUSBAR_COLOR_CHANGED) + && mIconManager != null) { if (intent.hasExtra(GravityBoxSettings.EXTRA_SB_BG_COLOR)) { int bgColor = intent.getIntExtra(GravityBoxSettings.EXTRA_SB_BG_COLOR, Color.BLACK); setStatusbarBgColor(bgColor); @@ -465,22 +464,6 @@ public static void init(final XSharedPreferences prefs, final ClassLoader classL mIconColorEnabled = prefs.getBoolean(GravityBoxSettings.PREF_KEY_STATUSBAR_ICON_COLOR_ENABLE, false); mSkipBatteryIcon = prefs.getBoolean(GravityBoxSettings.PREF_KEY_STATUSBAR_COLOR_SKIP_BATTERY, false); - mIconManager.setIconColor( - prefs.getInt(GravityBoxSettings.PREF_KEY_STATUSBAR_ICON_COLOR, - mIconManager.getDefaultIconColor())); - mIconManager.setDataActivityColor( - prefs.getInt(GravityBoxSettings.PREF_KEY_STATUSBAR_DATA_ACTIVITY_COLOR, - StatusBarIconManager.DEFAULT_DATA_ACTIVITY_COLOR)); - mIconManager.setFollowStockBatteryColor(prefs.getBoolean( - GravityBoxSettings.PREF_KEY_STATUSBAR_COLOR_FOLLOW_STOCK_BATTERY, false)); - - try { - int signalIconMode = Integer.valueOf(prefs.getString( - GravityBoxSettings.PREF_KEY_STATUSBAR_SIGNAL_COLOR_MODE, "0")); - mIconManager.setSignalIconMode(signalIconMode); - } catch (NumberFormatException nfe) { - log("Invalid value for PREF_KEY_STATUSBAR_SIGNAL_COLOR_MODE preference"); - } mRoamingIndicatorsDisabled = prefs.getBoolean( GravityBoxSettings.PREF_KEY_DISABLE_ROAMING_INDICATORS, false); @@ -497,6 +480,26 @@ protected void afterHookedMethod(final MethodHookParam param) throws Throwable { intentFilter.addAction(GravityBoxSettings.ACTION_DISABLE_ROAMING_INDICATORS_CHANGED); mPanelBar.getContext().registerReceiver(mBroadcastReceiver, intentFilter); + Context gbContext = mPanelBar.getContext().createPackageContext(GravityBox.PACKAGE_NAME, + Context.CONTEXT_IGNORE_SECURITY); + mIconManager = new StatusBarIconManager(gbContext.getResources(), + mPanelBar.getContext().getResources()); + mIconManager.setIconColor( + prefs.getInt(GravityBoxSettings.PREF_KEY_STATUSBAR_ICON_COLOR, + mIconManager.getDefaultIconColor())); + mIconManager.setDataActivityColor( + prefs.getInt(GravityBoxSettings.PREF_KEY_STATUSBAR_DATA_ACTIVITY_COLOR, + StatusBarIconManager.DEFAULT_DATA_ACTIVITY_COLOR)); + mIconManager.setFollowStockBatteryColor(prefs.getBoolean( + GravityBoxSettings.PREF_KEY_STATUSBAR_COLOR_FOLLOW_STOCK_BATTERY, false)); + + try { + int signalIconMode = Integer.valueOf(prefs.getString( + GravityBoxSettings.PREF_KEY_STATUSBAR_SIGNAL_COLOR_MODE, "0")); + mIconManager.setSignalIconMode(signalIconMode); + } catch (NumberFormatException nfe) { + log("Invalid value for PREF_KEY_STATUSBAR_SIGNAL_COLOR_MODE preference"); + } mIconManager.initStockBatteryColor(mPanelBar.getContext()); } }); @@ -516,7 +519,6 @@ protected void afterHookedMethod(final MethodHookParam param) throws Throwable { @Override protected void afterHookedMethod(final MethodHookParam param) throws Throwable { Context context = (Context) XposedHelpers.getObjectField(param.thisObject, "mContext"); - mIconManager.setSystemUiResources(context.getResources()); mTransparencyManager = new TransparencyManager(context); mTransparencyManager.setStatusbar(XposedHelpers.getObjectField(param.thisObject, "mStatusBarView")); @@ -594,7 +596,8 @@ protected void afterHookedMethod(final MethodHookParam param) throws Throwable { if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) { mBatteryLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0); mBatteryPlugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0) != 0; - if (mIconColorEnabled && !mSkipBatteryIcon && mBattery != null) { + if (mIconColorEnabled && !mSkipBatteryIcon && mBattery != null + && mIconManager != null) { Drawable d = mIconManager.getBatteryIcon(mBatteryLevel, mBatteryPlugged); if (d != null) mBattery.setImageDrawable(d); } @@ -610,7 +613,7 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { Resources res = ((LinearLayout) param.thisObject).getContext().getResources(); - if (mIconColorEnabled) { + if (mIconColorEnabled && mIconManager != null) { Object mobileIconId = null; Object[] mobileIconIds = null, mobileIconIdsGemini = null; Object mobileActivityId = null, mobileActivityIdGemini = null; @@ -818,6 +821,8 @@ private static void setStatusbarBgColor(int color) { } private static void applyIconColors() { + if (mIconManager == null) return; + if (mSignalClusterView != null) { XposedHelpers.callMethod(mSignalClusterView, "apply"); } diff --git a/src/com/ceco/gm2/gravitybox/StatusBarIconManager.java b/src/com/ceco/gm2/gravitybox/StatusBarIconManager.java index 97fbac6669..705cb3dd86 100644 --- a/src/com/ceco/gm2/gravitybox/StatusBarIconManager.java +++ b/src/com/ceco/gm2/gravitybox/StatusBarIconManager.java @@ -58,8 +58,9 @@ private static void log(String message) { XposedBridge.log(TAG + ": " + message); } - public StatusBarIconManager(Resources res) { + public StatusBarIconManager(Resources res, Resources sysUiRes) { mResources = res; + mSystemUiRes = sysUiRes; mIconColor = getDefaultIconColor(); mDataActivityColor = DEFAULT_DATA_ACTIVITY_COLOR; mFollowStockBatteryColor = false; @@ -149,10 +150,6 @@ public void initStockBatteryColor(Context context) { } } - public void setSystemUiResources(Resources res) { - mSystemUiRes = res; - } - public void setSignalIconMode(int mode) { mSignalIconMode = mode; clearCache(); From 380ec23a277a096de0d6b021dc075e33c5b03340 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sun, 10 Nov 2013 21:36:09 +0100 Subject: [PATCH 123/255] Fixed bug in ColorPickerPreference --- .../margaritov/preference/colorpicker/ColorPickerDialog.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/net/margaritov/preference/colorpicker/ColorPickerDialog.java b/src/net/margaritov/preference/colorpicker/ColorPickerDialog.java index 1d834bea93..88f540c301 100644 --- a/src/net/margaritov/preference/colorpicker/ColorPickerDialog.java +++ b/src/net/margaritov/preference/colorpicker/ColorPickerDialog.java @@ -97,7 +97,9 @@ public void afterTextChanged(Editable s) { if (s.length() > 5 || s.length() < 10) { try { int c = ColorPickerPreference.convertToColorInt(s.toString()); + mHexInternalTextChange = true; mColorPicker.setColor(c, true); + mHexInternalTextChange = false; mHexVal.setTextColor(mHexDefaultTextColor); } catch (NumberFormatException e) { mHexVal.setTextColor(Color.RED); @@ -163,6 +165,8 @@ private void updateHexLengthFilter() { } private void updateHexValue(int color) { + if (mHexInternalTextChange) return; + mHexInternalTextChange = true; if (getAlphaSliderVisible()) mHexVal.setText(ColorPickerPreference.convertToARGB(color)); From dcd17cb2e301bc9014772b8cf208efeb93d9b56a Mon Sep 17 00:00:00 2001 From: C3C0 Date: Sun, 10 Nov 2013 21:39:27 +0100 Subject: [PATCH 124/255] Navigation key colors (foreground + background on-press glow) --- res/values/colors.xml | 4 ++ res/values/strings.xml | 4 ++ res/xml/gravitybox.xml | 12 ++++ .../gm2/gravitybox/GravityBoxSettings.java | 14 +++++ .../ceco/gm2/gravitybox/KeyButtonView.java | 7 +++ .../ceco/gm2/gravitybox/ModNavigationBar.java | 56 +++++++++++++++++++ 6 files changed, 97 insertions(+) diff --git a/res/values/colors.xml b/res/values/colors.xml index a283d875e3..e7b39e2f78 100644 --- a/res/values/colors.xml +++ b/res/values/colors.xml @@ -29,4 +29,8 @@ @android:color/holo_blue_light + + #e8ffffff + #40ffffff + diff --git a/res/values/strings.xml b/res/values/strings.xml index a736de0e4f..e8736068e5 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -766,4 +766,8 @@ Color and transparency Dimensions + + Navigation key color + Navigation key glow color + diff --git a/res/xml/gravitybox.xml b/res/xml/gravitybox.xml index 94f0c2fd9e..5f0840af2b 100644 --- a/res/xml/gravitybox.xml +++ b/res/xml/gravitybox.xml @@ -608,6 +608,18 @@ android:title="@string/pref_navbar_launcher_enable_title" android:defaultValue="false" /> + + + + Date: Sun, 10 Nov 2013 22:39:07 +0100 Subject: [PATCH 125/255] Derp... Move navbar key color options under correct category --- res/xml/gravitybox.xml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/res/xml/gravitybox.xml b/res/xml/gravitybox.xml index 5f0840af2b..49a9dc786a 100644 --- a/res/xml/gravitybox.xml +++ b/res/xml/gravitybox.xml @@ -608,18 +608,6 @@ android:title="@string/pref_navbar_launcher_enable_title" android:defaultValue="false" /> - - - - + + + + Date: Mon, 11 Nov 2013 08:48:28 +0900 Subject: [PATCH 126/255] Updated Japanese Translation --- res/values-ja/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index a09b8d49c9..da5bc92451 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -751,4 +751,8 @@ ナビキー 色と透過度 サイズ + + + ナビキーの色 + ナビキーのグロー色 From 32fba272c7f64dcbf460e789847d33fdba3117c7 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 11 Nov 2013 09:47:00 +0100 Subject: [PATCH 127/255] Option to set navigation bar background color --- res/values/colors.xml | 1 + res/values/strings.xml | 3 +- res/xml/gravitybox.xml | 6 +++ .../gm2/gravitybox/GravityBoxSettings.java | 7 +++ .../ceco/gm2/gravitybox/ModNavigationBar.java | 47 +++++++++++++------ 5 files changed, 48 insertions(+), 16 deletions(-) diff --git a/res/values/colors.xml b/res/values/colors.xml index e7b39e2f78..4bc88aa7c9 100644 --- a/res/values/colors.xml +++ b/res/values/colors.xml @@ -32,5 +32,6 @@ #e8ffffff #40ffffff + #ff000000 diff --git a/res/values/strings.xml b/res/values/strings.xml index e8736068e5..f7ce5da60e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -766,8 +766,9 @@ Color and transparency Dimensions - + Navigation key color Navigation key glow color + Navigation bar background color diff --git a/res/xml/gravitybox.xml b/res/xml/gravitybox.xml index 49a9dc786a..d308bcf00e 100644 --- a/res/xml/gravitybox.xml +++ b/res/xml/gravitybox.xml @@ -644,6 +644,12 @@ android:defaultValue="@color/navbar_key_glow_color" alphaSlider="true" /> + + Date: Mon, 11 Nov 2013 10:02:20 +0100 Subject: [PATCH 128/255] Option to disable lockscreen shade Removes dark tint from lockscreen --- res/values/strings.xml | 4 ++++ res/xml/gravitybox.xml | 6 ++++++ src/com/ceco/gm2/gravitybox/GravityBoxSettings.java | 1 + src/com/ceco/gm2/gravitybox/ModLockscreen.java | 12 ++++++++++++ 4 files changed, 23 insertions(+) diff --git a/res/values/strings.xml b/res/values/strings.xml index f7ce5da60e..03bbc5de45 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -771,4 +771,8 @@ Navigation key glow color Navigation bar background color + + Disable lockscreen shade + Removes dark tint from lockscreen + diff --git a/res/xml/gravitybox.xml b/res/xml/gravitybox.xml index d308bcf00e..8a40449de8 100644 --- a/res/xml/gravitybox.xml +++ b/res/xml/gravitybox.xml @@ -103,6 +103,12 @@ android:summary="@string/pref_lockscreen_bg_image_summary" android:order="3" /> + + kgViewMediatorClass = XposedHelpers.findClass(CLASS_KGVIEW_MEDIATOR, null); final Class kgUpdateMonitorClass = XposedHelpers.findClass(CLASS_KG_UPDATE_MONITOR, null); final Class kgUpdateMonitorCbClass = XposedHelpers.findClass(CLASS_KG_UPDATE_MONITOR_CB, null); + final Class kgViewBaseClass = XposedHelpers.findClass(CLASS_KG_VIEW_BASE, null); boolean enableMenuKey = prefs.getBoolean( GravityBoxSettings.PREF_KEY_LOCKSCREEN_MENU_KEY, false); @@ -539,6 +541,16 @@ protected void afterHookedMethod(final MethodHookParam param) throws Throwable { } } }); + + XposedHelpers.findAndHookMethod(kgViewBaseClass, "resetBackground", new XC_MethodHook() { + @Override + protected void beforeHookedMethod(final MethodHookParam param) throws Throwable { + if (mPrefs.getBoolean(GravityBoxSettings.PREF_KEY_LOCKSCREEN_SHADE_DISABLE, false)) { + ((View) param.thisObject).setBackground(null); + param.setResult(null); + } + } + }); } catch (Throwable t) { XposedBridge.log(t); } From dfd388e62e2007344e46c76f6d138bbb485bd823 Mon Sep 17 00:00:00 2001 From: Noumi Ryoko Date: Mon, 11 Nov 2013 18:59:03 +0900 Subject: [PATCH 129/255] Updated Japanese Translation --- res/values-ja/strings.xml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index da5bc92451..7b545f43f7 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -752,7 +752,13 @@ 色と透過度 サイズ - + ナビキーの色 ナビキーのグロー色 + ナビバーの背景色 + + + ロック画面シェードを無効化 + ロック画面のシェードをなくします。 + From 7578d1bde42c83354450dd5bc1145124ad7693e8 Mon Sep 17 00:00:00 2001 From: liveasx Date: Mon, 11 Nov 2013 19:01:08 +0800 Subject: [PATCH 130/255] Update strings.xml --- res/values-zh-rCN/strings.xml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index badcfadfce..8636b4f258 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -758,12 +758,21 @@ 您的屏幕可能不支持低于20的值。如果您的屏幕亮不起来, - 按住音量+ 键至少7秒钟将会还原亮度,调整亮度请使用更大的值 + 按住 音量+ 键至少7秒钟将会还原亮度,调整亮度请使用更大的值 普通 虚拟按键 颜色和透明度 大小 + + + 虚拟按键颜色 + 虚拟按键发光颜色 + 虚拟按键背景颜色 + + + 禁用锁屏阴影 + 锁屏后删除暗色调 From ce2a1189b0b172ed8c91bb0035111c1826ad8d28 Mon Sep 17 00:00:00 2001 From: ch-vox Date: Mon, 11 Nov 2013 13:24:10 +0100 Subject: [PATCH 131/255] Updated French translation Navigation key colors (foreground + background on-press glow) Option to disable lockscreen shade --- res/values-fr/strings.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index d998514b94..77a1b41a72 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -766,4 +766,13 @@ Couleur et transparence Dimensions + + Couleur touche de navigation + Couleur brillance touche de navigation + Couleur de fond barre de navigation + + + Désactiver le voile sur écran de déverrouillage + Supprime la tinte sombre de l\'écran de déverrouillage + From 334d8b3dce1ebb3e570da44e73992dcd91f52890 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 11 Nov 2013 14:44:10 +0100 Subject: [PATCH 132/255] Extended statusbar icon manager Now supports basic icons like alarm, bluetooth, ringer vibrate, headset. Basic icons can be handled in 2 different ways: 1) there is a need for better drawable that supports color filters (e.g. bluetooth). In such case, basic icon has mapped ID of replacement drawable. Icon manager will take replacement drawable and apply color filter to it. 2) stock icon is simple and handles color filters just fine thus it is not necessary to replace it. In such case, mapped icon ID will be null and icon manager will apply color filter to existing stock icon. Additional icons (like USB, ADB, ...) can be added by simply putting them into mBasicIconIds map. --- res/drawable-hdpi/stat_sys_data_bluetooth.png | Bin 0 -> 966 bytes .../stat_sys_data_bluetooth_connected.png | Bin 0 -> 1055 bytes .../stat_sys_data_bluetooth.png | Bin 0 -> 1466 bytes .../stat_sys_data_bluetooth_connected.png | Bin 0 -> 1486 bytes .../gm2/gravitybox/ModStatusbarColor.java | 141 +++++++++++++----- .../gm2/gravitybox/StatusBarIconManager.java | 47 +++++- 6 files changed, 149 insertions(+), 39 deletions(-) create mode 100644 res/drawable-hdpi/stat_sys_data_bluetooth.png create mode 100644 res/drawable-hdpi/stat_sys_data_bluetooth_connected.png create mode 100644 res/drawable-xhdpi/stat_sys_data_bluetooth.png create mode 100644 res/drawable-xhdpi/stat_sys_data_bluetooth_connected.png diff --git a/res/drawable-hdpi/stat_sys_data_bluetooth.png b/res/drawable-hdpi/stat_sys_data_bluetooth.png new file mode 100644 index 0000000000000000000000000000000000000000..019e600aef6f50e3a9c3e87c4be4f9f753ad390d GIT binary patch literal 966 zcmV;%13CPOP)dO(}nq`Q`pp_^6( z5zQ*5QVBuIww9TZloC-yY7;Y#Iq#W%XZpTjzR_%x7cTdld(ZiwbN}buYciFNKp^0e z)m*%pS3DliUW2JJGBR@2Y&MUoC_!dc1XWQKry}R0qoV^T&vUt4Yez@NKmoG7y?uhs zoFR@Lc*7x~PJoq90MD#hSBU=@*{o{HU6h2#szk_SGW9Gr4ou=AqfJ%SpJHM0`Ft+9FV(_*nq=Ckha?>9F!H8t35wrzTNV6w?%a;~$pGn!Ahxw-i|FvqjmY)2##nPV%> z^xN(BD}`Heh-2m!F{edOr_T)&;7QIT>u95>J-`7nxd#6YIrGl@jP$1;o>FF5CUP}TRK+-5U{gKcqfQ7WD^ zkjcS*mXpzFG~oC9-`3XFo)*dsMq1TfUawctoRs35>PSCaF4tf@9`B+-4-oDi+baem ziff9+VwdGvz*nNWx?1jGGt`caDhx~-4MN}rbcex+4e?Y6YbE40bc^QvsbIw6Fd=to zj2Dlm6e@i z&sz#)__E2wN>m?!7x@j2@vkiLzr?1drot5!6^Cf4Qh zDl02zmX?-g3DDqnyU(!Y{3{Sc{(V=efjoHLaU<7l1IVQmMLoN5)Bhg70j!g&-S}F1SO5S307*qoM6N<$g2>y-k^lez literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/stat_sys_data_bluetooth_connected.png b/res/drawable-hdpi/stat_sys_data_bluetooth_connected.png new file mode 100644 index 0000000000000000000000000000000000000000..919b616aefa161999f85165d8782e969948760bc GIT binary patch literal 1055 zcmV+)1mOFLP)NCDoyHi*aUzC?vYnQXz?;bj;#Pl*L z4V3ov@vO_z-oBS`PIGaxz)c%>A2>2h%-h^VNfXH?*3xb!_Wjh(*n3!{?1p|CL1Z(j zMzAK~w9%jnolQfRPXF0rjD1#(wgSxN6g55dR?ykG@?m9KIme%?Z1hNJ|F%nMpzf|! z)oe2%vsy?V1gya}DcjB^QSne$wDGanH}?V4#Ra)z4kH-_@*)mQ1{0wpu{4JXfV*7~ zSF#l^9w|gz0;cwyQM#L!Fck_m{2PNHy#h*K&l)9$ZWqtq3#A<5!*u{MGwsbB`X5T+ zzf_8AYY%*Ox5st}!yb2C8!4T@ZwN-M^A915Q}`K?ntATj3)@fUlH!s51P(T4P8tWk zM|Z1Hy9XLw&fXT-EQRxa4ZN=wWfvPA%^(}L$rWmS- znUDF*t2(0aJJ{Z`&{6KmMsc*l=zg~5ObaImQ5h%y*!#eEd}VA@tl2>(Io{04B1f94 zslSt&tyNzi#XGoW^=rpEXxZ|ct#}8?^Ebihmw$Bx7t`oo9W#ns>-UC<{Kn!91VJro zv2+(({UU*gIwjR3_t7BsyWkUPFLY4)kZu&pOW2gi(fhT%L3`!ypoQol zkSq+Qjy;4ymg(jeGADrr6hbz~Btam8ig6%l3=`S(k2yu1^AUdqivB_P!^_?8`Tcyp z?>lPEel9dPCRijAg_<)Bd2rqVzqlAj&3qzFT6 zrA5gW%;M1lCzDyrf&AL+0$XjlO+!o5_9Cf15)!z8Kp{R?g_|dRTImWe3D^E(REn&K z2<2Mos!_!jE23vPfF#S6G8=~D2tmkkRWd=~Nr(c&6(|N@LWZlzWP((vk+nw(wQ;na z%rltQbitig>J$VIiK1SwSMF8HSN$4S-?nHdo{qgw~Kb90QX=RTx-Xl?%89vq39`H*%VxNuvfc;cAs04!BW) z<2uY_G7yRsr9N4$(cnaYVa78AOf{fQ z9P2_>;!83c=r=+~H}`uLOaGskq0kuAUmX7_mcS9LK>u>R^x9oPItX|!nCLEjkNTh$o@dg=BTk3&uZAM)r<3VNnH~`-V;=@RS^rFp^{Ym_r)yjEBZZB_*vz9P35^FL zrnf{5XV;q>RDBY0(1f+LJ*zz=@>qYE;x4|^^C2Bs{yCzX9X-%(m6(q&cH9Yh?Z(sF zTVHy6IHvFlHkZ2p! z#GT0rI`2HsmcDLJ?CuO78jCG$A%1yc{*wpFSE85NLQYSOpN~5;Fz$P*_;HzT_o#WA zu+N17>%~+w@%Hw8AD=UY(3P#Z7gS$wC2w5ooBcv^d7x`P>g*4aiN3+50_F3P!wbw} zMDC|N2aVUz%FwKvVTIN2HeR|oc?gs? zhu=-Os*9n{Ig={W8h=Y@s_P7CwhZvMTWWl3mBXe`tNy}J$?BSSGM#ne7 z%P-hxTc%Ft?D;WXI~>#8{vbLM82%1l%Bc?${h2XnZ7nJK$p1Gr8?z1F8Kn*X0BM~D Aj{pDw literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/stat_sys_data_bluetooth_connected.png b/res/drawable-xhdpi/stat_sys_data_bluetooth_connected.png new file mode 100644 index 0000000000000000000000000000000000000000..fe1c3e8bad10b7a6f77abc14b4b942da54e3621c GIT binary patch literal 1486 zcmeAS@N?(olHy`uVBq!ia0vp^5|6H_V+Po~;1FfgZOhD4M^`1)8S=jZArg4F0$^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT6rXh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2Kep0RGSfuW&-nVFuU ziK&^Hp^k!)fuWJU0T7w#8k$&{npqi{D?ot~(6*wKG^-#NH>h1eo~=?wNlAf~zJ7Um zxn8-kUVc%!zM-Y1CCCgTBVC{h-Qvo;lEez#ykcdT2`;I{$wiq3C7Jno3Lp~`lk!VT zY?Xj6g?J&iz}FXUa9%MqpnyT9Uy)d#Z>VRWpPLKv7g%+1Nl+@n8CX>phg24%>IbD3 z=a&{G1LGr28KxN+cK9s>3$=Q6peRFRA|N48+Yv-q@g&sDT65=*%(j$*_dC|wO=W)loM*ZW- zabmuz5bp3=+NR0+xM0L0_MXO?le6tuYadK9XFr>8%kdA(5eqic1aXm%JZz1x6bcxk zVtu$ATharbPHOXIoNP9)(O=$8<&>P#92zLB-Yj^5zfPvF z{eV!Yj`7O}+qk@CCNjQmGFM3n7q7mO7IE%&s+$1AX9eLm46-rN=OURWf2rjtIkjvB zcTO{t(Dlp|op}!Cy%RY3)vZo`eZceMp!SUgf4_g3Ej#~d$i53&pC)@A*tDN#O#_d< zoW)HA^-%vU{sPOs=JiEKS;n7~IO6jt$JO-Wzn}^1-+U+Q<_aw4>h0c~deh-}*FhQI zJdvJLQZtU43h_stOH`IN2(1k{_Fzui`oQy?mNBX|-*uHZ^m_rSt&(5`rB(siARq#%FB%d>{rtkC@UYY8TQtSWyuD96F#KTa% WyyVKd&7PnVo59o7&t;ucLK6T}@ej%X literal 0 HcmV?d00001 diff --git a/src/com/ceco/gm2/gravitybox/ModStatusbarColor.java b/src/com/ceco/gm2/gravitybox/ModStatusbarColor.java index 2515d345fd..d9aaa1cbbc 100644 --- a/src/com/ceco/gm2/gravitybox/ModStatusbarColor.java +++ b/src/com/ceco/gm2/gravitybox/ModStatusbarColor.java @@ -30,6 +30,7 @@ import android.os.BatteryManager; import android.os.Build; import android.view.View; +import android.view.ViewGroup; import android.view.WindowManager; import android.widget.FrameLayout; import android.widget.ImageView; @@ -57,6 +58,8 @@ public class ModStatusbarColor { private static final String CLASS_POLICY_WINDOW_STATE = "android.view.WindowManagerPolicy$WindowState"; private static final String CLASS_WINDOW_STATE = "com.android.server.wm.WindowState"; private static final String CLASS_WINDOW_MANAGER_SERVICE = "com.android.server.wm.WindowManagerService"; + private static final String CLASS_STATUSBAR_ICON_VIEW = "com.android.systemui.statusbar.StatusBarIconView"; + private static final String CLASS_STATUSBAR_ICON = "com.android.internal.statusbar.StatusBarIcon"; private static final boolean DEBUG = false; public static final String ACTION_PHONE_STATUSBAR_VIEW_MADE = "gravitybox.intent.action.PHONE_STATUSBAR_VIEW_MADE"; @@ -83,6 +86,7 @@ public class ModStatusbarColor { private static List mBroadcastSubReceivers; private static Unhook mDisplayContentHook; private static Object mPhoneWindowManager; + private static Object mPhoneStatusBar; static { mIconColorEnabled = false; @@ -459,6 +463,7 @@ public static void init(final XSharedPreferences prefs, final ClassLoader classL final Class batteryControllerClass = XposedHelpers.findClass(CLASS_BATTERY_CONTROLLER, classLoader); final Class notifPanelViewClass = Build.VERSION.SDK_INT > 16 ? XposedHelpers.findClass(CLASS_NOTIF_PANEL_VIEW, classLoader) : null; + final Class statusbarIconViewClass = XposedHelpers.findClass(CLASS_STATUSBAR_ICON_VIEW, classLoader); mBroadcastSubReceivers = new ArrayList(); @@ -518,6 +523,7 @@ protected void afterHookedMethod(final MethodHookParam param) throws Throwable { @Override protected void afterHookedMethod(final MethodHookParam param) throws Throwable { + mPhoneStatusBar = param.thisObject; Context context = (Context) XposedHelpers.getObjectField(param.thisObject, "mContext"); mTransparencyManager = new TransparencyManager(context); @@ -595,7 +601,14 @@ protected void afterHookedMethod(final MethodHookParam param) throws Throwable { Intent intent = (Intent) param.args[1]; if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) { mBatteryLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0); - mBatteryPlugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0) != 0; + if (Build.VERSION.SDK_INT > 17) { + int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, + BatteryManager.BATTERY_STATUS_UNKNOWN); + mBatteryPlugged = (status == BatteryManager.BATTERY_STATUS_CHARGING || + status == BatteryManager.BATTERY_STATUS_FULL); + } else { + mBatteryPlugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0) != 0; + } if (mIconColorEnabled && !mSkipBatteryIcon && mBattery != null && mIconManager != null) { Drawable d = mIconManager.getBatteryIcon(mBatteryLevel, mBatteryPlugged); @@ -802,6 +815,22 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable { }); } + XposedHelpers.findAndHookMethod(statusbarIconViewClass, "getIcon", + CLASS_STATUSBAR_ICON, new XC_MethodHook() { + @Override + protected void beforeHookedMethod(MethodHookParam param) throws Throwable { + if (mIconColorEnabled && mIconManager != null) { + final int iconId = XposedHelpers.getIntField(param.args[0], "iconId"); + Drawable d = mIconManager.getBasicIcon(iconId); + if (d != null) { + ((ImageView)param.thisObject).setTag("GBColoredView"); + param.setResult(d); + return; + } + } + } + }); + } catch (Throwable t) { XposedBridge.log(t); } @@ -823,45 +852,83 @@ private static void setStatusbarBgColor(int color) { private static void applyIconColors() { if (mIconManager == null) return; - if (mSignalClusterView != null) { - XposedHelpers.callMethod(mSignalClusterView, "apply"); - } - - if (mClock != null) { - if (mIconManager.getDefaultClockColor() == null) { - mIconManager.setDefaultClockColor(mClock.getCurrentTextColor()); + try { + if (mSignalClusterView != null) { + XposedHelpers.callMethod(mSignalClusterView, "apply"); } - mClock.setTextColor(mIconColorEnabled ? - mIconManager.getIconColor() : mIconManager.getClockColor()); - } - - if (mCircleBattery != null) { - mCircleBattery.setColor(mIconColorEnabled ? - mIconManager.getIconColor() : mIconManager.getDefaultIconColor()); - } - - if (mTrafficMeter != null) { - mTrafficMeter.setTextColor(mIconColorEnabled ? - mIconManager.getIconColor() : mIconManager.getDefaultIconColor()); - } - - if (mPercentage != null) { - if (mIconManager.getDefaultBatteryPercentageColor() == null) { - mIconManager.setDefaultBatteryPercentageColor(mPercentage.getCurrentTextColor()); + + if (mClock != null) { + if (mIconManager.getDefaultClockColor() == null) { + mIconManager.setDefaultClockColor(mClock.getCurrentTextColor()); + } + mClock.setTextColor(mIconColorEnabled ? + mIconManager.getIconColor() : mIconManager.getClockColor()); } - mPercentage.setTextColor(mIconColorEnabled ? - mIconManager.getIconColor() : mIconManager.getBatteryPercentageColor()); - } - - if (mBatteryController != null && mBattery != null) { - Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED); - intent.putExtra(BatteryManager.EXTRA_LEVEL, mBatteryLevel); - intent.putExtra(BatteryManager.EXTRA_PLUGGED, mBatteryPlugged); - try { - XposedHelpers.callMethod(mBatteryController, "onReceive", mBattery.getContext(), intent); - } catch (Throwable t) { - log("Incompatible battery controller: " + t.getMessage()); + + if (mCircleBattery != null) { + mCircleBattery.setColor(mIconColorEnabled ? + mIconManager.getIconColor() : mIconManager.getDefaultIconColor()); } + + if (mTrafficMeter != null) { + mTrafficMeter.setTextColor(mIconColorEnabled ? + mIconManager.getIconColor() : mIconManager.getDefaultIconColor()); + } + + if (mPercentage != null) { + if (mIconManager.getDefaultBatteryPercentageColor() == null) { + mIconManager.setDefaultBatteryPercentageColor(mPercentage.getCurrentTextColor()); + } + mPercentage.setTextColor(mIconColorEnabled ? + mIconManager.getIconColor() : mIconManager.getBatteryPercentageColor()); + } + + if (mBatteryController != null && mBattery != null) { + Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED); + intent.putExtra(BatteryManager.EXTRA_LEVEL, mBatteryLevel); + if (Build.VERSION.SDK_INT > 17) { + intent.putExtra(BatteryManager.EXTRA_STATUS, mBatteryPlugged ? + BatteryManager.BATTERY_STATUS_CHARGING : + BatteryManager.BATTERY_STATUS_UNKNOWN); + } else { + intent.putExtra(BatteryManager.EXTRA_PLUGGED, mBatteryPlugged ? 1 : 0); + } + try { + XposedHelpers.callMethod(mBatteryController, "onReceive", mBattery.getContext(), intent); + } catch (Throwable t) { + log("Incompatible battery controller: " + t.getMessage()); + } + } + + if (mPhoneStatusBar != null) { + ViewGroup vg = (ViewGroup) XposedHelpers.getObjectField(mPhoneStatusBar, "mStatusIcons"); + final int childCount = vg.getChildCount(); + for (int i = 0; i < childCount; i++) { + if (!vg.getChildAt(i).getClass().getName().equals(CLASS_STATUSBAR_ICON_VIEW)) { + continue; + } + ImageView v = (ImageView) vg.getChildAt(i); + if (!mIconColorEnabled && "GBColoredView".equals(v.getTag())) { + Drawable d = v.getDrawable(); + if (d != null) { + d.setColorFilter(null); + } + } else if (mIconColorEnabled) { + final Object sbIcon = XposedHelpers.getObjectField(v, "mIcon"); + if (sbIcon != null) { + final int resId = XposedHelpers.getIntField(sbIcon, "iconId"); + Drawable d = mIconManager.getBasicIcon(resId); + if (d != null) { + v.setImageDrawable(d); + v.setTag("GBColoredView"); + } + } + } + } + } + + } catch (Throwable t) { + XposedBridge.log(t); } } diff --git a/src/com/ceco/gm2/gravitybox/StatusBarIconManager.java b/src/com/ceco/gm2/gravitybox/StatusBarIconManager.java index 705cb3dd86..bb49ae348a 100644 --- a/src/com/ceco/gm2/gravitybox/StatusBarIconManager.java +++ b/src/com/ceco/gm2/gravitybox/StatusBarIconManager.java @@ -46,6 +46,7 @@ public class StatusBarIconManager { private Map mWifiIconIds; private Map mMobileIconIds; private Map mBatteryIconIds; + private Map mBasicIconIds; private Map> mIconCache; private Integer mStockBatteryColor; private Integer mDefaultClockColor; @@ -121,6 +122,15 @@ public StatusBarIconManager(Resources res, Resources sysUiRes) { tmpMap.put("stat_sys_battery_charge_anim100", R.drawable.stat_sys_battery_charge_anim100); mBatteryIconIds = Collections.unmodifiableMap(tmpMap); + tmpMap = new HashMap(); + tmpMap.put("stat_sys_data_bluetooth", R.drawable.stat_sys_data_bluetooth); + tmpMap.put("stat_sys_data_bluetooth_connected", R.drawable.stat_sys_data_bluetooth_connected); + tmpMap.put("stat_sys_alarm", null); + tmpMap.put("stat_sys_ringer_vibrate", null); + tmpMap.put("stat_sys_headset_with_mic", null); + tmpMap.put("stat_sys_headset_without_mic", null); + mBasicIconIds = Collections.unmodifiableMap(tmpMap); + mIconCache = new HashMap>(); } @@ -214,11 +224,17 @@ public void setDataActivityColor(int color) { mDataActivityColor = color; } - public Drawable applyColorFilter(Drawable drawable) { - drawable.setColorFilter(mIconColor, PorterDuff.Mode.SRC_IN); + public Drawable applyColorFilter(Drawable drawable, PorterDuff.Mode mode) { + if (drawable != null) { + drawable.setColorFilter(mIconColor, mode); + } return drawable; } + public Drawable applyColorFilter(Drawable drawable) { + return applyColorFilter(drawable, PorterDuff.Mode.SRC_IN); + } + public Drawable applyDataActivityColorFilter(Drawable drawable) { drawable.setColorFilter(mDataActivityColor, PorterDuff.Mode.SRC_IN); return drawable; @@ -365,4 +381,31 @@ private String getKeyForBatteryStatus(int level, boolean plugged) { return key; } + + public Drawable getBasicIcon(int resId) { + if (resId == 0) return null; + + try { + String key = mSystemUiRes.getResourceEntryName(resId); + Drawable d = getCachedDrawable(key); + if (d != null) return d; + if (mBasicIconIds.containsKey(key)) { + if (mBasicIconIds.get(key) != null) { + d = mResources.getDrawable(mBasicIconIds.get(key)).mutate(); + d = applyColorFilter(d); + } else { + d = mSystemUiRes.getDrawable(resId).mutate(); + d = applyColorFilter(d, PorterDuff.Mode.SRC_ATOP); + } + setCachedDrawable(key, d); + if (DEBUG) log("getBasicIcon: returning drawable for key: " + key); + return d; + } + if (DEBUG) log("getBasicIcon: no record for key: " + key); + return null; + } catch (Throwable t) { + log("getBasicIcon: " + t.getMessage()); + return null; + } + } } From 6d6884e668c60f131edbab4e31bb8d03643fddfa Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 11 Nov 2013 15:35:53 +0100 Subject: [PATCH 133/255] Donate: simplified summary info Makes clear the item is clickable and what it actually does --- res/values-cs/strings.xml | 4 ++-- res/values-sk/strings.xml | 4 ++-- res/values/strings.xml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index d251fe00c0..801ee82d2c 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -144,8 +144,8 @@ Naprogramoval C3C076@XDA. Dotykem otevřete oficiální stránku. Xposed framework Naprogramoval rovo89@XDA. Dotykem otevřete oficiální stránku. - Přispět - Přispějte přes PayPal pokud si myslíte, že tato aplikace za to stojí! Zvažte též příspěvek pro rovo89 za jeho excelentní Xposed framework. + Podpořit vývoj + Dotykem podpoříte vývoj aplikace věnováním příspěvku libovolné hodnoty přes PayPal Váš %s bude restartován diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index 86405c9b6f..4b4376251d 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -140,8 +140,8 @@ Naprogramoval C3C076@XDA. Dotykom otvoríte oficiálnu stránku. Xposed framework Naprogramoval rovo89@XDA. Dotykom otvoríte oficiálnu stránku. - Prispieť - Prispejte cez PayPal ak si myslíte, že táto aplikácia za to stojí! Zvážte tiež príspevok pre rovo89 za jeho excelentný Xposed framework. + Podporiť vývoj + Dotykom podporíte vývoj aplikácie venovaním príspevku ľubovoľnej hodnoty cez PayPal Váš %s bude reštartovaný. diff --git a/res/values/strings.xml b/res/values/strings.xml index 03bbc5de45..6841a81833 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -158,7 +158,7 @@ Xposed framework Coded by rovo89@XDA. Touch to visit official thread. Donate - Donate to me if you think this app is worth it! Also consider donating to rovo89 for his excellent Xposed framework. + Touch to support development by donating via PayPal Your %s will reboot. From 4230d40decc53c2c142a157a138dda5b50237353 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 11 Nov 2013 18:07:32 +0100 Subject: [PATCH 134/255] AppLauncher: run app immediately when it's one and only in the list --- src/com/ceco/gm2/gravitybox/AppLauncher.java | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/com/ceco/gm2/gravitybox/AppLauncher.java b/src/com/ceco/gm2/gravitybox/AppLauncher.java index 9115a6f558..a664870a11 100644 --- a/src/com/ceco/gm2/gravitybox/AppLauncher.java +++ b/src/com/ceco/gm2/gravitybox/AppLauncher.java @@ -156,6 +156,7 @@ public void showDialog() { int appCount = 0; boolean appRow1Visible = false; boolean appRow2Visible = false; + TextView lastVisible = null; for (AppInfo ai : mAppSlots) { TextView tv = (TextView) mAppView.findViewById(ai.getResId()); if (ai.getValue() == null) { @@ -171,6 +172,7 @@ public void showDialog() { tv.setClickable(true); tv.setOnClickListener(mAppOnClick); tv.setVisibility(View.VISIBLE); + lastVisible = tv; appRow1Visible |= ai.getResId() == R.id.quickapp1 || ai.getResId() == R.id.quickapp2 || ai.getResId() == R.id.quickapp3 || ai.getResId() == R.id.quickapp4; @@ -183,16 +185,16 @@ public void showDialog() { if (appCount == 0) { Toast.makeText(mContext, mGbContext.getString(R.string.app_launcher_no_apps), Toast.LENGTH_LONG).show(); - return; + } else if (appCount == 1) { + mAppOnClick.onClick(lastVisible); + } else { + appRow1.setVisibility(appRow1Visible ? View.VISIBLE : View.GONE); + appRow2.setVisibility(appRow2Visible ? View.VISIBLE : View.GONE); + separator.setVisibility(appRow1Visible && appRow2Visible ? + View.VISIBLE : View.GONE); + mDialog.show(); + mHandler.postDelayed(mDismissAppDialogRunnable, 4000); } - - appRow1.setVisibility(appRow1Visible ? View.VISIBLE : View.GONE); - appRow2.setVisibility(appRow2Visible ? View.VISIBLE : View.GONE); - separator.setVisibility(appRow1Visible && appRow2Visible ? - View.VISIBLE : View.GONE); - - mDialog.show(); - mHandler.postDelayed(mDismissAppDialogRunnable, 4000); } catch (Throwable t) { log("Error opening app launcher dialog: " + t.getMessage()); } From c9137ba11955268ddb9355cbfb520a2a7e9338e5 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 11 Nov 2013 18:17:53 +0100 Subject: [PATCH 135/255] Updated Slovak translations --- res/values-sk/strings.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index 4b4376251d..986b71ebff 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -737,4 +737,13 @@ Farba a priehľadnosť Rozmery + + Farba tlačidiel + Efekt tlačidiel + Farba pozadia lišty + + + Vypnúť zatmavenie + Vypne zatmavenie obrazovky uzamknutia + From de351d7cc4eadc5e3c2186c69e14cf5ca66f2b64 Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 11 Nov 2013 18:21:28 +0100 Subject: [PATCH 136/255] Updated Czech translations --- res/values-cs/strings.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index 801ee82d2c..c617706127 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -743,4 +743,13 @@ Barva a průhlednost Rozměry + + Barva tlačítek + Efekt tlačítek + Barva pozadí lišty + + + Vypnout zatmavení + Vypne zatmavení obrazovky uzamčení + From c164d9977797bcb1ae535fbaf5d483e53b2c29a3 Mon Sep 17 00:00:00 2001 From: Bruno Martins Date: Mon, 11 Nov 2013 18:15:55 +0000 Subject: [PATCH 137/255] Updated Portuguese (PT) translation --- res/values-pt-rPT/strings.xml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index 9853529bda..2228ee480a 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -142,8 +142,8 @@ Desenvolvido por C3C076@XDA. Carregue para visitar a página de suporte. Xposed framework Desenvolvido por rovo89@XDA. Carregue para visitar a página de suporte. - Doação - Envie-me uma doação se achar que esta aplicação vale a pena! Considere também a hipótese de enviar uma doação ao rovo89 pelo desenvolvimento do Xposed framework. + Contributo + Carregue para enviar um contributo através do PayPal por forma a suportar o desenvolvimento O seu %s irá reiniciar. @@ -751,4 +751,13 @@ Cor e transparência Dimensão + + Cor das teclas + Cor das teclas ao pressionar + Cor de fundo da Barra de Navegação + + + Remover sombreado + Permite remover a tonalidade escura presente no ecrã de bloqueio + From d3019d38c1c41877827875fcc846dc6294c4686c Mon Sep 17 00:00:00 2001 From: C3C0 Date: Mon, 11 Nov 2013 19:26:20 +0100 Subject: [PATCH 138/255] Added dependent libraries into project's ext folder --- .classpath | 4 ++-- ext/XposedBridgeApi.jar | Bin 0 -> 100059 bytes ext/core-classes.jar | Bin 0 -> 2470309 bytes 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 ext/XposedBridgeApi.jar create mode 100644 ext/core-classes.jar diff --git a/.classpath b/.classpath index 68d0c3e676..4d14041bcc 100644 --- a/.classpath +++ b/.classpath @@ -3,9 +3,9 @@ - - + + diff --git a/ext/XposedBridgeApi.jar b/ext/XposedBridgeApi.jar new file mode 100644 index 0000000000000000000000000000000000000000..96e925d7cd67057f00bc0c66919b2c57bcb42074 GIT binary patch literal 100059 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 JhC93c{oZ+LRx-M6b>Bpi+`~+r#M{y{zIj61m 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

sM*#g`Dh86i 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

gF@nf$l7Y_N4uX?g)){r0sudCZZD7+C2IFyI zw6=%>43lx&JDmJ^rbu$9jrtZ=+ZA{WA^Jx_D?3J0C4n#0f;17Q?UzNZWW>~Jc%H(k zQD_F6FFq~NW&ANVV8`HnkDUrPnT--AEV7j|>*dG;^H-Hh#UV+ADQo;&P~Df9gKT$Y zr7N`3EEASq>c@H0nf(?D=IVChVz8oDgf<%Od7Ql=&)9Mr#;Ffhvl5!{69~uHXdP0r z?FX+jj-iXiPQIRm!?$mK?-vS*A!q)pgN4WR82ml+a*y`d_|Egk-*pt_8JhOs#0%M~ zI>pW)ZMP4nzNl?GL0*=15jsc8=XVhu(CrQEUrI114zHUIOY~-O4Q^PoqQ*tXx!qmZ zpvxnrh?fA{_}hvK;W;0lwVb3-25Xg}Gs{({=sB|>)XLsu<kWRT%-hneuvL$IOt68`Oxhi9xEVTJRE`&(B`)c;%Wc0Thy=dN^W+H7Y zjhVI;Ti*+@eYGQhQd>volNnRA-Wc@G7-bwi% zh|FAd;i*(jC;>$tQKRk;|D5UIf!!sJljW=SoJL)3Dd_G`M+{8kcd-$P{ zU?7Rkv2~yZYZRq>l^T4JM71kHVJz6r{+2p&n=*FahM{DprOx1b=(tU1Ed0Fm!$3k5 zGzFtbE?;#FNfwXC}LWUvc!BJ7~-0>El=&9f16ztlfX32svi|xg1(d<`B zLS~m>5HD2?)wio;m4v%?XS{ZW(?WOJyXM@8k$vYddtmN5Tb~j1j3bQ*4L6|NPA47P{W-&WX1e6b8caeUN`2Ap(p9`=Y@ z3yndr-#%k&;`MRf>7^p{fHCmmlE{1l??nK+km!6*P{Q8}mLjqqCCIbKPlhCLiM$Ye z`#mLA0hh9;BRjmrkd}-n1_aWvW$j?MZ1jd5gvx~eBSo9w#Ke) zG(4RGL-Jd_*V2b%AhX; zw4@wz=>jnD6smEMUSCup6+`>;7b=K|&2XRmw{u)6kYq_?pMhS%@O!8YGs!HmJn)@O zr^d56>*~5b-rB$Xj3^HLMgCH^;b^_`9dEQ`>)se)mC182$i@p1@-t$Z6ER@=x&W9c zv3hn(l*#egkSd$70<_n~s)_j3Hy6HI59!$HLi=QQYHKlBT0x!+?5vaESX|w6DED$$ zFCrG5X8&yoXsDsob*&-5w{NX(+57z19k~)jE@R8302vQ~%G94kvtgC6Vk(cGXy_bT zzXzJoNR68+`3HKgLDEl@2o|yp47Un9Ne>2uTIpp*Wh#;%j9$_MT!6v)Cde^nCDe5? z3SLI<>iD#RofnrH#eUrNy&=GUjid%cX7@3-VD~l8#Z5-=rb%Nsgk5bgv;nQ`VTp8I zC`}m^+7C2_ko0ii@R}xJjgBG%rlf(9sgq?uzZA@nocyZ6eqD~Whc4R`Qh-E;&a)NO zNS;MX%?MWAYZEgCafllN-nGS7=-Xzn`@3e!LHw92(aC)S!?ZVDvFsbpKIf@tu=71m zsplxd(FQ_Twr4b(yXBQb>(G#+pB1Z^ztrAfqb@_2NYC*S(0=xK$duKPHgcXqU=`=H z;31~(rO)j=pP-B(Z}b0g3M%^TsB`-XWR(9cjzj$ysQP~da*_Z^fQ6&QKa>amrttNO z`&5G|Ac$Um0fP}01T7;9gF*fjSPtS2!qs;FRJMDYN3US3w1~h`e-F^##y8K4Z@vQ2 zc@iC@Oca1!Ez0UlbGY=f=I`3#|6-LZv)qiZlm~!nQ@7d39;M!LJY&l#vVk6JPXLTL z;j#k}p^%vm)zgd02iH*$?n$PA>7KY-+0JhgPj|-C+xV2mz(0VhMo&OJP4*vOtvdnw z!$`3MAEQTV+5*iBR~KUalSN=H&>-H5jy>XkYNnM|O`ch52#|$A)@E|i@?7c8U9gHV zwh)+x{rE7Lhz&0oWfSeyk&kXtsu-6eHHU2=qt66zH6FpNT|$>n^=iy{F19Q1NMmKlnJ@6F|WU$_v(?Q9RPx)BP)W zgO!MLnB?nN@PzS-I6>FpANsxi?1*cGD$3uHkkD7S{8-$Yw zZ$wk?IFi!QTJ*GE5+RzXBIeeP7mih?Zm4a65whx*9pff=v`+G`vs9yj(q`qO$}O|O z8;GOSnCRitZ{l29gELmvu*t-pIkue}2*WHYoTprCN6r;!nHUww19?hUT(z7I4E0$a zLI*Qn@pQ=U;;ul^8^z5vE)wuvr_{FX7aVn@Ic$t};6%3!Y+io3|29j?DfZ-y=DUIR zeiVwzr%4~QbV#d^UKWIEkM8o93dE9w?W5eIoq9Ygp`5P?3C=}ULAkg4_QPU(T41a@ z&TsF}xj)+Naw7Yj`=!5y{{HH#B4%Y{;P_9#Q%zUl6Zv~r(;~E>4b-49#>64-jRvD* zY%X2>y#(!lCM&>^92qs2N@EUZZ!9U;+fxcMsXx~*na<*bY<}}0yoM0+I>G{A9+A;o zO_9@oj_tfJ%yKT8OY1Z#%Wm@^trP&H`FTw7ZgC#99c6kXZ+#pk$OGZ@7XxEWmK@E4 zP_ptm5X6s`xN(C5br2`b9lx$nT2Fd1C30q{9?h2~F0$8-w7UFI_cg1l!OinMZ@^hr zB>&<4*dJGOY|FyOSrTXj3_2inmRyEsNypb*8m8KJ0cnv7cM4r+K6i<3_zvC zGpc3e_^7~96$vj-H4}=Yx{GY6D9$D}l$W3i3#O58siN~NqmGXmLAl^OSeeOqpfFG1 z6Bp!*p)B{cZf!&2<*^@;Xv3UNMrz`qD(J5hiQIU?Xm%3Q%)>@3~C?EDrUwl&999qUD61B%GTLX!6F7>&sa_}$8;rkc_QOU2}M?R#ZIYLmxJb;HlKrrHiP4t zf82egy5mned)wk8+~yFhsyZUM76!ny3_?ZS_uSLuDytNbVoE3z12tcpy1kw!W2zp! zH_U)`y}`sl54&WnP#n(KT&ePvie$2-tcKdIgHZ0m#uj*oarDB`S*Hk)8!OV32jyOB zu|zrRU^|W}K=pic2aL<-fQ+{XzCf zLHvl(Al6v-@@?2}h|=##rW9)}fc1pOk34OKv{jyce z3^s)7J-A?vLKG6Fo7>9Lz#l*g#T)F^MfOXK{F0Zl@`3}w**}cbCMLd`AX$;je(D>K zSL89K-a&|RMhncSxY99|0Bp=={zDoy@{Et*h3*vj>cs^vgYnE3to&1Ak>;QYqjl6F zfZE!bl|sL}RDS+XZ(tiD&TsK+kX=K8Thh-NvcLJ_Px=IZv+7kg^?n8||?ooBl z)m*N`AXfQ;bC#qTYM3WEDrlpchO&s!fb5+ucL5zxT`&-I73#{MY>lD@Jus_h=k>c;5Qg0xk|AB&_g3&A%z^|&4P1K&ywk-*TIphtvM>J%med5I68;pA z)UCF7Q@?BSu_CtMe!d#*!(=*s--4{B-rVc=X7YeZeZ*UBo5{>x8w0@@ZNx6Hi6K~9 z$1b#UqtdT^Ow(&1>5UZo`17sKU=MPhS=9m$tH9<3n}j;B{g{N6y?Xwk`|Q@(Gt?Bs zACYV{@zmAkT?k0{NfG4(U5Ms>ergduSK-*MKa0Zz+d68yN`1vQ`}sPh1JgSu42kw{ z*yx4t*LZZnUbmZ<&@J_7-xq9*QeW-t?}d$Mw<*P@`zAJYxao zewD*pUM3X+RA&IQyKWqI!x1(iE?a=!8n4uBHICIKQfza!P6f1w$|qV1&-LV?&(!## z1A|pmIDkgo|JJVi1$o4(K?XekfjTVRj@)=7XRAO?f$eJIrOXWJidt>wB8&6=@)2@J zdaCmJK`bE~#QEyofw9~Bd81pKYZRGme$7PfK>Z1m2JAI&|2X9lHDvhJ(rJ8V?$Yj! zTVwB;Znh4p#_Z$hCry5#a7-bi&)|jXulM&w)ta$?ue; z!PQ6|cT7TukXf6B@!r6fOZQg>P>3CPyOT(}#GX3TVDcSfcVIe|nvqA+Uyrv^R|&m4 zCJ_gl8{hxrwq-v+6RkfnzM#Lw`0)R7x|J|-Rd%%hJRK<**gO2|enXPlAC73KA6sM= zv$lnd3Iz3$y(p{Lz_^fxZfUby*(0_(hl>tbWr|lFAL}lM&KqyC?sRFIqzR#>F~$IH2aEZj7}(B;5_AHfrA-?gx?{aJfV zfi7AV#e_$gfRMHKqO`}fIyx)MS9>?@AC&0D9B{kQ&29UMGqI*wZA1&FslU7+ulNg`?&R zjOe(C1<>#2>)$CE$<`)*0#9U!(%TNb;f26=cvPZ^ggKfi5w6^su$3rwl|UQjW2yW^ zrUq>Ksu8J10u4lmSkqdFOBe`+tGK_^gxIMKd^mIxWWyS)a5L!Gn@fC=#rMi0MBC2H zN#r>-J9xoe1p2{QIIrbc*6vf~6gGuxHcQkBEl0RWR|}oy&P48jSsWKB?Nfi(iAwgz z6R}~}YJ>iJ{l?fIGiYpW>z#SZvd7^RL!{*^15ufr=5Kc!LdxMW5v?Xydho%S?ZCD zb=;yR`J@4`!?I6EmIrqSyFv6#DvtYg~tboiAorV0_mb#GB5G@`&z|tEVVAk7aVMUG89DoMr zwl=+zrcx4d*va|;Op8TsYkmD@<>4aj4+W}W$sC;J!-*q##<`}A_QZkNH=Dwv|O-0TP`9z%7LtB z0~t5uU^GO!EvZup;;S;tj)sl6 zh~0LmZ(2SbW<+H&wrKeY45giH)QmTmR8pzqHV3cE-b7HRz8r@gY)+AtqnKgsp+I6u3Nz8q z&;p!1Go_=_Md6Of%Z0O-JDR7|Q20G!ST6$^VeDP!%;GhP@nzD98pOi(Mv0-6D-&|O zA$9Y+NZOw`v&}sE`M*mf-&Ty$7IboKwlm~BakqAhJYzjhM#dgX9(G)s;k&5wCR0x? zVQhcREZDcw6KhD1Iozrp)$fVdhpHOounoyrTv%wG^Y_SSJu-TW9o%zXu{1z66yr$h z6>L7%YYj5;1emSd=tB>G&$#TaEu5NRNf%le<2IToW5FgOxF9Zi+~cecLq~n0{Nd z8C^qDjX_f#ek_=n>!Uz0-#+s*bP0C#6ots9jh*89Q13>Zi0IwOs^LRPyee8W0gH8? zjB|FZvW5#y?bvNHKLnkk*Ks)(9tgAd_c3O6G%!cqBWUjc&MQ?f`Qdg@V4M9_Ih4!M zafXbm;#a<;D+|t7yx!uYX=%ueIAI^`om(KmpBXt`Zv{3WZ|#Hq)vVW?WPIxUH;>1FobK6h*rR7O$$j0!lCiF*S)b3+t|$zP~^qGC+~aXxJ=7}C#;D+E9!u=;W>tQqf5K1YpY(BareUIz7X`*?;3Px3lM;(SEk~U;X zczhw%MlIa+Z0*ssU(=@3=gR-Iy4h(zNC{J%A#=eQJ#rInCEPruYKH>mvKpvz=r8C- za09CtZnfyVm|Xpxy4IqCnqOR<%3<*~#<}@qOY(QM?_^($A>+V3WAtICu!d>yX=jdM zWqk@xztsasQnUj{l~*F!a5aBjfZ06WXE->*rb)zvrG+QrJC3_nwYc&|nTChbU~5rgZ7D z8-3iVS%fceM_$^&)N!*~@UVU>tml;_RB)M^&frdR3$scwLH+fbq zcsa0@HR+<+SN~w}evds_KB+LOn>bA0b^0)b?BWWAlIv2D8o{8rDrTzAcr~kiH4Do) zx-M9H%OK>@=bx%&;J9qR1C=_`L|4-y#Xow2PhyLi=ulr$ml)gW_4Uv!WKD9@V>hu|vxladq=#k{1FJziZSN8*XI8{eiN+ah{8Q`tzMNSn{bwE{0H(%#rg9&g^Uww>k zix3M5$||buDr9Rbvt*P! zn9&4O(6KFUb?Q)UbD`>gx}0gEx}=uN?BVXdv%~LZpsXVfFCNHw<=kRN^pAS-&;Qty)#d z9~tv`*PQbi&lrOzRB0e+D_NjBHU_1(pYj-n5uDe~m})kI>!)CrtxcC&J5b))g)@j1H zK4~(6Dt=^;EZ3H}5;EemPLT#l1iK^!T@$T|pRd@#AlRIXEiy@bZeh@q5myjf9>7=7hZP8j+XzMw{eV? zlKOOm2%I{nQdc-vIMr8BG5t>7tOQa*OX;+m_aZ-pEoxs=E08JCzjI#Eu zqFENl8ts?h%V9I=d|-FD`?3$)jj0S#hISUpqD6XUwCdP0u|~6b@z5O2#YXn}oilTq zKcFCa^%DB{_E9zSQ)hm`HGXc#2Uw7IPvdVpE^6Dlxj%bPh+eh{AYy}*$lI7_h_FDV z7)PKS)PBA7y~WY3iVD^gA4eRA>`%6Lxo}@RTiTbW!CQa|D7}UkCYOO=j)zp3#e&6; zk9gj!;XJ5`76DZftlSUbXC!DFKerbw-OsT56%E+^dZ#Z=#H2_rr$8HMUgoaG0a}pH zYzddm2hl1=qg>qpHXru-)^)d0I5|+_rmy3Y7zPq+pr_ofH;42%$&BVcyDh)mn zaxz9`!5~Iimj-lL2`<+ResbK?Ac)?vxyNFw+lVP+>1c+ z%wR6T8f%%I0Nb2tDGBk1^B`dy+|@5#V0d56Q^?>kXgT-otF8)rCCk0c{d?(bc(<>- z+eVv*FzYi}$+bMN|C|NhVy_wB|Ey|~zpZML|McnkpKx=G9{V&nK@XhT)Tl39DO-RR zcmA`a*Axdr*HtwZ^Waz*Wr;INr*@#5o%DMGHG060frHH*XTiQ#Gtz@kK25&9-dw*u zgZ+TU3Yai=8anYC(e9uCxn!78mcD)qg7zxYl*7dDRR_s{$+xpEykRF;J?tD4PI~dQ zbWC*z;gpP={)SGDco5Hq!B4I}-=!}@txpnxI2s_`7w0*Uf5OPH z6(HQ#wpWZ_I0XDW6fJC4KAoAP1+}p7(CTETE@3{4+v@=~h|*z?e&|S2$YRJPL@naV zIu0Ft3XI;UfJKP+H4vdVfPcg_NP?#A03`XwZ+>BJY7u?tPq!4Y#!?#Y&!qtU+iLzR zrT5QjRy46Q)HV1|i((idASEdOxvOz|$}!TQtkp9?oHZbp7gdEe(yV>zPVpXwm=5HqPF z2o@UkLv!oX!V1Y!+g8C{&_~{xE4;Qmm;BUxF{(2w505{qnR4@ZIJrOyH{J zIS$Lz*C3ig^`FeA!v+;LNnH>z9%(<0IPcsvtEyK>tk_oSmgA_j1$V7*fDNpO|6gSP`#E69hUdRD7$Wh zK*CWze$U2d+jw{^v?r-NzTxZtK7TJtZ-HAkI$i&UiseaaEy?P@!*9Y623{X{ zT@S?FdJ;(k_?L-EkDIjhw?{8eaQgml+mG_xAp-dEe95K55Qh2mjEZRLL9Gyk>6V-q zy-$9pO}>X9grVu+vhL>AiGV0>8j&qGPQAg2+jRb1R*ms5Kb1StKI{1k-R^-K)` z$bCk;B?8s;vMvTlw_o;<4c;S!PLLv-OpAIK16mysjVUwVpYotiOycE*;-*im7Uz1D zxtm3bIdz{cR6wLe57MtP3z*|N5sgYXtgP29E#%Ps6%5dU5IBePx>pVqz+O?XZ+2by zwxs|6k98{U6gN{{;W9XFNlIjNIn}c=m~5A?%f*41{F{*x_G89fR`x_yt|_5WzZ; z+RAdS_X@22$fiwvy#;?|wNu3)OYx1+eTnVnU?MH!?bY?;i%qCd?@WgaqCcSc2fcg< zs-#qoVg6*6_1h3Ly+FW%dV~Bh(n$!O)HgS;bb3c74x(uh+xPQKP0x;T$U$++5-q{b z)f-Ck98J-$Tp(rcE%(?#gc3h_q5v;qsY@iuzExEN{#j0UtSg0_iInKd0I|Gq%v6xJ zHmxZzjpH9_035O9%uEPl3pI2xXPAN#nE2_sXR(8=ynJWuNqhvg|~{FPmp?&R3v6 zfWO*L`uWF}`f1VfHxe7Pziz8m4u;16)wGUKg|xxiNAWVRkfpkJ!x^}jbdsjESSBF; z`pv`F5)t81Tz`NV&azw;OG7axydJLc6jKN|J`>;;BgjDTiw7tG1UtzlNic`3L&{p+ zh|{uY?%3hyWWBW*eltS}N2C4NF=x3__Gq8Fk6h zgin8;odpjP;pq33bk@ww$eJ%s5o3+F0ZfGcrLzA0xoGo z($~-3?;o0+&o^jekn7jtWs6eK&qfevn1;~;GN-%W0q$aG`JwlY;=~W2;EfvHWeLOU zi|ZTn2{D&KXlHjEMs zE*PB5#50gveJ>uD5OLtJww#t-TAw9( z(Iqn|g*gR7YQm+pU#O(mlUU_6C;9uTREkg|tVPI9 ztGaVjhUeEQkTF@6nWjO3mX%#>T7eLv>&b8ITMUVM1$)mf;j*O0<4ED(fTbl~-ux)c z;)sk&5sv9%3LH=mEG_}I^MbGUo$$Tjx#HI0fgH8jhHUTD8rQ}Y16jiN1T#+aFrE9H&?eFgOg zPVZ%xslFoq&cB*0Iw|8#Xm}KKb}JAPN>Iy`f<7NN2qL@7m2Vom=72QOY?5l_q!8e6 ze@_r{0u`v(j4T5x3=M&*tj&OkgFB-jYOQ%0tS3a3n0kU9Hb}_L!*`a;1>s*woJ?V8 z$!x_uUuionCLeWmRE!%XUVp8%Z?PhLf>$J0y)38q-aV^zq)ikP)AL$J)vVz>SERPj z#cT@)((JBed1 z*CsVP$#f1ty8Mh}Pl6b79ia;#n?hDS&XegK@^>Xk!>eisP;!PF z$Ws%|e2WN*Lt2)(L;fAXJDtcZ#)u6~QcL#2T#2Q~uQ)r)ECpB{Fk~9HG4(e*?f5p# z(vlcqM!AM4_z?=Y1C^!4Nnvio0JQm+X-r-H@WZZjhKo^Hwf@8Pz%n8?h^C2c6UtEL zm0epanuA%RrTQJFL0P!cTs=GeH>`KeY!nx|5qCP0h)ey>2Z@QiB>zY*#cA6zzjqCR zDv%DSk6JrzlkNNdR@~0g60r2mPbW9fN4j2n?Uq-HAr`MNb===$CnwRHr3*h_S?}7T zH!CY4pKwlAqIGIYPJNsld8Tu$zHovL6lB6vqnbB$qX0>PB$hhzi&TIomUv}T9_<6E zl)~~ysa7GX=CA@$4YW#TlTK4jlU1v)LzK(YeW_Gt`)WQ9?R!{~=4<|orn^DVE~EPn zhz){U=SM~>iYncLmoMyzNVjOs2Kg1xo!%BH%a?XQ2S~HpbQ8oHJG7u|nu%sC6k9?V+v4&ucY6L%&s-U-7a+wzR;^9gx+T_V-H%NOEd zCtfEr%6j(!X@Q$##BAOil7Kv9%Wp_sGQl?b8treQrnc(DkrffqXgk`dK>@qYaU=ch2NIA*F%Oc6!}1ti>5MjrufXArg=C%43CHx>djJPPDk=M?h$%- zGuxHhqL2%e6=s{rSN53I6|80ue#ukv5>lu}u$fC59?a)Zzc5@wu}^Mp+RHWX)nv2^+0*kuCnFPr1Ub$apQfj;y%Ekg*&roM{*=I zz>!PknlB>*T(p0kf{JUVFvq=7zRSeDa;7lH%ffAmmu0FTm#tD%ST>I|SKM)=CX%9u zo;AWc-^T%twdF%rUYI$p3JagJuoD=|rgIpxW^$5vTrbH z4=UVDJ7Cf+F~N^^5P+Mf&_YCzBBtj%na;cn&EeEy+E=MYPm(nX#jOSSXrX?&@H?}n zuGL{)E_HodVjj;_a^>66g>IgYvJw|p~|?sh+@ zYU*}a*a9bX@fq1n-#;^IVRBC@Ob(BNka%SHtW0|muABB@yW**0q(bs8&GM8`$iQ}k zb!F|_Nt7S&B<{(k(zmw%f{ijU_fYrKi@$2$5->S)9+movHyb70x!Epij+t4M>ptA~ z6Mtm3&LD}Q^-=IGs^mfcSt19-%DsQ@BR*H^bnw+emG9-_ENhMqO2qTDkMzUw*^uDU z+4%1IbZ(DsLB?Xeim8B{vCEj|7A%t_+UCmp<(!B@r1Bp*lSr6}=)<3O8V`RueFB3Z ze}RC2_%auIDfoH*{qL`TzXE<9hV67M6s`X;(DC204OyAbo+*N78mSCco(xMzF*rOf zBArN8qIPbO;DC@69Z$tbtd$yTw8fj&T`v9({FPWp96q@h%sBYXM!T!^((- zc6(4fSKdJR2$xtNoGkaqumk8O?-jhVN=4qX3EC8eB%^|r`;I(5FBaesA@S1VFrSx< z#J|00;D4h0KlYyze_S;F1>1l0IwF!^RFDrbhO!)uot%=s{zL;?gGQ_J)lzPu9hUhj zuc9ljd+qm4#R(W41eBR!AYUfCz%=z%j}CpcSZ4BGPcFFLERTUzMn<2dBmbC#gQuuy z(cX>2^26UE>oDbO{f_D5_RaYCi&xg6>*hns!}|7uSd|XA594D6=vq+jP@Xw>o{*=x zkdXd$XUx%$Lz|(c;ch?{5Gu3@^!YhB{DAuqa-Un!~vN`>1Rd;K})F8U$u6v~k@yOyov4G4Q3AWhWsI4n% zsmUuarfu)2bhi0n@}s;5XrVWkR=PaWT4|bK43c$NS>S6MaANnYd!e}%;yR^CwCuSy z%Iv4Yl4{Z$GAAA&N=~MTKnW=zh?0|9EgJ|UPEa8isJL62jOp`(fSN!R5>bG32?DA| z)}}ZcQ{4%Z1e^F4Q7?df`vG`tDt&^_k)p$ha36bZiizY0p-X2s_nK8Qm?kqAkddorG@&y{xy%{mUA1q z;Emf@S3abmk-97xwpR(17GBjzD7gMZ88+Cms@=NeR~>cTrET_R-0YmJi03$MDww&c zj`wizI8jmIHRO-B!Vg{il<5Iv8SEl*IebJx3)?xJQ3?IZl7s`&y#UW}>PFhs0Va9@ zHR&Bpoc{S^?7?{kOqyt|=B4jjnB;*u0B3u7w2p=>M?dh)0q2ChyoV!us5ZPUe%kan zKDpm$HtfE&v!SJ-C%=D)G~jfa_`ZHH;evLChoCd5_@ynr-6=|a>jctq?4@|bwBpHo zt$+K5sro>;?_0+JTV%?rE$kh3Q3&M$%vRaSUg@s9y^b5cj?L2!Vw`a$!(PN6ibCCN zJzZG4n-%x;sJGTBq_DV-4TX{7na216*9uimMMXtdMM*^gudJf1sHCKvv__g_mPP?;+VX8~v7%z}Uo13_$?-Zx}~3qNtND7ffWLN=_KZuM1V1&>Sk)U0^)zH#6X=^KHp&@m(Ia&|_s{W7J4a z>lYfH7^fLWu&1)es!LcNgkf4uSrs9$1Gguu^Iskbr*BLC{7!LCb{F|po7NKbL~qYm z7v$=LVTfyRk7(Q@S1^B4H2YhsdCv=Dania^n6YH58d1?7%43lr+_<{jk|hL*VI zH)u!z+{v%5_dS=H{vzV=J5s3w4dY4X0{tz6}xOmU@;<=4`c%femS@Z7B^Js#tpG z$_rNdmQ?1es#r#rT;@%6PT=OwwT=D_8RZexjbROKs%>cv?y7A`4eRCWLn}dQZCMRG z;LTDkE> z#rliTFMI`In(ru%!;11z(nzqw4mG$XA+WEovZBh**h| zLTSX4APCm=sAh>82|997Qm9s>|RKqRGHd zDu+!NM~6$IfDbl8jTAIOjV5HE9IVS+XLHN)yzGBi&g=Yrhr%oePY?fvwl8?*%ts!b zDUIqHy}-Y9mTOZfjG9b z6XTg%Wh<`jK+gjzGxPGtKD^XGk~b(X&*nB0y`hsyH=T}T?l==HuXL`=0n|XOqXMaF z(SX$`ksS)Rd%4{fqeo<|sT46EvnLOD7Mmw*E*f;v?2${%PE4OLS=!_Ef7Ou|^*&x&@R-P67?YkyX)dJOEU3H<}T9ZCs~* z_;4aLdjf{Zl=>-+?i7ZLXz4@vylefEtIdvOEf z+~eA1mW)=?SUkYd9yA)kA_PN-%4hdxIB8m-lxp6L^80d2|Kx*$%QA_EOw(^ou-ff= zXLg@q5gRSP8@4SC7FHUPVwe80L;QHqDi>1ldL^mBfP^gm|-A1g`HACIVMlAeYQ`&xU9r&6ebHoXo;E&Dc$F<0)M6kuE8 zo{D6JO6kzdQx056H*HT~kR=5qk_vSl-)mrB@l`a7B_7tL-)9abiyF!$h9H~3Nc6oZ z(GJ8Wr~EGQGN4v8YZD7rE4xLgIi-(CY~(K(wUdMqM?Or{n9oD@UexH*s#ZyNQ+N0H z6L_G#k}bVQeJPZ_Z(6({yNc&&ekYq1&oT;sD~_tFyJg1Z+Mo05@Sn73Q}&^XwfnXZ zGS*tB<1D!g?oed;>T`foHLb8WWb5g02eU+~NLHmx=_Xl_qHH>Ur)W#ET3Hrnd%UN} zCniUnb>Pa<+hUNe68Q=t+XkW`x6lQzaeAfp=liz-(NB}Vh?)_n@p zo~!$kh{>PQgTnN(XOsIeO@^vCOEvb^U4Ad|YQjlsx8Y)L#Cy)9UEP=Mpr~TN!4L0y zVH^Z!%}iGqGuH)iDi67CjPmxucOp6Q5g*zX1AT8hs9mfCox$H)CSAIXd{Ocy zJel{yhuzyV%AGK*6Cv*LH`K-Cu4SUO6if?l4;V+i>r!=DL9&)=LbMsBEdtBu7%(fO zd-+ncwpAf64jNrtKdB7z*4{^}@@9fbMu?K^9XSqSi+SUP8MkrEWQgfZ%!CM^N>f(l zwk(;NtkU&T_wL(Ep1Frg&K%v@^#-5YFr?b3 z7TS!;HEwF|Q)(LN7>id$^DRQ-J)MaMf(>4>#FxW_Tbb}Aemqfc7fkgDIT>}n@zlMs ztnD6gJtuIl?2-rl(v;pwVv$XgOg$2NE47A3xC7Fo!|p&p1(5(!gA$;X5JC z@t=lp_Y1E+uS8TmgaPqS^05q1s7!QiQ%skaUJsyKxR$;1T;5mRHRWImkb}@|WS90j zU%#~)C#&HtoT0ux8x5q#Bj%`~TQ3_9qOm3=9TWK)T_2h>KgxQ?lff%npd(3ktd{?z zoJBU&MBwarYI);up(>l1DaH$z67-Cf`lc#4Xk`hpFVV@|ERc_muSq1DyZlQfAQTSg z*|F)is6Zms);nwk?2&KgHL&&me|r-p{@*CsIokZE zo5Axx2G|ClCgPM8p(voma=a;}QaieE4z2#nD33i#;j zjlTZ+&*+ZJ%_+EUXv%=W?-s&zh;B1jrc@DXRpsgMT}F0>O68siIc~Wft^t%m9ObGx znQM=U>p!iX6V<>s{s0U0Z^8O&YKMe_q1}IqTcH&N%lV(Um8sZYx&NKE0-J_Fg%^1JcY}v`J@!R(P*x6h~ zQ83f;Pzyo9^7Ha#bc|$lRSbTgZzjxGz|$cx*!;Liz+~wIFn=~7$ZVMuf}Rb6%<~o%aa=A*aq_wTk4Tq33Uxw@ibP(27NgTvK&UI z^ufqgV*d6TwnjhdmRZh*G1WC9y z@z~;$GWr%{kK5oFE85g!@rcM{(>L+nr47gPor49VkotXdEn+D}C9{sObVN&Xpk*96 zxKED5*llQNa8{JmJ}FanFs=`yn{w!`zxk`XvlHG%U00juVrL(YC(jG6_34c06YipwiI zbqI%YWYOj&>y0pK!+3%6b^G?N3SvcP&(g4kxGT%bbaa!G7UsYbtg<7tTQe8jh6UJM zN5s4?=B4)5XdB~CIZt0Ye(|R%inH3&<;MzYwC@qnnQs!tR8^YzYcoXzFxM3{j3IS! zCE(6aXd(FzCPRv8Ibg;5C>q1S4ZM7Dbfb`rXnz|*h#<0kWXoi>oYNcix|X*>$*N^} z6yL+F7YF%BXq6@JEh5mTX9);_EpSpxQL=1_4U0A~?iGhiBT{D6(|%@O&zZFX@^Iyb z1R4yokZbhp#wFSHt@rS2U7EA9U}n!PTBYXGzr)c!$?0gH%dnXsbeocwwLFCC>-Z(* z8D4`|sZo<)VhL%kSL2Vp(spE}%=<+ZFvQxqbTble8s2&oXM^y&x{3@aH)>oqVo zvV!(AGmi4H0`pb@+{%asPK=3u$N&{j%uyqv+gO7nwFV0!9xel;k=(3F6m+43q{EwC z`TezvUhvpdu%zvZ9}!BOJ-Y0dVhRucG+uwrOofja=7~MMBD}0%C zmzMjRgIo z^c_s98)1=#?kVbot7*@|d*%R4;sFR>H7MWSxI-d@EmN7MUP2MF?RtiCzoAR(ZBBRs zyH+MqutS&UVlG6ZzUZ%&PUNI~6maBx(>y1m{;0%+$4sK3aDlnmW-B2`*@Nw5lv{o{7N%H9G@A2$ zeHY&dS7^v%aT2CNZPg9vi=zW}9qL-x%7at3v$Ex&HVR%dpNDH{Y^!>bxN)AuS(+qybTPXep(aIXi%QeSWW@(+p*GfAlpJv7X&r)i z=NSa11TPn#=|>QkUw|g$4EwFc%=Vzxu}eIC8&Mss0#V9${eJ>ikj+*LHvvy5Kf!h~ zA~*GnlbWIWyg>wmTN)RKHU{mLnC8)Fid4)!{!Az_?U278Q+F|&q?>{j&fqoPk5owD z@{nB|Q2>@tf{!}j^|D+AAT9zOpR`U6fCOQ5R4)j=qm4U)_Hbz1qE!skI9 z>yR84I-Sd>HnjpKa1Y6NrB`>qAHyg?$0=v`c6Vm&sO8Ot8J1^0N(?&h@NPGzC|pXJ zTggidsW`2C7%{MFwh>r`!fOi(r%al97M=R@W!E?+QYR-w1*C-Z=3em!2_8HNGGG==6Hz6y?>kt!IzfPt|8wehR5AK91cII1BdQEfq zb%BYAzAryd!iC^kU658FeLyt$Yj%JFI64ym&ZY%Rx%SGg%jP05;iev38ijf~oSPf-+TQ=I}h4cOrOCs3*Vg9BI$V zVbS8)aYexB??myhKV7Um%Z)D-vD3A`T3#dqarTtP|Hk z42f)yp@Oq%EGTEOk*V4GE>9yla7PYX(bLVczcUr{Bf_y?Mg7($lXFOZtfdzZsUbGa z)b+P?T5;l_N`Cv&-K+8@bXE9DbUayIl{h=Cl|8=XIn*=I z_2i#2&8$Py)3v1YHsu`^_MB>EMK(Gr=B+kiI(2n*toq7>xzyFVZ6!PESt*X}q~ipS z__K_3nA@#6!FS3IWrq^`crz?*q9KmoObEZ*N-ncn{D=$01@O0A;mB@yf`V4WDgr(%D4%?2Pxw)>>m zlAP4BckZgfy~bDt`y#3i5hO6afBfmt4~l<(K>bN4wj=$2KW)nBI+*<9v}vj0X``ru z!k6ZGc}_NVP-BhsTV#oO3{038s%`cs@$|%sOkWUl0kY|Y)IEusxKp2z0^+oVNm@*3 zy;2AP0Y2)Pa^RPRUUkcodDE1Y6TUYgu_B=cvog3l_(G?`@G1L?wl)dQUYn`5hfMd$ z%h$=4Lt5+ihXR!^KWN%5fflvzlN=7*>bK?wdOA})NIORRpP z4k*r$_%08=1Bqyg5-6@mBg@70-4s#1eGz0~(%|Fj?fRm>eW`b(CsKO?Xr5FRS%1@V z1n0ze!64V&o_nIBiM4_zZ(Yvxa=U1WuDU2+kEJP2Q zxHB-KakZa5ylj1r7l@DkCT9H6r|yuewZY*A;LVsrGAkM{&v0W+L~L&q{~FBG_a?E% z{6N}f`*SySUNcv~K8usske5LgB1L66gg@R;45q&NHu;5|rZIpue&bg{;jdcjgwBjB z5>IwlYJwO4kN6C>K3>k5>3>lG) zz^4<3X}u>UgMFmv&b0&^5<4aaBZ!OUx^wHAl=4Mm>y-4080>|!{#RqAvP{GP(t2A1 zG8IDk_wpLDZ7e5tATg2*a5_v9uhl(}DBo=j#O5blYG$YF6}a2}w%NLJ>2Bp&9)bf$ zHNCv}r5!bZc;`Yz0kusichb@}vq#jc%kkL*Xt#6BW;uZvHL!J8DJ!$c046uDGo7B?%I8c!iWpuQZT-aUEV%ylC7V0IAlgI8`{{PNyc}z?%YnC-^#~NOc>6MJ7%TwjjxHz{^OS7KD}5v*^vnpyNlz@R`1+&-tUEsL z9g~}dB3S=vKe00NwSQnulu|u(PV0GbqT+Sz?kwK%Y9&V8CTh8R%Uwk~fORaxVbh7> zLMb19_xr zF+Dhr_V^CE6ENObir=#3$O)aBWvIS1^m6TU7LN^#%4F=u+>o3A@_Yv?O4EEaw3gQ@ z@MaHY*;P0D%6+RHJ%*iIhBmaLGk5bMu)^SmZdDl6m!`UB_t(9C333*g)E~&JSzeF`U8iYwXl~lwwdOAi<>g*_ThOIgQ ztM-;4H5UuWytZ!K+6j~i)4h9l|G|Wi42hH@-tU^i{&6U zxN~kk4H2Z`4V@RyH?||5b0ke7EiR8+YL{K)Dsb(d#vT4A%6sr8aP6D!D*G$2pRc^@9k7BW zKAew)iBRj!k8OV2-0)L5y3bFnB)`y->1h?XI#wN+tY)Bp@_~mJl_hhuM9OCNbZjd4 zikV&O!b8Qvbd6b+)_`9Pd)N?ZJs(02_;3X9qO zD8wOn`hju%gNFkK@6{|=A5_YK6M(b`6C$TY=P*E(CE;N(_=%rpukTDNvLe(GOt_hs zONVTwbjCZA@G*p0QrMRnvT6hO1;ovcuj@tSd~+YI=ajPI42M9e4fc04KWiAXUBKAN z4Tsy0h*{mkBl0sG5y2d^(|#yR;BPX-1nXgZ#8zAMV2>=#SE`THskUr-x5+eh+xkxCvCQKmvAO;rM(`xJ^A113A^O`c_Fr56verU>q`M0n8vP^P z-OkS1?jI*}k?^)p&FyEhdtEElb>)vxWM2nus2;}9iBx{!*u22x2+7Jc7d`Ua}h&ta~j75NnS3Zu8Hf_u$yojD6 z3IocSNnbN7DpBIR&e2Mz##gkUdw{T;oVqri8G z`SFWAWX}2$@Cr6brs*}{xWF@+y}q1dx6S^iG)N;Z`D*tQw7=&`@c&wK)(VdLCZeW> z76$)HD9Q22eG*EZ_BKH~IsAJ1#`*}*h#Cj64K z7(B><@v-)Y1DONwx>w+iZa8$W zqqz$w6O?Sq@m!DmDhDlO!#E~h0A$N_AaOhsS4^`=KV!EwzG$!NA%$RInA6i5);KeI z2!j<}^rY__R1n@i=_=7+{#$kTyuc9ZA7#cTUGKm5iO1h-l>fcV{s*zYYS?7LC(J$# zZUd);k>vH?^03eXcSu+KrY#2|__D>>X3yx{W~jCciP;LK_9hbm)8JQz9$#|Ul?Bk4 zf;bM->ONl9zq$woUezOS=AuCGSbGM<8MLC4V~juZDSU1`#Z35ucY|x76oM3qF^Il& zdC3)1x>5W@?hO@qvHH6STlERbg+k)4u$v%SCOgpBN;DtOp&geQ4?TYoAx5c-&a22H; z#oe8Fw!5--z7r6)ikII`1ROckQAPr2^Mawa>u(%fm>^|S2JRw@EkpDLX&MH>bp=Up zzaxg0WJskG>0#m5BM|9U+#u)li>!KFz-}hlp8-m5HTv?dyDra_Oke~>8_-~q;O)iDF%*4jwOC?AThCq5#cpdkiO3q%qNK% z`A-t_aCzjD#MD^F?*OBv)AS014(BS@zO(c%GLJ<1126qlO8WIrywLs@uYY?k9W5*X z)~25m$aa5YxzHuwBZKwOnekRdh)aV1H&zs$BvEF0~?wL?7<7mmwsQCV~ujzGTc!CsswP5@C&uzu~>NgDTen!#S(&7F=lY4u(hX00tyuS_Ff4gKZHijmSqIQlp z2LE0Ao%_yii4PncoCKUm6#VJmG;sIqdciz#^Gn|P0P<4!{(M0E_zRCKxTq*NSrGA5 zX6F3u0Pb+!?dmBrNb?sYqHFr$MR6;Fnx^ISf&7QTjz3ldSu0FI^y7qx#YD zF`8NXNW5k6^0d*v8#l*A}TR4SY7{%VbJM|yTMzr}yg8R-E{G}YHPjy2Rb(Fd6Y{>>nBBQgh!L&OJsK@uRGfGp5xY+}B& zHrD@S1%wTsgbw`K40zUBb9D{tk?8s#OtWokAlm=^6D9nJ@4v_0>NG* zYx0c#H@3Z@iZ7?O*oU+bwk^~Ep(8@V?4EM3>Sxrh&EKZFgH-j0gQ6hxu(pKMK1!%7 zcPe*Q>smfHKY?9-1>gCp<5Mb|cbdmM@#4%kLlE5!F&+&=*mt)Q1NSUVhH`gpTER!e zDM-6ut&D6X8&yBm&*v{nwDs;ym(os7X_PYIb&_K@B#L>~h_)mwNV0js<-#g!XV)-^U zh3s*LSFu((YI24kyp(Y)p2rpo0;+5o@z%g^jrcD>Z5;VhD2 zBc%t+bE2$s&wAwTd)mPv@b?mDJ_bElijmIJ;!xwNPWcShMn&HHX%|hr9C1Gq-}bGa zhj~yjw<>z`k~%@LvgkKbMqC;gEOCtRI+D2slb->foi3NI z%p&XZeuVW7V;&gOs?j(t8}lZ*ARlZm766BNxM(QGNOHw(B!kPa<(bJAr+Rjhn%Ug( ziSkby^Dd`%Tve2rhck}$qCrnNEVud}@&E(7ySGpK`@&~AX#I+iw}O3tk3#Wtm;Jal zd@YQG`pn+r8$>|7=#5HWxAI(Jjv7lkf!k<)DgXtD;33wG=Jf%$)dnjdeK*r(JH6kr z&ym^QQI`6qAOXxN(V0gha(B{3gpubohZV?xuMi-N+<9VCfDAPX zfRZ0&Pxw;F$bk#b`n(z&8UiQi7KqK%Sv}+I#R(+F_#@vFcdw>!lqLqn+WWSk2q!+d zkQnTzPQ54(Iv@QuC#jD+`jk?~{vab~xugl_(l#7OJd5{1M@GuM@*V5^LGSW?^Cfpe zb0?f(43V7tYNo{^6jr+YkNEh?=BCQ0&6(9LXpZ_$%Hs&7!A$E(*E)jTTEq zZ+E0a4r`TL&7ty69t z4Fu@EQ6|I0JG^MB(rK)T>`puE|eD=bGJ13AS3uZA`C0kN3-)QE#Q%>f2dY8YDGO;vaW<$+Ii;r*o} zQ`>4+%Abi&-rH5y>lEF~!x1WZ_Vj*Zwd>cX zPBXAipL${bt|tF)SnX){Ti5R&T?Ls~x!((egImiD<+V*w?{Wdni&DMiyCR=KgP;X3 ztm+bJS#j7eN(i~XP=O_1zQF}D>9yZ#QQaI4L^nDHc0LN8Gc07r4HJhhNkG>VtUmQkzK56w5 z6y*c^);dKsa*(zmk?SL8R7t-ulm-*B~0or{P4dR<5;b z^$){*;H)H9P+}_L?w|f4M)JNR(DeS1?|lC@-{JqIXp;X&3d*Z@kx{A+w7;#zE*L`K2j7j$5_Fb&P-hFCfzQPw;`N3t}*wu0lXYUZqCE4^Q{ zAo~quT9-8?-We&Q*imCl@;j9|gl?^78nNVQ*d|0c)ML#=beEBlY8q64D?1i`^sPAYv#Wr3z{F? z6-fOE*8AOX*OA}c656;kx80~Ru!9;x7|vl^V%T;7hwV? zdumY;%Sp8O8)Ggpp4qe;R)UTrV=aqb)nE~K9iEURT%u+l0N$`mF$sfP%ETL3UhXMQ@hA=`~hkYhx8fItI~{OnQ1rZNu5>>j zl;#kZZ;L%q28vv4&fse1yD8dafAOn%p{%mSH{3e9v_3^0jIS9VcKP0)kL?1Oi2s zBsj7O`wcr;AK}fXYaBwscg%10w{pkOlBHNWO-|&&sF>`@7MvbrF-n_aq)XmuA-XFdMZxw{)jD{4q*ep>M!%hlIXi?LjCc zEYWjkyA88|+~8ik%!xg1e2h%INTT@$|^Td^%*DJS;P zHU=G$a{=Xi4w3JtWfTm@ZBKDbDCV!(X8qrQO)-6kwSlHsw&}+yTHk@u!~2eh7!Pkm z0Kn#}01zF2U{y@t9#X$K%(I!0Kwf{X!wi6@Yn;x=USpL$5ZltYjZyw9+v{F@vt+!@ zx{M23)a&imJv<*a?k?C~uk9W)MV4Je)QCOYBf;-nVO_GrkqP?gQ}jni|3CL{2>&;n zlQFRUsO}yAxn=Gn-}@nBh?mr={o6J4Hl$JCqv(1V1IA}K`tQWan)JcQr8E>FY@yrl zmulsT;R65(Ojef_b&`f?<|GvgP$#bTd;R{MX3L~wi2;zQ49~+L`_=I`L%MP%rQ;4Z zw;7B69xelhS1p75!@htihwoY<_9EJAvU#C%r*F(Pwwr=mA}}BUjg-g|M_FYY^eh?l zCXJtw1Kf%dX)s!+H7!paFeCU=yt^ldl6uzw5Ph-bL|ZaLvNi9aw)U4nQC{;AHBg6I z^Jb)?6z*Rhu-5dTK}h&$qvwX;)#$7u<-q@lF+$&r_V3Q(?BC{+zcMC&=8}KL_|HEj zZ0!G3*-KKfNvN3l8 zw{FqfJz;b`B36DPR~`K9QS1Nrk$R)#cZ1>-|!3_v^_P{~M@1C_nS< zCW|c&NU}i+#ALf{oY!Wm0glP}J)n$Fs}_|3P>I8X#=_*xL+>9z4oDV9pKUqeIxnzq zWgMH*yh3^bK+7b+A83hMsC6+T z6oNThdgz9NRqUO9E>7hj*D?t#RBSSdikC9hAJtNI_OTP`A(9$hxeX~JKA;Vm46SQo zZqEZ~5**;#`N7%|Z8YHyXE&WQp9;WRLjlm5-$RuCD)7C})TK1%AfhLWNr26;dO_atv76&AuH*)Mn z$t*g82D0Kb;c_jKt&YozVAnRYg{!oB{4%KGebg-ky-7fXIks!kPwZ!#NFGe&ZVWKR zjNiE>v%}P#brp8>k0{taudqn4vxp@m-CsQ+I^@qi`5aEU#9%RE0WICv-vFXGXAc7i z&&bKOpmkzIHkrsOm$%uLIW7~Us*YkKw^XktL4JX~u)s&tq}asVAa+P{)G9++I>wvV zJ^74fRkGW3>JlBA!N6EepV>qM2NS>9b_qoWuh1?y;K>v{6{=l5cm?(&n^~IiXA3NE zqlZqjCJ_(Gwx0}~gdN-#xJP$>ltJ-_6NZ)TZ7l0XQ!BSMR`xJ2X_&U*tynV@l!R7; zWvsCj6VcOrO68lcpko|;n2to*txdlx!^@X)2bLKG%JC@T8<^ z3=~Ca3@o8ixQ!4lXR?a@VocN=V@d*mpH@rQPkR}0?+WK1^sDJ(_UheBH@H32GkKbWeN^`DOE#p^stkq?{sCa_P9P0>KK;G7t$1gdb#I|Vxf%ch0 zsco@ehKWCMe)(P>Ccn*?Z=wzSL$iD}--qPQoBsHoByRU4nhVDXHS4<|=7oyV_&K3|XchRTHv6&>?i9wI+LTjzuWLfA!>c^BV4Eg4F=}@nwwKmY zmHD79<`E`?!WYIgo`Hv_%~~8$!P36|<(tB2$Gq(g0HfeETOW!nOBV`huQjNDD4VyK zBoX6iJ?k6ii$T29W6}YJ-f$A5DVZtNknNc7m(9A18Lu%^AANvDTi>|&; z3i7D5$c{@f;paR|pPgMcKfH{bF0!5;y?sDxqIra#zIU*eM;|wp7k8OC5Jk%@Sv&bX zWw6->Ov>1!KdyJE_F_8D8h9-Tt?l@=&-l81$qvU9GW|j+v|lGO^y^~XhmL0J95lOo z0&%NWhkMy1l^PZWErW|C(n3Dx1he;uk{Hu$8TV%i01%YvbprrG@qzd7q_3@~Z(&v#nps|Ma1l%$?GSd)i^LKE{rmg;=MP78nX%Y2t z*ad%k*neFVbu=-hS2Qs-aWt_t`llzoqKq8M$GOI&xte3yltK=oql#p8DP|nW0>D2M zXRyOoYwX#ZVu}i|95S)rkuvC5fMm4IiJ{2fNR0+=xDpI$Y%(W&9yXn(S_y9U9uDb0 zo$p5X^kqLRmb>zH>%h(1-leUo_+Mvy4?whEAA0?TrT_dR+Y)fnI1~Hjek&DBN#9iO zsWN)YH*Yf-IO2}cu!25%thH{)dDlhmF0tpDV_7MS!rq0rr;-KxB%PjhJ7P5*o*4F9 z>y0S0I!UZEw=YG-jEf{UTV1LQiGOAfuUUh+V@lf_FkKNt@EDt-_{kD*h_!1H2BiA; znBl@j7=P(g{(B*`N8Ke+q+k}SWb5S`=Q|Z!`}m?@G~&!!h-q4#-YAwTqog{UL6dRL z!kfjo^9~QxySZKbZ*Hqy827+zR($RYd2#R$cl>IUXR)Wbs|d<-FsvGVRE!2y_SvBC zawuBj0sO?0w?zz5GMyE<{6gRMZaPbsI3vx#8Sz7rMpK#s*ogRdW+8<2(4B&QI{Po? zOdK`P5E$rI;Smu4kqj}NV1#&cin8b_LI;p!Zr?+bcoNjE6BL-;4H|YF2A3!8{@4uz(i9WK$f6f#{f5DI6S4z#q!0NwU ztAA64zM|mA|Dpp2iW@U(4gf%i|7$S}y8|s;zpH=zQuWq%g- zSc>r;SYt+p8Y>HCTeIy|NYy?N)gc(w5&wc%tUP%L86pCCqM$!lP$8FAYF9p@5cjw5 zlE0d3|L^aT{}#2Vk00Y7lE-QmmEl|F^!T1NmWsr~$aDijD3N+$LwlOw!1KWk+wa%< zEPoJSd&!6_n1$`5r_$G(8O`<2S5Now+o0&Z$6;bS072LF2y;Yx+;31+T(~Q9*Wqip zwXo_SNFT=6kD+Vlv=MKx3RZN;Hw1uOwFk&WekN?kpldxvZ0Mlb4$c6+%qDZB5eigG zofW(VC^v{>Yg*xnbe(9A@oXodlDB!j?h6No>jU!J2opo7G4N}3qGgLr3rZwdB+^Em zO6B?d!jAa84E14vKdW{6w87DcenzYntmf!QRXZM)=$`nGB6>2hDER@#;bpa!j$g!< zvrsniao09w>Z(b>6{|fzcV@1nko9WsBC{w+sRK78#tr4N0C~naxuLs%0H6_MnHtr{ z3Aq0)022R?+xoAVE4Y}r{E31-${R{JDyZ)p-Zi6jkivXH#6X%X>tCoU!Gc47l*=*% zp(7UhZl`M>xhBiNW~@fPfA#xBKgq$9jzREcZMv43Nyt=xsQ3*edN1R{BGPWi$&HyM z)PdPc?wqsxhWqeiIpgj20f8U51v)GDB->YyfX&6qiGzX-kTL)mfubg}JrvQU)Q62* z{_eiZX?Zp0MQkD`ovp^m@~TzbGd!J|DM?3Hy_K$|sTWFt>;R7bkmv9VJTSdE=q?R5 z$@EBkek3@x-EzgyJAS;YU62A`FQe>iVj>6(Qk!U@4&WW#j)JYQgcOA93nT}$r5a5m z3g$!e>yn0MlP^|@PYi&oVg;xUv9aOHrWFBPm+r^__t9$S43l(AE(lb;MX1K92Rt|~j73*x};a+VA)JniV2Dg~BLt$U!@J<{Jsh#u~ocV_b zXtnkopDJi)oe&g>t#GiU1eEc;yVz2|qluCnJI1HgL`>5SmDr0NGoEM-R#bx2CQ(gR zCKZ5+J{scaoM37y+6icOHBq#2qieji+0=WyK-$HLcNH`k{qlFbEpI3whstP@-|b+l zr54#I@%DM_1%Zv`@m+^lnHq#A+Yw!n?IdXKY)||O>p!oVX%0e~vIsK}!mu1d0GHBd zZ#*T?9XoB*NXQF45x*bA!+)y*hJ8RMI@#aYNerlj+$$_!L~J$7^J0P zek8eZNIB6N6@gn}NT_YH*{D-_rdAO z@j}@>ToBwg7)$&CyhXai_u;87v74@&lu?0dCaJIA2yzBlA*RFG4C4cfWq;A!a<3Dpiadtq zDZZ-^uaiZ^?9)iKFvbf}$h%XuQLsa`jyxdI`2?y?QraeR&iFdyU4_Tp24C9^9Ov)G zaJaOejwncTUR%QxD8aw5gdj?2>~Z1K7`jjOR?eM}oNZ&p5Y0-&m^uG|BklenwzECC zbmSKv*I3-rS__V zo9kG2bLoDwOFxoi1#i@1N*qW6l%0XcWn7PDXy-s4g8R%r)J;{ow%>1oX^6 z`H>+rKKw%ebCzWJ3-0_M=>K1kC@SVppB|fZ@+bu@o5nmC3_5H95L+c^MMP*c@2}6f zvO=V?QnQck&iUJd+Rym|+(eYUVtA>o%$ZKzUI%BdPhdSrO^_k%yRwh9^0|J=(!)$L za>2;C()Zzq!I>k%Wwkt0#^kh!JI1#Qi6dcpO}C;EvHfcrxVIpElX|!?DuRdX$-&sU zuSTMRl^CVwn-rKj7vDwjqCrrkf__?K4+jNSH8bo}BskfoycCxBN0?MtdIxU5;#eBU zuvc-Ec3^$@w#~N> zKD#bxi&i(`c!PHGusY4L7}pJiKQn2P-H`SToJ;$z0GejGhW{hf5Rhay2`#@zSvmd| z^8Z(I>CcAXKi;jCYHr>rhgiORT8pEHM(TvykV3RU%gK>=#bCrBQMEGiKhYRCOdB}& z`_V_-ejXc3bD1l(iLE*ZJI^?`FoOXz3Bwh&e5n1*6>(e4by93_pFjUJCh=hK?f!+} zchY&NGxZ@oiSKp4!~DrINK3z0w^FV=+(Oh%CBsDYRya?CxxscLo)FYjkIQDGQ!Qp0 z85#^-_F>{0hYS@8w3v5_PAkEc$HK0bR_7#%5NbSa_Y0vtS!PWf2nmck#RW`72l97Q zpBUR?QQ>ahQVJI+W>9Y>e5gb{*5sfS)UL30;IZl>B|9E+gXk|3lYp-jmZa9SAhk6X zT#=govyY%jQ2rW|5E9(j<(7-PqzmcY^=uG~*2`Q%GUdkc<&7s$4n?d)$_r`;u}=XE zJXR#NB}k1+FsR8%b}07M6EtWvgUDE5m(-~tPlGI8Rj?Q@`{!i*Y!+eo*CKs)OsX|U zz$G-AB{MqZInWDCs=K28 zWp&5Q3{PX%HrDSlOzZBtx+0Aahyv}T708sbN3MZI59xrf<<{JOb>Qq{>QS*@kjOUc z&?Ze9lm!(

-qt5;b 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

>b~pA*cBfkXIsuSUTyw(`|^H&BolY}U1 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®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 mn-x$UW`3!q-5d7ulOihn=W3G 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 z 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