Loading core/java/com/android/internal/widget/LockSettingsInternal.java +2 −2 Original line number Diff line number Diff line Loading @@ -171,11 +171,11 @@ public abstract class LockSettingsInternal { * Register a LockSettingsStateListener * @param listener The listener to be registered */ public abstract void registerLockSettingsStateListener(ILockSettingsStateListener listener); public abstract void registerLockSettingsStateListener(LockSettingsStateListener listener); /** * Unregister a LockSettingsStateListener * @param listener The listener to be unregistered */ public abstract void unregisterLockSettingsStateListener(ILockSettingsStateListener listener); public abstract void unregisterLockSettingsStateListener(LockSettingsStateListener listener); } core/java/com/android/internal/widget/ILockSettingsStateListener.aidl→core/java/com/android/internal/widget/LockSettingsStateListener.java +3 −3 Original line number Diff line number Diff line Loading @@ -21,7 +21,7 @@ package com.android.internal.widget; * state of primary authentication (i.e. PIN/pattern/password). * @hide */ oneway interface ILockSettingsStateListener { public interface LockSettingsStateListener { /** * Defines behavior in response to a successful authentication * @param userId The user Id for the requested authentication Loading services/core/java/com/android/server/locksettings/LockSettingsService.java +14 −27 Original line number Diff line number Diff line Loading @@ -91,7 +91,6 @@ import android.os.Handler; import android.os.IBinder; import android.os.IProgressListener; import android.os.Process; import android.os.RemoteCallbackList; import android.os.RemoteException; import android.os.ResultReceiver; import android.os.ServiceManager; Loading Loading @@ -137,11 +136,11 @@ import com.android.internal.util.IndentingPrintWriter; import com.android.internal.util.Preconditions; import com.android.internal.widget.ICheckCredentialProgressCallback; import com.android.internal.widget.ILockSettings; import com.android.internal.widget.ILockSettingsStateListener; import com.android.internal.widget.IWeakEscrowTokenActivatedListener; import com.android.internal.widget.IWeakEscrowTokenRemovedListener; import com.android.internal.widget.LockPatternUtils; import com.android.internal.widget.LockSettingsInternal; import com.android.internal.widget.LockSettingsStateListener; import com.android.internal.widget.LockscreenCredential; import com.android.internal.widget.RebootEscrowListener; import com.android.internal.widget.VerifyCredentialResponse; Loading Loading @@ -183,6 +182,7 @@ import java.util.NoSuchElementException; import java.util.Objects; import java.util.Set; import java.util.StringJoiner; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; Loading Loading @@ -330,8 +330,8 @@ public class LockSettingsService extends ILockSettings.Stub { private HashMap<UserHandle, UserManager> mUserManagerCache = new HashMap<>(); private final RemoteCallbackList<ILockSettingsStateListener> mLockSettingsStateListeners = new RemoteCallbackList<>(); private final CopyOnWriteArrayList<LockSettingsStateListener> mLockSettingsStateListeners = new CopyOnWriteArrayList<>(); // This class manages life cycle events for encrypted users on File Based Encryption (FBE) // devices. The most basic of these is to show/hide notifications about missing features until Loading Loading @@ -2357,25 +2357,12 @@ public class LockSettingsService extends ILockSettings.Stub { } private void notifyLockSettingsStateListeners(boolean success, int userId) { int i = mLockSettingsStateListeners.beginBroadcast(); try { while (i > 0) { i--; try { for (LockSettingsStateListener listener : mLockSettingsStateListeners) { if (success) { mLockSettingsStateListeners.getBroadcastItem(i) .onAuthenticationSucceeded(userId); listener.onAuthenticationSucceeded(userId); } else { mLockSettingsStateListeners.getBroadcastItem(i) .onAuthenticationFailed(userId); } } catch (RemoteException e) { Slog.e(TAG, "Exception while notifying LockSettingsStateListener:" + " success = " + success + ", userId = " + userId, e); } listener.onAuthenticationFailed(userId); } } finally { mLockSettingsStateListeners.finishBroadcast(); } } Loading Loading @@ -3698,15 +3685,15 @@ public class LockSettingsService extends ILockSettings.Stub { } @Override public void registerLockSettingsStateListener( @NonNull ILockSettingsStateListener listener) { mLockSettingsStateListeners.register(listener); public void registerLockSettingsStateListener(@NonNull LockSettingsStateListener listener) { Objects.requireNonNull(listener, "listener cannot be null"); mLockSettingsStateListeners.add(listener); } @Override public void unregisterLockSettingsStateListener( @NonNull ILockSettingsStateListener listener) { mLockSettingsStateListeners.unregister(listener); @NonNull LockSettingsStateListener listener) { mLockSettingsStateListeners.remove(listener); } } Loading services/tests/servicestests/src/com/android/server/locksettings/LockSettingsServiceTests.java +4 −13 Original line number Diff line number Diff line Loading @@ -39,7 +39,6 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.PropertyInvalidatedCache; import android.os.IBinder; import android.os.RemoteException; import android.platform.test.annotations.Presubmit; import android.platform.test.flag.junit.SetFlagsRule; Loading @@ -49,8 +48,8 @@ import android.text.TextUtils; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import com.android.internal.widget.ILockSettingsStateListener; import com.android.internal.widget.LockPatternUtils; import com.android.internal.widget.LockSettingsStateListener; import com.android.internal.widget.LockscreenCredential; import com.android.internal.widget.VerifyCredentialResponse; Loading Loading @@ -412,7 +411,7 @@ public class LockSettingsServiceTests extends BaseLockSettingsServiceTests { mSetFlagsRule.enableFlags(FLAG_REPORT_PRIMARY_AUTH_ATTEMPTS); final LockscreenCredential password = newPassword("password"); setCredential(PRIMARY_USER_ID, password); final ILockSettingsStateListener listener = mockLockSettingsStateListener(); final LockSettingsStateListener listener = mock(LockSettingsStateListener.class); mLocalService.registerLockSettingsStateListener(listener); assertEquals(VerifyCredentialResponse.RESPONSE_OK, Loading @@ -429,7 +428,7 @@ public class LockSettingsServiceTests extends BaseLockSettingsServiceTests { final LockscreenCredential password = newPassword("password"); setCredential(PRIMARY_USER_ID, password); final LockscreenCredential badPassword = newPassword("badPassword"); final ILockSettingsStateListener listener = mockLockSettingsStateListener(); final LockSettingsStateListener listener = mock(LockSettingsStateListener.class); mLocalService.registerLockSettingsStateListener(listener); assertEquals(VerifyCredentialResponse.RESPONSE_ERROR, Loading @@ -445,7 +444,7 @@ public class LockSettingsServiceTests extends BaseLockSettingsServiceTests { final LockscreenCredential password = newPassword("password"); setCredential(PRIMARY_USER_ID, password); final LockscreenCredential badPassword = newPassword("badPassword"); final ILockSettingsStateListener listener = mockLockSettingsStateListener(); final LockSettingsStateListener listener = mock(LockSettingsStateListener.class); mLocalService.registerLockSettingsStateListener(listener); assertEquals(VerifyCredentialResponse.RESPONSE_OK, Loading Loading @@ -599,12 +598,4 @@ public class LockSettingsServiceTests extends BaseLockSettingsServiceTests { assertNotEquals(0, mGateKeeperService.getSecureUserId(userId)); } } private ILockSettingsStateListener mockLockSettingsStateListener() { ILockSettingsStateListener listener = mock(ILockSettingsStateListener.Stub.class); IBinder binder = mock(IBinder.class); when(binder.isBinderAlive()).thenReturn(true); when(listener.asBinder()).thenReturn(binder); return listener; } } Loading
core/java/com/android/internal/widget/LockSettingsInternal.java +2 −2 Original line number Diff line number Diff line Loading @@ -171,11 +171,11 @@ public abstract class LockSettingsInternal { * Register a LockSettingsStateListener * @param listener The listener to be registered */ public abstract void registerLockSettingsStateListener(ILockSettingsStateListener listener); public abstract void registerLockSettingsStateListener(LockSettingsStateListener listener); /** * Unregister a LockSettingsStateListener * @param listener The listener to be unregistered */ public abstract void unregisterLockSettingsStateListener(ILockSettingsStateListener listener); public abstract void unregisterLockSettingsStateListener(LockSettingsStateListener listener); }
core/java/com/android/internal/widget/ILockSettingsStateListener.aidl→core/java/com/android/internal/widget/LockSettingsStateListener.java +3 −3 Original line number Diff line number Diff line Loading @@ -21,7 +21,7 @@ package com.android.internal.widget; * state of primary authentication (i.e. PIN/pattern/password). * @hide */ oneway interface ILockSettingsStateListener { public interface LockSettingsStateListener { /** * Defines behavior in response to a successful authentication * @param userId The user Id for the requested authentication Loading
services/core/java/com/android/server/locksettings/LockSettingsService.java +14 −27 Original line number Diff line number Diff line Loading @@ -91,7 +91,6 @@ import android.os.Handler; import android.os.IBinder; import android.os.IProgressListener; import android.os.Process; import android.os.RemoteCallbackList; import android.os.RemoteException; import android.os.ResultReceiver; import android.os.ServiceManager; Loading Loading @@ -137,11 +136,11 @@ import com.android.internal.util.IndentingPrintWriter; import com.android.internal.util.Preconditions; import com.android.internal.widget.ICheckCredentialProgressCallback; import com.android.internal.widget.ILockSettings; import com.android.internal.widget.ILockSettingsStateListener; import com.android.internal.widget.IWeakEscrowTokenActivatedListener; import com.android.internal.widget.IWeakEscrowTokenRemovedListener; import com.android.internal.widget.LockPatternUtils; import com.android.internal.widget.LockSettingsInternal; import com.android.internal.widget.LockSettingsStateListener; import com.android.internal.widget.LockscreenCredential; import com.android.internal.widget.RebootEscrowListener; import com.android.internal.widget.VerifyCredentialResponse; Loading Loading @@ -183,6 +182,7 @@ import java.util.NoSuchElementException; import java.util.Objects; import java.util.Set; import java.util.StringJoiner; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; Loading Loading @@ -330,8 +330,8 @@ public class LockSettingsService extends ILockSettings.Stub { private HashMap<UserHandle, UserManager> mUserManagerCache = new HashMap<>(); private final RemoteCallbackList<ILockSettingsStateListener> mLockSettingsStateListeners = new RemoteCallbackList<>(); private final CopyOnWriteArrayList<LockSettingsStateListener> mLockSettingsStateListeners = new CopyOnWriteArrayList<>(); // This class manages life cycle events for encrypted users on File Based Encryption (FBE) // devices. The most basic of these is to show/hide notifications about missing features until Loading Loading @@ -2357,25 +2357,12 @@ public class LockSettingsService extends ILockSettings.Stub { } private void notifyLockSettingsStateListeners(boolean success, int userId) { int i = mLockSettingsStateListeners.beginBroadcast(); try { while (i > 0) { i--; try { for (LockSettingsStateListener listener : mLockSettingsStateListeners) { if (success) { mLockSettingsStateListeners.getBroadcastItem(i) .onAuthenticationSucceeded(userId); listener.onAuthenticationSucceeded(userId); } else { mLockSettingsStateListeners.getBroadcastItem(i) .onAuthenticationFailed(userId); } } catch (RemoteException e) { Slog.e(TAG, "Exception while notifying LockSettingsStateListener:" + " success = " + success + ", userId = " + userId, e); } listener.onAuthenticationFailed(userId); } } finally { mLockSettingsStateListeners.finishBroadcast(); } } Loading Loading @@ -3698,15 +3685,15 @@ public class LockSettingsService extends ILockSettings.Stub { } @Override public void registerLockSettingsStateListener( @NonNull ILockSettingsStateListener listener) { mLockSettingsStateListeners.register(listener); public void registerLockSettingsStateListener(@NonNull LockSettingsStateListener listener) { Objects.requireNonNull(listener, "listener cannot be null"); mLockSettingsStateListeners.add(listener); } @Override public void unregisterLockSettingsStateListener( @NonNull ILockSettingsStateListener listener) { mLockSettingsStateListeners.unregister(listener); @NonNull LockSettingsStateListener listener) { mLockSettingsStateListeners.remove(listener); } } Loading
services/tests/servicestests/src/com/android/server/locksettings/LockSettingsServiceTests.java +4 −13 Original line number Diff line number Diff line Loading @@ -39,7 +39,6 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.PropertyInvalidatedCache; import android.os.IBinder; import android.os.RemoteException; import android.platform.test.annotations.Presubmit; import android.platform.test.flag.junit.SetFlagsRule; Loading @@ -49,8 +48,8 @@ import android.text.TextUtils; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import com.android.internal.widget.ILockSettingsStateListener; import com.android.internal.widget.LockPatternUtils; import com.android.internal.widget.LockSettingsStateListener; import com.android.internal.widget.LockscreenCredential; import com.android.internal.widget.VerifyCredentialResponse; Loading Loading @@ -412,7 +411,7 @@ public class LockSettingsServiceTests extends BaseLockSettingsServiceTests { mSetFlagsRule.enableFlags(FLAG_REPORT_PRIMARY_AUTH_ATTEMPTS); final LockscreenCredential password = newPassword("password"); setCredential(PRIMARY_USER_ID, password); final ILockSettingsStateListener listener = mockLockSettingsStateListener(); final LockSettingsStateListener listener = mock(LockSettingsStateListener.class); mLocalService.registerLockSettingsStateListener(listener); assertEquals(VerifyCredentialResponse.RESPONSE_OK, Loading @@ -429,7 +428,7 @@ public class LockSettingsServiceTests extends BaseLockSettingsServiceTests { final LockscreenCredential password = newPassword("password"); setCredential(PRIMARY_USER_ID, password); final LockscreenCredential badPassword = newPassword("badPassword"); final ILockSettingsStateListener listener = mockLockSettingsStateListener(); final LockSettingsStateListener listener = mock(LockSettingsStateListener.class); mLocalService.registerLockSettingsStateListener(listener); assertEquals(VerifyCredentialResponse.RESPONSE_ERROR, Loading @@ -445,7 +444,7 @@ public class LockSettingsServiceTests extends BaseLockSettingsServiceTests { final LockscreenCredential password = newPassword("password"); setCredential(PRIMARY_USER_ID, password); final LockscreenCredential badPassword = newPassword("badPassword"); final ILockSettingsStateListener listener = mockLockSettingsStateListener(); final LockSettingsStateListener listener = mock(LockSettingsStateListener.class); mLocalService.registerLockSettingsStateListener(listener); assertEquals(VerifyCredentialResponse.RESPONSE_OK, Loading Loading @@ -599,12 +598,4 @@ public class LockSettingsServiceTests extends BaseLockSettingsServiceTests { assertNotEquals(0, mGateKeeperService.getSecureUserId(userId)); } } private ILockSettingsStateListener mockLockSettingsStateListener() { ILockSettingsStateListener listener = mock(ILockSettingsStateListener.Stub.class); IBinder binder = mock(IBinder.class); when(binder.isBinderAlive()).thenReturn(true); when(listener.asBinder()).thenReturn(binder); return listener; } }