Loading Android.bp +1 −0 Original line number Original line Diff line number Diff line Loading @@ -577,6 +577,7 @@ java_library { "telephony/java/com/android/internal/telephony/euicc/ISetNicknameCallback.aidl", "telephony/java/com/android/internal/telephony/euicc/ISetNicknameCallback.aidl", "telephony/java/com/android/internal/telephony/euicc/ISwitchToProfileCallback.aidl", "telephony/java/com/android/internal/telephony/euicc/ISwitchToProfileCallback.aidl", "wifi/java/android/net/wifi/ISoftApCallback.aidl", "wifi/java/android/net/wifi/ISoftApCallback.aidl", "wifi/java/android/net/wifi/ITrafficStateCallback.aidl", "wifi/java/android/net/wifi/IWifiManager.aidl", "wifi/java/android/net/wifi/IWifiManager.aidl", "wifi/java/android/net/wifi/aware/IWifiAwareDiscoverySessionCallback.aidl", "wifi/java/android/net/wifi/aware/IWifiAwareDiscoverySessionCallback.aidl", "wifi/java/android/net/wifi/aware/IWifiAwareEventCallback.aidl", "wifi/java/android/net/wifi/aware/IWifiAwareEventCallback.aidl", Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +11 −8 Original line number Original line Diff line number Diff line Loading @@ -16,6 +16,12 @@ package com.android.systemui.statusbar.policy; package com.android.systemui.statusbar.policy; import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_IN; import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_INOUT; import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_NONE; import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_OUT; import android.content.BroadcastReceiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Context; import android.content.Intent; import android.content.Intent; Loading Loading @@ -55,7 +61,6 @@ import com.android.systemui.R; import com.android.systemui.settings.CurrentUserTracker; import com.android.systemui.settings.CurrentUserTracker; import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceProvisionedListener; import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceProvisionedListener; import com.android.systemui.statusbar.policy.MobileSignalController.MobileState; import java.io.FileDescriptor; import java.io.FileDescriptor; import java.io.PrintWriter; import java.io.PrintWriter; import java.util.ArrayList; import java.util.ArrayList; Loading @@ -65,8 +70,6 @@ import java.util.Comparator; import java.util.List; import java.util.List; import java.util.Locale; import java.util.Locale; import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; /** Platform implementation of the network controller. **/ /** Platform implementation of the network controller. **/ public class NetworkControllerImpl extends BroadcastReceiver public class NetworkControllerImpl extends BroadcastReceiver implements NetworkController, DemoMode, DataUsageController.NetworkNameProvider, implements NetworkController, DemoMode, DataUsageController.NetworkNameProvider, Loading Loading @@ -849,20 +852,20 @@ public class NetworkControllerImpl extends BroadcastReceiver if (activity != null) { if (activity != null) { switch (activity) { switch (activity) { case "inout": case "inout": mWifiSignalController.setActivity(WifiManager.DATA_ACTIVITY_INOUT); mWifiSignalController.setActivity(DATA_ACTIVITY_INOUT); break; break; case "in": case "in": mWifiSignalController.setActivity(WifiManager.DATA_ACTIVITY_IN); mWifiSignalController.setActivity(DATA_ACTIVITY_IN); break; break; case "out": case "out": mWifiSignalController.setActivity(WifiManager.DATA_ACTIVITY_OUT); mWifiSignalController.setActivity(DATA_ACTIVITY_OUT); break; break; default: default: mWifiSignalController.setActivity(WifiManager.DATA_ACTIVITY_NONE); mWifiSignalController.setActivity(DATA_ACTIVITY_NONE); break; break; } } } else { } else { mWifiSignalController.setActivity(WifiManager.DATA_ACTIVITY_NONE); mWifiSignalController.setActivity(DATA_ACTIVITY_NONE); } } String ssid = args.getString("ssid"); String ssid = args.getString("ssid"); if (ssid != null) { if (ssid != null) { Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java +12 −40 Original line number Original line Diff line number Diff line Loading @@ -15,21 +15,19 @@ */ */ package com.android.systemui.statusbar.policy; package com.android.systemui.statusbar.policy; import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_IN; import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_INOUT; import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_OUT; import android.content.Context; import android.content.Context; import android.content.Intent; import android.content.Intent; import android.net.ConnectivityManager; import android.net.ConnectivityManager; import android.net.NetworkCapabilities; import android.net.NetworkCapabilities; import android.net.NetworkScoreManager; import android.net.NetworkScoreManager; import android.net.wifi.WifiManager; import android.net.wifi.WifiManager; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.os.Messenger; import android.text.TextUtils; import android.text.TextUtils; import android.util.Log; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.AsyncChannel; import com.android.settingslib.wifi.WifiStatusTracker; import com.android.settingslib.wifi.WifiStatusTracker; import com.android.systemui.R; import com.android.systemui.R; import com.android.systemui.statusbar.policy.NetworkController.IconState; import com.android.systemui.statusbar.policy.NetworkController.IconState; Loading @@ -37,10 +35,8 @@ import com.android.systemui.statusbar.policy.NetworkController.SignalCallback; import java.util.Objects; import java.util.Objects; public class WifiSignalController extends public class WifiSignalController extends SignalController<WifiSignalController.WifiState, SignalController.IconGroup> { SignalController<WifiSignalController.WifiState, SignalController.IconGroup> { private final AsyncChannel mWifiChannel; private final boolean mHasMobileData; private final boolean mHasMobileData; private final WifiStatusTracker mWifiTracker; private final WifiStatusTracker mWifiTracker; Loading @@ -57,12 +53,7 @@ public class WifiSignalController extends connectivityManager, this::handleStatusUpdated); connectivityManager, this::handleStatusUpdated); mWifiTracker.setListening(true); mWifiTracker.setListening(true); mHasMobileData = hasMobileData; mHasMobileData = hasMobileData; Handler handler = new WifiHandler(Looper.getMainLooper()); wifiManager.registerTrafficStateCallback(new WifiTrafficStateCallback(), null); mWifiChannel = new AsyncChannel(); Messenger wifiMessenger = wifiManager.getWifiServiceMessenger(); if (wifiMessenger != null) { mWifiChannel.connect(context, handler, wifiMessenger); } // WiFi only has one state. // WiFi only has one state. mCurrentState.iconGroup = mLastState.iconGroup = new IconGroup( mCurrentState.iconGroup = mLastState.iconGroup = new IconGroup( "Wi-Fi Icons", "Wi-Fi Icons", Loading Loading @@ -124,39 +115,20 @@ public class WifiSignalController extends @VisibleForTesting @VisibleForTesting void setActivity(int wifiActivity) { void setActivity(int wifiActivity) { mCurrentState.activityIn = wifiActivity == WifiManager.DATA_ACTIVITY_INOUT mCurrentState.activityIn = wifiActivity == DATA_ACTIVITY_INOUT || wifiActivity == WifiManager.DATA_ACTIVITY_IN; || wifiActivity == DATA_ACTIVITY_IN; mCurrentState.activityOut = wifiActivity == WifiManager.DATA_ACTIVITY_INOUT mCurrentState.activityOut = wifiActivity == DATA_ACTIVITY_INOUT || wifiActivity == WifiManager.DATA_ACTIVITY_OUT; || wifiActivity == DATA_ACTIVITY_OUT; notifyListenersIfNecessary(); notifyListenersIfNecessary(); } } /** /** * Handler to receive the data activity on wifi. * Handler to receive the data activity on wifi. */ */ private class WifiHandler extends Handler { private class WifiTrafficStateCallback implements WifiManager.TrafficStateCallback { WifiHandler(Looper looper) { super(looper); } @Override @Override public void handleMessage(Message msg) { public void onStateChanged(int state) { switch (msg.what) { setActivity(state); case AsyncChannel.CMD_CHANNEL_HALF_CONNECTED: if (msg.arg1 == AsyncChannel.STATUS_SUCCESSFUL) { mWifiChannel.sendMessage(Message.obtain(this, AsyncChannel.CMD_CHANNEL_FULL_CONNECTION)); } else { Log.e(mTag, "Failed to connect to wifi"); } break; case WifiManager.DATA_ACTIVITY_NOTIFICATION: setActivity(msg.arg1); break; default: // Ignore break; } } } } } Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java +5 −5 Original line number Original line Diff line number Diff line Loading @@ -87,15 +87,15 @@ public class NetworkControllerWifiTest extends NetworkControllerBaseTest { WifiIcons.QS_WIFI_SIGNAL_STRENGTH[1][testLevel], testSsid); WifiIcons.QS_WIFI_SIGNAL_STRENGTH[1][testLevel], testSsid); // Set to different activity state first to ensure a callback happens. // Set to different activity state first to ensure a callback happens. setWifiActivity(WifiManager.DATA_ACTIVITY_IN); setWifiActivity(WifiManager.TrafficStateCallback.DATA_ACTIVITY_IN); setWifiActivity(WifiManager.DATA_ACTIVITY_NONE); setWifiActivity(WifiManager.TrafficStateCallback.DATA_ACTIVITY_NONE); verifyLastQsDataDirection(false, false); verifyLastQsDataDirection(false, false); setWifiActivity(WifiManager.DATA_ACTIVITY_IN); setWifiActivity(WifiManager.TrafficStateCallback.DATA_ACTIVITY_IN); verifyLastQsDataDirection(true, false); verifyLastQsDataDirection(true, false); setWifiActivity(WifiManager.DATA_ACTIVITY_OUT); setWifiActivity(WifiManager.TrafficStateCallback.DATA_ACTIVITY_OUT); verifyLastQsDataDirection(false, true); verifyLastQsDataDirection(false, true); setWifiActivity(WifiManager.DATA_ACTIVITY_INOUT); setWifiActivity(WifiManager.TrafficStateCallback.DATA_ACTIVITY_INOUT); verifyLastQsDataDirection(true, true); verifyLastQsDataDirection(true, true); } } Loading wifi/java/android/net/wifi/ITrafficStateCallback.aidl 0 → 100644 +34 −0 Original line number Original line Diff line number Diff line /* * Copyright (C) 2018 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 android.net.wifi; /** * Interface for Traffic state callback. * * @hide */ oneway interface ITrafficStateCallback { /** * Callback invoked to inform clients about the current traffic state. * * @param state One of the values: {@link #DATA_ACTIVITY_NONE}, {@link #DATA_ACTIVITY_IN}, * {@link #DATA_ACTIVITY_OUT} & {@link #DATA_ACTIVITY_INOUT}. * @hide */ void onStateChanged(int state); } Loading
Android.bp +1 −0 Original line number Original line Diff line number Diff line Loading @@ -577,6 +577,7 @@ java_library { "telephony/java/com/android/internal/telephony/euicc/ISetNicknameCallback.aidl", "telephony/java/com/android/internal/telephony/euicc/ISetNicknameCallback.aidl", "telephony/java/com/android/internal/telephony/euicc/ISwitchToProfileCallback.aidl", "telephony/java/com/android/internal/telephony/euicc/ISwitchToProfileCallback.aidl", "wifi/java/android/net/wifi/ISoftApCallback.aidl", "wifi/java/android/net/wifi/ISoftApCallback.aidl", "wifi/java/android/net/wifi/ITrafficStateCallback.aidl", "wifi/java/android/net/wifi/IWifiManager.aidl", "wifi/java/android/net/wifi/IWifiManager.aidl", "wifi/java/android/net/wifi/aware/IWifiAwareDiscoverySessionCallback.aidl", "wifi/java/android/net/wifi/aware/IWifiAwareDiscoverySessionCallback.aidl", "wifi/java/android/net/wifi/aware/IWifiAwareEventCallback.aidl", "wifi/java/android/net/wifi/aware/IWifiAwareEventCallback.aidl", Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +11 −8 Original line number Original line Diff line number Diff line Loading @@ -16,6 +16,12 @@ package com.android.systemui.statusbar.policy; package com.android.systemui.statusbar.policy; import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_IN; import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_INOUT; import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_NONE; import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_OUT; import android.content.BroadcastReceiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Context; import android.content.Intent; import android.content.Intent; Loading Loading @@ -55,7 +61,6 @@ import com.android.systemui.R; import com.android.systemui.settings.CurrentUserTracker; import com.android.systemui.settings.CurrentUserTracker; import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceProvisionedListener; import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceProvisionedListener; import com.android.systemui.statusbar.policy.MobileSignalController.MobileState; import java.io.FileDescriptor; import java.io.FileDescriptor; import java.io.PrintWriter; import java.io.PrintWriter; import java.util.ArrayList; import java.util.ArrayList; Loading @@ -65,8 +70,6 @@ import java.util.Comparator; import java.util.List; import java.util.List; import java.util.Locale; import java.util.Locale; import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; /** Platform implementation of the network controller. **/ /** Platform implementation of the network controller. **/ public class NetworkControllerImpl extends BroadcastReceiver public class NetworkControllerImpl extends BroadcastReceiver implements NetworkController, DemoMode, DataUsageController.NetworkNameProvider, implements NetworkController, DemoMode, DataUsageController.NetworkNameProvider, Loading Loading @@ -849,20 +852,20 @@ public class NetworkControllerImpl extends BroadcastReceiver if (activity != null) { if (activity != null) { switch (activity) { switch (activity) { case "inout": case "inout": mWifiSignalController.setActivity(WifiManager.DATA_ACTIVITY_INOUT); mWifiSignalController.setActivity(DATA_ACTIVITY_INOUT); break; break; case "in": case "in": mWifiSignalController.setActivity(WifiManager.DATA_ACTIVITY_IN); mWifiSignalController.setActivity(DATA_ACTIVITY_IN); break; break; case "out": case "out": mWifiSignalController.setActivity(WifiManager.DATA_ACTIVITY_OUT); mWifiSignalController.setActivity(DATA_ACTIVITY_OUT); break; break; default: default: mWifiSignalController.setActivity(WifiManager.DATA_ACTIVITY_NONE); mWifiSignalController.setActivity(DATA_ACTIVITY_NONE); break; break; } } } else { } else { mWifiSignalController.setActivity(WifiManager.DATA_ACTIVITY_NONE); mWifiSignalController.setActivity(DATA_ACTIVITY_NONE); } } String ssid = args.getString("ssid"); String ssid = args.getString("ssid"); if (ssid != null) { if (ssid != null) { Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java +12 −40 Original line number Original line Diff line number Diff line Loading @@ -15,21 +15,19 @@ */ */ package com.android.systemui.statusbar.policy; package com.android.systemui.statusbar.policy; import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_IN; import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_INOUT; import static android.net.wifi.WifiManager.TrafficStateCallback.DATA_ACTIVITY_OUT; import android.content.Context; import android.content.Context; import android.content.Intent; import android.content.Intent; import android.net.ConnectivityManager; import android.net.ConnectivityManager; import android.net.NetworkCapabilities; import android.net.NetworkCapabilities; import android.net.NetworkScoreManager; import android.net.NetworkScoreManager; import android.net.wifi.WifiManager; import android.net.wifi.WifiManager; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.os.Messenger; import android.text.TextUtils; import android.text.TextUtils; import android.util.Log; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.AsyncChannel; import com.android.settingslib.wifi.WifiStatusTracker; import com.android.settingslib.wifi.WifiStatusTracker; import com.android.systemui.R; import com.android.systemui.R; import com.android.systemui.statusbar.policy.NetworkController.IconState; import com.android.systemui.statusbar.policy.NetworkController.IconState; Loading @@ -37,10 +35,8 @@ import com.android.systemui.statusbar.policy.NetworkController.SignalCallback; import java.util.Objects; import java.util.Objects; public class WifiSignalController extends public class WifiSignalController extends SignalController<WifiSignalController.WifiState, SignalController.IconGroup> { SignalController<WifiSignalController.WifiState, SignalController.IconGroup> { private final AsyncChannel mWifiChannel; private final boolean mHasMobileData; private final boolean mHasMobileData; private final WifiStatusTracker mWifiTracker; private final WifiStatusTracker mWifiTracker; Loading @@ -57,12 +53,7 @@ public class WifiSignalController extends connectivityManager, this::handleStatusUpdated); connectivityManager, this::handleStatusUpdated); mWifiTracker.setListening(true); mWifiTracker.setListening(true); mHasMobileData = hasMobileData; mHasMobileData = hasMobileData; Handler handler = new WifiHandler(Looper.getMainLooper()); wifiManager.registerTrafficStateCallback(new WifiTrafficStateCallback(), null); mWifiChannel = new AsyncChannel(); Messenger wifiMessenger = wifiManager.getWifiServiceMessenger(); if (wifiMessenger != null) { mWifiChannel.connect(context, handler, wifiMessenger); } // WiFi only has one state. // WiFi only has one state. mCurrentState.iconGroup = mLastState.iconGroup = new IconGroup( mCurrentState.iconGroup = mLastState.iconGroup = new IconGroup( "Wi-Fi Icons", "Wi-Fi Icons", Loading Loading @@ -124,39 +115,20 @@ public class WifiSignalController extends @VisibleForTesting @VisibleForTesting void setActivity(int wifiActivity) { void setActivity(int wifiActivity) { mCurrentState.activityIn = wifiActivity == WifiManager.DATA_ACTIVITY_INOUT mCurrentState.activityIn = wifiActivity == DATA_ACTIVITY_INOUT || wifiActivity == WifiManager.DATA_ACTIVITY_IN; || wifiActivity == DATA_ACTIVITY_IN; mCurrentState.activityOut = wifiActivity == WifiManager.DATA_ACTIVITY_INOUT mCurrentState.activityOut = wifiActivity == DATA_ACTIVITY_INOUT || wifiActivity == WifiManager.DATA_ACTIVITY_OUT; || wifiActivity == DATA_ACTIVITY_OUT; notifyListenersIfNecessary(); notifyListenersIfNecessary(); } } /** /** * Handler to receive the data activity on wifi. * Handler to receive the data activity on wifi. */ */ private class WifiHandler extends Handler { private class WifiTrafficStateCallback implements WifiManager.TrafficStateCallback { WifiHandler(Looper looper) { super(looper); } @Override @Override public void handleMessage(Message msg) { public void onStateChanged(int state) { switch (msg.what) { setActivity(state); case AsyncChannel.CMD_CHANNEL_HALF_CONNECTED: if (msg.arg1 == AsyncChannel.STATUS_SUCCESSFUL) { mWifiChannel.sendMessage(Message.obtain(this, AsyncChannel.CMD_CHANNEL_FULL_CONNECTION)); } else { Log.e(mTag, "Failed to connect to wifi"); } break; case WifiManager.DATA_ACTIVITY_NOTIFICATION: setActivity(msg.arg1); break; default: // Ignore break; } } } } } Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java +5 −5 Original line number Original line Diff line number Diff line Loading @@ -87,15 +87,15 @@ public class NetworkControllerWifiTest extends NetworkControllerBaseTest { WifiIcons.QS_WIFI_SIGNAL_STRENGTH[1][testLevel], testSsid); WifiIcons.QS_WIFI_SIGNAL_STRENGTH[1][testLevel], testSsid); // Set to different activity state first to ensure a callback happens. // Set to different activity state first to ensure a callback happens. setWifiActivity(WifiManager.DATA_ACTIVITY_IN); setWifiActivity(WifiManager.TrafficStateCallback.DATA_ACTIVITY_IN); setWifiActivity(WifiManager.DATA_ACTIVITY_NONE); setWifiActivity(WifiManager.TrafficStateCallback.DATA_ACTIVITY_NONE); verifyLastQsDataDirection(false, false); verifyLastQsDataDirection(false, false); setWifiActivity(WifiManager.DATA_ACTIVITY_IN); setWifiActivity(WifiManager.TrafficStateCallback.DATA_ACTIVITY_IN); verifyLastQsDataDirection(true, false); verifyLastQsDataDirection(true, false); setWifiActivity(WifiManager.DATA_ACTIVITY_OUT); setWifiActivity(WifiManager.TrafficStateCallback.DATA_ACTIVITY_OUT); verifyLastQsDataDirection(false, true); verifyLastQsDataDirection(false, true); setWifiActivity(WifiManager.DATA_ACTIVITY_INOUT); setWifiActivity(WifiManager.TrafficStateCallback.DATA_ACTIVITY_INOUT); verifyLastQsDataDirection(true, true); verifyLastQsDataDirection(true, true); } } Loading
wifi/java/android/net/wifi/ITrafficStateCallback.aidl 0 → 100644 +34 −0 Original line number Original line Diff line number Diff line /* * Copyright (C) 2018 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 android.net.wifi; /** * Interface for Traffic state callback. * * @hide */ oneway interface ITrafficStateCallback { /** * Callback invoked to inform clients about the current traffic state. * * @param state One of the values: {@link #DATA_ACTIVITY_NONE}, {@link #DATA_ACTIVITY_IN}, * {@link #DATA_ACTIVITY_OUT} & {@link #DATA_ACTIVITY_INOUT}. * @hide */ void onStateChanged(int state); }