Add functions of SI DatabaseUtils into Settings DatabaseUtils and remove

unused functions.

Bug: 253395332
Test: make RunSettingsRoboTests
Change-Id: I61feee3386d7291f9174acb884d09d7ab8733511
This commit is contained in:
Kuan Wang
2022-10-19 17:02:15 +08:00
parent c7afa45eac
commit cbaffa34bc
5 changed files with 29 additions and 98 deletions

View File

@@ -44,11 +44,6 @@ public final class BatteryUsageDataLoader {
@VisibleForTesting
static void loadUsageData(Context context) {
// Checks whether the battery content provider is available.
if (!DatabaseUtils.isContentProviderEnabled(context)) {
Log.w(TAG, "battery usage content provider is disabled!");
return;
}
final long start = System.currentTimeMillis();
final BatteryUsageStats batteryUsageStats = DataProcessor.getBatteryUsageStats(context);
final List<BatteryEntry> batteryEntryList =

View File

@@ -15,7 +15,6 @@
*/
package com.android.settings.fuelgauge.batteryusage;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
@@ -25,6 +24,7 @@ import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.BatteryManager;
import android.os.BatteryUsageStats;
import android.os.Handler;
@@ -36,6 +36,7 @@ import android.util.Log;
import androidx.annotation.VisibleForTesting;
import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDatabase;
import com.android.settingslib.fuelgauge.BatteryStatus;
import java.time.Clock;
@@ -56,6 +57,7 @@ public final class DatabaseUtils {
/** Clear memory threshold for device booting phase. **/
private static final long CLEAR_MEMORY_THRESHOLD_MS = Duration.ofMinutes(5).toMillis();
private static final long CLEAR_MEMORY_DELAYED_MS = Duration.ofSeconds(2).toMillis();
private static final long DATA_RETENTION_INTERVAL_MS = Duration.ofDays(9).toMillis();
/** An authority name of the battery content provider. */
public static final String AUTHORITY = "com.android.settings.battery.usage.provider";
@@ -83,11 +85,6 @@ public final class DatabaseUtils {
return userManager.isManagedProfile() && !userManager.isSystemUser();
}
/** Returns true if the chart graph design is enabled. */
public static boolean isChartGraphEnabled(Context context) {
return isContentProviderEnabled(context);
}
/** Long: for timestamp and String: for BatteryHistEntry.getKey() */
public static Map<Long, Map<String, BatteryHistEntry>> getHistoryMapSinceLastFullCharge(
Context context, Calendar calendar) {
@@ -115,11 +112,32 @@ public final class DatabaseUtils {
return resultMap;
}
static boolean isContentProviderEnabled(Context context) {
return context.getPackageManager()
.getComponentEnabledSetting(
new ComponentName(SETTINGS_PACKAGE_PATH, BATTERY_PROVIDER_CLASS_PATH))
== PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
/** Clears all data in the battery usage database. */
public static void clearAll(Context context) {
AsyncTask.execute(() -> {
try {
BatteryStateDatabase
.getInstance(context.getApplicationContext())
.batteryStateDao()
.clearAll();
} catch (RuntimeException e) {
Log.e(TAG, "clearAll() failed", e);
}
});
}
/** Clears all out-of-date data in the battery usage database. */
public static void clearExpiredDataIfNeeded(Context context) {
AsyncTask.execute(() -> {
try {
BatteryStateDatabase
.getInstance(context.getApplicationContext())
.batteryStateDao()
.clearAllBefore(Clock.systemUTC().millis() - DATA_RETENTION_INTERVAL_MS);
} catch (RuntimeException e) {
Log.e(TAG, "clearAllBefore() failed", e);
}
});
}
static List<ContentValues> sendBatteryEntryData(
@@ -258,9 +276,6 @@ public final class DatabaseUtils {
return null;
}
}
if (!isContentProviderEnabled(context)) {
return null;
}
final Map<Long, Map<String, BatteryHistEntry>> resultMap = new HashMap();
try (Cursor cursor =
context.getContentResolver().query(batteryStateUri, null, null, null)) {

View File

@@ -20,9 +20,7 @@ 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;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
@@ -53,7 +51,6 @@ public final class BatteryUsageBroadcastReceiverTest {
@Test
public void onReceive_fetchUsageDataIntent_startService() {
setProviderSetting(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
mBatteryUsageBroadcastReceiver.onReceive(mContext,
new Intent(BatteryUsageBroadcastReceiver.ACTION_FETCH_BATTERY_USAGE_DATA));
@@ -62,7 +59,6 @@ public final class BatteryUsageBroadcastReceiverTest {
@Test
public void onReceive_invalidIntent_notStartService() {
setProviderSetting(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
mBatteryUsageBroadcastReceiver.onReceive(mContext, new Intent("invalid intent"));
assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isFalse();
@@ -95,12 +91,4 @@ public final class BatteryUsageBroadcastReceiverTest {
assertThat(BatteryDiffEntry.sValidForRestriction).isNotEmpty();
}
private void setProviderSetting(int value) {
when(mPackageManager.getComponentEnabledSetting(
new ComponentName(
DatabaseUtils.SETTINGS_PACKAGE_PATH,
DatabaseUtils.BATTERY_PROVIDER_CLASS_PATH)))
.thenReturn(value);
}
}

View File

@@ -25,7 +25,6 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
@@ -83,7 +82,6 @@ public final class BatteryUsageDataLoaderTest {
public void loadUsageData_loadUsageDataWithHistory() {
final List<BatteryEntry> batteryEntryList = new ArrayList<>();
batteryEntryList.add(mMockBatteryEntry);
setProviderSetting(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
when(mBatteryStatsManager.getBatteryUsageStats(mStatsQueryCaptor.capture()))
.thenReturn(mBatteryUsageStats);
when(mMockBatteryAppListController.getBatteryEntryList(mBatteryUsageStats, true))
@@ -102,7 +100,6 @@ public final class BatteryUsageDataLoaderTest {
@Test
public void loadUsageData_nullBatteryUsageStats_notLoadBatteryEntryData() {
setProviderSetting(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
when(mBatteryStatsManager.getBatteryUsageStats(mStatsQueryCaptor.capture()))
.thenReturn(null);
@@ -119,7 +116,6 @@ public final class BatteryUsageDataLoaderTest {
@Test
public void loadUsageData_nullBatteryEntryList_insertFakeDataIntoProvider() {
setProviderSetting(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
when(mBatteryStatsManager.getBatteryUsageStats(mStatsQueryCaptor.capture()))
.thenReturn(mBatteryUsageStats);
when(mMockBatteryAppListController.getBatteryEntryList(mBatteryUsageStats, true))
@@ -132,7 +128,6 @@ public final class BatteryUsageDataLoaderTest {
@Test
public void loadUsageData_emptyBatteryEntryList_insertFakeDataIntoProvider() {
setProviderSetting(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
when(mBatteryStatsManager.getBatteryUsageStats(mStatsQueryCaptor.capture()))
.thenReturn(mBatteryUsageStats);
when(mMockBatteryAppListController.getBatteryEntryList(mBatteryUsageStats, true))
@@ -142,24 +137,4 @@ public final class BatteryUsageDataLoaderTest {
verify(mMockContentResolver).insert(any(), any());
}
@Test
public void loadUsageData_providerIsDisabled_notLoadHistory() {
setProviderSetting(PackageManager.COMPONENT_ENABLED_STATE_DISABLED);
when(mBatteryStatsManager.getBatteryUsageStats(mStatsQueryCaptor.capture()))
.thenReturn(mBatteryUsageStats);
BatteryUsageDataLoader.loadUsageData(mContext);
verify(mBatteryStatsManager, never()).getBatteryUsageStats(
mStatsQueryCaptor.capture());
}
private void setProviderSetting(int value) {
when(mPackageManager.getComponentEnabledSetting(
new ComponentName(
DatabaseUtils.SETTINGS_PACKAGE_PATH,
DatabaseUtils.BATTERY_PROVIDER_CLASS_PATH)))
.thenReturn(value);
}
}

View File

@@ -22,9 +22,7 @@ import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
@@ -71,7 +69,6 @@ public final class DatabaseUtilsTest {
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
setProviderSetting(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
doReturn(mMockContentResolver2).when(mMockContext).getContentResolver();
doReturn(mMockContentResolver).when(mContext).getContentResolver();
doReturn(mPackageManager).when(mMockContext).getPackageManager();
@@ -97,30 +94,6 @@ public final class DatabaseUtilsTest {
assertThat(DatabaseUtils.isWorkProfile(mContext)).isFalse();
}
@Test
public void isChartGraphEnabled_providerIsEnabled_returnTrue() {
setProviderSetting(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
assertThat(DatabaseUtils.isChartGraphEnabled(mContext)).isTrue();
}
@Test
public void isChartGraphEnabled_providerIsDisabled_returnFalse() {
setProviderSetting(PackageManager.COMPONENT_ENABLED_STATE_DISABLED);
assertThat(DatabaseUtils.isChartGraphEnabled(mContext)).isFalse();
}
@Test
public void isContentProviderEnabled_providerEnabled_returnsTrue() {
setProviderSetting(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
assertThat(DatabaseUtils.isContentProviderEnabled(mContext)).isTrue();
}
@Test
public void isContentProviderEnabled_providerDisabled_returnsFalse() {
setProviderSetting(PackageManager.COMPONENT_ENABLED_STATE_DISABLED);
assertThat(DatabaseUtils.isContentProviderEnabled(mContext)).isFalse();
}
@Test
public void sendBatteryEntryData_nullBatteryIntent_returnsNullValue() {
doReturn(null).when(mContext).registerReceiver(any(), any());
@@ -214,13 +187,6 @@ public final class DatabaseUtilsTest {
DatabaseUtils.BATTERY_CONTENT_URI, /*observer=*/ null);
}
@Test
public void getHistoryMapSinceLastFullCharge_providerIsDisabled_returnNull() {
setProviderSetting(PackageManager.COMPONENT_ENABLED_STATE_DISABLED);
assertThat(DatabaseUtils.getHistoryMapSinceLastFullCharge(
mContext, /*calendar=*/ null)).isNull();
}
@Test
public void getHistoryMapSinceLastFullCharge_emptyCursorContent_returnEmptyMap() {
final MatrixCursor cursor = new MatrixCursor(
@@ -374,14 +340,6 @@ public final class DatabaseUtilsTest {
.isEqualTo(expectedTimestamp);
}
private void setProviderSetting(int value) {
when(mPackageManager.getComponentEnabledSetting(
new ComponentName(
DatabaseUtils.SETTINGS_PACKAGE_PATH,
DatabaseUtils.BATTERY_PROVIDER_CLASS_PATH)))
.thenReturn(value);
}
private static void verifyContentValues(double consumedPower, ContentValues values) {
assertThat(values.getAsDouble(BatteryHistEntry.KEY_CONSUME_POWER))
.isEqualTo(consumedPower);