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:
@@ -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 =
|
||||
|
@@ -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)) {
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user