Skip to content

Commit

Permalink
Napalm Meet QuickSettings Tuner, Tuner Meet Napalm
Browse files Browse the repository at this point in the history
* light this shit on fire. it has way to many restrictions
  • Loading branch information
Beanstown authored and rc420head committed Mar 11, 2016
1 parent 7bc708d commit 33ef7d0
Show file tree
Hide file tree
Showing 8 changed files with 64 additions and 718 deletions.
8 changes: 0 additions & 8 deletions packages/SystemUI/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -190,14 +190,6 @@
android:excludeFromRecents="true">
</activity>

<activity android:name=".tuner.QsActivity"
android:enabled="true"
android:theme="@android:style/Theme.Material.Settings"
android:label="@string/systemui_tuner_qs_title"
android:process=":tuner"
android:exported="true">
</activity>

<activity android:name=".tuner.TunerActivity"
android:enabled="true"
android:theme="@android:style/Theme.Material.Settings"
Expand Down
47 changes: 0 additions & 47 deletions packages/SystemUI/res/layout/tuner_qs.xml

This file was deleted.

18 changes: 9 additions & 9 deletions packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,12 @@ public class QSPanel extends ViewGroup {
private static final float TILE_ASPECT = 1.2f;

private final Context mContext;
protected final ArrayList<TileRecord> mRecords = new ArrayList<TileRecord>();
private final ArrayList<TileRecord> mRecords = new ArrayList<TileRecord>();
private final View mDetail;
private final ViewGroup mDetailContent;
private final TextView mDetailSettingsButton;
private final TextView mDetailDoneButton;
protected final View mBrightnessView;
private final View mBrightnessView;
private final QSDetailClipper mClipper;
private final H mHandler = new H();

Expand Down Expand Up @@ -596,13 +596,13 @@ private static class Record {
int y;
}

protected static final class TileRecord extends Record {
public QSTile<?> tile;
public QSTileView tileView;
public int row;
public int col;
public boolean scanState;
public boolean openingDetail;
private static final class TileRecord extends Record {
QSTile<?> tile;
QSTileView tileView;
int row;
int col;
boolean scanState;
boolean openingDetail;
}

private final AnimatorListenerAdapter mTeardownDetailWhenDone = new AnimatorListenerAdapter() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3412,9 +3412,6 @@ public void destroy() {
mNetworkController.removeSignalCallback(signalCluster);
mNetworkController.removeSignalCallback(signalClusterKeyguard);
mNetworkController.removeSignalCallback(signalClusterQs);
if (mQSPanel != null && mQSPanel.getHost() != null) {
mQSPanel.getHost().destroy();
}
}

private boolean mDemoModeAllowed;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,13 @@
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Process;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
import android.os.Process;
import android.provider.Settings.Secure;
import android.util.Log;

import com.android.systemui.R;
Expand All @@ -39,6 +43,7 @@
import com.android.systemui.qs.tiles.LocationTile;
import com.android.systemui.qs.tiles.RotationLockTile;
import com.android.systemui.qs.tiles.WifiTile;
import com.android.systemui.settings.CurrentUserTracker;
import com.android.systemui.statusbar.policy.BluetoothController;
import com.android.systemui.statusbar.policy.CastController;
import com.android.systemui.statusbar.policy.FlashlightController;
Expand All @@ -50,8 +55,6 @@
import com.android.systemui.statusbar.policy.SecurityController;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.statusbar.policy.ZenModeController;
import com.android.systemui.tuner.TunerService;
import com.android.systemui.tuner.TunerService.Tunable;

import java.util.ArrayList;
import java.util.Arrays;
Expand All @@ -61,16 +64,16 @@
import java.util.Map;

/** Platform implementation of the quick settings tile host **/
public class QSTileHost implements QSTile.Host, Tunable {
public class QSTileHost implements QSTile.Host {
private static final String TAG = "QSTileHost";
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);

protected static final String TILES_SETTING = "sysui_qs_tiles";
private static final String TILES_SETTING = "sysui_qs_tiles";

private final Context mContext;
private final PhoneStatusBar mStatusBar;
private final LinkedHashMap<String, QSTile<?>> mTiles = new LinkedHashMap<>();
protected final ArrayList<String> mTileSpecs = new ArrayList<>();
private final Observer mObserver = new Observer();
private final BluetoothController mBluetooth;
private final LocationController mLocation;
private final RotationLockController mRotation;
Expand All @@ -79,6 +82,7 @@ public class QSTileHost implements QSTile.Host, Tunable {
private final HotspotController mHotspot;
private final CastController mCast;
private final Looper mLooper;
private final CurrentUserTracker mUserTracker;
private final FlashlightController mFlashlight;
private final UserSwitcherController mUserSwitcherController;
private final KeyguardMonitor mKeyguard;
Expand Down Expand Up @@ -112,11 +116,22 @@ public QSTileHost(Context context, PhoneStatusBar statusBar,
ht.start();
mLooper = ht.getLooper();

TunerService.get(mContext).addTunable(this, TILES_SETTING);
}
mUserTracker = new CurrentUserTracker(mContext) {
@Override
public void onUserSwitched(int newUserId) {
recreateTiles();
for (QSTile<?> tile : mTiles.values()) {
tile.userSwitch(newUserId);
}
mSecurity.onUserSwitched(newUserId);
mNetwork.onUserSwitched(newUserId);
mObserver.register();
}
};
recreateTiles();

public void destroy() {
TunerService.get(mContext).removeTunable(this);
mUserTracker.startTracking();
mObserver.register();
}

@Override
Expand Down Expand Up @@ -211,15 +226,10 @@ public UserSwitcherController getUserSwitcherController() {
public SecurityController getSecurityController() {
return mSecurity;
}

@Override
public void onTuningChanged(String key, String newValue) {
if (!TILES_SETTING.equals(key)) {
return;
}

private void recreateTiles() {
if (DEBUG) Log.d(TAG, "Recreating tiles");
final List<String> tileSpecs = loadTileSpecs(newValue);
if (tileSpecs.equals(mTileSpecs)) return;
final List<String> tileSpecs = loadTileSpecs();
for (Map.Entry<String, QSTile<?>> tile : mTiles.entrySet()) {
if (!tileSpecs.contains(tile.getKey())) {
if (DEBUG) Log.d(TAG, "Destroying tile: " + tile.getKey());
Expand All @@ -239,16 +249,15 @@ public void onTuningChanged(String key, String newValue) {
}
}
}
mTileSpecs.clear();
mTileSpecs.addAll(tileSpecs);
if (mTiles.equals(newTiles)) return;
mTiles.clear();
mTiles.putAll(newTiles);
if (mCallback != null) {
mCallback.onTilesChanged();
}
}

protected QSTile<?> createTile(String tileSpec) {
private QSTile<?> createTile(String tileSpec) {
if (tileSpec.equals("wifi")) return new WifiTile(this);
else if (tileSpec.equals("bt")) return new BluetoothTile(this);
else if (tileSpec.equals("inversion")) return new ColorInversionTile(this);
Expand All @@ -264,9 +273,11 @@ protected QSTile<?> createTile(String tileSpec) {
else throw new IllegalArgumentException("Bad tile spec: " + tileSpec);
}

protected List<String> loadTileSpecs(String tileList) {
private List<String> loadTileSpecs() {
final Resources res = mContext.getResources();
final String defaultTileList = res.getString(R.string.quick_settings_tiles_default);
String tileList = Secure.getStringForUser(mContext.getContentResolver(), TILES_SETTING,
mUserTracker.getCurrentUserId());
if (tileList == null) {
tileList = res.getString(R.string.quick_settings_tiles);
if (DEBUG) Log.d(TAG, "Loaded tile specs from config: " + tileList);
Expand All @@ -289,4 +300,26 @@ protected List<String> loadTileSpecs(String tileList) {
}
return tiles;
}

private class Observer extends ContentObserver {
private boolean mRegistered;

public Observer() {
super(new Handler(Looper.getMainLooper()));
}

public void register() {
if (mRegistered) {
mContext.getContentResolver().unregisterContentObserver(this);
}
mContext.getContentResolver().registerContentObserver(Secure.getUriFor(TILES_SETTING),
false, this, mUserTracker.getCurrentUserId());
mRegistered = true;
}

@Override
public void onChange(boolean selfChange, Uri uri) {
recreateTiles();
}
}
}

This file was deleted.

43 changes: 0 additions & 43 deletions packages/SystemUI/src/com/android/systemui/tuner/QsActivity.java

This file was deleted.

Loading

0 comments on commit 33ef7d0

Please sign in to comment.