Merge "Introduce half-brightness icon in Power Control widget."
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 4bbb54a..15bb878 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -731,7 +731,8 @@
android:windowSoftInputMode="stateVisible|adjustResize"/>
<activity android:name="ChooseLockGeneric"
- android:label="@string/lockpassword_choose_lock_generic_header">
+ android:label="@string/lockpassword_choose_lock_generic_header"
+ android:excludeFromRecents="true" >
<intent-filter>
<action android:name="android.app.action.SET_NEW_PASSWORD" />
<category android:name="android.intent.category.DEFAULT" />
diff --git a/res/layout/device_admin_add.xml b/res/layout/device_admin_add.xml
index b1ad72c..d6a0dcb 100644
--- a/res/layout/device_admin_add.xml
+++ b/res/layout/device_admin_add.xml
@@ -25,8 +25,9 @@
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1.0"
- android:layout_marginLeft="16dip"
- android:layout_marginRight="16dip"
+ android:paddingLeft="16dip"
+ android:paddingRight="16dip"
+ android:scrollbarStyle="outsideOverlay"
android:gravity="top">
<LinearLayout
android:layout_width="match_parent"
@@ -36,12 +37,12 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:orientation="horizontal">
+ android:orientation="horizontal"
+ android:layout_marginTop="16dip">
<ImageView android:id="@+id/admin_icon"
android:layout_width="@android:dimen/app_icon_size"
android:layout_height="@android:dimen/app_icon_size"
- android:layout_marginLeft="5dip"
- android:layout_marginRight="11dip"
+ android:layout_marginRight="16dip"
android:layout_gravity="center_vertical"
android:scaleType="fitCenter"/>
<TextView android:id="@+id/admin_name"
@@ -101,18 +102,14 @@
<LinearLayout android:id="@+id/buttonPanel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:minHeight="54dip"
android:orientation="vertical"
android:divider="?android:attr/dividerHorizontal"
- android:showDividers="beginning"
- android:dividerPadding="16dip">
+ android:showDividers="beginning">
<LinearLayout
style="?android:attr/buttonBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
- android:paddingLeft="2dip"
- android:paddingRight="2dip"
android:measureWithLargestChild="true">
<LinearLayout android:id="@+id/leftSpacer"
android:layout_weight="0.25"
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java
index 9301a86..ea15f9e 100644
--- a/src/com/android/settings/ChooseLockGeneric.java
+++ b/src/com/android/settings/ChooseLockGeneric.java
@@ -22,7 +22,6 @@
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
-import android.os.SystemProperties;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
@@ -231,8 +230,8 @@
final PreferenceScreen entries = getPreferenceScreen();
final boolean onlyShowFallback = getActivity().getIntent()
.getBooleanExtra(LockPatternUtils.LOCKSCREEN_BIOMETRIC_WEAK_FALLBACK, false);
- final boolean weakBiometricAvailable = isBiometricSensorAvailable(
- DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK);
+ final boolean weakBiometricAvailable =
+ mChooseLockSettingsHelper.utils().isBiometricWeakInstalled();
for (int i = entries.getPreferenceCount() - 1; i >= 0; --i) {
Preference pref = entries.getPreference(i);
if (pref instanceof PreferenceScreen) {
@@ -275,10 +274,6 @@
KEY_UNLOCK_SET_PATTERN.equals(key) || KEY_UNLOCK_SET_PIN.equals(key);
}
- private boolean isBiometricSensorAvailable(int quality) {
- return SystemProperties.getBoolean("ro.lockscreen.facelock_enabled", false);
- }
-
private Intent getBiometricSensorIntent(int quality) {
Intent fallBackIntent = new Intent().setClass(getActivity(), ChooseLockGeneric.class);
fallBackIntent.putExtra(LockPatternUtils.LOCKSCREEN_BIOMETRIC_WEAK_FALLBACK, true);
@@ -330,8 +325,7 @@
if(isFallback) {
startActivityForResult(intent, FALLBACK_REQUEST);
return;
- }
- else {
+ } else {
intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
startActivity(intent);
}
@@ -348,8 +342,7 @@
if(isFallback) {
startActivityForResult(intent, FALLBACK_REQUEST);
return;
- }
- else {
+ } else {
intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
startActivity(intent);
}
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index 5b8035d..6023389 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -106,7 +106,8 @@
} else {
resid = R.xml.security_settings_chooser;
}
- } else if (mLockPatternUtils.usingBiometricWeak()) {
+ } else if (mLockPatternUtils.usingBiometricWeak() &&
+ mLockPatternUtils.isBiometricWeakInstalled()) {
resid = R.xml.security_settings_biometric_weak;
} else {
switch (mLockPatternUtils.getKeyguardStoredPasswordQuality()) {
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 6ff3e0e..41286ef 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -414,6 +414,8 @@
}
final double averageCostPerByte = getAverageDataCost();
long uSecTime = mStats.computeBatteryRealtime(SystemClock.elapsedRealtime() * 1000, which);
+ long appWakelockTime = 0;
+ BatterySipper osApp = null;
mStatsPeriod = uSecTime;
SparseArray<? extends Uid> uidStats = mStats.getUidStats();
final int NU = uidStats.size();
@@ -488,6 +490,7 @@
}
}
wakelockTime /= 1000; // convert to millis
+ appWakelockTime += wakelockTime;
// Add cost of holding a wake lock
power += (wakelockTime
@@ -535,7 +538,7 @@
if (DEBUG) Log.i(TAG, "UID " + u.getUid() + ": power=" + power);
// Add the app to the list if it is consuming power
- if (power != 0) {
+ if (power != 0 || u.getUid() == 0) {
BatterySipper app = new BatterySipper(getActivity(), mRequestQueue, mHandler,
packageWithHighestDrain, DrainType.APP, 0, u,
new double[] {power});
@@ -553,6 +556,9 @@
} else {
mUsageList.add(app);
}
+ if (u.getUid() == 0) {
+ osApp = app;
+ }
}
if (u.getUid() == Process.WIFI_UID) {
mWifiPower += power;
@@ -564,6 +570,25 @@
}
if (DEBUG) Log.i(TAG, "Added power = " + power);
}
+
+ // The device has probably been awake for longer than the screen on
+ // time and application wake lock time would account for. Assign
+ // this remainder to the OS, if possible.
+ if (osApp != null) {
+ long wakeTimeMillis = mStats.computeBatteryUptime(
+ SystemClock.uptimeMillis() * 1000, which) / 1000;
+ wakeTimeMillis -= appWakelockTime - (mStats.getScreenOnTime(
+ SystemClock.elapsedRealtime(), which) / 1000);
+ if (wakeTimeMillis > 0) {
+ double power = (wakeTimeMillis
+ * mPowerProfile.getAveragePower(PowerProfile.POWER_CPU_AWAKE)) / 1000;
+ osApp.wakeLockTime += wakeTimeMillis;
+ osApp.value += power;
+ osApp.values[0] += power;
+ if (osApp.value > mMaxPower) mMaxPower = osApp.value;
+ mTotalPower += power;
+ }
+ }
}
private void addPhoneUsage(long uSecNow) {