Loading core/api/test-current.txt +0 −1 Original line number Diff line number Diff line Loading @@ -314,7 +314,6 @@ package android.app { public final class NotificationChannel implements android.os.Parcelable { method public int getOriginalImportance(); method public boolean isImportanceLockedByCriticalDeviceFunction(); method public boolean isImportanceLockedByOEM(); method public void lockFields(int); method public void setDeleted(boolean); method public void setDeletedTimeMs(long); Loading core/java/Android.bp +8 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,14 @@ filegroup { "**/*.java", "**/*.aidl", ], exclude_srcs: [ // Remove election toolbar code from build time "android/service/selectiontoolbar/*.aidl", "android/service/selectiontoolbar/*.java", "android/view/selectiontoolbar/*.aidl", "android/view/selectiontoolbar/*.java", "com/android/internal/widget/floatingtoolbar/RemoteFloatingToolbarPopup.java", ], visibility: ["//frameworks/base"], } Loading core/java/android/app/NotificationChannel.java +0 −8 Original line number Diff line number Diff line Loading @@ -863,14 +863,6 @@ public final class NotificationChannel implements Parcelable { mImportanceLockedDefaultApp = locked; } /** * @hide */ @TestApi public boolean isImportanceLockedByOEM() { return mImportanceLockedByOEM; } /** * @hide */ Loading core/java/android/app/SystemServiceRegistry.java +0 −11 Original line number Diff line number Diff line Loading @@ -230,8 +230,6 @@ import android.view.contentcapture.ContentCaptureManager; import android.view.contentcapture.IContentCaptureManager; import android.view.displayhash.DisplayHashManager; import android.view.inputmethod.InputMethodManager; import android.view.selectiontoolbar.ISelectionToolbarManager; import android.view.selectiontoolbar.SelectionToolbarManager; import android.view.textclassifier.TextClassificationManager; import android.view.textservice.TextServicesManager; import android.view.translation.ITranslationManager; Loading Loading @@ -365,15 +363,6 @@ public final class SystemServiceRegistry { return new TextClassificationManager(ctx); }}); registerService(Context.SELECTION_TOOLBAR_SERVICE, SelectionToolbarManager.class, new CachedServiceFetcher<SelectionToolbarManager>() { @Override public SelectionToolbarManager createService(ContextImpl ctx) { IBinder b = ServiceManager.getService(Context.SELECTION_TOOLBAR_SERVICE); return new SelectionToolbarManager(ctx.getOuterContext(), ISelectionToolbarManager.Stub.asInterface(b)); }}); registerService(Context.FONT_SERVICE, FontManager.class, new CachedServiceFetcher<FontManager>() { @Override Loading core/java/android/app/admin/PasswordMetrics.java +21 −18 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import static com.android.internal.widget.PasswordValidationError.NOT_ENOUGH_SYM import static com.android.internal.widget.PasswordValidationError.NOT_ENOUGH_UPPER_CASE; import static com.android.internal.widget.PasswordValidationError.TOO_LONG; import static com.android.internal.widget.PasswordValidationError.TOO_SHORT; import static com.android.internal.widget.PasswordValidationError.TOO_SHORT_WHEN_ALL_NUMERIC; import static com.android.internal.widget.PasswordValidationError.WEAK_CREDENTIAL_TYPE; import android.annotation.IntDef; Loading Loading @@ -569,21 +570,15 @@ public final class PasswordMetrics implements Parcelable { result.add(new PasswordValidationError(TOO_LONG, MAX_PASSWORD_LENGTH)); } // A flag indicating whether the provided password already has non-numeric characters in // it or if the admin imposes the requirement of any non-numeric characters. final boolean hasOrWouldNeedNonNumeric = actualMetrics.nonNumeric > 0 || adminMetrics.nonNumeric > 0 || adminMetrics.letters > 0 || adminMetrics.lowerCase > 0 || adminMetrics.upperCase > 0 || adminMetrics.symbols > 0; final PasswordMetrics minMetrics = applyComplexity(adminMetrics, hasOrWouldNeedNonNumeric, bucket); final PasswordMetrics minMetrics = applyComplexity(adminMetrics, actualMetrics.credType == CREDENTIAL_TYPE_PIN, bucket); // Clamp required length between maximum and minimum valid values. minMetrics.length = Math.min(MAX_PASSWORD_LENGTH, Math.max(minMetrics.length, MIN_LOCK_PASSWORD_SIZE)); minMetrics.removeOverlapping(); comparePasswordMetrics(minMetrics, actualMetrics, result); comparePasswordMetrics(minMetrics, bucket, actualMetrics, result); return result; } Loading @@ -591,11 +586,23 @@ public final class PasswordMetrics implements Parcelable { /** * TODO: move to PasswordPolicy */ private static void comparePasswordMetrics(PasswordMetrics minMetrics, private static void comparePasswordMetrics(PasswordMetrics minMetrics, ComplexityBucket bucket, PasswordMetrics actualMetrics, ArrayList<PasswordValidationError> result) { if (actualMetrics.length < minMetrics.length) { result.add(new PasswordValidationError(TOO_SHORT, minMetrics.length)); } if (actualMetrics.nonNumeric == 0 && minMetrics.nonNumeric == 0 && minMetrics.letters == 0 && minMetrics.lowerCase == 0 && minMetrics.upperCase == 0 && minMetrics.symbols == 0) { // When provided password is all numeric and all numeric password is allowed. int allNumericMinimumLength = bucket.getMinimumLength(false); if (allNumericMinimumLength > minMetrics.length && allNumericMinimumLength > minMetrics.numeric && actualMetrics.length < allNumericMinimumLength) { result.add(new PasswordValidationError( TOO_SHORT_WHEN_ALL_NUMERIC, allNumericMinimumLength)); } } if (actualMetrics.letters < minMetrics.letters) { result.add(new PasswordValidationError(NOT_ENOUGH_LETTERS, minMetrics.letters)); } Loading Loading @@ -668,15 +675,12 @@ public final class PasswordMetrics implements Parcelable { * * TODO: move to PasswordPolicy */ public static PasswordMetrics applyComplexity( PasswordMetrics adminMetrics, boolean withNonNumericCharacters, public static PasswordMetrics applyComplexity(PasswordMetrics adminMetrics, boolean isPin, int complexity) { return applyComplexity(adminMetrics, withNonNumericCharacters, ComplexityBucket.forComplexity(complexity)); return applyComplexity(adminMetrics, isPin, ComplexityBucket.forComplexity(complexity)); } private static PasswordMetrics applyComplexity( PasswordMetrics adminMetrics, boolean withNonNumericCharacters, private static PasswordMetrics applyComplexity(PasswordMetrics adminMetrics, boolean isPin, ComplexityBucket bucket) { final PasswordMetrics minMetrics = new PasswordMetrics(adminMetrics); Loading @@ -684,8 +688,7 @@ public final class PasswordMetrics implements Parcelable { minMetrics.seqLength = Math.min(minMetrics.seqLength, MAX_ALLOWED_SEQUENCE); } minMetrics.length = Math.max(minMetrics.length, bucket.getMinimumLength(withNonNumericCharacters)); minMetrics.length = Math.max(minMetrics.length, bucket.getMinimumLength(!isPin)); return minMetrics; } Loading Loading
core/api/test-current.txt +0 −1 Original line number Diff line number Diff line Loading @@ -314,7 +314,6 @@ package android.app { public final class NotificationChannel implements android.os.Parcelable { method public int getOriginalImportance(); method public boolean isImportanceLockedByCriticalDeviceFunction(); method public boolean isImportanceLockedByOEM(); method public void lockFields(int); method public void setDeleted(boolean); method public void setDeletedTimeMs(long); Loading
core/java/Android.bp +8 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,14 @@ filegroup { "**/*.java", "**/*.aidl", ], exclude_srcs: [ // Remove election toolbar code from build time "android/service/selectiontoolbar/*.aidl", "android/service/selectiontoolbar/*.java", "android/view/selectiontoolbar/*.aidl", "android/view/selectiontoolbar/*.java", "com/android/internal/widget/floatingtoolbar/RemoteFloatingToolbarPopup.java", ], visibility: ["//frameworks/base"], } Loading
core/java/android/app/NotificationChannel.java +0 −8 Original line number Diff line number Diff line Loading @@ -863,14 +863,6 @@ public final class NotificationChannel implements Parcelable { mImportanceLockedDefaultApp = locked; } /** * @hide */ @TestApi public boolean isImportanceLockedByOEM() { return mImportanceLockedByOEM; } /** * @hide */ Loading
core/java/android/app/SystemServiceRegistry.java +0 −11 Original line number Diff line number Diff line Loading @@ -230,8 +230,6 @@ import android.view.contentcapture.ContentCaptureManager; import android.view.contentcapture.IContentCaptureManager; import android.view.displayhash.DisplayHashManager; import android.view.inputmethod.InputMethodManager; import android.view.selectiontoolbar.ISelectionToolbarManager; import android.view.selectiontoolbar.SelectionToolbarManager; import android.view.textclassifier.TextClassificationManager; import android.view.textservice.TextServicesManager; import android.view.translation.ITranslationManager; Loading Loading @@ -365,15 +363,6 @@ public final class SystemServiceRegistry { return new TextClassificationManager(ctx); }}); registerService(Context.SELECTION_TOOLBAR_SERVICE, SelectionToolbarManager.class, new CachedServiceFetcher<SelectionToolbarManager>() { @Override public SelectionToolbarManager createService(ContextImpl ctx) { IBinder b = ServiceManager.getService(Context.SELECTION_TOOLBAR_SERVICE); return new SelectionToolbarManager(ctx.getOuterContext(), ISelectionToolbarManager.Stub.asInterface(b)); }}); registerService(Context.FONT_SERVICE, FontManager.class, new CachedServiceFetcher<FontManager>() { @Override Loading
core/java/android/app/admin/PasswordMetrics.java +21 −18 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import static com.android.internal.widget.PasswordValidationError.NOT_ENOUGH_SYM import static com.android.internal.widget.PasswordValidationError.NOT_ENOUGH_UPPER_CASE; import static com.android.internal.widget.PasswordValidationError.TOO_LONG; import static com.android.internal.widget.PasswordValidationError.TOO_SHORT; import static com.android.internal.widget.PasswordValidationError.TOO_SHORT_WHEN_ALL_NUMERIC; import static com.android.internal.widget.PasswordValidationError.WEAK_CREDENTIAL_TYPE; import android.annotation.IntDef; Loading Loading @@ -569,21 +570,15 @@ public final class PasswordMetrics implements Parcelable { result.add(new PasswordValidationError(TOO_LONG, MAX_PASSWORD_LENGTH)); } // A flag indicating whether the provided password already has non-numeric characters in // it or if the admin imposes the requirement of any non-numeric characters. final boolean hasOrWouldNeedNonNumeric = actualMetrics.nonNumeric > 0 || adminMetrics.nonNumeric > 0 || adminMetrics.letters > 0 || adminMetrics.lowerCase > 0 || adminMetrics.upperCase > 0 || adminMetrics.symbols > 0; final PasswordMetrics minMetrics = applyComplexity(adminMetrics, hasOrWouldNeedNonNumeric, bucket); final PasswordMetrics minMetrics = applyComplexity(adminMetrics, actualMetrics.credType == CREDENTIAL_TYPE_PIN, bucket); // Clamp required length between maximum and minimum valid values. minMetrics.length = Math.min(MAX_PASSWORD_LENGTH, Math.max(minMetrics.length, MIN_LOCK_PASSWORD_SIZE)); minMetrics.removeOverlapping(); comparePasswordMetrics(minMetrics, actualMetrics, result); comparePasswordMetrics(minMetrics, bucket, actualMetrics, result); return result; } Loading @@ -591,11 +586,23 @@ public final class PasswordMetrics implements Parcelable { /** * TODO: move to PasswordPolicy */ private static void comparePasswordMetrics(PasswordMetrics minMetrics, private static void comparePasswordMetrics(PasswordMetrics minMetrics, ComplexityBucket bucket, PasswordMetrics actualMetrics, ArrayList<PasswordValidationError> result) { if (actualMetrics.length < minMetrics.length) { result.add(new PasswordValidationError(TOO_SHORT, minMetrics.length)); } if (actualMetrics.nonNumeric == 0 && minMetrics.nonNumeric == 0 && minMetrics.letters == 0 && minMetrics.lowerCase == 0 && minMetrics.upperCase == 0 && minMetrics.symbols == 0) { // When provided password is all numeric and all numeric password is allowed. int allNumericMinimumLength = bucket.getMinimumLength(false); if (allNumericMinimumLength > minMetrics.length && allNumericMinimumLength > minMetrics.numeric && actualMetrics.length < allNumericMinimumLength) { result.add(new PasswordValidationError( TOO_SHORT_WHEN_ALL_NUMERIC, allNumericMinimumLength)); } } if (actualMetrics.letters < minMetrics.letters) { result.add(new PasswordValidationError(NOT_ENOUGH_LETTERS, minMetrics.letters)); } Loading Loading @@ -668,15 +675,12 @@ public final class PasswordMetrics implements Parcelable { * * TODO: move to PasswordPolicy */ public static PasswordMetrics applyComplexity( PasswordMetrics adminMetrics, boolean withNonNumericCharacters, public static PasswordMetrics applyComplexity(PasswordMetrics adminMetrics, boolean isPin, int complexity) { return applyComplexity(adminMetrics, withNonNumericCharacters, ComplexityBucket.forComplexity(complexity)); return applyComplexity(adminMetrics, isPin, ComplexityBucket.forComplexity(complexity)); } private static PasswordMetrics applyComplexity( PasswordMetrics adminMetrics, boolean withNonNumericCharacters, private static PasswordMetrics applyComplexity(PasswordMetrics adminMetrics, boolean isPin, ComplexityBucket bucket) { final PasswordMetrics minMetrics = new PasswordMetrics(adminMetrics); Loading @@ -684,8 +688,7 @@ public final class PasswordMetrics implements Parcelable { minMetrics.seqLength = Math.min(minMetrics.seqLength, MAX_ALLOWED_SEQUENCE); } minMetrics.length = Math.max(minMetrics.length, bucket.getMinimumLength(withNonNumericCharacters)); minMetrics.length = Math.max(minMetrics.length, bucket.getMinimumLength(!isPin)); return minMetrics; } Loading