diff options
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java | 44 |
1 files changed, 27 insertions, 17 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java index b776a9f..e88ed73 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java @@ -54,7 +54,6 @@ import com.android.systemui.qs.tiles.FlashlightTile; import com.android.systemui.qs.tiles.HeadsUpTile; import com.android.systemui.qs.tiles.HotspotTile; import com.android.systemui.qs.tiles.IntentTile; -import com.android.systemui.qs.tiles.LiveDisplayTile; import com.android.systemui.qs.tiles.LocationTile; import com.android.systemui.qs.tiles.LockscreenToggleTile; import com.android.systemui.qs.tiles.NfcTile; @@ -67,6 +66,7 @@ import com.android.systemui.qs.tiles.UsbTetherTile; import com.android.systemui.qs.tiles.VolumeTile; import com.android.systemui.qs.tiles.WifiTile; import com.android.systemui.statusbar.CustomTileData; +import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.BluetoothController; import com.android.systemui.statusbar.policy.CastController; import com.android.systemui.statusbar.policy.FlashlightController; @@ -115,6 +115,7 @@ public class QSTileHost implements QSTile.Host, Tunable { private final UserSwitcherController mUserSwitcherController; private final KeyguardMonitor mKeyguard; private final SecurityController mSecurity; + private final BatteryController mBattery; private CustomTileData mCustomTileData; private CustomTileListenerService mCustomTileListenerService; @@ -127,7 +128,7 @@ public class QSTileHost implements QSTile.Host, Tunable { ZenModeController zen, HotspotController hotspot, CastController cast, FlashlightController flashlight, UserSwitcherController userSwitcher, KeyguardMonitor keyguard, - SecurityController security) { + SecurityController security, BatteryController battery) { mContext = context; mStatusBar = statusBar; mBluetooth = bluetooth; @@ -141,6 +142,7 @@ public class QSTileHost implements QSTile.Host, Tunable { mUserSwitcherController = userSwitcher; mKeyguard = keyguard; mSecurity = security; + mBattery = battery; mCustomTileData = new CustomTileData(); final HandlerThread ht = new HandlerThread(QSTileHost.class.getSimpleName(), @@ -281,6 +283,11 @@ public class QSTileHost implements QSTile.Host, Tunable { return mKeyguard; } + @Override + public BatteryController getBatteryController() { + return mBattery; + } + public UserSwitcherController getUserSwitcherController() { return mUserSwitcherController; } @@ -311,10 +318,12 @@ public class QSTileHost implements QSTile.Host, Tunable { if (DEBUG) Log.d(TAG, "Creating tile: " + tileSpec); try { if (mCustomTileData.get(tileSpec) != null) { - newTiles.put(tileSpec, new CustomQSTile(this, - mCustomTileData.get(tileSpec).sbc)); + final CustomQSTile value = new CustomQSTile(this, + mCustomTileData.get(tileSpec).sbc); + newTiles.put(tileSpec, value); } else { - newTiles.put(tileSpec, createTile(tileSpec)); + final QSTile<?> tile = createTile(tileSpec); + newTiles.put(tileSpec, tile); } } catch (Throwable t) { Log.w(TAG, "Error creating tile for spec: " + tileSpec, t); @@ -361,12 +370,16 @@ public class QSTileHost implements QSTile.Host, Tunable { else if (tileSpec.equals("performance")) return new PerfProfileTile(this); else if (tileSpec.equals("lockscreen")) return new LockscreenToggleTile(this); else if (tileSpec.equals("ambient_display")) return new AmbientDisplayTile(this); - else if (tileSpec.equals("live_display")) return new LiveDisplayTile(this); else if (tileSpec.equals("heads_up")) return new HeadsUpTile(this); else if (tileSpec.equals("battery_saver")) return new BatterySaverTile(this); else if (tileSpec.equals("caffeine")) return new CaffeineTile(this); else if (tileSpec.startsWith(IntentTile.PREFIX)) return IntentTile.create(this,tileSpec); - else throw new IllegalArgumentException("Bad tile spec: " + tileSpec); + else if (TextUtils.split(tileSpec, "\\|").length == 3) { + /** restores placeholder for + * {@link cyanogenmod.app.StatusBarPanelCustomTile#persistableKey()} **/ + return new CustomQSTile(this, tileSpec); + } else + throw new IllegalArgumentException("Bad tile spec: " + tileSpec); } protected List<String> loadTileSpecs(String tileList) { @@ -393,11 +406,10 @@ public class QSTileHost implements QSTile.Host, Tunable { tiles.add(tile); } } - // ensure edit tile is present - if (tiles.size() < TILES_PER_PAGE && !tiles.contains("edit")) { + // ensure edit tile is present, default placement should be handled in the default + // tile list. + if (!tiles.contains("edit")) { tiles.add("edit"); - } else if (tiles.size() > TILES_PER_PAGE && !tiles.contains("edit")) { - tiles.add((TILES_PER_PAGE - 1), "edit"); } return tiles; } @@ -455,7 +467,6 @@ public class QSTileHost implements QSTile.Host, Tunable { else if (spec.equals("performance")) return R.string.qs_tile_performance; else if (spec.equals("lockscreen")) return R.string.quick_settings_lockscreen_label; else if (spec.equals("ambient_display")) return R.string.quick_settings_ambient_display_label; - else if (spec.equals("live_display")) return R.string.live_display_title; else if (spec.equals("heads_up")) return R.string.quick_settings_heads_up_label; else if (spec.equals("battery_saver")) return R.string.quick_settings_battery_saver_label; else if (spec.equals("caffeine")) return R.string.quick_settings_caffeine_label; @@ -486,7 +497,6 @@ public class QSTileHost implements QSTile.Host, Tunable { else if (spec.equals("performance")) return R.drawable.ic_qs_perf_profile; else if (spec.equals("lockscreen")) return R.drawable.ic_qs_lock_screen_on; else if (spec.equals("ambient_display")) return R.drawable.ic_qs_ambientdisplay_on; - else if (spec.equals("live_display")) return R.drawable.ic_livedisplay_auto; else if (spec.equals("heads_up")) return R.drawable.ic_qs_heads_up_on; else if (spec.equals("battery_saver")) return R.drawable.ic_qs_battery_saver_on; else if (spec.equals("caffeine")) return R.drawable.ic_qs_caffeine_on; @@ -495,8 +505,8 @@ public class QSTileHost implements QSTile.Host, Tunable { void updateCustomTile(StatusBarPanelCustomTile sbc) { synchronized (mTiles) { - if (mTiles.containsKey(sbc.getKey())) { - QSTile<?> tile = mTiles.get(sbc.getKey()); + if (mTiles.containsKey(sbc.persistableKey())) { + QSTile<?> tile = mTiles.get(sbc.persistableKey()); if (tile instanceof CustomQSTile) { CustomQSTile qsTile = (CustomQSTile) tile; qsTile.update(sbc); @@ -508,8 +518,8 @@ public class QSTileHost implements QSTile.Host, Tunable { void addCustomTile(StatusBarPanelCustomTile sbc) { synchronized (mTiles) { mCustomTileData.add(new CustomTileData.Entry(sbc)); - mTileSpecs.add(sbc.getKey()); - mTiles.put(sbc.getKey(), new CustomQSTile(this, sbc)); + mTileSpecs.add(sbc.persistableKey()); + mTiles.put(sbc.persistableKey(), new CustomQSTile(this, sbc)); if (mCallback != null) { mCallback.onTilesChanged(); } |