Loading packages/SystemUI/res/values/strings.xml +8 −0 Original line number Diff line number Diff line Loading @@ -911,4 +911,12 @@ <!-- Screen pinning negative response. --> <string name="screen_pinning_negative">No thanks</string> <!-- Hide quick settings tile confirmation title --> <string name="quick_settings_reset_confirmation_title">Hide <xliff:g id="tile_label" example="Hotspot">%1$s</xliff:g>?</string> <!-- Hide quick settings tile confirmation message --> <string name="quick_settings_reset_confirmation_message">It will reappear the next time you turn it on in settings.</string> <!-- Hide quick settings tile confirmation button --> <string name="quick_settings_reset_confirmation_button">Hide</string> </resources> packages/SystemUI/src/com/android/systemui/qs/QSPanel.java +8 −1 Original line number Diff line number Diff line Loading @@ -296,7 +296,14 @@ public class QSPanel extends ViewGroup { r.tile.secondaryClick(); } }; r.tileView.init(click, clickSecondary); final View.OnLongClickListener longClick = new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { r.tile.longClick(); return true; } }; r.tileView.init(click, clickSecondary, longClick); r.tile.setListening(mListening); callback.onStateChanged(r.tile.getState()); r.tile.refreshState(); Loading packages/SystemUI/src/com/android/systemui/qs/QSTile.java +18 −6 Original line number Diff line number Diff line Loading @@ -112,6 +112,10 @@ public abstract class QSTile<TState extends State> implements Listenable { mHandler.sendEmptyMessage(H.SECONDARY_CLICK); } public void longClick() { mHandler.sendEmptyMessage(H.LONG_CLICK); } public void showDetail(boolean show) { mHandler.obtainMessage(H.SHOW_DETAIL, show ? 1 : 0, 0).sendToTarget(); } Loading Loading @@ -155,6 +159,10 @@ public abstract class QSTile<TState extends State> implements Listenable { // optional } protected void handleLongClick() { // optional } protected void handleRefreshState(Object arg) { handleUpdateState(mTmpState, arg); final boolean changed = mTmpState.copyTo(mState); Loading Loading @@ -216,12 +224,13 @@ public abstract class QSTile<TState extends State> implements Listenable { private static final int SET_CALLBACK = 1; private static final int CLICK = 2; private static final int SECONDARY_CLICK = 3; private static final int REFRESH_STATE = 4; private static final int SHOW_DETAIL = 5; private static final int USER_SWITCH = 6; private static final int TOGGLE_STATE_CHANGED = 7; private static final int SCAN_STATE_CHANGED = 8; private static final int DESTROY = 9; private static final int LONG_CLICK = 4; private static final int REFRESH_STATE = 5; private static final int SHOW_DETAIL = 6; private static final int USER_SWITCH = 7; private static final int TOGGLE_STATE_CHANGED = 8; private static final int SCAN_STATE_CHANGED = 9; private static final int DESTROY = 10; private H(Looper looper) { super(looper); Loading @@ -241,6 +250,9 @@ public abstract class QSTile<TState extends State> implements Listenable { } else if (msg.what == SECONDARY_CLICK) { name = "handleSecondaryClick"; handleSecondaryClick(); } else if (msg.what == LONG_CLICK) { name = "handleLongClick"; handleLongClick(); } else if (msg.what == REFRESH_STATE) { name = "handleRefreshState"; handleRefreshState(msg.obj); Loading packages/SystemUI/src/com/android/systemui/qs/QSTileView.java +5 −1 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ public class QSTileView extends ViewGroup { private boolean mDual; private OnClickListener mClickPrimary; private OnClickListener mClickSecondary; private OnLongClickListener mLongClick; private Drawable mTileBackground; private RippleDrawable mRipple; Loading Loading @@ -190,6 +191,7 @@ public class QSTileView extends ViewGroup { mTopBackgroundView.setOnClickListener(null); mTopBackgroundView.setClickable(false); setOnClickListener(mClickPrimary); setOnLongClickListener(mLongClick); setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); setBackground(mTileBackground); } Loading @@ -206,9 +208,11 @@ public class QSTileView extends ViewGroup { } } public void init(OnClickListener clickPrimary, OnClickListener clickSecondary) { public void init(OnClickListener clickPrimary, OnClickListener clickSecondary, OnLongClickListener longClick) { mClickPrimary = clickPrimary; mClickSecondary = clickSecondary; mLongClick = longClick; } protected View createIcon() { Loading packages/SystemUI/src/com/android/systemui/qs/UsageTracker.java +22 −0 Original line number Diff line number Diff line Loading @@ -18,10 +18,13 @@ package com.android.systemui.qs; import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import com.android.systemui.R; import com.android.systemui.statusbar.phone.SystemUIDialog; import com.android.systemui.statusbar.policy.Listenable; public class UsageTracker implements Listenable { Loading Loading @@ -65,6 +68,25 @@ public class UsageTracker implements Listenable { getSharedPrefs().edit().remove(mPrefKey).commit(); } public void showResetConfirmation(String title, final Runnable onConfirmed) { final SystemUIDialog d = new SystemUIDialog(mContext); d.setTitle(title); d.setMessage(mContext.getString(R.string.quick_settings_reset_confirmation_message)); d.setNegativeButton(android.R.string.cancel, null); d.setPositiveButton(R.string.quick_settings_reset_confirmation_button, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { reset(); if (onConfirmed != null) { onConfirmed.run(); } } }); d.setCanceledOnTouchOutside(true); d.show(); } private SharedPreferences getSharedPrefs() { return mContext.getSharedPreferences(mContext.getPackageName(), 0); } Loading Loading
packages/SystemUI/res/values/strings.xml +8 −0 Original line number Diff line number Diff line Loading @@ -911,4 +911,12 @@ <!-- Screen pinning negative response. --> <string name="screen_pinning_negative">No thanks</string> <!-- Hide quick settings tile confirmation title --> <string name="quick_settings_reset_confirmation_title">Hide <xliff:g id="tile_label" example="Hotspot">%1$s</xliff:g>?</string> <!-- Hide quick settings tile confirmation message --> <string name="quick_settings_reset_confirmation_message">It will reappear the next time you turn it on in settings.</string> <!-- Hide quick settings tile confirmation button --> <string name="quick_settings_reset_confirmation_button">Hide</string> </resources>
packages/SystemUI/src/com/android/systemui/qs/QSPanel.java +8 −1 Original line number Diff line number Diff line Loading @@ -296,7 +296,14 @@ public class QSPanel extends ViewGroup { r.tile.secondaryClick(); } }; r.tileView.init(click, clickSecondary); final View.OnLongClickListener longClick = new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { r.tile.longClick(); return true; } }; r.tileView.init(click, clickSecondary, longClick); r.tile.setListening(mListening); callback.onStateChanged(r.tile.getState()); r.tile.refreshState(); Loading
packages/SystemUI/src/com/android/systemui/qs/QSTile.java +18 −6 Original line number Diff line number Diff line Loading @@ -112,6 +112,10 @@ public abstract class QSTile<TState extends State> implements Listenable { mHandler.sendEmptyMessage(H.SECONDARY_CLICK); } public void longClick() { mHandler.sendEmptyMessage(H.LONG_CLICK); } public void showDetail(boolean show) { mHandler.obtainMessage(H.SHOW_DETAIL, show ? 1 : 0, 0).sendToTarget(); } Loading Loading @@ -155,6 +159,10 @@ public abstract class QSTile<TState extends State> implements Listenable { // optional } protected void handleLongClick() { // optional } protected void handleRefreshState(Object arg) { handleUpdateState(mTmpState, arg); final boolean changed = mTmpState.copyTo(mState); Loading Loading @@ -216,12 +224,13 @@ public abstract class QSTile<TState extends State> implements Listenable { private static final int SET_CALLBACK = 1; private static final int CLICK = 2; private static final int SECONDARY_CLICK = 3; private static final int REFRESH_STATE = 4; private static final int SHOW_DETAIL = 5; private static final int USER_SWITCH = 6; private static final int TOGGLE_STATE_CHANGED = 7; private static final int SCAN_STATE_CHANGED = 8; private static final int DESTROY = 9; private static final int LONG_CLICK = 4; private static final int REFRESH_STATE = 5; private static final int SHOW_DETAIL = 6; private static final int USER_SWITCH = 7; private static final int TOGGLE_STATE_CHANGED = 8; private static final int SCAN_STATE_CHANGED = 9; private static final int DESTROY = 10; private H(Looper looper) { super(looper); Loading @@ -241,6 +250,9 @@ public abstract class QSTile<TState extends State> implements Listenable { } else if (msg.what == SECONDARY_CLICK) { name = "handleSecondaryClick"; handleSecondaryClick(); } else if (msg.what == LONG_CLICK) { name = "handleLongClick"; handleLongClick(); } else if (msg.what == REFRESH_STATE) { name = "handleRefreshState"; handleRefreshState(msg.obj); Loading
packages/SystemUI/src/com/android/systemui/qs/QSTileView.java +5 −1 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ public class QSTileView extends ViewGroup { private boolean mDual; private OnClickListener mClickPrimary; private OnClickListener mClickSecondary; private OnLongClickListener mLongClick; private Drawable mTileBackground; private RippleDrawable mRipple; Loading Loading @@ -190,6 +191,7 @@ public class QSTileView extends ViewGroup { mTopBackgroundView.setOnClickListener(null); mTopBackgroundView.setClickable(false); setOnClickListener(mClickPrimary); setOnLongClickListener(mLongClick); setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); setBackground(mTileBackground); } Loading @@ -206,9 +208,11 @@ public class QSTileView extends ViewGroup { } } public void init(OnClickListener clickPrimary, OnClickListener clickSecondary) { public void init(OnClickListener clickPrimary, OnClickListener clickSecondary, OnLongClickListener longClick) { mClickPrimary = clickPrimary; mClickSecondary = clickSecondary; mLongClick = longClick; } protected View createIcon() { Loading
packages/SystemUI/src/com/android/systemui/qs/UsageTracker.java +22 −0 Original line number Diff line number Diff line Loading @@ -18,10 +18,13 @@ package com.android.systemui.qs; import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import com.android.systemui.R; import com.android.systemui.statusbar.phone.SystemUIDialog; import com.android.systemui.statusbar.policy.Listenable; public class UsageTracker implements Listenable { Loading Loading @@ -65,6 +68,25 @@ public class UsageTracker implements Listenable { getSharedPrefs().edit().remove(mPrefKey).commit(); } public void showResetConfirmation(String title, final Runnable onConfirmed) { final SystemUIDialog d = new SystemUIDialog(mContext); d.setTitle(title); d.setMessage(mContext.getString(R.string.quick_settings_reset_confirmation_message)); d.setNegativeButton(android.R.string.cancel, null); d.setPositiveButton(R.string.quick_settings_reset_confirmation_button, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { reset(); if (onConfirmed != null) { onConfirmed.run(); } } }); d.setCanceledOnTouchOutside(true); d.show(); } private SharedPreferences getSharedPrefs() { return mContext.getSharedPreferences(mContext.getPackageName(), 0); } Loading