Remove redundant methods and refactor
Remove the summary method and write the code in AOSP directly instead to force string consistency. Also refactor a bit after the modification. Fixes: 276399056 Test: robotests Change-Id: I76ad740b694363a3cdfb3748e41c840fb678b93d
This commit is contained in:
@@ -17,32 +17,51 @@
|
||||
package com.android.settings.deviceinfo.batteryinfo;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.BatteryManager;
|
||||
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.fuelgauge.BatterySettingsFeatureProvider;
|
||||
import com.android.settings.fuelgauge.BatteryUtils;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* A controller that manages the information about battery first use date.
|
||||
*/
|
||||
public class BatteryFirstUseDatePreferenceController extends BasePreferenceController {
|
||||
|
||||
private BatterySettingsFeatureProvider mBatterySettingsFeatureProvider;
|
||||
private final BatterySettingsFeatureProvider mBatterySettingsFeatureProvider;
|
||||
private final BatteryManager mBatteryManager;
|
||||
|
||||
private long mFirstUseDateInMs;
|
||||
|
||||
public BatteryFirstUseDatePreferenceController(Context context, String preferenceKey) {
|
||||
super(context, preferenceKey);
|
||||
mBatterySettingsFeatureProvider = FeatureFactory.getFactory(
|
||||
context).getBatterySettingsFeatureProvider(context);
|
||||
context).getBatterySettingsFeatureProvider();
|
||||
mBatteryManager = mContext.getSystemService(BatteryManager.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus() {
|
||||
return mBatterySettingsFeatureProvider.isFirstUseDateAvailable()
|
||||
return mBatterySettingsFeatureProvider.isFirstUseDateAvailable(getFirstUseDate())
|
||||
? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CharSequence getSummary() {
|
||||
return mBatterySettingsFeatureProvider.getFirstUseDateSummary();
|
||||
return isAvailable()
|
||||
? BatteryUtils.getBatteryInfoFormattedDate(mFirstUseDateInMs)
|
||||
: null;
|
||||
}
|
||||
|
||||
private long getFirstUseDate() {
|
||||
if (mFirstUseDateInMs == 0L) {
|
||||
final long firstUseDateInSec = mBatteryManager.getLongProperty(
|
||||
BatteryManager.BATTERY_PROPERTY_FIRST_USAGE_DATE);
|
||||
mFirstUseDateInMs = TimeUnit.MILLISECONDS.convert(firstUseDateInSec, TimeUnit.SECONDS);
|
||||
}
|
||||
return mFirstUseDateInMs;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,32 +17,52 @@
|
||||
package com.android.settings.deviceinfo.batteryinfo;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.BatteryManager;
|
||||
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.fuelgauge.BatterySettingsFeatureProvider;
|
||||
import com.android.settings.fuelgauge.BatteryUtils;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* A controller that manages the information about battery manufacture date.
|
||||
*/
|
||||
public class BatteryManufactureDatePreferenceController extends BasePreferenceController {
|
||||
|
||||
private BatterySettingsFeatureProvider mBatterySettingsFeatureProvider;
|
||||
private final BatterySettingsFeatureProvider mBatterySettingsFeatureProvider;
|
||||
private final BatteryManager mBatteryManager;
|
||||
|
||||
private long mManufactureDateInMs;
|
||||
|
||||
public BatteryManufactureDatePreferenceController(Context context, String preferenceKey) {
|
||||
super(context, preferenceKey);
|
||||
mBatterySettingsFeatureProvider = FeatureFactory.getFactory(
|
||||
context).getBatterySettingsFeatureProvider(context);
|
||||
context).getBatterySettingsFeatureProvider();
|
||||
mBatteryManager = mContext.getSystemService(BatteryManager.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus() {
|
||||
return mBatterySettingsFeatureProvider.isManufactureDateAvailable()
|
||||
return mBatterySettingsFeatureProvider.isManufactureDateAvailable(getManufactureDate())
|
||||
? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CharSequence getSummary() {
|
||||
return mBatterySettingsFeatureProvider.getManufactureDateSummary();
|
||||
return isAvailable()
|
||||
? BatteryUtils.getBatteryInfoFormattedDate(mManufactureDateInMs)
|
||||
: null;
|
||||
}
|
||||
|
||||
private long getManufactureDate() {
|
||||
if (mManufactureDateInMs == 0L) {
|
||||
final long manufactureDateInSec = mBatteryManager.getLongProperty(
|
||||
BatteryManager.BATTERY_PROPERTY_MANUFACTURING_DATE);
|
||||
mManufactureDateInMs = TimeUnit.MILLISECONDS.convert(manufactureDateInSec,
|
||||
TimeUnit.SECONDS);
|
||||
}
|
||||
return mManufactureDateInMs;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,15 +20,8 @@ package com.android.settings.fuelgauge;
|
||||
public interface BatterySettingsFeatureProvider {
|
||||
|
||||
/** Returns true if manufacture date should be shown */
|
||||
boolean isManufactureDateAvailable();
|
||||
boolean isManufactureDateAvailable(long manufactureDateMs);
|
||||
|
||||
/** Returns true if first use date should be shown */
|
||||
boolean isFirstUseDateAvailable();
|
||||
|
||||
/** Returns the summary of battery manufacture date */
|
||||
CharSequence getManufactureDateSummary();
|
||||
|
||||
/** Returns the summary of battery first use date */
|
||||
CharSequence getFirstUseDateSummary();
|
||||
|
||||
boolean isFirstUseDateAvailable(long firstUseDateMs);
|
||||
}
|
||||
|
||||
@@ -16,77 +16,16 @@
|
||||
|
||||
package com.android.settings.fuelgauge;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.BatteryManager;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.FormatStyle;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/** Feature provider implementation for battery settings usage. */
|
||||
public class BatterySettingsFeatureProviderImpl implements BatterySettingsFeatureProvider {
|
||||
|
||||
protected Context mContext;
|
||||
|
||||
private BatteryManager mBatteryManager;
|
||||
private long mManufactureDateInMs;
|
||||
private long mFirstUseDateInMs;
|
||||
|
||||
public BatterySettingsFeatureProviderImpl(Context context) {
|
||||
mContext = context.getApplicationContext();
|
||||
mBatteryManager = mContext.getSystemService(BatteryManager.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isManufactureDateAvailable() {
|
||||
public boolean isManufactureDateAvailable(long manufactureDateMs) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFirstUseDateAvailable() {
|
||||
public boolean isFirstUseDateAvailable(long firstUseDateMs) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CharSequence getManufactureDateSummary() {
|
||||
return isManufactureDateAvailable()
|
||||
? getFormattedDate(getManufactureDate())
|
||||
: null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CharSequence getFirstUseDateSummary() {
|
||||
return isFirstUseDateAvailable()
|
||||
? getFormattedDate(getFirstUseDate())
|
||||
: null;
|
||||
}
|
||||
|
||||
protected long getManufactureDate() {
|
||||
if (mManufactureDateInMs == 0L) {
|
||||
final long manufactureDateInSec = mBatteryManager.getLongProperty(
|
||||
BatteryManager.BATTERY_PROPERTY_MANUFACTURING_DATE);
|
||||
mManufactureDateInMs = TimeUnit.MILLISECONDS.convert(manufactureDateInSec,
|
||||
TimeUnit.SECONDS);
|
||||
}
|
||||
return mManufactureDateInMs;
|
||||
}
|
||||
|
||||
protected long getFirstUseDate() {
|
||||
if (mFirstUseDateInMs == 0L) {
|
||||
final long firstUseDateInSec = mBatteryManager.getLongProperty(
|
||||
BatteryManager.BATTERY_PROPERTY_FIRST_USAGE_DATE);
|
||||
mFirstUseDateInMs = TimeUnit.MILLISECONDS.convert(firstUseDateInSec, TimeUnit.SECONDS);
|
||||
}
|
||||
return mFirstUseDateInMs;
|
||||
}
|
||||
|
||||
private CharSequence getFormattedDate(long dateInMs) {
|
||||
final Instant instant = Instant.ofEpochMilli(dateInMs);
|
||||
final String localDate = instant.atZone(ZoneId.systemDefault()).toLocalDate().format(
|
||||
DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG));
|
||||
|
||||
return localDate;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,8 +64,10 @@ import com.google.protobuf.MessageLite;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.FormatStyle;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -671,6 +673,14 @@ public class BatteryUtils {
|
||||
}
|
||||
return summary.toString();
|
||||
}
|
||||
/** Format the date of battery related info */
|
||||
public static CharSequence getBatteryInfoFormattedDate(long dateInMs) {
|
||||
final Instant instant = Instant.ofEpochMilli(dateInMs);
|
||||
final String localDate = instant.atZone(ZoneId.systemDefault()).toLocalDate().format(
|
||||
DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG));
|
||||
|
||||
return localDate;
|
||||
}
|
||||
|
||||
/** Builds the battery usage time information for one timestamp. */
|
||||
private static String buildBatteryUsageTimeInfo(final Context context, long timeInMs,
|
||||
|
||||
@@ -125,8 +125,7 @@ public abstract class FeatureFactory {
|
||||
/**
|
||||
* Gets implementation for Battery Settings provider.
|
||||
*/
|
||||
public abstract BatterySettingsFeatureProvider getBatterySettingsFeatureProvider(
|
||||
Context context);
|
||||
public abstract BatterySettingsFeatureProvider getBatterySettingsFeatureProvider();
|
||||
|
||||
public abstract DashboardFeatureProvider getDashboardFeatureProvider(Context context);
|
||||
|
||||
|
||||
@@ -150,9 +150,9 @@ public class FeatureFactoryImpl extends FeatureFactory {
|
||||
}
|
||||
|
||||
@Override
|
||||
public BatterySettingsFeatureProvider getBatterySettingsFeatureProvider(Context context) {
|
||||
public BatterySettingsFeatureProvider getBatterySettingsFeatureProvider() {
|
||||
if (mBatterySettingsFeatureProvider == null) {
|
||||
mBatterySettingsFeatureProvider = new BatterySettingsFeatureProviderImpl(context);
|
||||
mBatterySettingsFeatureProvider = new BatterySettingsFeatureProviderImpl();
|
||||
}
|
||||
return mBatterySettingsFeatureProvider;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user