summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java
diff options
context:
space:
mode:
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.java44
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();
}