In Data Usage screen, Below the data bar, Add “X days left” field.

Bug: 70950124

Test: manual
Test: make RunSettingsRoboTests
Change-Id: I35eb3f0c09c84d609ad54e87400913ec77e19ea0
This commit is contained in:
Jan Nordqvist
2018-03-09 15:13:46 -08:00
committed by Sundeep Ghuman
parent 21ef6cb644
commit a6f6e9c41c
3 changed files with 61 additions and 12 deletions

View File

@@ -32,11 +32,13 @@ import com.android.settings.R;
import com.android.settingslib.utils.StringUtil;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
/**
* Provides a summary of data usage.
*/
public class DataUsageSummaryPreference extends Preference {
private static final long MILLIS_IN_A_DAY = TimeUnit.DAYS.toMillis(1);
private boolean mChartEnabled = true;
private String mStartLabel;
@@ -136,10 +138,7 @@ public class DataUsageSummaryPreference extends Preference {
TextView usageTitle = (TextView) holder.findViewById(R.id.usage_title);
usageTitle.setVisibility(mNumPlans > 1 ? View.VISIBLE : View.GONE);
TextView cycleTime = (TextView) holder.findViewById(R.id.cycle_left_time);
cycleTime.setText(getContext().getString(R.string.cycle_left_time_text,
StringUtil.formatElapsedTime(getContext(),
mCycleEndTimeMs - System.currentTimeMillis(),false /* withSeconds */)));
updateCycleTimeText(holder);
TextView carrierInfo = (TextView) holder.findViewById(R.id.carrier_and_update);
setCarrierInfo(carrierInfo, mCarrierName, mSnapshotTimeMs);
@@ -180,6 +179,21 @@ public class DataUsageSummaryPreference extends Preference {
}
}
private void updateCycleTimeText(PreferenceViewHolder holder) {
float daysLeft =
((float) mCycleEndTimeMs - System.currentTimeMillis()) / MILLIS_IN_A_DAY;
if (daysLeft < 0) {
daysLeft = 0;
}
TextView cycleTime = (TextView) holder.findViewById(R.id.cycle_left_time);
cycleTime.setText(
(daysLeft > 0 && daysLeft < 1)
? getContext().getString(R.string.billing_cycle_less_than_one_day_left)
: getContext().getResources().getQuantityString(
R.plurals.billing_cycle_days_left, (int) daysLeft, (int) daysLeft));
}
private void setCarrierInfo(TextView carrierInfo, CharSequence carrierName, long updateAge) {
if (mNumPlans > 0 && updateAge >= 0L) {
carrierInfo.setVisibility(View.VISIBLE);