Skip to content

Commit 096a6b2

Browse files
imjyotiradityaGenkzsz11
authored andcommitted
SystemUI: Implement Wi-Fi Daily data usage
also cleanup DataUsageController code while at it. Signed-off-by: Jyotiraditya Panda <jyotiraditya@aospa.co> Signed-off-by: Genkzsz11 <Genkzsz11@gmail.com>
1 parent 69279e5 commit 096a6b2

2 files changed

Lines changed: 34 additions & 42 deletions

File tree

packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,12 @@
2828
import android.app.usage.NetworkStatsManager;
2929
import android.content.Context;
3030
import android.net.ConnectivityManager;
31-
import android.net.INetworkStatsService;
32-
import android.net.INetworkStatsSession;
3331
import android.net.NetworkPolicy;
3432
import android.net.NetworkPolicyManager;
3533
import android.net.NetworkTemplate;
34+
import android.net.wifi.WifiInfo;
35+
import android.net.wifi.WifiManager;
3636
import android.os.RemoteException;
37-
import android.os.ServiceManager;
3837
import android.telephony.SubscriptionManager;
3938
import android.telephony.TelephonyManager;
4039
import android.text.format.DateUtils;
@@ -60,22 +59,20 @@ public class DataUsageController {
6059

6160
private final Context mContext;
6261
private final ConnectivityManager mConnectivityManager;
63-
private final INetworkStatsService mStatsService;
6462
private final NetworkPolicyManager mPolicyManager;
6563
private final NetworkStatsManager mNetworkStatsManager;
64+
private final WifiManager mWifiManager;
6665

67-
private INetworkStatsSession mSession;
6866
private Callback mCallback;
6967
private NetworkNameProvider mNetworkController;
7068
private int mSubscriptionId;
7169

7270
public DataUsageController(Context context) {
7371
mContext = context;
7472
mConnectivityManager = ConnectivityManager.from(context);
75-
mStatsService = INetworkStatsService.Stub.asInterface(
76-
ServiceManager.getService(Context.NETWORK_STATS_SERVICE));
7773
mPolicyManager = NetworkPolicyManager.from(mContext);
7874
mNetworkStatsManager = context.getSystemService(NetworkStatsManager.class);
75+
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
7976
mSubscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
8077
}
8178

@@ -111,19 +108,28 @@ private DataUsageInfo warn(String msg) {
111108

112109
public DataUsageInfo getDataUsageInfo() {
113110
NetworkTemplate template = DataUsageUtils.getMobileTemplate(mContext, mSubscriptionId);
114-
115111
return getDataUsageInfo(template);
116112
}
117113

118114
public DataUsageInfo getDailyDataUsageInfo() {
119115
NetworkTemplate template = DataUsageUtils.getMobileTemplate(mContext, mSubscriptionId);
120-
121116
return getDailyDataUsageInfo(template);
122117
}
123118

124119
public DataUsageInfo getWifiDataUsageInfo() {
125-
NetworkTemplate template = NetworkTemplate.buildTemplateWifiWildcard();
126-
return getDataUsageInfo(template);
120+
return getDataUsageInfo(getWifiNetworkTemplate());
121+
}
122+
123+
public DataUsageInfo getWifiDailyDataUsageInfo() {
124+
return getDailyDataUsageInfo(getWifiNetworkTemplate());
125+
}
126+
127+
public NetworkTemplate getWifiNetworkTemplate() {
128+
final WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
129+
if (wifiInfo.getHiddenSSID() || wifiInfo.getSSID().equals(WifiManager.UNKNOWN_SSID)) {
130+
return NetworkTemplate.buildTemplateWifiWildcard();
131+
}
132+
return NetworkTemplate.buildTemplateWifi(wifiInfo.getSSID());
127133
}
128134

129135
public DataUsageInfo getDataUsageInfo(NetworkTemplate template) {
@@ -193,6 +199,7 @@ public DataUsageInfo getDailyDataUsageInfo(NetworkTemplate template) {
193199

194200
/**
195201
* Get the total usage level recorded in the network history
202+
*
196203
* @param template the network template to retrieve the network history
197204
* @return the total usage level recorded in the network history or -1L if there is error
198205
* retrieving the data.
@@ -219,8 +226,7 @@ private NetworkPolicy findNetworkPolicy(NetworkTemplate template) {
219226
final NetworkPolicy[] policies = mPolicyManager.getNetworkPolicies();
220227
if (policies == null) return null;
221228
final int N = policies.length;
222-
for (int i = 0; i < N; i++) {
223-
final NetworkPolicy policy = policies[i];
229+
for (final NetworkPolicy policy : policies) {
224230
if (policy != null && template.equals(policy.template)) {
225231
return policy;
226232
}
@@ -229,14 +235,14 @@ private NetworkPolicy findNetworkPolicy(NetworkTemplate template) {
229235
}
230236

231237
private static String statsBucketToString(Bucket bucket) {
232-
return bucket == null ? null : new StringBuilder("Entry[")
233-
.append("bucketDuration=").append(bucket.getEndTimeStamp() - bucket.getStartTimeStamp())
234-
.append(",bucketStart=").append(bucket.getStartTimeStamp())
235-
.append(",rxBytes=").append(bucket.getRxBytes())
236-
.append(",rxPackets=").append(bucket.getRxPackets())
237-
.append(",txBytes=").append(bucket.getTxBytes())
238-
.append(",txPackets=").append(bucket.getTxPackets())
239-
.append(']').toString();
238+
return bucket == null ? null : "Entry[" +
239+
"bucketDuration=" + (bucket.getEndTimeStamp() - bucket.getStartTimeStamp()) +
240+
",bucketStart=" + bucket.getStartTimeStamp() +
241+
",rxBytes=" + bucket.getRxBytes() +
242+
",rxPackets=" + bucket.getRxPackets() +
243+
",txBytes=" + bucket.getTxBytes() +
244+
",txPackets=" + bucket.getTxPackets() +
245+
']';
240246
}
241247

242248
@VisibleForTesting
@@ -284,22 +290,20 @@ static int getNetworkType(NetworkTemplate networkTemplate) {
284290
}
285291
final int matchRule = networkTemplate.getMatchRule();
286292
switch (matchRule) {
287-
case NetworkTemplate.MATCH_MOBILE:
288-
case NetworkTemplate.MATCH_MOBILE_WILDCARD:
289-
return ConnectivityManager.TYPE_MOBILE;
290293
case NetworkTemplate.MATCH_WIFI:
291294
case NetworkTemplate.MATCH_WIFI_WILDCARD:
292-
return ConnectivityManager.TYPE_WIFI;
295+
return ConnectivityManager.TYPE_WIFI;
293296
case NetworkTemplate.MATCH_ETHERNET:
294-
return ConnectivityManager.TYPE_ETHERNET;
297+
return ConnectivityManager.TYPE_ETHERNET;
298+
case NetworkTemplate.MATCH_MOBILE:
299+
case NetworkTemplate.MATCH_MOBILE_WILDCARD:
295300
default:
296301
return ConnectivityManager.TYPE_MOBILE;
297302
}
298303
}
299304

300305
private String getActiveSubscriberId() {
301-
final String actualSubscriberId = getTelephonyManager().getSubscriberId();
302-
return actualSubscriberId;
306+
return getTelephonyManager().getSubscriberId();
303307
}
304308

305309
private String formatDateRange(long start, long end) {

packages/SystemUI/src/com/android/systemui/statusbar/DataUsageView.java

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@
55
import android.net.ConnectivityManager;
66
import android.net.Network;
77
import android.net.NetworkCapabilities;
8-
import android.net.NetworkTemplate;
9-
import android.net.wifi.WifiInfo;
10-
import android.net.wifi.WifiManager;
118
import android.os.AsyncTask;
129
import android.provider.Settings;
1310
import android.telephony.SubscriptionInfo;
@@ -31,15 +28,13 @@ public class DataUsageView extends TextView {
3128
private static boolean shouldUpdateDataTextView;
3229
private ConnectivityManager mConnectivityManager;
3330
private NetworkController mNetworkController;
34-
private WifiManager mWifiManager;
3531
private Context mContext;
3632
private String formattedInfo;
3733

3834
public DataUsageView(Context context, AttributeSet attrs) {
3935
super(context, attrs);
4036
mContext = context;
4137
mNetworkController = Dependency.get(NetworkController.class);
42-
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
4338
mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
4439
}
4540

@@ -67,16 +62,9 @@ private void updateUsageData() {
6762
String prefix;
6863
String suffix;
6964
if (isWifiConnected()) {
70-
final NetworkTemplate template;
71-
final WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
72-
if (wifiInfo.getHiddenSSID() || wifiInfo.getSSID() == WifiManager.UNKNOWN_SSID) {
73-
template = NetworkTemplate.buildTemplateWifiWildcard();
74-
} else {
75-
template = NetworkTemplate.buildTemplateWifi(wifiInfo.getSSID());
76-
}
77-
info = dataController.getDataUsageInfo(template);
65+
info = showDailyDataUsage ? dataController.getDailyDataUsageInfo()
66+
: dataController.getWifiDataUsageInfo();
7867
prefix = mContext.getResources().getString(R.string.usage_wifi_prefix);
79-
suffix = mContext.getResources().getString(R.string.usage_data);
8068
} else {
8169
dataController.setSubscriptionId(SubscriptionManager.getDefaultDataSubscriptionId());
8270
info = showDailyDataUsage ? dataController.getDailyDataUsageInfo()

0 commit comments

Comments
 (0)