Loading packages/SettingsLib/src/com/android/settingslib/net/MobileDataController.java→packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java +19 −8 Original line number Diff line number Diff line Loading @@ -42,11 +42,11 @@ import static android.telephony.TelephonyManager.SIM_STATE_READY; import static android.text.format.DateUtils.FORMAT_ABBREV_MONTH; import static android.text.format.DateUtils.FORMAT_SHOW_DATE; public class MobileDataController { private static final String TAG = "MobileDataController"; public class DataUsageController { private static final String TAG = "DataUsageController"; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); private static final long DEFAULT_WARNING_LEVEL = 2L * 1024 * 1024 * 1024; public static final long DEFAULT_WARNING_LEVEL = 2L * 1024 * 1024 * 1024; private static final int FIELDS = FIELD_RX_BYTES | FIELD_TX_BYTES; private static final StringBuilder PERIOD_BUILDER = new StringBuilder(50); private static final java.util.Formatter PERIOD_FORMATTER = new java.util.Formatter( Loading @@ -62,7 +62,7 @@ public class MobileDataController { private Callback mCallback; private NetworkNameProvider mNetworkController; public MobileDataController(Context context) { public DataUsageController(Context context) { mContext = context; mTelephonyManager = TelephonyManager.from(context); mConnectivityManager = ConnectivityManager.from(context); Loading Loading @@ -109,16 +109,25 @@ public class MobileDataController { if (subscriberId == null) { return warn("no subscriber id"); } NetworkTemplate template = NetworkTemplate.buildTemplateMobileAll(subscriberId); template = NetworkTemplate.normalize(template, mTelephonyManager.getMergedSubscriberIds()); return getDataUsageInfo(template); } public DataUsageInfo getWifiDataUsageInfo() { NetworkTemplate template = NetworkTemplate.buildTemplateWifiWildcard(); return getDataUsageInfo(template); } public DataUsageInfo getDataUsageInfo(NetworkTemplate template) { final INetworkStatsSession session = getSession(); if (session == null) { return warn("no stats session"); } NetworkTemplate template = NetworkTemplate.buildTemplateMobileAll(subscriberId); template = NetworkTemplate.normalize(template, mTelephonyManager.getMergedSubscriberIds()); final NetworkPolicy policy = findNetworkPolicy(template); try { final NetworkStatsHistory history = mSession.getHistoryForNetwork(template, FIELDS); final NetworkStatsHistory history = session.getHistoryForNetwork(template, FIELDS); final long now = System.currentTimeMillis(); final long start, end; if (policy != null && policy.cycleDay > 0) { Loading Loading @@ -153,6 +162,7 @@ public class MobileDataController { } final long totalBytes = entry.rxBytes + entry.txBytes; final DataUsageInfo usage = new DataUsageInfo(); usage.startDate = start; usage.usageLevel = totalBytes; usage.period = formatDateRange(start, end); if (policy != null) { Loading Loading @@ -238,6 +248,7 @@ public class MobileDataController { public static class DataUsageInfo { public String carrier; public String period; public long startDate; public long limitLevel; public long warningLevel; public long usageLevel; Loading packages/SystemUI/src/com/android/systemui/qs/tiles/CellularTile.java +3 −3 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.android.internal.logging.MetricsLogger; import com.android.settingslib.net.MobileDataController; import com.android.settingslib.net.DataUsageController; import com.android.systemui.R; import com.android.systemui.qs.QSIconView; import com.android.systemui.qs.QSTile; Loading @@ -39,7 +39,7 @@ public class CellularTile extends QSTile<QSTile.SignalState> { "com.android.settings", "com.android.settings.Settings$DataUsageSummaryActivity")); private final NetworkController mController; private final MobileDataController mDataController; private final DataUsageController mDataController; private final CellularDetailAdapter mDetailAdapter; private final CellSignalCallback mSignalCallback = new CellSignalCallback(); Loading Loading @@ -255,7 +255,7 @@ public class CellularTile extends QSTile<QSTile.SignalState> { final DataUsageDetailView v = (DataUsageDetailView) (convertView != null ? convertView : LayoutInflater.from(mContext).inflate(R.layout.data_usage, parent, false)); final MobileDataController.DataUsageInfo info = mDataController.getDataUsageInfo(); final DataUsageController.DataUsageInfo info = mDataController.getDataUsageInfo(); if (info == null) return v; v.bind(info); return v; Loading packages/SystemUI/src/com/android/systemui/qs/tiles/DataUsageDetailView.java +2 −2 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ import android.util.AttributeSet; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; import com.android.settingslib.net.MobileDataController; import com.android.settingslib.net.DataUsageController; import com.android.systemui.FontSizeUtils; import com.android.systemui.R; import com.android.systemui.qs.DataUsageGraph; Loading Loading @@ -59,7 +59,7 @@ public class DataUsageDetailView extends LinearLayout { R.dimen.qs_data_usage_text_size); } public void bind(MobileDataController.DataUsageInfo info) { public void bind(DataUsageController.DataUsageInfo info) { final Resources res = mContext.getResources(); final int titleId; final long bytes; Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java +2 −2 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ package com.android.systemui.statusbar.policy; import android.content.Context; import android.content.Intent; import android.telephony.SubscriptionInfo; import com.android.settingslib.net.MobileDataController; import com.android.settingslib.net.DataUsageController; import com.android.settingslib.wifi.AccessPoint; import java.util.List; Loading @@ -32,7 +32,7 @@ public interface NetworkController { void setWifiEnabled(boolean enabled); void onUserSwitched(int newUserId); AccessPointController getAccessPointController(); MobileDataController getMobileDataController(); DataUsageController getMobileDataController(); public interface SignalCallback { void setWifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon, Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +11 −11 Original line number Diff line number Diff line Loading @@ -40,7 +40,7 @@ import android.util.MathUtils; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.TelephonyIntents; import com.android.settingslib.net.MobileDataController; import com.android.settingslib.net.DataUsageController; import com.android.systemui.DemoMode; import com.android.systemui.R; Loading @@ -59,7 +59,7 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; /** Platform implementation of the network controller. **/ public class NetworkControllerImpl extends BroadcastReceiver implements NetworkController, DemoMode, MobileDataController.NetworkNameProvider { implements NetworkController, DemoMode, DataUsageController.NetworkNameProvider { // debug static final String TAG = "NetworkController"; static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); Loading Loading @@ -94,7 +94,7 @@ public class NetworkControllerImpl extends BroadcastReceiver // SIM for most actions. This may be null if there aren't any SIMs around. private MobileSignalController mDefaultSignalController; private final AccessPointControllerImpl mAccessPoints; private final MobileDataController mMobileDataController; private final DataUsageController mDataUsageController; private boolean mInetCondition; // Used for Logging and demo. Loading Loading @@ -139,7 +139,7 @@ public class NetworkControllerImpl extends BroadcastReceiver SubscriptionManager.from(context), Config.readConfig(context), bgLooper, new CallbackHandler(), new AccessPointControllerImpl(context, bgLooper), new MobileDataController(context), new DataUsageController(context), new SubscriptionDefaults()); mReceiverHandler.post(mRegisterListeners); } Loading @@ -150,7 +150,7 @@ public class NetworkControllerImpl extends BroadcastReceiver SubscriptionManager subManager, Config config, Looper bgLooper, CallbackHandler callbackHandler, AccessPointControllerImpl accessPointController, MobileDataController mobileDataController, DataUsageController dataUsageController, SubscriptionDefaults defaultsHandler) { mContext = context; mConfig = config; Loading @@ -171,10 +171,10 @@ public class NetworkControllerImpl extends BroadcastReceiver mLocale = mContext.getResources().getConfiguration().locale; mAccessPoints = accessPointController; mMobileDataController = mobileDataController; mMobileDataController.setNetworkController(this); // TODO: Find a way to move this into MobileDataController. mMobileDataController.setCallback(new MobileDataController.Callback() { mDataUsageController = dataUsageController; mDataUsageController.setNetworkController(this); // TODO: Find a way to move this into DataUsageController. mDataUsageController.setCallback(new DataUsageController.Callback() { @Override public void onMobileDataEnabled(boolean enabled) { mCallbackHandler.setMobileDataEnabled(enabled); Loading Loading @@ -236,8 +236,8 @@ public class NetworkControllerImpl extends BroadcastReceiver } @Override public MobileDataController getMobileDataController() { return mMobileDataController; public DataUsageController getMobileDataController() { return mDataUsageController; } public void addEmergencyListener(EmergencyListener listener) { Loading Loading
packages/SettingsLib/src/com/android/settingslib/net/MobileDataController.java→packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java +19 −8 Original line number Diff line number Diff line Loading @@ -42,11 +42,11 @@ import static android.telephony.TelephonyManager.SIM_STATE_READY; import static android.text.format.DateUtils.FORMAT_ABBREV_MONTH; import static android.text.format.DateUtils.FORMAT_SHOW_DATE; public class MobileDataController { private static final String TAG = "MobileDataController"; public class DataUsageController { private static final String TAG = "DataUsageController"; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); private static final long DEFAULT_WARNING_LEVEL = 2L * 1024 * 1024 * 1024; public static final long DEFAULT_WARNING_LEVEL = 2L * 1024 * 1024 * 1024; private static final int FIELDS = FIELD_RX_BYTES | FIELD_TX_BYTES; private static final StringBuilder PERIOD_BUILDER = new StringBuilder(50); private static final java.util.Formatter PERIOD_FORMATTER = new java.util.Formatter( Loading @@ -62,7 +62,7 @@ public class MobileDataController { private Callback mCallback; private NetworkNameProvider mNetworkController; public MobileDataController(Context context) { public DataUsageController(Context context) { mContext = context; mTelephonyManager = TelephonyManager.from(context); mConnectivityManager = ConnectivityManager.from(context); Loading Loading @@ -109,16 +109,25 @@ public class MobileDataController { if (subscriberId == null) { return warn("no subscriber id"); } NetworkTemplate template = NetworkTemplate.buildTemplateMobileAll(subscriberId); template = NetworkTemplate.normalize(template, mTelephonyManager.getMergedSubscriberIds()); return getDataUsageInfo(template); } public DataUsageInfo getWifiDataUsageInfo() { NetworkTemplate template = NetworkTemplate.buildTemplateWifiWildcard(); return getDataUsageInfo(template); } public DataUsageInfo getDataUsageInfo(NetworkTemplate template) { final INetworkStatsSession session = getSession(); if (session == null) { return warn("no stats session"); } NetworkTemplate template = NetworkTemplate.buildTemplateMobileAll(subscriberId); template = NetworkTemplate.normalize(template, mTelephonyManager.getMergedSubscriberIds()); final NetworkPolicy policy = findNetworkPolicy(template); try { final NetworkStatsHistory history = mSession.getHistoryForNetwork(template, FIELDS); final NetworkStatsHistory history = session.getHistoryForNetwork(template, FIELDS); final long now = System.currentTimeMillis(); final long start, end; if (policy != null && policy.cycleDay > 0) { Loading Loading @@ -153,6 +162,7 @@ public class MobileDataController { } final long totalBytes = entry.rxBytes + entry.txBytes; final DataUsageInfo usage = new DataUsageInfo(); usage.startDate = start; usage.usageLevel = totalBytes; usage.period = formatDateRange(start, end); if (policy != null) { Loading Loading @@ -238,6 +248,7 @@ public class MobileDataController { public static class DataUsageInfo { public String carrier; public String period; public long startDate; public long limitLevel; public long warningLevel; public long usageLevel; Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/CellularTile.java +3 −3 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.android.internal.logging.MetricsLogger; import com.android.settingslib.net.MobileDataController; import com.android.settingslib.net.DataUsageController; import com.android.systemui.R; import com.android.systemui.qs.QSIconView; import com.android.systemui.qs.QSTile; Loading @@ -39,7 +39,7 @@ public class CellularTile extends QSTile<QSTile.SignalState> { "com.android.settings", "com.android.settings.Settings$DataUsageSummaryActivity")); private final NetworkController mController; private final MobileDataController mDataController; private final DataUsageController mDataController; private final CellularDetailAdapter mDetailAdapter; private final CellSignalCallback mSignalCallback = new CellSignalCallback(); Loading Loading @@ -255,7 +255,7 @@ public class CellularTile extends QSTile<QSTile.SignalState> { final DataUsageDetailView v = (DataUsageDetailView) (convertView != null ? convertView : LayoutInflater.from(mContext).inflate(R.layout.data_usage, parent, false)); final MobileDataController.DataUsageInfo info = mDataController.getDataUsageInfo(); final DataUsageController.DataUsageInfo info = mDataController.getDataUsageInfo(); if (info == null) return v; v.bind(info); return v; Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/DataUsageDetailView.java +2 −2 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ import android.util.AttributeSet; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; import com.android.settingslib.net.MobileDataController; import com.android.settingslib.net.DataUsageController; import com.android.systemui.FontSizeUtils; import com.android.systemui.R; import com.android.systemui.qs.DataUsageGraph; Loading Loading @@ -59,7 +59,7 @@ public class DataUsageDetailView extends LinearLayout { R.dimen.qs_data_usage_text_size); } public void bind(MobileDataController.DataUsageInfo info) { public void bind(DataUsageController.DataUsageInfo info) { final Resources res = mContext.getResources(); final int titleId; final long bytes; Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java +2 −2 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ package com.android.systemui.statusbar.policy; import android.content.Context; import android.content.Intent; import android.telephony.SubscriptionInfo; import com.android.settingslib.net.MobileDataController; import com.android.settingslib.net.DataUsageController; import com.android.settingslib.wifi.AccessPoint; import java.util.List; Loading @@ -32,7 +32,7 @@ public interface NetworkController { void setWifiEnabled(boolean enabled); void onUserSwitched(int newUserId); AccessPointController getAccessPointController(); MobileDataController getMobileDataController(); DataUsageController getMobileDataController(); public interface SignalCallback { void setWifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon, Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +11 −11 Original line number Diff line number Diff line Loading @@ -40,7 +40,7 @@ import android.util.MathUtils; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.TelephonyIntents; import com.android.settingslib.net.MobileDataController; import com.android.settingslib.net.DataUsageController; import com.android.systemui.DemoMode; import com.android.systemui.R; Loading @@ -59,7 +59,7 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; /** Platform implementation of the network controller. **/ public class NetworkControllerImpl extends BroadcastReceiver implements NetworkController, DemoMode, MobileDataController.NetworkNameProvider { implements NetworkController, DemoMode, DataUsageController.NetworkNameProvider { // debug static final String TAG = "NetworkController"; static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); Loading Loading @@ -94,7 +94,7 @@ public class NetworkControllerImpl extends BroadcastReceiver // SIM for most actions. This may be null if there aren't any SIMs around. private MobileSignalController mDefaultSignalController; private final AccessPointControllerImpl mAccessPoints; private final MobileDataController mMobileDataController; private final DataUsageController mDataUsageController; private boolean mInetCondition; // Used for Logging and demo. Loading Loading @@ -139,7 +139,7 @@ public class NetworkControllerImpl extends BroadcastReceiver SubscriptionManager.from(context), Config.readConfig(context), bgLooper, new CallbackHandler(), new AccessPointControllerImpl(context, bgLooper), new MobileDataController(context), new DataUsageController(context), new SubscriptionDefaults()); mReceiverHandler.post(mRegisterListeners); } Loading @@ -150,7 +150,7 @@ public class NetworkControllerImpl extends BroadcastReceiver SubscriptionManager subManager, Config config, Looper bgLooper, CallbackHandler callbackHandler, AccessPointControllerImpl accessPointController, MobileDataController mobileDataController, DataUsageController dataUsageController, SubscriptionDefaults defaultsHandler) { mContext = context; mConfig = config; Loading @@ -171,10 +171,10 @@ public class NetworkControllerImpl extends BroadcastReceiver mLocale = mContext.getResources().getConfiguration().locale; mAccessPoints = accessPointController; mMobileDataController = mobileDataController; mMobileDataController.setNetworkController(this); // TODO: Find a way to move this into MobileDataController. mMobileDataController.setCallback(new MobileDataController.Callback() { mDataUsageController = dataUsageController; mDataUsageController.setNetworkController(this); // TODO: Find a way to move this into DataUsageController. mDataUsageController.setCallback(new DataUsageController.Callback() { @Override public void onMobileDataEnabled(boolean enabled) { mCallbackHandler.setMobileDataEnabled(enabled); Loading Loading @@ -236,8 +236,8 @@ public class NetworkControllerImpl extends BroadcastReceiver } @Override public MobileDataController getMobileDataController() { return mMobileDataController; public DataUsageController getMobileDataController() { return mDataUsageController; } public void addEmergencyListener(EmergencyListener listener) { Loading