Move interfaces out of NetworkController
This CL moves some interface and class definitions out of NetworkController. AccessPointController and SignalCallback get their own files, and MobileDataIndicators and WifiIndicators both moved to the SignalCallback kt file. This doesn't simplify things just yet, but it does clean up imports and interfaces, and moving the *Indicators classes to kotlin gives us the data class niceties. Test: atest SystemUITests Bug: 197851948 Change-Id: I6eba271cdc28d81bc1d281eab2e6c230f4ad89cb
This commit is contained in:
@@ -19,6 +19,7 @@ package com.android.systemui.qs.carrier;
|
||||
import static android.view.View.IMPORTANT_FOR_ACCESSIBILITY_YES;
|
||||
|
||||
import android.annotation.MainThread;
|
||||
import android.annotation.NonNull;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Handler;
|
||||
@@ -42,8 +43,10 @@ import com.android.systemui.dagger.qualifiers.Background;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.statusbar.connectivity.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.MobileDataIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.MobileDataIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.SignalCallback;
|
||||
import com.android.systemui.util.CarrierConfigTracker;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
@@ -81,10 +84,9 @@ public class QSCarrierGroupController {
|
||||
|
||||
private final SlotIndexResolver mSlotIndexResolver;
|
||||
|
||||
private final NetworkController.SignalCallback mSignalCallback =
|
||||
new NetworkController.SignalCallback() {
|
||||
private final SignalCallback mSignalCallback = new SignalCallback() {
|
||||
@Override
|
||||
public void setMobileDataIndicators(MobileDataIndicators indicators) {
|
||||
public void setMobileDataIndicators(@NonNull MobileDataIndicators indicators) {
|
||||
if (mProviderModel) {
|
||||
return;
|
||||
}
|
||||
@@ -109,7 +111,7 @@ public class QSCarrierGroupController {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCallIndicator(NetworkController.IconState statusIcon, int subId) {
|
||||
public void setCallIndicator(@NonNull IconState statusIcon, int subId) {
|
||||
if (!mProviderModel) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.android.systemui.qs.tiles;
|
||||
|
||||
import static android.media.MediaRouter.ROUTE_TYPE_REMOTE_DISPLAY;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -52,7 +53,8 @@ import com.android.systemui.qs.QSHost;
|
||||
import com.android.systemui.qs.logging.QSLogger;
|
||||
import com.android.systemui.qs.tileimpl.QSTileImpl;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.WifiIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.SignalCallback;
|
||||
import com.android.systemui.statusbar.connectivity.WifiIndicators;
|
||||
import com.android.systemui.statusbar.phone.SystemUIDialog;
|
||||
import com.android.systemui.statusbar.policy.CastController;
|
||||
import com.android.systemui.statusbar.policy.CastController.CastDevice;
|
||||
@@ -273,10 +275,9 @@ public class CastTile extends QSTileImpl<BooleanState> {
|
||||
return mWifiConnected || mHotspotConnected;
|
||||
}
|
||||
|
||||
private final NetworkController.SignalCallback mSignalCallback =
|
||||
new NetworkController.SignalCallback() {
|
||||
private final SignalCallback mSignalCallback = new SignalCallback() {
|
||||
@Override
|
||||
public void setWifiIndicators(WifiIndicators indicators) {
|
||||
public void setWifiIndicators(@NonNull WifiIndicators indicators) {
|
||||
// statusIcon.visible has the connected status information
|
||||
boolean enabledAndConnected = indicators.enabled
|
||||
&& (indicators.qsIcon == null ? false : indicators.qsIcon.visible);
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.android.systemui.qs.tiles;
|
||||
|
||||
import static com.android.systemui.Prefs.Key.QS_HAS_TURNED_OFF_MOBILE_DATA;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.AlertDialog.Builder;
|
||||
import android.content.Context;
|
||||
@@ -56,10 +57,10 @@ import com.android.systemui.qs.QSHost;
|
||||
import com.android.systemui.qs.SignalTileView;
|
||||
import com.android.systemui.qs.logging.QSLogger;
|
||||
import com.android.systemui.qs.tileimpl.QSTileImpl;
|
||||
import com.android.systemui.statusbar.connectivity.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.MobileDataIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.MobileDataIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.SignalCallback;
|
||||
import com.android.systemui.statusbar.connectivity.SignalCallback;
|
||||
import com.android.systemui.statusbar.phone.SystemUIDialog;
|
||||
|
||||
import javax.inject.Inject;
|
||||
@@ -269,7 +270,7 @@ public class CellularTile extends QSTileImpl<SignalState> {
|
||||
private final CallbackInfo mInfo = new CallbackInfo();
|
||||
|
||||
@Override
|
||||
public void setMobileDataIndicators(MobileDataIndicators indicators) {
|
||||
public void setMobileDataIndicators(@NonNull MobileDataIndicators indicators) {
|
||||
if (indicators.qsIcon == null) {
|
||||
// Not data sim, don't display.
|
||||
return;
|
||||
@@ -291,7 +292,7 @@ public class CellularTile extends QSTileImpl<SignalState> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setIsAirplaneMode(IconState icon) {
|
||||
public void setIsAirplaneMode(@NonNull IconState icon) {
|
||||
mInfo.airplaneModeEnabled = icon.visible;
|
||||
refreshState(mInfo);
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.systemui.qs.tiles;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
@@ -52,13 +53,13 @@ import com.android.systemui.qs.QSHost;
|
||||
import com.android.systemui.qs.logging.QSLogger;
|
||||
import com.android.systemui.qs.tileimpl.QSTileImpl;
|
||||
import com.android.systemui.qs.tiles.dialog.InternetDialogFactory;
|
||||
import com.android.systemui.statusbar.connectivity.AccessPointController;
|
||||
import com.android.systemui.statusbar.connectivity.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.MobileDataIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.AccessPointController;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.MobileDataIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.SignalCallback;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.WifiIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.SignalCallback;
|
||||
import com.android.systemui.statusbar.connectivity.WifiIcons;
|
||||
import com.android.systemui.statusbar.connectivity.WifiIndicators;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
@@ -250,7 +251,7 @@ public class InternetTile extends QSTileImpl<SignalState> {
|
||||
|
||||
|
||||
@Override
|
||||
public void setWifiIndicators(WifiIndicators indicators) {
|
||||
public void setWifiIndicators(@NonNull WifiIndicators indicators) {
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "setWifiIndicators: " + indicators);
|
||||
}
|
||||
@@ -271,7 +272,7 @@ public class InternetTile extends QSTileImpl<SignalState> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMobileDataIndicators(MobileDataIndicators indicators) {
|
||||
public void setMobileDataIndicators(@NonNull MobileDataIndicators indicators) {
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "setMobileDataIndicators: " + indicators);
|
||||
}
|
||||
@@ -293,7 +294,7 @@ public class InternetTile extends QSTileImpl<SignalState> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEthernetIndicators(IconState icon) {
|
||||
public void setEthernetIndicators(@NonNull IconState icon) {
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "setEthernetIndicators: "
|
||||
+ "icon = " + (icon == null ? "" : icon.toString()));
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.systemui.qs.tiles;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
@@ -52,11 +53,11 @@ import com.android.systemui.qs.QSHost;
|
||||
import com.android.systemui.qs.logging.QSLogger;
|
||||
import com.android.systemui.qs.tileimpl.QSIconViewImpl;
|
||||
import com.android.systemui.qs.tileimpl.QSTileImpl;
|
||||
import com.android.systemui.statusbar.connectivity.AccessPointController;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.AccessPointController;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.SignalCallback;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.WifiIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.SignalCallback;
|
||||
import com.android.systemui.statusbar.connectivity.WifiIcons;
|
||||
import com.android.systemui.statusbar.connectivity.WifiIndicators;
|
||||
import com.android.wifitrackerlib.WifiEntry;
|
||||
|
||||
import java.util.List;
|
||||
@@ -310,7 +311,7 @@ public class WifiTile extends QSTileImpl<SignalState> {
|
||||
final CallbackInfo mInfo = new CallbackInfo();
|
||||
|
||||
@Override
|
||||
public void setWifiIndicators(WifiIndicators indicators) {
|
||||
public void setWifiIndicators(@NonNull WifiIndicators indicators) {
|
||||
if (DEBUG) Log.d(TAG, "onWifiSignalChanged enabled=" + indicators.enabled);
|
||||
if (indicators.qsIcon == null) {
|
||||
return;
|
||||
@@ -332,7 +333,7 @@ public class WifiTile extends QSTileImpl<SignalState> {
|
||||
}
|
||||
|
||||
protected class WifiDetailAdapter implements DetailAdapter,
|
||||
NetworkController.AccessPointController.AccessPointCallback, QSDetailItems.Callback {
|
||||
AccessPointController.AccessPointCallback, QSDetailItems.Callback {
|
||||
|
||||
private QSDetailItems mItems;
|
||||
private WifiEntry[] mAccessPoints;
|
||||
|
||||
@@ -76,8 +76,7 @@ import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.dagger.qualifiers.Background;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.AccessPointController;
|
||||
import com.android.systemui.statusbar.connectivity.AccessPointController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.statusbar.policy.LocationController;
|
||||
import com.android.systemui.toast.SystemUIToast;
|
||||
@@ -100,7 +99,7 @@ import java.util.stream.Stream;
|
||||
import javax.inject.Inject;
|
||||
|
||||
public class InternetDialogController implements WifiEntry.DisconnectCallback,
|
||||
NetworkController.AccessPointController.AccessPointCallback {
|
||||
AccessPointController.AccessPointCallback {
|
||||
|
||||
private static final String TAG = "InternetDialogController";
|
||||
private static final String ACTION_NETWORK_PROVIDER_SETTINGS =
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.systemui.statusbar;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.os.Bundle;
|
||||
import android.telephony.ServiceState;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
@@ -26,7 +27,9 @@ import com.android.keyguard.KeyguardUpdateMonitor;
|
||||
import com.android.keyguard.KeyguardUpdateMonitorCallback;
|
||||
import com.android.systemui.demomode.DemoModeCommandReceiver;
|
||||
import com.android.systemui.plugins.DarkIconDispatcher;
|
||||
import com.android.systemui.statusbar.connectivity.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController;
|
||||
import com.android.systemui.statusbar.connectivity.SignalCallback;
|
||||
import com.android.systemui.tuner.TunerService;
|
||||
import com.android.systemui.util.ViewController;
|
||||
|
||||
@@ -135,10 +138,9 @@ public class OperatorNameViewController extends ViewController<OperatorNameView>
|
||||
(area, darkIntensity, tint) ->
|
||||
mView.setTextColor(DarkIconDispatcher.getTint(area, mView, tint));
|
||||
|
||||
private final NetworkController.SignalCallback mSignalCallback =
|
||||
new NetworkController.SignalCallback() {
|
||||
private final SignalCallback mSignalCallback = new SignalCallback() {
|
||||
@Override
|
||||
public void setIsAirplaneMode(NetworkController.IconState icon) {
|
||||
public void setIsAirplaneMode(@NonNull IconState icon) {
|
||||
update();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
/*
|
||||
* Copyright (C) 2021 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.systemui.statusbar.connectivity
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.UserManager
|
||||
import android.provider.Settings
|
||||
|
||||
import com.android.wifitrackerlib.MergedCarrierEntry
|
||||
import com.android.wifitrackerlib.WifiEntry
|
||||
|
||||
/**
|
||||
* Tracks changes in access points. Allows listening for changes, scanning for new APs,
|
||||
* and connecting to new ones.
|
||||
*/
|
||||
interface AccessPointController {
|
||||
fun addAccessPointCallback(callback: AccessPointCallback)
|
||||
fun removeAccessPointCallback(callback: AccessPointCallback)
|
||||
|
||||
/**
|
||||
* Request an updated list of available access points
|
||||
*
|
||||
* This method will trigger a call to [AccessPointCallback.onAccessPointsChanged]
|
||||
*/
|
||||
fun scanForAccessPoints()
|
||||
|
||||
/**
|
||||
* Gets the current [MergedCarrierEntry]. If null, this call generates a call to
|
||||
* [AccessPointCallback.onAccessPointsChanged]
|
||||
*
|
||||
* @return the current [MergedCarrierEntry], if one exists
|
||||
*/
|
||||
fun getMergedCarrierEntry(): MergedCarrierEntry?
|
||||
|
||||
/** @return the appropriate icon id for the given [WifiEntry]'s level */
|
||||
fun getIcon(ap: WifiEntry): Int
|
||||
|
||||
/**
|
||||
* Connects to a [WifiEntry] if it's saved or does not require security.
|
||||
*
|
||||
* If the entry is not saved and requires security, will trigger
|
||||
* [AccessPointCallback.onSettingsActivityTriggered].
|
||||
*
|
||||
* @param ap
|
||||
* @return `true` if [AccessPointCallback.onSettingsActivityTriggered] is triggered
|
||||
*/
|
||||
fun connect(ap: WifiEntry?): Boolean
|
||||
|
||||
/**
|
||||
* `true` if the current user does not have the [UserManager.DISALLOW_CONFIG_WIFI] restriction
|
||||
*/
|
||||
fun canConfigWifi(): Boolean
|
||||
|
||||
/**
|
||||
* `true` if the current user does not have the [UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS]
|
||||
* restriction set
|
||||
*/
|
||||
fun canConfigMobileData(): Boolean
|
||||
|
||||
interface AccessPointCallback {
|
||||
/**
|
||||
* Called whenever [scanForAccessPoints] is called, or [getMergedCarrierEntry] is called
|
||||
* with a null entry
|
||||
*
|
||||
* @param accessPoints the list of available access points, including the current connected
|
||||
* one if it exists
|
||||
*/
|
||||
fun onAccessPointsChanged(accessPoints: List<@JvmSuppressWildcards WifiEntry>)
|
||||
|
||||
/**
|
||||
* Called whenever [connecting][connect] to an unknown access point which has security.
|
||||
* Implementers should launch the intent in the appropriate context
|
||||
*
|
||||
* @param settingsIntent an intent for [Settings.ACTION_WIFI_SETTINGS] with
|
||||
* "wifi_start_connect_ssid" set as an extra
|
||||
*/
|
||||
fun onSettingsActivityTriggered(settingsIntent: Intent?)
|
||||
}
|
||||
}
|
||||
@@ -56,9 +56,9 @@ import java.util.concurrent.Executor;
|
||||
import javax.inject.Inject;
|
||||
|
||||
/** */
|
||||
public class AccessPointControllerImpl
|
||||
implements NetworkController.AccessPointController,
|
||||
WifiPickerTracker.WifiPickerTrackerCallback, LifecycleOwner {
|
||||
public class AccessPointControllerImpl implements AccessPointController,
|
||||
WifiPickerTracker.WifiPickerTrackerCallback,
|
||||
LifecycleOwner {
|
||||
private static final String TAG = "AccessPointController";
|
||||
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
||||
|
||||
@@ -117,13 +117,11 @@ public class AccessPointControllerImpl
|
||||
super.finalize();
|
||||
}
|
||||
|
||||
/** */
|
||||
public boolean canConfigWifi() {
|
||||
return !mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_WIFI,
|
||||
new UserHandle(mCurrentUser));
|
||||
}
|
||||
|
||||
/** */
|
||||
public boolean canConfigMobileData() {
|
||||
return !mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS,
|
||||
UserHandle.of(mCurrentUser)) && mUserTracker.getUserInfo().isAdmin();
|
||||
@@ -156,7 +154,7 @@ public class AccessPointControllerImpl
|
||||
@Override
|
||||
public void scanForAccessPoints() {
|
||||
if (mWifiPickerTracker == null) {
|
||||
fireAcccessPointsCallback(Collections.emptyList());
|
||||
fireAccessPointsCallback(Collections.emptyList());
|
||||
return;
|
||||
}
|
||||
List<WifiEntry> entries = mWifiPickerTracker.getWifiEntries();
|
||||
@@ -164,13 +162,13 @@ public class AccessPointControllerImpl
|
||||
if (connectedEntry != null) {
|
||||
entries.add(0, connectedEntry);
|
||||
}
|
||||
fireAcccessPointsCallback(entries);
|
||||
fireAccessPointsCallback(entries);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MergedCarrierEntry getMergedCarrierEntry() {
|
||||
if (mWifiPickerTracker == null) {
|
||||
fireAcccessPointsCallback(Collections.emptyList());
|
||||
fireAccessPointsCallback(Collections.emptyList());
|
||||
return null;
|
||||
}
|
||||
return mWifiPickerTracker.getMergedCarrierEntry();
|
||||
@@ -190,7 +188,7 @@ public class AccessPointControllerImpl
|
||||
* @param ap
|
||||
* @return {@code true} if {@link AccessPointCallback#onSettingsActivityTriggered} is triggered
|
||||
*/
|
||||
public boolean connect(WifiEntry ap) {
|
||||
public boolean connect(@Nullable WifiEntry ap) {
|
||||
if (ap == null) return false;
|
||||
if (DEBUG) {
|
||||
if (ap.getWifiConfiguration() != null) {
|
||||
@@ -222,7 +220,7 @@ public class AccessPointControllerImpl
|
||||
}
|
||||
}
|
||||
|
||||
private void fireAcccessPointsCallback(List<WifiEntry> aps) {
|
||||
private void fireAccessPointsCallback(List<WifiEntry> aps) {
|
||||
for (AccessPointCallback callback : mCallbacks) {
|
||||
callback.onAccessPointsChanged(aps);
|
||||
}
|
||||
|
||||
@@ -23,10 +23,6 @@ import android.telephony.SubscriptionInfo;
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.EmergencyListener;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.MobileDataIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.SignalCallback;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.WifiIndicators;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.text.SimpleDateFormat;
|
||||
|
||||
@@ -21,8 +21,6 @@ import android.net.NetworkCapabilities;
|
||||
import com.android.settingslib.AccessibilityContentDescriptions;
|
||||
import com.android.settingslib.SignalIcon.IconGroup;
|
||||
import com.android.settingslib.SignalIcon.State;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.SignalCallback;
|
||||
|
||||
import java.util.BitSet;
|
||||
|
||||
|
||||
@@ -58,9 +58,6 @@ import com.android.settingslib.mobile.TelephonyIcons;
|
||||
import com.android.settingslib.net.SignalStrengthUtil;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.MobileDataIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.SignalCallback;
|
||||
import com.android.systemui.util.CarrierConfigTracker;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
|
||||
@@ -16,19 +16,10 @@
|
||||
|
||||
package com.android.systemui.statusbar.connectivity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
|
||||
import com.android.settingslib.net.DataUsageController;
|
||||
import com.android.systemui.demomode.DemoMode;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.SignalCallback;
|
||||
import com.android.systemui.statusbar.policy.CallbackController;
|
||||
import com.android.systemui.statusbar.policy.DataSaverController;
|
||||
import com.android.wifitrackerlib.MergedCarrierEntry;
|
||||
import com.android.wifitrackerlib.WifiEntry;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/** */
|
||||
public interface NetworkController extends CallbackController<SignalCallback>, DemoMode {
|
||||
@@ -62,197 +53,8 @@ public interface NetworkController extends CallbackController<SignalCallback>, D
|
||||
/** */
|
||||
boolean isRadioOn();
|
||||
|
||||
/**
|
||||
* Wrapper class for all the WiFi signals used for WiFi indicators.
|
||||
*/
|
||||
final class WifiIndicators {
|
||||
public boolean enabled;
|
||||
public IconState statusIcon;
|
||||
public IconState qsIcon;
|
||||
public boolean activityIn;
|
||||
public boolean activityOut;
|
||||
public String description;
|
||||
public boolean isTransient;
|
||||
public String statusLabel;
|
||||
|
||||
public WifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon,
|
||||
boolean activityIn, boolean activityOut, String description,
|
||||
boolean isTransient, String statusLabel) {
|
||||
this.enabled = enabled;
|
||||
this.statusIcon = statusIcon;
|
||||
this.qsIcon = qsIcon;
|
||||
this.activityIn = activityIn;
|
||||
this.activityOut = activityOut;
|
||||
this.description = description;
|
||||
this.isTransient = isTransient;
|
||||
this.statusLabel = statusLabel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new StringBuilder("WifiIndicators[")
|
||||
.append("enabled=").append(enabled)
|
||||
.append(",statusIcon=").append(statusIcon == null ? "" : statusIcon.toString())
|
||||
.append(",qsIcon=").append(qsIcon == null ? "" : qsIcon.toString())
|
||||
.append(",activityIn=").append(activityIn)
|
||||
.append(",activityOut=").append(activityOut)
|
||||
.append(",qsDescription=").append(description)
|
||||
.append(",isTransient=").append(isTransient)
|
||||
.append(",statusLabel=").append(statusLabel)
|
||||
.append(']').toString();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper class for all the mobile signals used for mobile data indicators.
|
||||
*/
|
||||
final class MobileDataIndicators {
|
||||
public IconState statusIcon;
|
||||
public IconState qsIcon;
|
||||
public int statusType;
|
||||
public int qsType;
|
||||
public boolean activityIn;
|
||||
public boolean activityOut;
|
||||
public CharSequence typeContentDescription;
|
||||
public CharSequence typeContentDescriptionHtml;
|
||||
public CharSequence qsDescription;
|
||||
public int subId;
|
||||
public boolean roaming;
|
||||
public boolean showTriangle;
|
||||
|
||||
public MobileDataIndicators(IconState statusIcon, IconState qsIcon, int statusType,
|
||||
int qsType, boolean activityIn, boolean activityOut,
|
||||
CharSequence typeContentDescription, CharSequence typeContentDescriptionHtml,
|
||||
CharSequence qsDescription, int subId, boolean roaming,
|
||||
boolean showTriangle) {
|
||||
this.statusIcon = statusIcon;
|
||||
this.qsIcon = qsIcon;
|
||||
this.statusType = statusType;
|
||||
this.qsType = qsType;
|
||||
this.activityIn = activityIn;
|
||||
this.activityOut = activityOut;
|
||||
this.typeContentDescription = typeContentDescription;
|
||||
this.typeContentDescriptionHtml = typeContentDescriptionHtml;
|
||||
this.qsDescription = qsDescription;
|
||||
this.subId = subId;
|
||||
this.roaming = roaming;
|
||||
this.showTriangle = showTriangle;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new StringBuilder("MobileDataIndicators[")
|
||||
.append("statusIcon=").append(statusIcon == null ? "" : statusIcon.toString())
|
||||
.append(",qsIcon=").append(qsIcon == null ? "" : qsIcon.toString())
|
||||
.append(",statusType=").append(statusType)
|
||||
.append(",qsType=").append(qsType)
|
||||
.append(",activityIn=").append(activityIn)
|
||||
.append(",activityOut=").append(activityOut)
|
||||
.append(",typeContentDescription=").append(typeContentDescription)
|
||||
.append(",typeContentDescriptionHtml=").append(typeContentDescriptionHtml)
|
||||
.append(",description=").append(qsDescription)
|
||||
.append(",subId=").append(subId)
|
||||
.append(",roaming=").append(roaming)
|
||||
.append(",showTriangle=").append(showTriangle)
|
||||
.append(']').toString();
|
||||
}
|
||||
}
|
||||
|
||||
/** */
|
||||
interface SignalCallback {
|
||||
/**
|
||||
* Callback for listeners to be able to update the state of any UI tracking connectivity of
|
||||
* WiFi networks.
|
||||
*/
|
||||
default void setWifiIndicators(WifiIndicators wifiIndicators) {}
|
||||
|
||||
/**
|
||||
* Callback for listeners to be able to update the state of any UI tracking connectivity
|
||||
* of Mobile networks.
|
||||
*/
|
||||
default void setMobileDataIndicators(MobileDataIndicators mobileDataIndicators) {}
|
||||
|
||||
/** */
|
||||
default void setSubs(List<SubscriptionInfo> subs) {}
|
||||
|
||||
/** */
|
||||
default void setNoSims(boolean show, boolean simDetected) {}
|
||||
|
||||
/** */
|
||||
default void setEthernetIndicators(IconState icon) {}
|
||||
|
||||
/** */
|
||||
default void setIsAirplaneMode(IconState icon) {}
|
||||
|
||||
/** */
|
||||
default void setMobileDataEnabled(boolean enabled) {}
|
||||
|
||||
/**
|
||||
* Callback for listeners to be able to update the connectivity status
|
||||
* @param noDefaultNetwork whether there is any default network.
|
||||
* @param noValidatedNetwork whether there is any validated network.
|
||||
* @param noNetworksAvailable whether there is any WiFi networks available.
|
||||
*/
|
||||
default void setConnectivityStatus(boolean noDefaultNetwork, boolean noValidatedNetwork,
|
||||
boolean noNetworksAvailable) {}
|
||||
|
||||
/**
|
||||
* Callback for listeners to be able to update the call indicator
|
||||
* @param statusIcon the icon for the call indicator
|
||||
* @param subId subscription ID for which to update the UI
|
||||
*/
|
||||
default void setCallIndicator(IconState statusIcon, int subId) {}
|
||||
}
|
||||
|
||||
/** */
|
||||
interface EmergencyListener {
|
||||
void setEmergencyCallsOnly(boolean emergencyOnly);
|
||||
}
|
||||
|
||||
/** */
|
||||
class IconState {
|
||||
public final boolean visible;
|
||||
public final int icon;
|
||||
public final String contentDescription;
|
||||
|
||||
public IconState(boolean visible, int icon, String contentDescription) {
|
||||
this.visible = visible;
|
||||
this.icon = icon;
|
||||
this.contentDescription = contentDescription;
|
||||
}
|
||||
|
||||
public IconState(boolean visible, int icon, int contentDescription,
|
||||
Context context) {
|
||||
this(visible, icon, context.getString(contentDescription));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
return builder.append("[visible=").append(visible).append(',')
|
||||
.append("icon=").append(icon).append(',')
|
||||
.append("contentDescription=").append(contentDescription).append(']')
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tracks changes in access points. Allows listening for changes, scanning for new APs,
|
||||
* and connecting to new ones.
|
||||
*/
|
||||
interface AccessPointController {
|
||||
void addAccessPointCallback(AccessPointCallback callback);
|
||||
void removeAccessPointCallback(AccessPointCallback callback);
|
||||
void scanForAccessPoints();
|
||||
MergedCarrierEntry getMergedCarrierEntry();
|
||||
int getIcon(WifiEntry ap);
|
||||
boolean connect(WifiEntry ap);
|
||||
boolean canConfigWifi();
|
||||
boolean canConfigMobileData();
|
||||
|
||||
interface AccessPointCallback {
|
||||
void onAccessPointsChanged(List<WifiEntry> accessPoints);
|
||||
void onSettingsActivityTriggered(Intent settingsIntent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -721,8 +721,11 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
||||
@Override
|
||||
public void addCallback(@NonNull SignalCallback cb) {
|
||||
cb.setSubs(mCurrentSubscriptions);
|
||||
cb.setIsAirplaneMode(new IconState(mAirplaneMode,
|
||||
TelephonyIcons.FLIGHT_MODE_ICON, R.string.accessibility_airplane_mode, mContext));
|
||||
cb.setIsAirplaneMode(
|
||||
new IconState(
|
||||
mAirplaneMode,
|
||||
TelephonyIcons.FLIGHT_MODE_ICON,
|
||||
mContext.getString(R.string.accessibility_airplane_mode)));
|
||||
cb.setNoSims(mHasNoSubs, mSimDetected);
|
||||
if (mProviderModelSetting) {
|
||||
cb.setConnectivityStatus(mNoDefaultNetwork, !mInetCondition, mNoNetworksAvailable);
|
||||
@@ -1056,8 +1059,11 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
||||
* notifyAllListeners.
|
||||
*/
|
||||
private void notifyListeners() {
|
||||
mCallbackHandler.setIsAirplaneMode(new IconState(mAirplaneMode,
|
||||
TelephonyIcons.FLIGHT_MODE_ICON, R.string.accessibility_airplane_mode, mContext));
|
||||
mCallbackHandler.setIsAirplaneMode(
|
||||
new IconState(
|
||||
mAirplaneMode,
|
||||
TelephonyIcons.FLIGHT_MODE_ICON,
|
||||
mContext.getString(R.string.accessibility_airplane_mode)));
|
||||
mCallbackHandler.setNoSims(mHasNoSubs, mSimDetected);
|
||||
}
|
||||
|
||||
@@ -1241,9 +1247,11 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
||||
String airplane = args.getString("airplane");
|
||||
if (airplane != null) {
|
||||
boolean show = airplane.equals("show");
|
||||
mCallbackHandler.setIsAirplaneMode(new IconState(show,
|
||||
TelephonyIcons.FLIGHT_MODE_ICON, R.string.accessibility_airplane_mode,
|
||||
mContext));
|
||||
mCallbackHandler.setIsAirplaneMode(
|
||||
new IconState(
|
||||
show,
|
||||
TelephonyIcons.FLIGHT_MODE_ICON,
|
||||
mContext.getString(R.string.accessibility_airplane_mode)));
|
||||
}
|
||||
String fully = args.getString("fully");
|
||||
if (fully != null) {
|
||||
|
||||
@@ -0,0 +1,187 @@
|
||||
/*
|
||||
* Copyright (C) 2021 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.systemui.statusbar.connectivity
|
||||
|
||||
import android.telephony.SubscriptionInfo
|
||||
|
||||
/**
|
||||
* SignalCallback contains all of the connectivity updates from [NetworkController]. Implement this
|
||||
* interface to be able to draw iconography for Wi-Fi, mobile data, ethernet, call strength
|
||||
* indicators, etc.
|
||||
*/
|
||||
interface SignalCallback {
|
||||
/**
|
||||
* Called when the Wi-Fi iconography has been updated. Implement this method to draw Wi-Fi icons
|
||||
*
|
||||
* @param wifiIndicators a box type containing enough information to properly draw a Wi-Fi icon
|
||||
*/
|
||||
@JvmDefault
|
||||
fun setWifiIndicators(wifiIndicators: WifiIndicators) {}
|
||||
|
||||
/**
|
||||
* Called when the mobile iconography has been updated. Implement this method to draw mobile
|
||||
* indicators
|
||||
*
|
||||
* @param mobileDataIndicators a box type containing enough information to properly draw
|
||||
* mobile data icons
|
||||
*
|
||||
* NOTE: phones can have multiple subscriptions, so this [mobileDataIndicators] object should be
|
||||
* indexed based on its [subId][MobileDataIndicators.subId]
|
||||
*/
|
||||
@JvmDefault
|
||||
fun setMobileDataIndicators(mobileDataIndicators: MobileDataIndicators) {}
|
||||
|
||||
/**
|
||||
* Called when the list of mobile data subscriptions has changed. Use this method as a chance
|
||||
* to remove views that are no longer needed, or to make room for new icons to come in
|
||||
*
|
||||
* @param subs a [SubscriptionInfo] for each subscription that we know about
|
||||
*/
|
||||
@JvmDefault
|
||||
fun setSubs(subs: List<@JvmSuppressWildcards SubscriptionInfo>) {}
|
||||
|
||||
/**
|
||||
* Called when:
|
||||
* 1. The number of [MobileSignalController]s goes to 0 while mobile data is enabled
|
||||
* OR
|
||||
* 2. The presence of any SIM changes
|
||||
*
|
||||
* @param show whether or not to show a "no sim" view
|
||||
* @param simDetected whether any SIM is detected or not
|
||||
*/
|
||||
@JvmDefault
|
||||
fun setNoSims(show: Boolean, simDetected: Boolean) {}
|
||||
|
||||
/**
|
||||
* Called when there is any update to the ethernet iconography. Implement this method to set an
|
||||
* ethernet icon
|
||||
*
|
||||
* @param icon an [IconState] for the current ethernet status
|
||||
*/
|
||||
@JvmDefault
|
||||
fun setEthernetIndicators(icon: IconState) {}
|
||||
|
||||
/**
|
||||
* Called whenever airplane mode changes
|
||||
*
|
||||
* @param icon an [IconState] for the current airplane mode status
|
||||
*/
|
||||
@JvmDefault
|
||||
fun setIsAirplaneMode(icon: IconState) {}
|
||||
|
||||
/**
|
||||
* Called whenever the mobile data feature enabled state changes
|
||||
*
|
||||
* @param enabled the current mobile data feature ennabled state
|
||||
*/
|
||||
@JvmDefault
|
||||
fun setMobileDataEnabled(enabled: Boolean) {}
|
||||
|
||||
/**
|
||||
* Callback for listeners to be able to update the connectivity status
|
||||
* @param noDefaultNetwork whether there is any default network.
|
||||
* @param noValidatedNetwork whether there is any validated network.
|
||||
* @param noNetworksAvailable whether there is any WiFi networks available.
|
||||
*/
|
||||
@JvmDefault
|
||||
fun setConnectivityStatus(
|
||||
noDefaultNetwork: Boolean,
|
||||
noValidatedNetwork: Boolean,
|
||||
noNetworksAvailable: Boolean
|
||||
) { }
|
||||
|
||||
/**
|
||||
* Callback for listeners to be able to update the call indicator
|
||||
* @param statusIcon the icon for the call indicator
|
||||
* @param subId subscription ID for which to update the UI
|
||||
*/
|
||||
@JvmDefault
|
||||
fun setCallIndicator(statusIcon: IconState, subId: Int) {}
|
||||
}
|
||||
|
||||
/** Box type for [SignalCallback.setWifiIndicators] */
|
||||
data class WifiIndicators(
|
||||
@JvmField val enabled: Boolean,
|
||||
@JvmField val statusIcon: IconState?,
|
||||
@JvmField val qsIcon: IconState?,
|
||||
@JvmField val activityIn: Boolean,
|
||||
@JvmField val activityOut: Boolean,
|
||||
@JvmField val description: String?,
|
||||
@JvmField val isTransient: Boolean,
|
||||
@JvmField val statusLabel: String?
|
||||
) {
|
||||
override fun toString(): String {
|
||||
return StringBuilder("WifiIndicators[")
|
||||
.append("enabled=").append(enabled)
|
||||
.append(",statusIcon=").append(statusIcon?.toString() ?: "")
|
||||
.append(",qsIcon=").append(qsIcon?.toString() ?: "")
|
||||
.append(",activityIn=").append(activityIn)
|
||||
.append(",activityOut=").append(activityOut)
|
||||
.append(",qsDescription=").append(description)
|
||||
.append(",isTransient=").append(isTransient)
|
||||
.append(",statusLabel=").append(statusLabel)
|
||||
.append(']').toString()
|
||||
}
|
||||
}
|
||||
|
||||
/** Box type for [SignalCallback.setMobileDataIndicators] */
|
||||
data class MobileDataIndicators(
|
||||
@JvmField val statusIcon: IconState?,
|
||||
@JvmField val qsIcon: IconState?,
|
||||
@JvmField val statusType: Int,
|
||||
@JvmField val qsType: Int,
|
||||
@JvmField val activityIn: Boolean,
|
||||
@JvmField val activityOut: Boolean,
|
||||
@JvmField val typeContentDescription: CharSequence?,
|
||||
@JvmField val typeContentDescriptionHtml: CharSequence?,
|
||||
@JvmField val qsDescription: CharSequence?,
|
||||
@JvmField val subId: Int,
|
||||
@JvmField val roaming: Boolean,
|
||||
@JvmField val showTriangle: Boolean
|
||||
) {
|
||||
override fun toString(): String {
|
||||
return java.lang.StringBuilder("MobileDataIndicators[")
|
||||
.append("statusIcon=").append(statusIcon?.toString() ?: "")
|
||||
.append(",qsIcon=").append(qsIcon?.toString() ?: "")
|
||||
.append(",statusType=").append(statusType)
|
||||
.append(",qsType=").append(qsType)
|
||||
.append(",activityIn=").append(activityIn)
|
||||
.append(",activityOut=").append(activityOut)
|
||||
.append(",typeContentDescription=").append(typeContentDescription)
|
||||
.append(",typeContentDescriptionHtml=").append(typeContentDescriptionHtml)
|
||||
.append(",description=").append(qsDescription)
|
||||
.append(",subId=").append(subId)
|
||||
.append(",roaming=").append(roaming)
|
||||
.append(",showTriangle=").append(showTriangle)
|
||||
.append(']').toString()
|
||||
}
|
||||
}
|
||||
|
||||
/** Box for an icon with its visibility and content description */
|
||||
data class IconState(
|
||||
@JvmField val visible: Boolean,
|
||||
@JvmField val icon: Int,
|
||||
@JvmField val contentDescription: String
|
||||
) {
|
||||
override fun toString(): String {
|
||||
val builder = java.lang.StringBuilder()
|
||||
return builder.append("[visible=").append(visible).append(',')
|
||||
.append("icon=").append(icon).append(',')
|
||||
.append("contentDescription=").append(contentDescription).append(']')
|
||||
.toString()
|
||||
}
|
||||
}
|
||||
@@ -23,8 +23,6 @@ import android.util.Log;
|
||||
|
||||
import com.android.settingslib.SignalIcon.IconGroup;
|
||||
import com.android.settingslib.SignalIcon.State;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.SignalCallback;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.util.BitSet;
|
||||
|
||||
@@ -37,10 +37,6 @@ import com.android.settingslib.mobile.TelephonyIcons;
|
||||
import com.android.settingslib.wifi.WifiStatusTracker;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.MobileDataIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.SignalCallback;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.WifiIndicators;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -26,6 +26,7 @@ import static com.android.systemui.statusbar.events.SystemStatusAnimationSchedul
|
||||
import static com.android.systemui.statusbar.events.SystemStatusAnimationSchedulerKt.SHOWING_PERSISTENT_DOT;
|
||||
|
||||
import android.animation.ValueAnimator;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.app.Fragment;
|
||||
import android.os.Bundle;
|
||||
@@ -46,8 +47,9 @@ import com.android.systemui.statusbar.DisableFlagsLogger.DisableState;
|
||||
import com.android.systemui.statusbar.OperatorNameView;
|
||||
import com.android.systemui.statusbar.OperatorNameViewController;
|
||||
import com.android.systemui.statusbar.StatusBarState;
|
||||
import com.android.systemui.statusbar.connectivity.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.SignalCallback;
|
||||
import com.android.systemui.statusbar.connectivity.SignalCallback;
|
||||
import com.android.systemui.statusbar.events.SystemStatusAnimationCallback;
|
||||
import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
|
||||
import com.android.systemui.statusbar.phone.StatusBarIconController.DarkIconManager;
|
||||
@@ -107,7 +109,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
|
||||
private SignalCallback mSignalCallback = new SignalCallback() {
|
||||
@Override
|
||||
public void setIsAirplaneMode(NetworkController.IconState icon) {
|
||||
public void setIsAirplaneMode(@NonNull IconState icon) {
|
||||
mCommandQueue.recomputeDisableFlags(getContext().getDisplayId(), true /* animate */);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.systemui.statusbar.phone;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.content.Context;
|
||||
import android.os.Handler;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
@@ -26,11 +27,11 @@ import com.android.settingslib.mobile.TelephonyIcons;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.statusbar.connectivity.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.MobileDataIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.MobileDataIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.WifiIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkControllerImpl;
|
||||
import com.android.systemui.statusbar.connectivity.SignalCallback;
|
||||
import com.android.systemui.statusbar.connectivity.WifiIndicators;
|
||||
import com.android.systemui.statusbar.policy.SecurityController;
|
||||
import com.android.systemui.tuner.TunerService;
|
||||
import com.android.systemui.tuner.TunerService.Tunable;
|
||||
@@ -44,7 +45,7 @@ import javax.inject.Inject;
|
||||
|
||||
/** Controls the signal policies for icons shown in the StatusBar. **/
|
||||
@SysUISingleton
|
||||
public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallback,
|
||||
public class StatusBarSignalPolicy implements SignalCallback,
|
||||
SecurityController.SecurityControllerCallback, Tunable {
|
||||
private static final String TAG = "StatusBarSignalPolicy";
|
||||
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
||||
@@ -169,7 +170,7 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setWifiIndicators(WifiIndicators indicators) {
|
||||
public void setWifiIndicators(@NonNull WifiIndicators indicators) {
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "setWifiIndicators: " + indicators);
|
||||
}
|
||||
@@ -219,7 +220,7 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCallIndicator(IconState statusIcon, int subId) {
|
||||
public void setCallIndicator(@NonNull IconState statusIcon, int subId) {
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "setCallIndicator: "
|
||||
+ "statusIcon = " + statusIcon + ","
|
||||
@@ -247,7 +248,7 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMobileDataIndicators(MobileDataIndicators indicators) {
|
||||
public void setMobileDataIndicators(@NonNull MobileDataIndicators indicators) {
|
||||
if (DEBUG) {
|
||||
Log.d(TAG, "setMobileDataIndicators: " + indicators);
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ import com.android.internal.R;
|
||||
import com.android.systemui.dagger.SysUISingleton;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.settings.UserTracker;
|
||||
import com.android.systemui.statusbar.connectivity.AccessPointController;
|
||||
import com.android.systemui.statusbar.connectivity.AccessPointControllerImpl;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkControllerImpl;
|
||||
@@ -135,7 +136,7 @@ public interface StatusBarPolicyModule {
|
||||
|
||||
/** */
|
||||
@Binds
|
||||
NetworkController.AccessPointController provideAccessPointController(
|
||||
AccessPointController provideAccessPointController(
|
||||
AccessPointControllerImpl accessPointControllerImpl);
|
||||
|
||||
/** */
|
||||
|
||||
@@ -39,8 +39,10 @@ import androidx.test.filters.SmallTest;
|
||||
import com.android.keyguard.CarrierTextManager;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.statusbar.connectivity.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.MobileDataIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.MobileDataIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.SignalCallback;
|
||||
import com.android.systemui.util.CarrierConfigTracker;
|
||||
import com.android.systemui.utils.leaks.LeakCheckedTest;
|
||||
import com.android.systemui.utils.os.FakeHandler;
|
||||
@@ -57,7 +59,7 @@ import org.mockito.MockitoAnnotations;
|
||||
public class QSCarrierGroupControllerTest extends LeakCheckedTest {
|
||||
|
||||
private QSCarrierGroupController mQSCarrierGroupController;
|
||||
private NetworkController.SignalCallback mSignalCallback;
|
||||
private SignalCallback mSignalCallback;
|
||||
private CarrierTextManager.CarrierTextCallback mCallback;
|
||||
@Mock
|
||||
private QSCarrierGroup mQSCarrierGroup;
|
||||
@@ -94,7 +96,7 @@ public class QSCarrierGroupControllerTest extends LeakCheckedTest {
|
||||
when(mNetworkController.hasVoiceCallingFeature()).thenReturn(true);
|
||||
doAnswer(invocation -> mSignalCallback = invocation.getArgument(0))
|
||||
.when(mNetworkController)
|
||||
.addCallback(any(NetworkController.SignalCallback.class));
|
||||
.addCallback(any(SignalCallback.class));
|
||||
|
||||
when(mCarrierTextControllerBuilder.setShowAirplaneMode(anyBoolean()))
|
||||
.thenReturn(mCarrierTextControllerBuilder);
|
||||
@@ -230,8 +232,8 @@ public class QSCarrierGroupControllerTest extends LeakCheckedTest {
|
||||
mSlotIndexResolver.overrideInvalid = true;
|
||||
|
||||
MobileDataIndicators indicators = new MobileDataIndicators(
|
||||
mock(NetworkController.IconState.class),
|
||||
mock(NetworkController.IconState.class),
|
||||
mock(IconState.class),
|
||||
mock(IconState.class),
|
||||
0, 0, true, true, "", "", "", 0, true, true);
|
||||
mSignalCallback.setMobileDataIndicators(indicators);
|
||||
}
|
||||
|
||||
@@ -43,8 +43,10 @@ import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.qs.QSTileHost;
|
||||
import com.android.systemui.qs.logging.QSLogger;
|
||||
import com.android.systemui.statusbar.connectivity.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.WifiIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.SignalCallback;
|
||||
import com.android.systemui.statusbar.connectivity.WifiIndicators;
|
||||
import com.android.systemui.statusbar.policy.CastController;
|
||||
import com.android.systemui.statusbar.policy.CastController.CastDevice;
|
||||
import com.android.systemui.statusbar.policy.HotspotController;
|
||||
@@ -77,7 +79,7 @@ public class CastTileTest extends SysuiTestCase {
|
||||
@Mock
|
||||
private QSTileHost mHost;
|
||||
@Mock
|
||||
NetworkController.SignalCallback mSignalCallback;
|
||||
SignalCallback mSignalCallback;
|
||||
@Mock
|
||||
private MetricsLogger mMetricsLogger;
|
||||
@Mock
|
||||
@@ -122,8 +124,8 @@ public class CastTileTest extends SysuiTestCase {
|
||||
mTestableLooper.processAllMessages();
|
||||
|
||||
mCastTile.handleSetListening(true);
|
||||
ArgumentCaptor<NetworkController.SignalCallback> signalCallbackArgumentCaptor =
|
||||
ArgumentCaptor.forClass(NetworkController.SignalCallback.class);
|
||||
ArgumentCaptor<SignalCallback> signalCallbackArgumentCaptor =
|
||||
ArgumentCaptor.forClass(SignalCallback.class);
|
||||
verify(mNetworkController).observe(any(LifecycleOwner.class),
|
||||
signalCallbackArgumentCaptor.capture());
|
||||
mSignalCallback = signalCallbackArgumentCaptor.getValue();
|
||||
@@ -139,10 +141,9 @@ public class CastTileTest extends SysuiTestCase {
|
||||
// All these tests for enabled/disabled wifi have hotspot not enabled
|
||||
@Test
|
||||
public void testStateUnavailable_wifiDisabled() {
|
||||
NetworkController.IconState qsIcon =
|
||||
new NetworkController.IconState(false, 0, "");
|
||||
IconState qsIcon = new IconState(false, 0, "");
|
||||
WifiIndicators indicators = new WifiIndicators(
|
||||
false, mock(NetworkController.IconState.class),
|
||||
false, mock(IconState.class),
|
||||
qsIcon, false,false, "",
|
||||
false, "");
|
||||
mSignalCallback.setWifiIndicators(indicators);
|
||||
@@ -153,10 +154,9 @@ public class CastTileTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void testStateUnavailable_wifiNotConnected() {
|
||||
NetworkController.IconState qsIcon =
|
||||
new NetworkController.IconState(false, 0, "");
|
||||
IconState qsIcon = new IconState(false, 0, "");
|
||||
WifiIndicators indicators = new WifiIndicators(
|
||||
true, mock(NetworkController.IconState.class),
|
||||
true, mock(IconState.class),
|
||||
qsIcon, false,false, "",
|
||||
false, "");
|
||||
mSignalCallback.setWifiIndicators(indicators);
|
||||
@@ -166,10 +166,9 @@ public class CastTileTest extends SysuiTestCase {
|
||||
}
|
||||
|
||||
private void enableWifiAndProcessMessages() {
|
||||
NetworkController.IconState qsIcon =
|
||||
new NetworkController.IconState(true, 0, "");
|
||||
IconState qsIcon = new IconState(true, 0, "");
|
||||
WifiIndicators indicators = new WifiIndicators(
|
||||
true, mock(NetworkController.IconState.class),
|
||||
true, mock(IconState.class),
|
||||
qsIcon, false,false, "",
|
||||
false, "");
|
||||
mSignalCallback.setWifiIndicators(indicators);
|
||||
|
||||
@@ -49,8 +49,7 @@ import com.android.systemui.animation.DialogLaunchAnimator;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.AccessPointController;
|
||||
import com.android.systemui.statusbar.connectivity.AccessPointController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.statusbar.policy.LocationController;
|
||||
import com.android.systemui.toast.SystemUIToast;
|
||||
@@ -104,7 +103,7 @@ public class InternetDialogControllerTest extends SysuiTestCase {
|
||||
@Mock
|
||||
private KeyguardStateController mKeyguardStateController;
|
||||
@Mock
|
||||
private NetworkController.AccessPointController mAccessPointController;
|
||||
private AccessPointController mAccessPointController;
|
||||
@Mock
|
||||
private WifiEntry mConnectedEntry;
|
||||
@Mock
|
||||
|
||||
@@ -56,9 +56,9 @@ class AccessPointControllerImplTest : SysuiTestCase() {
|
||||
@Mock
|
||||
private lateinit var wifiPickerTracker: WifiPickerTracker
|
||||
@Mock
|
||||
private lateinit var callback: NetworkController.AccessPointController.AccessPointCallback
|
||||
private lateinit var callback: AccessPointController.AccessPointCallback
|
||||
@Mock
|
||||
private lateinit var otherCallback: NetworkController.AccessPointController.AccessPointCallback
|
||||
private lateinit var otherCallback: AccessPointController.AccessPointCallback
|
||||
@Mock
|
||||
private lateinit var wifiEntryConnected: WifiEntry
|
||||
@Mock
|
||||
|
||||
@@ -29,10 +29,6 @@ import androidx.test.runner.AndroidJUnit4;
|
||||
import com.android.settingslib.mobile.TelephonyIcons;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.EmergencyListener;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.MobileDataIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.SignalCallback;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.WifiIndicators;
|
||||
import com.android.systemui.tests.R;
|
||||
|
||||
import org.junit.Before;
|
||||
|
||||
@@ -72,9 +72,6 @@ import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.demomode.DemoModeController;
|
||||
import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.flags.FeatureFlags;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.IconState;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.MobileDataIndicators;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.SignalCallback;
|
||||
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
|
||||
import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceProvisionedListener;
|
||||
import com.android.systemui.telephony.TelephonyListenerManager;
|
||||
|
||||
@@ -23,8 +23,6 @@ import android.test.suitebuilder.annotation.SmallTest;
|
||||
import android.testing.AndroidTestingRunner;
|
||||
import android.testing.TestableLooper.RunWithLooper;
|
||||
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.IconState;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
|
||||
@@ -36,7 +36,6 @@ import android.testing.AndroidTestingRunner;
|
||||
import android.testing.TestableLooper.RunWithLooper;
|
||||
|
||||
import com.android.settingslib.mobile.TelephonyIcons;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.WifiIndicators;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -18,8 +18,9 @@ import android.os.Bundle;
|
||||
import android.testing.LeakCheck;
|
||||
|
||||
import com.android.settingslib.net.DataUsageController;
|
||||
import com.android.systemui.statusbar.connectivity.AccessPointController;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController;
|
||||
import com.android.systemui.statusbar.connectivity.NetworkController.SignalCallback;
|
||||
import com.android.systemui.statusbar.connectivity.SignalCallback;
|
||||
import com.android.systemui.statusbar.policy.DataSaverController;
|
||||
|
||||
public class FakeNetworkController extends BaseLeakChecker<SignalCallback>
|
||||
|
||||
Reference in New Issue
Block a user