Disable the usage summary when there's no usage data.
- when the preference is initialized, check for the network's overall total usage. If there is no data available, disable launching the detail page. Change-Id: Ie81a5471de134bac63dedd3c39f4afe44201efe5 Fixes: 74451774 Fixes: 35855928 Test: make RunSettingsRoboTests
This commit is contained in:
@@ -21,6 +21,7 @@ import android.net.NetworkTemplate;
|
||||
import android.os.Bundle;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.SubSettingLauncher;
|
||||
@@ -51,17 +52,24 @@ public class DataUsagePreference extends Preference implements TemplatePreferenc
|
||||
NetworkServices services) {
|
||||
mTemplate = template;
|
||||
mSubId = subId;
|
||||
DataUsageController controller = new DataUsageController(getContext());
|
||||
DataUsageController.DataUsageInfo usageInfo = controller.getDataUsageInfo(mTemplate);
|
||||
final DataUsageController controller = getDataUsageController();
|
||||
if (mTemplate.isMatchRuleMobile()) {
|
||||
setTitle(R.string.app_cellular_data_usage);
|
||||
} else {
|
||||
final DataUsageController.DataUsageInfo usageInfo =
|
||||
controller.getDataUsageInfo(mTemplate);
|
||||
setTitle(mTitleRes);
|
||||
setSummary(getContext().getString(R.string.data_usage_template,
|
||||
DataUsageUtils.formatDataUsage(getContext(), usageInfo.usageLevel),
|
||||
usageInfo.period));
|
||||
}
|
||||
setIntent(getIntent());
|
||||
final long usageLevel = controller.getHistoriclUsageLevel(template);
|
||||
if (usageLevel > 0L) {
|
||||
setIntent(getIntent());
|
||||
} else {
|
||||
setIntent(null);
|
||||
setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -80,4 +88,9 @@ public class DataUsagePreference extends Preference implements TemplatePreferenc
|
||||
}
|
||||
return launcher.toIntent();
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
DataUsageController getDataUsageController() {
|
||||
return new DataUsageController(getContext());
|
||||
}
|
||||
}
|
||||
|
@@ -38,6 +38,7 @@ import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.SubSettingLauncher;
|
||||
import com.android.settingslib.Utils;
|
||||
import com.android.settingslib.net.DataUsageController;
|
||||
import com.android.settingslib.utils.StringUtil;
|
||||
|
||||
import java.util.Objects;
|
||||
@@ -177,9 +178,14 @@ public class DataUsageSummaryPreference extends Preference {
|
||||
carrierInfo.setVisibility(View.GONE);
|
||||
limitInfo.setVisibility(View.GONE);
|
||||
|
||||
launchButton.setOnClickListener((view) -> {
|
||||
launchWifiDataUsage(getContext());
|
||||
});
|
||||
final long usageLevel = getHistoriclUsageLevel();
|
||||
if (usageLevel > 0L) {
|
||||
launchButton.setOnClickListener((view) -> {
|
||||
launchWifiDataUsage(getContext());
|
||||
});
|
||||
} else {
|
||||
launchButton.setEnabled(false);
|
||||
}
|
||||
launchButton.setText(R.string.launch_wifi_text);
|
||||
launchButton.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
@@ -331,4 +337,11 @@ public class DataUsageSummaryPreference extends Preference {
|
||||
carrierInfo.setTextColor(Utils.getColorAttr(getContext(), colorId));
|
||||
carrierInfo.setTypeface(typeface);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
long getHistoriclUsageLevel() {
|
||||
final DataUsageController controller = new DataUsageController(getContext());
|
||||
return controller.getHistoriclUsageLevel(NetworkTemplate.buildTemplateWifiWildcard());
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user