From cbf3513180833629d15524c457f3bdf94b1abe85 Mon Sep 17 00:00:00 2001 From: Dave Mankoff Date: Fri, 13 Aug 2021 18:05:04 -0400 Subject: [PATCH] 4/N Move Tunable to OperatorNameViewController Bug: 196625757 Test: manual Change-Id: I8f154b4ffbf76b7139c96e9272a89bb74d811a1a --- .../systemui/statusbar/OperatorNameView.java | 39 ++----------- .../statusbar/OperatorNameViewController.java | 57 +++++++++++++++++-- 2 files changed, 57 insertions(+), 39 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/OperatorNameView.java b/packages/SystemUI/src/com/android/systemui/statusbar/OperatorNameView.java index ef21a743b6a2d..9b2d2b6f81892 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/OperatorNameView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/OperatorNameView.java @@ -15,7 +15,6 @@ package com.android.systemui.statusbar; import android.content.Context; -import android.os.Bundle; import android.telephony.ServiceState; import android.telephony.SubscriptionInfo; import android.telephony.TelephonyManager; @@ -27,17 +26,11 @@ import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.settingslib.WirelessUtils; 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; /** Shows the operator name */ -public class OperatorNameView extends TextView implements DemoModeCommandReceiver, Tunable { - - private static final String KEY_SHOW_OPERATOR_NAME = "show_operator_name"; - +public class OperatorNameView extends TextView { private KeyguardUpdateMonitor mKeyguardUpdateMonitor; private boolean mDemoMode; @@ -64,44 +57,22 @@ public class OperatorNameView extends TextView implements DemoModeCommandReceive protected void onAttachedToWindow() { super.onAttachedToWindow(); mKeyguardUpdateMonitor = Dependency.get(KeyguardUpdateMonitor.class); - mKeyguardUpdateMonitor.registerCallback(mCallback); - Dependency.get(TunerService.class).addTunable(this, KEY_SHOW_OPERATOR_NAME); } @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); mKeyguardUpdateMonitor.removeCallback(mCallback); - Dependency.get(TunerService.class).removeTunable(this); } - @Override - public void onTuningChanged(String key, String newValue) { - update(); + + void setDemoMode(boolean demoMode) { + mDemoMode = demoMode; } - @Override - 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; + void update(boolean showOperatorName, boolean hasMobile) { setVisibility(showOperatorName ? VISIBLE : GONE); - boolean hasMobile = mContext.getSystemService(TelephonyManager.class).isDataCapable(); boolean airplaneMode = WirelessUtils.isAirplaneModeOn(mContext); if (!hasMobile || airplaneMode) { setText(null); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/OperatorNameViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/OperatorNameViewController.java index 41b7e5d3acca7..9c7fed435bea8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/OperatorNameViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/OperatorNameViewController.java @@ -16,53 +16,78 @@ package com.android.systemui.statusbar; +import android.os.Bundle; +import android.telephony.TelephonyManager; import android.view.View; +import com.android.systemui.demomode.DemoModeCommandReceiver; import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.statusbar.policy.NetworkController; +import com.android.systemui.tuner.TunerService; import com.android.systemui.util.ViewController; import javax.inject.Inject; /** Controller for {@link OperatorNameView}. */ public class OperatorNameViewController extends ViewController { + private static final String KEY_SHOW_OPERATOR_NAME = "show_operator_name"; + private final DarkIconDispatcher mDarkIconDispatcher; private final NetworkController mNetworkController; + private final TunerService mTunerService; + private final TelephonyManager mTelephonyManager; private OperatorNameViewController(OperatorNameView view, DarkIconDispatcher darkIconDispatcher, - NetworkController networkController) { + NetworkController networkController, + TunerService tunerService, + TelephonyManager telephonyManager) { super(view); mDarkIconDispatcher = darkIconDispatcher; mNetworkController = networkController; + mTunerService = tunerService; + mTelephonyManager = telephonyManager; } @Override protected void onViewAttached() { mDarkIconDispatcher.addDarkReceiver(mDarkReceiver); mNetworkController.addCallback(mSignalCallback); + mTunerService.addTunable(mTunable, KEY_SHOW_OPERATOR_NAME); } @Override protected void onViewDetached() { 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}. */ public static class Factory { private final DarkIconDispatcher mDarkIconDispatcher; private final NetworkController mNetworkController; + private final TunerService mTunerService; + private final TelephonyManager mTelephonyManager; @Inject - public Factory(DarkIconDispatcher darkIconDispatcher, NetworkController networkController) { + public Factory(DarkIconDispatcher darkIconDispatcher, NetworkController networkController, + TunerService tunerService, TelephonyManager telephonyManager) { mDarkIconDispatcher = darkIconDispatcher; mNetworkController = networkController; + mTunerService = tunerService; + mTelephonyManager = telephonyManager; } /** Create an {@link OperatorNameViewController}. */ 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 private final DarkIconDispatcher.DarkReceiver mDarkReceiver = (area, darkIntensity, tint) -> mView.setTextColor(DarkIconDispatcher.getTint(area, mView, tint)); + private final NetworkController.SignalCallback mSignalCallback = new NetworkController.SignalCallback() { @Override 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")); } }; }