4/N Move Tunable to OperatorNameViewController am: cbf3513180

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15566958

Change-Id: I68f1992feff77b13dfd3f76303c1229a9611c93a
This commit is contained in:
Dave Mankoff
2021-08-18 02:52:43 +00:00
committed by Automerger Merge Worker
2 changed files with 57 additions and 39 deletions

View File

@@ -15,7 +15,6 @@
package com.android.systemui.statusbar; package com.android.systemui.statusbar;
import android.content.Context; import android.content.Context;
import android.os.Bundle;
import android.telephony.ServiceState; import android.telephony.ServiceState;
import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionInfo;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
@@ -27,17 +26,11 @@ import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.keyguard.KeyguardUpdateMonitorCallback;
import com.android.settingslib.WirelessUtils; import com.android.settingslib.WirelessUtils;
import com.android.systemui.Dependency; import com.android.systemui.Dependency;
import com.android.systemui.demomode.DemoModeCommandReceiver;
import com.android.systemui.tuner.TunerService;
import com.android.systemui.tuner.TunerService.Tunable;
import java.util.List; import java.util.List;
/** Shows the operator name */ /** Shows the operator name */
public class OperatorNameView extends TextView implements DemoModeCommandReceiver, Tunable { public class OperatorNameView extends TextView {
private static final String KEY_SHOW_OPERATOR_NAME = "show_operator_name";
private KeyguardUpdateMonitor mKeyguardUpdateMonitor; private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
private boolean mDemoMode; private boolean mDemoMode;
@@ -64,44 +57,22 @@ public class OperatorNameView extends TextView implements DemoModeCommandReceive
protected void onAttachedToWindow() { protected void onAttachedToWindow() {
super.onAttachedToWindow(); super.onAttachedToWindow();
mKeyguardUpdateMonitor = Dependency.get(KeyguardUpdateMonitor.class); mKeyguardUpdateMonitor = Dependency.get(KeyguardUpdateMonitor.class);
mKeyguardUpdateMonitor.registerCallback(mCallback);
Dependency.get(TunerService.class).addTunable(this, KEY_SHOW_OPERATOR_NAME);
} }
@Override @Override
protected void onDetachedFromWindow() { protected void onDetachedFromWindow() {
super.onDetachedFromWindow(); super.onDetachedFromWindow();
mKeyguardUpdateMonitor.removeCallback(mCallback); mKeyguardUpdateMonitor.removeCallback(mCallback);
Dependency.get(TunerService.class).removeTunable(this);
} }
@Override
public void onTuningChanged(String key, String newValue) { void setDemoMode(boolean demoMode) {
update(); mDemoMode = demoMode;
} }
@Override void update(boolean showOperatorName, boolean hasMobile) {
public void dispatchDemoCommand(String command, Bundle args) {
setText(args.getString("name"));
}
@Override
public void onDemoModeStarted() {
mDemoMode = true;
}
@Override
public void onDemoModeFinished() {
mDemoMode = false;
update();
}
void update() {
boolean showOperatorName = Dependency.get(TunerService.class)
.getValue(KEY_SHOW_OPERATOR_NAME, 1) != 0;
setVisibility(showOperatorName ? VISIBLE : GONE); setVisibility(showOperatorName ? VISIBLE : GONE);
boolean hasMobile = mContext.getSystemService(TelephonyManager.class).isDataCapable();
boolean airplaneMode = WirelessUtils.isAirplaneModeOn(mContext); boolean airplaneMode = WirelessUtils.isAirplaneModeOn(mContext);
if (!hasMobile || airplaneMode) { if (!hasMobile || airplaneMode) {
setText(null); setText(null);

View File

@@ -16,53 +16,78 @@
package com.android.systemui.statusbar; package com.android.systemui.statusbar;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.view.View; import android.view.View;
import com.android.systemui.demomode.DemoModeCommandReceiver;
import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.plugins.DarkIconDispatcher;
import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.tuner.TunerService;
import com.android.systemui.util.ViewController; import com.android.systemui.util.ViewController;
import javax.inject.Inject; import javax.inject.Inject;
/** Controller for {@link OperatorNameView}. */ /** Controller for {@link OperatorNameView}. */
public class OperatorNameViewController extends ViewController<OperatorNameView> { public class OperatorNameViewController extends ViewController<OperatorNameView> {
private static final String KEY_SHOW_OPERATOR_NAME = "show_operator_name";
private final DarkIconDispatcher mDarkIconDispatcher; private final DarkIconDispatcher mDarkIconDispatcher;
private final NetworkController mNetworkController; private final NetworkController mNetworkController;
private final TunerService mTunerService;
private final TelephonyManager mTelephonyManager;
private OperatorNameViewController(OperatorNameView view, private OperatorNameViewController(OperatorNameView view,
DarkIconDispatcher darkIconDispatcher, DarkIconDispatcher darkIconDispatcher,
NetworkController networkController) { NetworkController networkController,
TunerService tunerService,
TelephonyManager telephonyManager) {
super(view); super(view);
mDarkIconDispatcher = darkIconDispatcher; mDarkIconDispatcher = darkIconDispatcher;
mNetworkController = networkController; mNetworkController = networkController;
mTunerService = tunerService;
mTelephonyManager = telephonyManager;
} }
@Override @Override
protected void onViewAttached() { protected void onViewAttached() {
mDarkIconDispatcher.addDarkReceiver(mDarkReceiver); mDarkIconDispatcher.addDarkReceiver(mDarkReceiver);
mNetworkController.addCallback(mSignalCallback); mNetworkController.addCallback(mSignalCallback);
mTunerService.addTunable(mTunable, KEY_SHOW_OPERATOR_NAME);
} }
@Override @Override
protected void onViewDetached() { protected void onViewDetached() {
mDarkIconDispatcher.removeDarkReceiver(mDarkReceiver); mDarkIconDispatcher.removeDarkReceiver(mDarkReceiver);
mNetworkController.addCallback(mSignalCallback); mNetworkController.removeCallback(mSignalCallback);
mTunerService.removeTunable(mTunable);
}
private void update() {
mView.update(mTunerService.getValue(KEY_SHOW_OPERATOR_NAME, 1) != 0,
mTelephonyManager.isDataCapable());
} }
/** Factory for constructing an {@link OperatorNameViewController}. */ /** Factory for constructing an {@link OperatorNameViewController}. */
public static class Factory { public static class Factory {
private final DarkIconDispatcher mDarkIconDispatcher; private final DarkIconDispatcher mDarkIconDispatcher;
private final NetworkController mNetworkController; private final NetworkController mNetworkController;
private final TunerService mTunerService;
private final TelephonyManager mTelephonyManager;
@Inject @Inject
public Factory(DarkIconDispatcher darkIconDispatcher, NetworkController networkController) { public Factory(DarkIconDispatcher darkIconDispatcher, NetworkController networkController,
TunerService tunerService, TelephonyManager telephonyManager) {
mDarkIconDispatcher = darkIconDispatcher; mDarkIconDispatcher = darkIconDispatcher;
mNetworkController = networkController; mNetworkController = networkController;
mTunerService = tunerService;
mTelephonyManager = telephonyManager;
} }
/** Create an {@link OperatorNameViewController}. */ /** Create an {@link OperatorNameViewController}. */
public OperatorNameViewController create(OperatorNameView view) { public OperatorNameViewController create(OperatorNameView view) {
return new OperatorNameViewController(view, mDarkIconDispatcher, mNetworkController); return new OperatorNameViewController(view, mDarkIconDispatcher, mNetworkController,
mTunerService, mTelephonyManager);
} }
} }
@@ -78,11 +103,33 @@ public class OperatorNameViewController extends ViewController<OperatorNameView>
private final DarkIconDispatcher.DarkReceiver mDarkReceiver = private final DarkIconDispatcher.DarkReceiver mDarkReceiver =
(area, darkIntensity, tint) -> (area, darkIntensity, tint) ->
mView.setTextColor(DarkIconDispatcher.getTint(area, mView, tint)); mView.setTextColor(DarkIconDispatcher.getTint(area, mView, tint));
private final NetworkController.SignalCallback mSignalCallback = private final NetworkController.SignalCallback mSignalCallback =
new NetworkController.SignalCallback() { new NetworkController.SignalCallback() {
@Override @Override
public void setIsAirplaneMode(NetworkController.IconState icon) { public void setIsAirplaneMode(NetworkController.IconState icon) {
mView.update(); update();
}
};
private final TunerService.Tunable mTunable = (key, newValue) -> update();
// TODO: do we even register this anywhere?
private final DemoModeCommandReceiver mDemoModeCommandReceiver = new DemoModeCommandReceiver() {
@Override
public void onDemoModeStarted() {
mView.setDemoMode(true);
}
@Override
public void onDemoModeFinished() {
mView.setDemoMode(false);
update();
}
@Override
public void dispatchDemoCommand(String command, Bundle args) {
mView.setText(args.getString("name"));
} }
}; };
} }