Loading packages/SystemUI/src/com/android/systemui/qs/QSContainer.java +1 −0 Original line number Diff line number Diff line Loading @@ -178,6 +178,7 @@ public class QSContainer extends FrameLayout { private void updateQsState() { boolean expandVisually = mQsExpanded || mStackScrollerOverscrolling || mHeaderAnimating; mQSPanel.setExpanded(mQsExpanded); mQSDetail.setExpanded(mQsExpanded); mHeader.setVisibility((mQsExpanded || !mKeyguardShowing || mHeaderAnimating) ? View.VISIBLE : View.INVISIBLE); Loading packages/SystemUI/src/com/android/systemui/qs/QSDetail.java +27 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Switch; import android.widget.TextView; import com.android.internal.logging.MetricsLogger; import com.android.systemui.FontSizeUtils; import com.android.systemui.R; Loading Loading @@ -64,6 +65,9 @@ public class QSDetail extends LinearLayout { private boolean mFullyExpanded; private View mQsDetailHeaderBack; private BaseStatusBarHeader mHeader; private boolean mTriggeredExpand; private int mOpenX; private int mOpenY; public QSDetail(Context context, @Nullable AttributeSet attrs) { super(context, attrs); Loading Loading @@ -112,6 +116,7 @@ public class QSDetail extends LinearLayout { public void setQsPanel(QSPanel panel, BaseStatusBarHeader header) { mQsPanel = panel; mHeader = header; mHeader.setCallback(mQsPanelCallback); mQsPanel.setCallback(mQsPanelCallback); } Loading @@ -126,6 +131,12 @@ public class QSDetail extends LinearLayout { mFullyExpanded = fullyExpanded; } public void setExpanded(boolean qsExpanded) { if (!qsExpanded) { mTriggeredExpand = false; } } private void updateDetailText() { mDetailDoneButton.setText(R.string.quick_settings_done); mDetailSettingsButton.setText(R.string.quick_settings_more_settings); Loading Loading @@ -161,6 +172,22 @@ public class QSDetail extends LinearLayout { } }); } if (!mFullyExpanded) { mTriggeredExpand = true; mHost.animateToggleQSExpansion(); } else { mTriggeredExpand = false; } mOpenX = x; mOpenY = y; } else { // Ensure we collapse into the same point we opened from. x = mOpenX; y = mOpenY; if (mTriggeredExpand) { mHost.animateToggleQSExpansion(); mTriggeredExpand = false; } } boolean visibleDiff = (mDetailAdapter != null) != (adapter != null); Loading packages/SystemUI/src/com/android/systemui/qs/QSPanel.java +14 −15 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.res.Resources; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; Loading Loading @@ -56,7 +57,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { private int mPanelPaddingBottom; private int mBrightnessPaddingTop; private boolean mExpanded; protected boolean mExpanded; protected boolean mListening; private Callback mCallback; Loading @@ -70,7 +71,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { private QSCustomizer mCustomizePanel; private Record mDetailRecord; private boolean mTriggeredExpand; public QSPanel(Context context) { this(context, null); Loading Loading @@ -221,7 +221,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { } MetricsLogger.visibility(mContext, MetricsEvent.QS_PANEL, mExpanded); if (!mExpanded) { mTriggeredExpand = false; closeDetail(); } else { logTiles(); Loading Loading @@ -279,6 +278,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { public void setTiles(Collection<QSTile<?>> tiles, boolean collapsedView) { for (TileRecord record : mRecords) { mTileLayout.removeTile(record); record.tile.removeCallback(record.callback); } mRecords.clear(); for (QSTile<?> tile : tiles) { Loading @@ -294,6 +294,10 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { return new QSTileView(mContext, tile.createTileView(mContext), collapsedView); } protected boolean shouldShowDetail() { return mExpanded; } protected void addTile(final QSTile<?> tile, boolean collapsedView) { final TileRecord r = new TileRecord(); r.tile = tile; Loading @@ -306,8 +310,12 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { @Override public void onShowDetail(boolean show) { // Both the collapsed and full QS panels get this callback, this check determines // which one should handle showing the detail. if (shouldShowDetail()) { QSPanel.this.showDetail(show, r); } } @Override public void onToggleStateChanged(boolean state) { Loading @@ -330,6 +338,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { } }; r.tile.addCallback(callback); r.callback = callback; final View.OnClickListener click = new View.OnClickListener() { @Override public void onClick(View v) { Loading Loading @@ -390,17 +399,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { } protected void handleShowDetail(Record r, boolean show) { if (show) { if (!mExpanded) { mTriggeredExpand = true; mHost.animateToggleQSExpansion(); } else { mTriggeredExpand = false; } } else if (mTriggeredExpand) { mHost.animateToggleQSExpansion(); mTriggeredExpand = false; } if (r instanceof TileRecord) { handleShowDetailTile((TileRecord) r, show); } else { Loading Loading @@ -520,6 +518,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { public QSTile<?> tile; public QSTileBaseView tileView; public boolean scanState; public QSTile.Callback callback; } public interface Callback { Loading packages/SystemUI/src/com/android/systemui/qs/QSTile.java +13 −1 Original line number Diff line number Diff line Loading @@ -161,6 +161,10 @@ public abstract class QSTile<TState extends State> { mHandler.obtainMessage(H.ADD_CALLBACK, callback).sendToTarget(); } public void removeCallback(Callback callback) { mHandler.obtainMessage(H.REMOVE_CALLBACK, callback).sendToTarget(); } public void removeCallbacks() { mHandler.sendEmptyMessage(H.REMOVE_CALLBACKS); } Loading Loading @@ -224,6 +228,10 @@ public abstract class QSTile<TState extends State> { handleRefreshState(null); } private void handleRemoveCallback(Callback callback) { mCallbacks.remove(callback); } private void handleRemoveCallbacks() { mCallbacks.clear(); } Loading Loading @@ -334,7 +342,8 @@ public abstract class QSTile<TState extends State> { private static final int DESTROY = 10; private static final int CLEAR_STATE = 11; private static final int REMOVE_CALLBACKS = 12; private static final int SET_LISTENING = 13; private static final int REMOVE_CALLBACK = 13; private static final int SET_LISTENING = 14; private H(Looper looper) { super(looper); Loading @@ -350,6 +359,9 @@ public abstract class QSTile<TState extends State> { } else if (msg.what == REMOVE_CALLBACKS) { name = "handleRemoveCallbacks"; handleRemoveCallbacks(); } else if (msg.what == REMOVE_CALLBACK) { name = "handleRemoveCallback"; handleRemoveCallback((QSTile.Callback) msg.obj); } else if (msg.what == CLICK) { name = "handleClick"; if (mState.disabledByPolicy) { Loading packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java +5 −5 Original line number Diff line number Diff line Loading @@ -76,6 +76,11 @@ public class QuickQSPanel extends QSPanel { mHeader = header; } @Override protected boolean shouldShowDetail() { return !mExpanded; } @Override protected void drawTile(TileRecord r, State state) { if (state instanceof SignalState) { Loading @@ -89,11 +94,6 @@ public class QuickQSPanel extends QSPanel { super.drawTile(r, state); } @Override protected void showDetail(boolean show, Record r) { // Do nothing, will be handled by the QSPanel. } @Override protected QSTileBaseView createTileView(QSTile<?> tile, boolean collapsedView) { return new QSTileBaseView(mContext, tile.createTileView(mContext), collapsedView); Loading Loading
packages/SystemUI/src/com/android/systemui/qs/QSContainer.java +1 −0 Original line number Diff line number Diff line Loading @@ -178,6 +178,7 @@ public class QSContainer extends FrameLayout { private void updateQsState() { boolean expandVisually = mQsExpanded || mStackScrollerOverscrolling || mHeaderAnimating; mQSPanel.setExpanded(mQsExpanded); mQSDetail.setExpanded(mQsExpanded); mHeader.setVisibility((mQsExpanded || !mKeyguardShowing || mHeaderAnimating) ? View.VISIBLE : View.INVISIBLE); Loading
packages/SystemUI/src/com/android/systemui/qs/QSDetail.java +27 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Switch; import android.widget.TextView; import com.android.internal.logging.MetricsLogger; import com.android.systemui.FontSizeUtils; import com.android.systemui.R; Loading Loading @@ -64,6 +65,9 @@ public class QSDetail extends LinearLayout { private boolean mFullyExpanded; private View mQsDetailHeaderBack; private BaseStatusBarHeader mHeader; private boolean mTriggeredExpand; private int mOpenX; private int mOpenY; public QSDetail(Context context, @Nullable AttributeSet attrs) { super(context, attrs); Loading Loading @@ -112,6 +116,7 @@ public class QSDetail extends LinearLayout { public void setQsPanel(QSPanel panel, BaseStatusBarHeader header) { mQsPanel = panel; mHeader = header; mHeader.setCallback(mQsPanelCallback); mQsPanel.setCallback(mQsPanelCallback); } Loading @@ -126,6 +131,12 @@ public class QSDetail extends LinearLayout { mFullyExpanded = fullyExpanded; } public void setExpanded(boolean qsExpanded) { if (!qsExpanded) { mTriggeredExpand = false; } } private void updateDetailText() { mDetailDoneButton.setText(R.string.quick_settings_done); mDetailSettingsButton.setText(R.string.quick_settings_more_settings); Loading Loading @@ -161,6 +172,22 @@ public class QSDetail extends LinearLayout { } }); } if (!mFullyExpanded) { mTriggeredExpand = true; mHost.animateToggleQSExpansion(); } else { mTriggeredExpand = false; } mOpenX = x; mOpenY = y; } else { // Ensure we collapse into the same point we opened from. x = mOpenX; y = mOpenY; if (mTriggeredExpand) { mHost.animateToggleQSExpansion(); mTriggeredExpand = false; } } boolean visibleDiff = (mDetailAdapter != null) != (adapter != null); Loading
packages/SystemUI/src/com/android/systemui/qs/QSPanel.java +14 −15 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.res.Resources; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; Loading Loading @@ -56,7 +57,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { private int mPanelPaddingBottom; private int mBrightnessPaddingTop; private boolean mExpanded; protected boolean mExpanded; protected boolean mListening; private Callback mCallback; Loading @@ -70,7 +71,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { private QSCustomizer mCustomizePanel; private Record mDetailRecord; private boolean mTriggeredExpand; public QSPanel(Context context) { this(context, null); Loading Loading @@ -221,7 +221,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { } MetricsLogger.visibility(mContext, MetricsEvent.QS_PANEL, mExpanded); if (!mExpanded) { mTriggeredExpand = false; closeDetail(); } else { logTiles(); Loading Loading @@ -279,6 +278,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { public void setTiles(Collection<QSTile<?>> tiles, boolean collapsedView) { for (TileRecord record : mRecords) { mTileLayout.removeTile(record); record.tile.removeCallback(record.callback); } mRecords.clear(); for (QSTile<?> tile : tiles) { Loading @@ -294,6 +294,10 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { return new QSTileView(mContext, tile.createTileView(mContext), collapsedView); } protected boolean shouldShowDetail() { return mExpanded; } protected void addTile(final QSTile<?> tile, boolean collapsedView) { final TileRecord r = new TileRecord(); r.tile = tile; Loading @@ -306,8 +310,12 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { @Override public void onShowDetail(boolean show) { // Both the collapsed and full QS panels get this callback, this check determines // which one should handle showing the detail. if (shouldShowDetail()) { QSPanel.this.showDetail(show, r); } } @Override public void onToggleStateChanged(boolean state) { Loading @@ -330,6 +338,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { } }; r.tile.addCallback(callback); r.callback = callback; final View.OnClickListener click = new View.OnClickListener() { @Override public void onClick(View v) { Loading Loading @@ -390,17 +399,6 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { } protected void handleShowDetail(Record r, boolean show) { if (show) { if (!mExpanded) { mTriggeredExpand = true; mHost.animateToggleQSExpansion(); } else { mTriggeredExpand = false; } } else if (mTriggeredExpand) { mHost.animateToggleQSExpansion(); mTriggeredExpand = false; } if (r instanceof TileRecord) { handleShowDetailTile((TileRecord) r, show); } else { Loading Loading @@ -520,6 +518,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { public QSTile<?> tile; public QSTileBaseView tileView; public boolean scanState; public QSTile.Callback callback; } public interface Callback { Loading
packages/SystemUI/src/com/android/systemui/qs/QSTile.java +13 −1 Original line number Diff line number Diff line Loading @@ -161,6 +161,10 @@ public abstract class QSTile<TState extends State> { mHandler.obtainMessage(H.ADD_CALLBACK, callback).sendToTarget(); } public void removeCallback(Callback callback) { mHandler.obtainMessage(H.REMOVE_CALLBACK, callback).sendToTarget(); } public void removeCallbacks() { mHandler.sendEmptyMessage(H.REMOVE_CALLBACKS); } Loading Loading @@ -224,6 +228,10 @@ public abstract class QSTile<TState extends State> { handleRefreshState(null); } private void handleRemoveCallback(Callback callback) { mCallbacks.remove(callback); } private void handleRemoveCallbacks() { mCallbacks.clear(); } Loading Loading @@ -334,7 +342,8 @@ public abstract class QSTile<TState extends State> { private static final int DESTROY = 10; private static final int CLEAR_STATE = 11; private static final int REMOVE_CALLBACKS = 12; private static final int SET_LISTENING = 13; private static final int REMOVE_CALLBACK = 13; private static final int SET_LISTENING = 14; private H(Looper looper) { super(looper); Loading @@ -350,6 +359,9 @@ public abstract class QSTile<TState extends State> { } else if (msg.what == REMOVE_CALLBACKS) { name = "handleRemoveCallbacks"; handleRemoveCallbacks(); } else if (msg.what == REMOVE_CALLBACK) { name = "handleRemoveCallback"; handleRemoveCallback((QSTile.Callback) msg.obj); } else if (msg.what == CLICK) { name = "handleClick"; if (mState.disabledByPolicy) { Loading
packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java +5 −5 Original line number Diff line number Diff line Loading @@ -76,6 +76,11 @@ public class QuickQSPanel extends QSPanel { mHeader = header; } @Override protected boolean shouldShowDetail() { return !mExpanded; } @Override protected void drawTile(TileRecord r, State state) { if (state instanceof SignalState) { Loading @@ -89,11 +94,6 @@ public class QuickQSPanel extends QSPanel { super.drawTile(r, state); } @Override protected void showDetail(boolean show, Record r) { // Do nothing, will be handled by the QSPanel. } @Override protected QSTileBaseView createTileView(QSTile<?> tile, boolean collapsedView) { return new QSTileBaseView(mContext, tile.createTileView(mContext), collapsedView); Loading