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