Files
app_Settings/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
ykhung cad41681d6 Add device build information in the backup stage
Insert the device build information in the battery optimization mode
backup stage, such that we can use it to decide whether we should
restore the data in the targeted device or not

Bug: 192523697
Test: make test RunSettingsRoboTests
ROBOTEST_FILTER=com.android.settings.fuelgauge.*

Change-Id: I3ab76e013ea9aca4d336a62e0c7cb6882c5b5085
2023-05-16 11:07:31 +08:00

180 lines
5.1 KiB
Java

/*
* Copyright (C) 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.fuelgauge;
import android.content.Context;
import android.content.Intent;
import android.util.SparseIntArray;
import com.android.settingslib.fuelgauge.Estimate;
import java.util.List;
import java.util.Set;
/**
* Feature Provider used in power usage
*/
public interface PowerUsageFeatureProvider {
/**
* Check whether the battery usage button is enabled in the battery page
*/
boolean isBatteryUsageEnabled();
/**
* Returns a threshold (in milliseconds) for the minimal screen on time in battery usage list
*/
double getBatteryUsageListScreenOnTimeThresholdInMs();
/**
* Returns a threshold (mA) for the minimal comsume power in battery usage list
*/
double getBatteryUsageListConsumePowerThreshold();
/**
* Returns an allowlist of app names combined into the system-apps item
*/
List<String> getSystemAppsAllowlist();
/**
* Check whether location setting is enabled
*/
boolean isLocationSettingEnabled(String[] packages);
/**
* Gets an {@link Intent} to show additional battery info
*/
Intent getAdditionalBatteryInfoIntent();
/**
* Check whether it is type service
*/
boolean isTypeService(int uid);
/**
* Check whether it is type system
*/
boolean isTypeSystem(int uid, String[] packages);
/**
* Returns an improved prediction for battery time remaining
*/
Estimate getEnhancedBatteryPrediction(Context context);
/**
* Returns an improved projection curve for future battery level
*
* @param zeroTime timestamps (array keys) are shifted by this amount
*/
SparseIntArray getEnhancedBatteryPredictionCurve(Context context, long zeroTime);
/**
* Checks whether the toggle for enhanced battery predictions is enabled
*/
boolean isEnhancedBatteryPredictionEnabled(Context context);
/**
* Checks whether debugging should be enabled for battery estimates
*/
boolean isEstimateDebugEnabled();
/**
* Converts the provided string containing the remaining time into a debug string for enhanced
* estimates
*
* @return A string containing the estimate and a label indicating it is an enhanced estimate
*/
String getEnhancedEstimateDebugString(String timeRemaining);
/**
* Converts the provided string containing the remaining time into a debug string
*
* @return A string containing the estimate and a label indicating it is a normal estimate
*/
String getOldEstimateDebugString(String timeRemaining);
/**
* Checks whether smart battery feature is supported in this device
*/
boolean isSmartBatterySupported();
/**
* Checks whether we should show usage information by slots or not
*/
boolean isChartGraphSlotsEnabled(Context context);
/**
* Returns {@code true} if current defender mode is extra defend
*/
boolean isExtraDefend();
/**
* Returns {@code true} if delay the hourly job when device is booting
*/
boolean delayHourlyJobWhenBooting();
/**
* Gets an intent for one time bypass charge limited to resume charging.
*/
Intent getResumeChargeIntent(boolean isDockDefender);
/**
* Returns the intent action used to mark as the full charge start event.
*/
String getFullChargeIntentAction();
/**
* Returns {@link Set} for the system component ids which are combined into others
*/
Set<Integer> getOthersSystemComponentSet();
/**
* Returns {@link Set} for the custom system component names which are combined into others
*/
Set<String> getOthersCustomComponentNameSet();
/**
* Returns {@link Set} for hiding system component ids in the usage screen
*/
Set<Integer> getHideSystemComponentSet();
/**
* Returns {@link Set} for hiding application package names in the usage screen
*/
Set<String> getHideApplicationSet();
/**
* Returns {@link Set} for hiding applications background usage time
*/
Set<String> getHideBackgroundUsageTimeSet();
/**
* Returns {@link Set} for ignoring task root class names for screen on time
*/
Set<String> getIgnoreScreenOnTimeTaskRootSet();
/**
* Returns the customized device build information for data backup
*/
String getBuildMetadata1(Context context);
/**
* Returns the customized device build information for data backup
*/
String getBuildMetadata2(Context context);
}