am 1df7e135: am 41cfd3f8: Merge "Fix blank tiles on QS rotate" into mnc-dev

* commit '1df7e135196ca3c8a6a51a9b741e12782afa039c':
  Fix blank tiles on QS rotate
This commit is contained in:
Jason Monk
2015-07-23 19:20:53 +00:00
committed by Android Git Automerger
3 changed files with 35 additions and 17 deletions

View File

@@ -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,

View File

@@ -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");

View File

@@ -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);
}
};