* commit '1df7e135196ca3c8a6a51a9b741e12782afa039c': Fix blank tiles on QS rotate
This commit is contained in:
@@ -45,6 +45,8 @@ public class CellularTile extends QSTile<QSTile.SignalState> {
|
||||
private final MobileDataController mDataController;
|
||||
private final CellularDetailAdapter mDetailAdapter;
|
||||
|
||||
private final CellSignalCallback mSignalCallback = new CellSignalCallback();
|
||||
|
||||
public CellularTile(Host host) {
|
||||
super(host);
|
||||
mController = host.getNetworkController();
|
||||
@@ -90,8 +92,10 @@ public class CellularTile extends QSTile<QSTile.SignalState> {
|
||||
protected void handleUpdateState(SignalState state, Object arg) {
|
||||
state.visible = mController.hasMobileDataFeature();
|
||||
if (!state.visible) return;
|
||||
final CallbackInfo cb = (CallbackInfo) arg;
|
||||
if (cb == null) return;
|
||||
CallbackInfo cb = (CallbackInfo) arg;
|
||||
if (cb == null) {
|
||||
cb = mSignalCallback.mInfo;
|
||||
}
|
||||
|
||||
final Resources r = mContext.getResources();
|
||||
final int iconId = cb.noSim ? R.drawable.ic_qs_no_sim
|
||||
@@ -152,7 +156,7 @@ public class CellularTile extends QSTile<QSTile.SignalState> {
|
||||
boolean isDataTypeIconWide;
|
||||
}
|
||||
|
||||
private final SignalCallback mSignalCallback = new SignalCallbackAdapter() {
|
||||
private final class CellSignalCallback extends SignalCallbackAdapter {
|
||||
private final CallbackInfo mInfo = new CallbackInfo();
|
||||
@Override
|
||||
public void setWifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon,
|
||||
|
||||
@@ -45,6 +45,8 @@ public class IntentTile extends QSTile<QSTile.State> {
|
||||
private int mCurrentUserId;
|
||||
private String mIntentPackage;
|
||||
|
||||
private Intent mLastIntent;
|
||||
|
||||
private IntentTile(Host host, String action) {
|
||||
super(host);
|
||||
mContext.registerReceiver(mReceiver, new IntentFilter(action));
|
||||
@@ -112,8 +114,16 @@ public class IntentTile extends QSTile<QSTile.State> {
|
||||
|
||||
@Override
|
||||
protected void handleUpdateState(State state, Object arg) {
|
||||
if (!(arg instanceof Intent)) return;
|
||||
final Intent intent = (Intent) arg;
|
||||
Intent intent = (Intent) arg;
|
||||
if (intent == null) {
|
||||
if (mLastIntent == null) {
|
||||
return;
|
||||
}
|
||||
// No intent but need to refresh state, just use the last one.
|
||||
intent = mLastIntent;
|
||||
}
|
||||
// Save the last one in case we need it later.
|
||||
mLastIntent = intent;
|
||||
state.visible = intent.getBooleanExtra("visible", true);
|
||||
state.contentDescription = intent.getStringExtra("contentDescription");
|
||||
state.label = intent.getStringExtra("label");
|
||||
|
||||
@@ -35,7 +35,6 @@ import com.android.systemui.qs.SignalTileView;
|
||||
import com.android.systemui.statusbar.policy.NetworkController;
|
||||
import com.android.systemui.statusbar.policy.NetworkController.AccessPointController;
|
||||
import com.android.systemui.statusbar.policy.NetworkController.IconState;
|
||||
import com.android.systemui.statusbar.policy.NetworkController.SignalCallback;
|
||||
import com.android.systemui.statusbar.policy.SignalCallbackAdapter;
|
||||
|
||||
import java.util.List;
|
||||
@@ -49,6 +48,8 @@ public class WifiTile extends QSTile<QSTile.SignalState> {
|
||||
private final WifiDetailAdapter mDetailAdapter;
|
||||
private final QSTile.SignalState mStateBeforeClick = newTileState();
|
||||
|
||||
private final WifiSignalCallback mSignalCallback = new WifiSignalCallback();
|
||||
|
||||
public WifiTile(Host host) {
|
||||
super(host);
|
||||
mController = host.getNetworkController();
|
||||
@@ -118,8 +119,10 @@ public class WifiTile extends QSTile<QSTile.SignalState> {
|
||||
protected void handleUpdateState(SignalState state, Object arg) {
|
||||
state.visible = true;
|
||||
if (DEBUG) Log.d(TAG, "handleUpdateState arg=" + arg);
|
||||
if (arg == null) return;
|
||||
CallbackInfo cb = (CallbackInfo) arg;
|
||||
if (cb == null) {
|
||||
cb = mSignalCallback.mInfo;
|
||||
}
|
||||
|
||||
boolean wifiConnected = cb.enabled && (cb.wifiSignalIconId > 0) && (cb.enabledDesc != null);
|
||||
boolean wifiNotConnected = (cb.wifiSignalIconId > 0) && (cb.enabledDesc == null);
|
||||
@@ -213,20 +216,21 @@ public class WifiTile extends QSTile<QSTile.SignalState> {
|
||||
}
|
||||
}
|
||||
|
||||
private final SignalCallback mSignalCallback = new SignalCallbackAdapter() {
|
||||
private final class WifiSignalCallback extends SignalCallbackAdapter {
|
||||
final CallbackInfo mInfo = new CallbackInfo();
|
||||
|
||||
@Override
|
||||
public void setWifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon,
|
||||
boolean activityIn, boolean activityOut, String description) {
|
||||
if (DEBUG) Log.d(TAG, "onWifiSignalChanged enabled=" + enabled);
|
||||
final CallbackInfo info = new CallbackInfo();
|
||||
info.enabled = enabled;
|
||||
info.connected = qsIcon.visible;
|
||||
info.wifiSignalIconId = qsIcon.icon;
|
||||
info.enabledDesc = description;
|
||||
info.activityIn = activityIn;
|
||||
info.activityOut = activityOut;
|
||||
info.wifiSignalContentDescription = qsIcon.contentDescription;
|
||||
refreshState(info);
|
||||
mInfo.enabled = enabled;
|
||||
mInfo.connected = qsIcon.visible;
|
||||
mInfo.wifiSignalIconId = qsIcon.icon;
|
||||
mInfo.enabledDesc = description;
|
||||
mInfo.activityIn = activityIn;
|
||||
mInfo.activityOut = activityOut;
|
||||
mInfo.wifiSignalContentDescription = qsIcon.contentDescription;
|
||||
refreshState(mInfo);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user