Set correct network type when launching wifi usage data.

- when launching wifi data usage, need to explicitly set the network
type to wifi. Otherwise, the data usage list will try to show data for
the default mobile data usage.

Change-Id: I819538d2c53664635bc1c2a721d6d7f6799c6123
Fixes: 123205630
Test: make RunSettingsRoboTests
This commit is contained in:
Doris Ling
2019-01-24 15:05:55 -08:00
parent 1fe41d44fe
commit 079f6bd6b5
2 changed files with 17 additions and 1 deletions

View File

@@ -21,6 +21,7 @@ import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.net.ConnectivityManager;
import android.net.NetworkTemplate; import android.net.NetworkTemplate;
import android.os.Bundle; import android.os.Bundle;
import android.text.Spannable; import android.text.Spannable;
@@ -206,10 +207,12 @@ public class DataUsageSummaryPreference extends Preference {
} }
} }
private static void launchWifiDataUsage(Context context) { @VisibleForTesting
static void launchWifiDataUsage(Context context) {
final Bundle args = new Bundle(1); final Bundle args = new Bundle(1);
args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE,
NetworkTemplate.buildTemplateWifiWildcard()); NetworkTemplate.buildTemplateWifiWildcard());
args.putInt(DataUsageList.EXTRA_NETWORK_TYPE, ConnectivityManager.TYPE_WIFI);
final SubSettingLauncher launcher = new SubSettingLauncher(context) final SubSettingLauncher launcher = new SubSettingLauncher(context)
.setArguments(args) .setArguments(args)
.setDestination(DataUsageList.class.getName()) .setDestination(DataUsageList.class.getName())

View File

@@ -26,6 +26,7 @@ import android.app.Activity;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Intent; import android.content.Intent;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.net.ConnectivityManager;
import android.net.NetworkTemplate; import android.net.NetworkTemplate;
import android.os.Bundle; import android.os.Bundle;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
@@ -531,6 +532,18 @@ public class DataUsageSummaryPreferenceTest {
assertThat(mLaunchButton.isEnabled()).isFalse(); assertThat(mLaunchButton.isEnabled()).isFalse();
} }
@Test
public void launchWifiDataUsage_shouldSetWifiNetworkTypeInIntentExtra() {
mSummaryPreference.launchWifiDataUsage(mActivity);
final Intent launchIntent = Shadows.shadowOf(mActivity).getNextStartedActivity();
final Bundle args =
launchIntent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
assertThat(args.getInt(DataUsageList.EXTRA_NETWORK_TYPE))
.isEqualTo(ConnectivityManager.TYPE_WIFI);
}
private void bindViewHolder() { private void bindViewHolder() {
mSummaryPreference.onBindViewHolder(mHolder); mSummaryPreference.onBindViewHolder(mHolder);
mUsageTitle = (TextView) mHolder.findViewById(R.id.usage_title); mUsageTitle = (TextView) mHolder.findViewById(R.id.usage_title);