Fix DataUsageSummaryPreferenceController ANR

By off load data loading to background.

Fix: 295260929
Test: manual - on Mobile Settings
Test: unit test
Change-Id: Ib2ef19301b1e97af8a7f3861829779c3b70da4a4
This commit is contained in:
Chaohui Wang
2023-08-24 12:57:14 +08:00
parent e8d26737a6
commit df5c4f69a8
15 changed files with 730 additions and 685 deletions

View File

@@ -17,6 +17,7 @@
package com.android.settings.datausage;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@@ -90,7 +91,7 @@ public class DataUsageSummaryPreferenceTest {
@Test
public void testSetUsageInfo_withNoDataPlans_carrierInfoNotShown() {
mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */);
mSummaryPreference.setUsageInfo(mCycleEnd, -1, FAKE_CARRIER, 0 /* numPlans */);
mSummaryPreference.onBindViewHolder(mHolder);
assertThat(mSummaryPreference.getCarrierInfo(mHolder).getVisibility())
@@ -197,7 +198,7 @@ public class DataUsageSummaryPreferenceTest {
@Test
public void testSetUsageInfo_withNoDataPlans_usageTitleNotShown() {
mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */);
mSummaryPreference.setUsageInfo(mCycleEnd, -1, FAKE_CARRIER, 0 /* numPlans */);
mSummaryPreference.onBindViewHolder(mHolder);
assertThat(mSummaryPreference.getUsageTitle(mHolder).getVisibility()).isEqualTo(View.GONE);
@@ -216,7 +217,7 @@ public class DataUsageSummaryPreferenceTest {
public void testSetUsageInfo_cycleRemainingTimeIsLessOneDay() {
// just under one day
final long cycleEnd = System.currentTimeMillis() + TimeUnit.HOURS.toMillis(23);
mSummaryPreference.setUsageInfo(cycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */);
mSummaryPreference.setUsageInfo(cycleEnd, -1, FAKE_CARRIER, 0 /* numPlans */);
mSummaryPreference.onBindViewHolder(mHolder);
assertThat(mSummaryPreference.getCycleTime(mHolder).getVisibility())
@@ -229,7 +230,7 @@ public class DataUsageSummaryPreferenceTest {
@Test
public void testSetUsageInfo_cycleRemainingTimeNegativeDaysLeft_shouldDisplayNoneLeft() {
final long cycleEnd = System.currentTimeMillis() - 1L;
mSummaryPreference.setUsageInfo(cycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */);
mSummaryPreference.setUsageInfo(cycleEnd, -1, FAKE_CARRIER, 0 /* numPlans */);
mSummaryPreference.onBindViewHolder(mHolder);
assertThat(mSummaryPreference.getCycleTime(mHolder).getVisibility())
@@ -243,7 +244,7 @@ public class DataUsageSummaryPreferenceTest {
final int daysLeft = 3;
final long cycleEnd = System.currentTimeMillis() + TimeUnit.DAYS.toMillis(daysLeft)
+ TimeUnit.HOURS.toMillis(1);
mSummaryPreference.setUsageInfo(cycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */);
mSummaryPreference.setUsageInfo(cycleEnd, -1, FAKE_CARRIER, 0 /* numPlans */);
mSummaryPreference.onBindViewHolder(mHolder);
assertThat(mSummaryPreference.getCycleTime(mHolder).getVisibility())
@@ -329,8 +330,7 @@ public class DataUsageSummaryPreferenceTest {
mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */);
mSummaryPreference.setUsageNumbers(
BillingCycleSettings.MIB_IN_BYTES,
10 * BillingCycleSettings.MIB_IN_BYTES,
true /* hasMobileData */);
10 * BillingCycleSettings.MIB_IN_BYTES);
mSummaryPreference.onBindViewHolder(mHolder);
assertThat(mSummaryPreference.getDataUsed(mHolder).getText().toString())
@@ -349,8 +349,7 @@ public class DataUsageSummaryPreferenceTest {
mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */);
mSummaryPreference.setUsageNumbers(
11 * BillingCycleSettings.MIB_IN_BYTES,
10 * BillingCycleSettings.MIB_IN_BYTES,
true /* hasMobileData */);
10 * BillingCycleSettings.MIB_IN_BYTES);
mSummaryPreference.onBindViewHolder(mHolder);
assertThat(mSummaryPreference.getDataUsed(mHolder).getText().toString())
@@ -364,9 +363,9 @@ public class DataUsageSummaryPreferenceTest {
@Test
public void testSetUsageInfo_withUsageInfo_dataUsageShown() {
mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */);
mSummaryPreference.setUsageInfo(mCycleEnd, -1, FAKE_CARRIER, 0 /* numPlans */);
mSummaryPreference.setUsageNumbers(
BillingCycleSettings.MIB_IN_BYTES, -1L, true /* hasMobileData */);
BillingCycleSettings.MIB_IN_BYTES, -1L);
mSummaryPreference.onBindViewHolder(mHolder);
assertThat(mSummaryPreference.getDataUsed(mHolder).getText().toString())
@@ -383,8 +382,7 @@ public class DataUsageSummaryPreferenceTest {
mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */);
mSummaryPreference.setUsageNumbers(
BillingCycleSettings.MIB_IN_BYTES,
10 * BillingCycleSettings.MIB_IN_BYTES,
true /* hasMobileData */);
10 * BillingCycleSettings.MIB_IN_BYTES);
int data_used_formatted_id = ResourcesUtils.getResourcesId(
mContext, "string", "data_used_formatted");