diff --git a/res/layout/preference_battery_error.xml b/res/layout/preference_battery_error.xml index 68ac6a2ee54..05d842bf77e 100644 --- a/res/layout/preference_battery_error.xml +++ b/res/layout/preference_battery_error.xml @@ -47,6 +47,7 @@ android:layout_marginTop="12dp" android:layout_marginBottom="16dp" android:text="@string/battery_missing_message" + android:textColor="@color/battery_info_error_color_black" android:textAppearance="?android:attr/textAppearanceListItem" /> @*android:color/ripple_material_dark + + + @*android:color/primary_text_default_material_light diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java index a75fb0f4526..b3d10485172 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java @@ -24,6 +24,7 @@ import android.hardware.fingerprint.FingerprintManager; import android.hardware.fingerprint.FingerprintSensorPropertiesInternal; import android.os.Bundle; import android.util.Log; +import android.view.View; import android.widget.ImageView; import android.widget.TextView; @@ -35,7 +36,9 @@ import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.biometrics.BiometricEnrollIntroduction; import com.android.settings.biometrics.BiometricUtils; +import com.android.settings.biometrics.MultiBiometricEnrollHelper; import com.android.settings.password.ChooseLockSettingsHelper; +import com.android.settings.password.SetupSkipDialog; import com.android.settingslib.HelpUtils; import com.android.settingslib.RestrictedLockUtilsInternal; @@ -89,6 +92,32 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction { footerTitle2.setText(getFooterTitle2()); } + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + // If user has skipped or finished enrolling, don't restart enrollment. + final boolean isEnrollRequest = requestCode == BIOMETRIC_FIND_SENSOR_REQUEST + || requestCode == ENROLL_NEXT_BIOMETRIC_REQUEST; + final boolean isResultSkipOrFinished = resultCode == RESULT_SKIP + || resultCode == SetupSkipDialog.RESULT_SKIP || resultCode == RESULT_FINISHED; + if (isEnrollRequest && isResultSkipOrFinished) { + data = setSkipPendingEnroll(data); + } + super.onActivityResult(requestCode, resultCode, data); + } + + @Override + protected void onCancelButtonClick(View view) { + // User has explicitly canceled enroll. Don't restart it automatically. + Intent data = setSkipPendingEnroll(new Intent()); + setResult(RESULT_SKIP, data); + finish(); + } + + @Override + protected void onSkipButtonClick(View view) { + onCancelButtonClick(view); + } + @StringRes int getNegativeButtonTextId() { return R.string.security_settings_fingerprint_enroll_introduction_no_thanks; @@ -282,4 +311,13 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction { protected int getMoreButtonTextRes() { return R.string.security_settings_face_enroll_introduction_more; } + + @NonNull + protected static Intent setSkipPendingEnroll(@Nullable Intent data) { + if (data == null) { + data = new Intent(); + } + data.putExtra(MultiBiometricEnrollHelper.EXTRA_SKIP_PENDING_ENROLL, true); + return data; + } } diff --git a/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java b/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java index 63faf5e4672..7d8d12e8cb5 100644 --- a/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java +++ b/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java @@ -29,7 +29,6 @@ import com.android.internal.widget.LockPatternUtils; import com.android.settings.SetupWizardUtils; import com.android.settings.Utils; import com.android.settings.biometrics.BiometricUtils; -import com.android.settings.biometrics.MultiBiometricEnrollHelper; import com.android.settings.password.ChooseLockSettingsHelper; import com.android.settings.password.SetupChooseLockGeneric; import com.android.settings.password.SetupSkipDialog; @@ -85,16 +84,6 @@ public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntrodu data = setFingerprintCount(data); } } - - // If user has skipped or finished enrolling, don't restart enrollment. - final boolean isEnrollRequest = requestCode == BIOMETRIC_FIND_SENSOR_REQUEST - || requestCode == ENROLL_NEXT_BIOMETRIC_REQUEST; - final boolean isResultSkipOrFinished = resultCode == RESULT_SKIP - || resultCode == SetupSkipDialog.RESULT_SKIP || resultCode == RESULT_FINISHED; - if (isEnrollRequest && isResultSkipOrFinished) { - data = setSkipPendingEnroll(data); - } - super.onActivityResult(requestCode, resultCode, data); } @@ -122,14 +111,6 @@ public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntrodu return data; } - private Intent setSkipPendingEnroll(Intent data) { - if (data == null) { - data = new Intent(); - } - data.putExtra(MultiBiometricEnrollHelper.EXTRA_SKIP_PENDING_ENROLL, true); - return data; - } - @Override protected void onCancelButtonClick(View view) { final int resultCode; @@ -151,11 +132,6 @@ public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntrodu finish(); } - @Override - protected void onSkipButtonClick(View view) { - onCancelButtonClick(view); - } - /** * Propagate lock screen metrics if the user goes back from the fingerprint setup screen * after having added lock screen to his device. diff --git a/src/com/android/settings/slices/SettingsSliceProvider.java b/src/com/android/settings/slices/SettingsSliceProvider.java index 7c487baad03..c42b51b24a3 100644 --- a/src/com/android/settings/slices/SettingsSliceProvider.java +++ b/src/com/android/settings/slices/SettingsSliceProvider.java @@ -145,13 +145,17 @@ public class SettingsSliceProvider extends SliceProvider { final Map mPinnedWorkers = new ArrayMap<>(); private Boolean mNightMode; + private boolean mFirstSlicePinned; + private boolean mFirstSliceBound; public SettingsSliceProvider() { super(READ_SEARCH_INDEXABLES); + Log.d(TAG, "init"); } @Override public boolean onCreateSliceProvider() { + Log.d(TAG, "onCreateSliceProvider"); mSlicesDatabaseAccessor = new SlicesDatabaseAccessor(getContext()); mSliceWeakDataCache = new WeakHashMap<>(); return true; @@ -159,6 +163,10 @@ public class SettingsSliceProvider extends SliceProvider { @Override public void onSlicePinned(Uri sliceUri) { + if (!mFirstSlicePinned) { + Log.d(TAG, "onSlicePinned: " + sliceUri); + mFirstSlicePinned = true; + } if (CustomSliceRegistry.isValidUri(sliceUri)) { final Context context = getContext(); final CustomSliceable sliceable = FeatureFactory.getFactory(context) @@ -194,6 +202,9 @@ public class SettingsSliceProvider extends SliceProvider { @Override public Slice onBindSlice(Uri sliceUri) { + if (!mFirstSliceBound) { + Log.d(TAG, "onBindSlice start: " + sliceUri); + } final StrictMode.ThreadPolicy oldPolicy = StrictMode.getThreadPolicy(); try { if (!ThreadUtils.isMainThread()) { @@ -261,6 +272,10 @@ public class SettingsSliceProvider extends SliceProvider { return SliceBuilderUtils.buildSlice(getContext(), cachedSliceData); } finally { StrictMode.setThreadPolicy(oldPolicy); + if (!mFirstSliceBound) { + Log.v(TAG, "onBindSlice end"); + mFirstSliceBound = true; + } } }