Add the string "No time remaining" when remaining time <= 0.

Bug: 70950124

Test: manual
Test: make RunSettingsRoboTests
Change-Id: Id8ff1dde78f3389b5ab15120a2460ab19e895c6f
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9f2fe1b..17bbfea 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -8765,15 +8765,15 @@
     <string name="data_remaining"><xliff:g name="bytes" example="2 GB">^1</xliff:g> left</string>
 
     <!-- Informational text about time left in billing cycle [CHAR LIMIT=60] -->
-    <string name="cycle_left_multiple_days"><xliff:g name="time" example="2d">%d</xliff:g> days left</string>
-
-    <!-- Informational text about time left in billing cycle [CHAR LIMIT=60] -->
     <plurals name="billing_cycle_days_left">
         <item quantity="one">%d day left</item>
         <item quantity="other">%d days left</item>
     </plurals>
 
     <!-- Informational text about time left in billing cycle [CHAR LIMIT=60] -->
+    <string name="billing_cycle_none_left">No time remaining</string>
+
+    <!-- Informational text about time left in billing cycle [CHAR LIMIT=60] -->
     <string name="billing_cycle_less_than_one_day_left">Less than 1 day left</string>
 
     <!-- Informational text about carrier and update time [CHAR LIMIT=30] -->
diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreference.java b/src/com/android/settings/datausage/DataUsageSummaryPreference.java
index e8715aa..16b917a 100644
--- a/src/com/android/settings/datausage/DataUsageSummaryPreference.java
+++ b/src/com/android/settings/datausage/DataUsageSummaryPreference.java
@@ -185,18 +185,18 @@
     }
 
     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));
+
+        long millisLeft = mCycleEndTimeMs - System.currentTimeMillis();
+        if (millisLeft <= 0) {
+            cycleTime.setText(getContext().getString(R.string.billing_cycle_none_left));
+        } else {
+            int daysLeft = (int)(millisLeft / MILLIS_IN_A_DAY);
+            cycleTime.setText(daysLeft < 1
+                            ? getContext().getString(R.string.billing_cycle_less_than_one_day_left)
+                            : getContext().getResources().getQuantityString(
+                            R.plurals.billing_cycle_days_left, daysLeft, daysLeft));
+        }
     }
 
 
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
index 638ee79..58e42a0 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
@@ -179,7 +179,7 @@
     }
 
     @Test
-    public void testSetUsageInfo_cycleRemainingTimeNegativeDaysLeft_shouldDisplayZeroDays() {
+    public void testSetUsageInfo_cycleRemainingTimeNegativeDaysLeft_shouldDisplayNoneLeft() {
         final long cycleEnd = System.currentTimeMillis() - 1L;
         mSummaryPreference.setUsageInfo(cycleEnd, mUpdateTime, DUMMY_CARRIER, 0 /* numPlans */,
                 new Intent());
@@ -187,7 +187,7 @@
         bindViewHolder();
         assertThat(mCycleTime.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(mCycleTime.getText()).isEqualTo(
-                mContext.getResources().getQuantityString(R.plurals.billing_cycle_days_left, 0, 0));
+                mContext.getString(R.string.billing_cycle_none_left));
     }
 
     @Test