diff options
13 files changed, 77 insertions, 76 deletions
diff --git a/apct-tests/perftests/blobstore/src/com/android/perftests/blob/BlobStorePerfTests.java b/apct-tests/perftests/blobstore/src/com/android/perftests/blob/BlobStorePerfTests.java index 23f025b0a759..5a04ba303b66 100644 --- a/apct-tests/perftests/blobstore/src/com/android/perftests/blob/BlobStorePerfTests.java +++ b/apct-tests/perftests/blobstore/src/com/android/perftests/blob/BlobStorePerfTests.java @@ -27,7 +27,7 @@ import android.support.test.uiautomator.UiDevice; import androidx.test.filters.LargeTest; import androidx.test.platform.app.InstrumentationRegistry; -import com.android.utils.blob.DummyBlobData; +import com.android.utils.blob.FakeBlobData; import org.junit.After; import org.junit.Before; @@ -96,7 +96,7 @@ public class BlobStorePerfTests { mAtraceUtils.startTrace(ATRACE_CATEGORY_SYSTEM_SERVER); try { final List<Long> durations = new ArrayList<>(); - final DummyBlobData blobData = prepareDataBlob(fileSizeInMb); + final FakeBlobData blobData = prepareDataBlob(fileSizeInMb); final TraceMarkParser parser = new TraceMarkParser( line -> line.name.startsWith(ATRACE_COMPUTE_DIGEST_PREFIX)); while (mState.keepRunning(durations)) { @@ -120,15 +120,15 @@ public class BlobStorePerfTests { }); } - private DummyBlobData prepareDataBlob(int fileSizeInMb) throws Exception { - final DummyBlobData blobData = new DummyBlobData.Builder(mContext) + private FakeBlobData prepareDataBlob(int fileSizeInMb) throws Exception { + final FakeBlobData blobData = new FakeBlobData.Builder(mContext) .setFileSize(fileSizeInMb * 1024 * 1024 /* bytes */) .build(); blobData.prepare(); return blobData; } - private void commitBlob(DummyBlobData blobData) throws Exception { + private void commitBlob(FakeBlobData blobData) throws Exception { final long sessionId = mBlobStoreManager.createSession(blobData.getBlobHandle()); try (BlobStoreManager.Session session = mBlobStoreManager.openSession(sessionId)) { blobData.writeToSession(session); diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java index 06c469a5cc82..4db4adc2178f 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java @@ -1193,7 +1193,7 @@ public class JobSchedulerService extends com.android.server.SystemService private void cancelJobsForNonExistentUsers() { UserManagerInternal umi = LocalServices.getService(UserManagerInternal.class); synchronized (mLock) { - mJobs.removeJobsOfNonUsers(umi.getUserIds()); + mJobs.removeJobsOfUnlistedUsers(umi.getUserIds()); } } diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobStore.java b/apex/jobscheduler/service/java/com/android/server/job/JobStore.java index 7bd51b77a119..eaf8f4d96331 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobStore.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobStore.java @@ -254,11 +254,11 @@ public final class JobStore { } /** - * Remove the jobs of users not specified in the whitelist. - * @param whitelist Array of User IDs whose jobs are not to be removed. + * Remove the jobs of users not specified in the keepUserIds. + * @param keepUserIds Array of User IDs whose jobs should be kept and not removed. */ - public void removeJobsOfNonUsers(int[] whitelist) { - mJobSet.removeJobsOfNonUsers(whitelist); + public void removeJobsOfUnlistedUsers(int[] keepUserIds) { + mJobSet.removeJobsOfUnlistedUsers(keepUserIds); } @VisibleForTesting @@ -1151,15 +1151,14 @@ public final class JobStore { } /** - * Removes the jobs of all users not specified by the whitelist of user ids. - * This will remove jobs scheduled *by* non-existent users as well as jobs scheduled *for* - * non-existent users + * Removes the jobs of all users not specified by the keepUserIds of user ids. + * This will remove jobs scheduled *by* and *for* any unlisted users. */ - public void removeJobsOfNonUsers(final int[] whitelist) { + public void removeJobsOfUnlistedUsers(final int[] keepUserIds) { final Predicate<JobStatus> noSourceUser = - job -> !ArrayUtils.contains(whitelist, job.getSourceUserId()); + job -> !ArrayUtils.contains(keepUserIds, job.getSourceUserId()); final Predicate<JobStatus> noCallingUser = - job -> !ArrayUtils.contains(whitelist, job.getUserId()); + job -> !ArrayUtils.contains(keepUserIds, job.getUserId()); removeAll(noSourceUser.or(noCallingUser)); } diff --git a/core/jni/android_hardware_input_InputApplicationHandle.cpp b/core/jni/android_hardware_input_InputApplicationHandle.cpp index 350f35828418..9137ee0227ff 100644 --- a/core/jni/android_hardware_input_InputApplicationHandle.cpp +++ b/core/jni/android_hardware_input_InputApplicationHandle.cpp @@ -61,8 +61,8 @@ bool NativeInputApplicationHandle::updateInfo() { mInfo.name = getStringField(env, obj, gInputApplicationHandleClassInfo.name, "<null>"); - mInfo.dispatchingTimeout = decltype(mInfo.dispatchingTimeout)( - env->GetLongField(obj, gInputApplicationHandleClassInfo.dispatchingTimeoutNanos)); + mInfo.dispatchingTimeoutNanos = + env->GetLongField(obj, gInputApplicationHandleClassInfo.dispatchingTimeoutNanos); jobject tokenObj = env->GetObjectField(obj, gInputApplicationHandleClassInfo.token); diff --git a/packages/SettingsLib/res/values-be/strings.xml b/packages/SettingsLib/res/values-be/strings.xml index 1b5062efa23e..01d7682416fa 100644 --- a/packages/SettingsLib/res/values-be/strings.xml +++ b/packages/SettingsLib/res/values-be/strings.xml @@ -42,10 +42,10 @@ <string name="connected_via_app" msgid="3532267661404276584">"Падключана праз праграму \"<xliff:g id="NAME">%1$s</xliff:g>\""</string> <string name="available_via_passpoint" msgid="1716000261192603682">"Даступна праз %1$s"</string> <string name="tap_to_sign_up" msgid="5356397741063740395">"Націсніце, каб зарэгістравацца"</string> - <string name="wifi_connected_no_internet" msgid="5087420713443350646">"Не падключана да інтэрнэту"</string> + <string name="wifi_connected_no_internet" msgid="5087420713443350646">"Няма падключэння да інтэрнэту"</string> <string name="private_dns_broken" msgid="1984159464346556931">"Не ўдалося атрымаць доступ да прыватнага DNS-сервера"</string> <string name="wifi_limited_connection" msgid="1184778285475204682">"Абмежаваныя магчымасці падключэння"</string> - <string name="wifi_status_no_internet" msgid="3799933875988829048">"Не падключана да інтэрнэту"</string> + <string name="wifi_status_no_internet" msgid="3799933875988829048">"Няма падключэння да інтэрнэту"</string> <string name="wifi_status_sign_in_required" msgid="2236267500459526855">"Трэба выканаць уваход"</string> <string name="wifi_ap_unable_to_handle_new_sta" msgid="5885145407184194503">"Пункт доступу часова заняты"</string> <string name="connected_via_carrier" msgid="1968057009076191514">"Падключана праз %1$s"</string> diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java index 303a0831b52f..0e76c904f8cd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BiometricUnlockController.java @@ -152,6 +152,7 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp private final Context mContext; private final int mWakeUpDelay; private int mMode; + private BiometricSourceType mBiometricType; private KeyguardViewController mKeyguardViewController; private DozeScrimController mDozeScrimController; private KeyguardViewMediator mKeyguardViewMediator; @@ -340,6 +341,7 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp Trace.endSection(); return; } + mBiometricType = biometricSourceType; mMetricsLogger.write(new LogMaker(MetricsEvent.BIOMETRIC_AUTH) .setType(MetricsEvent.TYPE_SUCCESS).setSubtype(toSubtype(biometricSourceType))); Optional.ofNullable(BiometricUiEvent.SUCCESS_EVENT_BY_SOURCE_TYPE.get(biometricSourceType)) @@ -615,6 +617,7 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp private void resetMode() { mMode = MODE_NONE; + mBiometricType = null; mNotificationShadeWindowController.setForceDozeBrightness(false); if (mStatusBar.getNavigationBarView() != null) { mStatusBar.getNavigationBarView().setWakeAndUnlocking(false); @@ -680,8 +683,8 @@ public class BiometricUnlockController extends KeyguardUpdateMonitorCallback imp /** * Successful authentication with fingerprint, face, or iris when the lockscreen fades away */ - public boolean isUnlockFading() { - return mMode == MODE_UNLOCK_FADING; + public BiometricSourceType getBiometricType() { + return mBiometricType; } /** diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java index 141bdc242861..1dc0f070835b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenLockIconController.java @@ -83,6 +83,7 @@ public class LockscreenLockIconController { private boolean mWakeAndUnlockRunning; private boolean mShowingLaunchAffordance; private boolean mBouncerShowingScrimmed; + private boolean mFingerprintUnlock; private int mStatusBarState = StatusBarState.SHADE; private LockIcon mLockIcon; @@ -377,14 +378,19 @@ public class LockscreenLockIconController { /** * We need to hide the lock whenever there's a fingerprint unlock, otherwise you'll see the * icon on top of the black front scrim. + * We also want to halt padlock the animation when we're in face bypass mode or dismissing the + * keyguard with fingerprint. * @param wakeAndUnlock are we wake and unlocking * @param isUnlock are we currently unlocking */ - public void onBiometricAuthModeChanged(boolean wakeAndUnlock, boolean isUnlock) { + public void onBiometricAuthModeChanged(boolean wakeAndUnlock, boolean isUnlock, + BiometricSourceType type) { if (wakeAndUnlock) { mWakeAndUnlockRunning = true; } - if (isUnlock && mKeyguardBypassController.getBypassEnabled() && canBlockUpdates()) { + mFingerprintUnlock = type == BiometricSourceType.FINGERPRINT; + if (isUnlock && (mFingerprintUnlock || mKeyguardBypassController.getBypassEnabled()) + && canBlockUpdates()) { // We don't want the icon to change while we are unlocking mBlockUpdates = true; } @@ -498,10 +504,13 @@ public class LockscreenLockIconController { private boolean updateIconVisibility() { boolean onAodOrDocked = mStatusBarStateController.isDozing() && mDocked; boolean invisible = onAodOrDocked || mWakeAndUnlockRunning || mShowingLaunchAffordance; - if (mKeyguardBypassController.getBypassEnabled() && !mBouncerShowingScrimmed) { + boolean fingerprintOrBypass = mFingerprintUnlock + || mKeyguardBypassController.getBypassEnabled(); + if (fingerprintOrBypass && !mBouncerShowingScrimmed) { if ((mHeadsUpManagerPhone.isHeadsUpGoingAway() || mHeadsUpManagerPhone.hasPinnedHeadsUp() - || mStatusBarState == StatusBarState.KEYGUARD) + || mStatusBarState == StatusBarState.KEYGUARD + || mStatusBarState == StatusBarState.SHADE) && !mNotificationWakeUpCoordinator.getNotificationsFullyHidden()) { invisible = true; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index c5571e8ceb20..eb626280b494 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -3975,7 +3975,8 @@ public class StatusBar extends SystemUI implements DemoMode, updateScrimController(); mLockscreenLockIconController.onBiometricAuthModeChanged( mBiometricUnlockController.isWakeAndUnlock(), - mBiometricUnlockController.isBiometricUnlock()); + mBiometricUnlockController.isBiometricUnlock(), + mBiometricUnlockController.getBiometricType()); } @VisibleForTesting diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java index a927c8011b8f..64907eef2dd0 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/BiometricsUnlockControllerTest.java @@ -136,6 +136,8 @@ public class BiometricsUnlockControllerTest extends SysuiTestCase { anyFloat()); assertThat(mBiometricUnlockController.getMode()) .isEqualTo(BiometricUnlockController.MODE_SHOW_BOUNCER); + assertThat(mBiometricUnlockController.getBiometricType()) + .isEqualTo(BiometricSourceType.FINGERPRINT); } @Test @@ -268,6 +270,8 @@ public class BiometricsUnlockControllerTest extends SysuiTestCase { verify(mStatusBarKeyguardViewManager).notifyKeyguardAuthenticated(eq(false)); assertThat(mBiometricUnlockController.getMode()) .isEqualTo(BiometricUnlockController.MODE_DISMISS_BOUNCER); + assertThat(mBiometricUnlockController.getBiometricType()) + .isEqualTo(BiometricSourceType.FACE); } @Test diff --git a/services/core/jni/stats/PowerStatsPuller.cpp b/services/core/jni/stats/PowerStatsPuller.cpp index d8f6faac0ffb..7f788c226c7b 100644 --- a/services/core/jni/stats/PowerStatsPuller.cpp +++ b/services/core/jni/stats/PowerStatsPuller.cpp @@ -135,16 +135,11 @@ AStatsManager_PullAtomCallbackReturn PowerStatsPuller::Pull(int32_t atomTag, } const RailInfo& rail = gRailInfo[energyData.index]; - AStatsEvent* event = - AStatsEventList_addStatsEvent(data); - AStatsEvent_setAtomId( - event, - android::util::ON_DEVICE_POWER_MEASUREMENT); - AStatsEvent_writeString(event, rail.subsysName.c_str()); - AStatsEvent_writeString(event, rail.railName.c_str()); - AStatsEvent_writeInt64(event, energyData.timestamp); - AStatsEvent_writeInt64(event, energyData.energy); - AStatsEvent_build(event); + android::util::addAStatsEvent( + data, + android::util::ON_DEVICE_POWER_MEASUREMENT, + rail.subsysName.c_str(), rail.railName.c_str(), + energyData.timestamp, energyData.energy); ALOGV("power.stat: %s.%s: %llu, %llu", rail.subsysName.c_str(), rail.railName.c_str(), diff --git a/services/core/jni/stats/SubsystemSleepStatePuller.cpp b/services/core/jni/stats/SubsystemSleepStatePuller.cpp index 45afb5eb7aa9..1ba98ef8dab7 100644 --- a/services/core/jni/stats/SubsystemSleepStatePuller.cpp +++ b/services/core/jni/stats/SubsystemSleepStatePuller.cpp @@ -194,17 +194,13 @@ static AStatsManager_PullAtomCallbackReturn getIPowerStatsDataLocked(int32_t ato } for (auto result : results) { for (auto stateResidency : result.stateResidencyData) { - AStatsEvent* event = AStatsEventList_addStatsEvent(data); - AStatsEvent_setAtomId(event, android::util::SUBSYSTEM_SLEEP_STATE); - AStatsEvent_writeString(event, - gEntityNames.at(result.powerEntityId).c_str()); - AStatsEvent_writeString(event, - gStateNames.at(result.powerEntityId) - .at(stateResidency.powerEntityStateId) - .c_str()); - AStatsEvent_writeInt64(event, stateResidency.totalStateEntryCount); - AStatsEvent_writeInt64(event, stateResidency.totalTimeInStateMs); - AStatsEvent_build(event); + android::util::addAStatsEvent(data, android::util::SUBSYSTEM_SLEEP_STATE, + gEntityNames.at(result.powerEntityId).c_str(), + gStateNames.at(result.powerEntityId) + .at(stateResidency.powerEntityStateId) + .c_str(), + stateResidency.totalStateEntryCount, + stateResidency.totalTimeInStateMs); } } success = true; @@ -259,26 +255,21 @@ static AStatsManager_PullAtomCallbackReturn getIPowerDataLocked(int32_t atomTag, for (size_t i = 0; i < states.size(); i++) { const PowerStatePlatformSleepState& state = states[i]; - AStatsEvent* event = AStatsEventList_addStatsEvent(data); - AStatsEvent_setAtomId(event, android::util::SUBSYSTEM_SLEEP_STATE); - AStatsEvent_writeString(event, state.name.c_str()); - AStatsEvent_writeString(event, ""); - AStatsEvent_writeInt64(event, state.totalTransitions); - AStatsEvent_writeInt64(event, state.residencyInMsecSinceBoot); - AStatsEvent_build(event); + android::util::addAStatsEvent(data, android::util::SUBSYSTEM_SLEEP_STATE, + state.name.c_str(), "", + state.totalTransitions, + state.residencyInMsecSinceBoot); ALOGV("powerstate: %s, %lld, %lld, %d", state.name.c_str(), (long long)state.residencyInMsecSinceBoot, (long long)state.totalTransitions, state.supportedOnlyInSuspend ? 1 : 0); for (const auto& voter : state.voters) { - AStatsEvent* event = AStatsEventList_addStatsEvent(data); - AStatsEvent_setAtomId(event, android::util::SUBSYSTEM_SLEEP_STATE); - AStatsEvent_writeString(event, state.name.c_str()); - AStatsEvent_writeString(event, voter.name.c_str()); - AStatsEvent_writeInt64(event, voter.totalNumberOfTimesVotedSinceBoot); - AStatsEvent_writeInt64(event, voter.totalTimeInMsecVotedForSinceBoot); - AStatsEvent_build(event); + android::util::addAStatsEvent(data, + android::util::SUBSYSTEM_SLEEP_STATE, + state.name.c_str(), voter.name.c_str(), + voter.totalNumberOfTimesVotedSinceBoot, + voter.totalTimeInMsecVotedForSinceBoot); ALOGV("powerstatevoter: %s, %s, %lld, %lld", state.name.c_str(), voter.name.c_str(), @@ -305,14 +296,13 @@ static AStatsManager_PullAtomCallbackReturn getIPowerDataLocked(int32_t atomTag, for (size_t j = 0; j < subsystem.states.size(); j++) { const PowerStateSubsystemSleepState& state = subsystem.states[j]; - AStatsEvent* event = AStatsEventList_addStatsEvent(data); - AStatsEvent_setAtomId(event, - android::util::SUBSYSTEM_SLEEP_STATE); - AStatsEvent_writeString(event, subsystem.name.c_str()); - AStatsEvent_writeString(event, state.name.c_str()); - AStatsEvent_writeInt64(event, state.totalTransitions); - AStatsEvent_writeInt64(event, state.residencyInMsecSinceBoot); - AStatsEvent_build(event); + android::util:: + addAStatsEvent(data, + android::util::SUBSYSTEM_SLEEP_STATE, + subsystem.name.c_str(), + state.name.c_str(), + state.totalTransitions, + state.residencyInMsecSinceBoot); ALOGV("subsystemstate: %s, %s, %lld, %lld, %lld", subsystem.name.c_str(), state.name.c_str(), diff --git a/services/tests/servicestests/src/com/android/server/job/JobSetTest.java b/services/tests/servicestests/src/com/android/server/job/JobSetTest.java index 6b7634db8a60..62cc111e4dae 100644 --- a/services/tests/servicestests/src/com/android/server/job/JobSetTest.java +++ b/services/tests/servicestests/src/com/android/server/job/JobSetTest.java @@ -97,9 +97,9 @@ public class JobSetTest { mJobSet.remove(testJob1); mJobSet.remove(testJob2); assertHaveSameJobs(mJobSet.mJobsPerSourceUid, mJobSet.mJobs); - mJobSet.removeJobsOfNonUsers(new int[] {mContext.getUserId(), SECONDARY_USER_ID_1}); + mJobSet.removeJobsOfUnlistedUsers(new int[] {mContext.getUserId(), SECONDARY_USER_ID_1}); assertHaveSameJobs(mJobSet.mJobsPerSourceUid, mJobSet.mJobs); - mJobSet.removeJobsOfNonUsers(new int[] {mContext.getUserId()}); + mJobSet.removeJobsOfUnlistedUsers(new int[] {mContext.getUserId()}); assertTrue("mJobs should be empty", mJobSet.mJobs.size() == 0); assertTrue("mJobsPerSourceUid should be empty", mJobSet.mJobsPerSourceUid.size() == 0); } diff --git a/tests/BlobStoreTestUtils/src/com/android/utils/blob/DummyBlobData.java b/tests/BlobStoreTestUtils/src/com/android/utils/blob/FakeBlobData.java index 2df0024bdea9..56db4f98e160 100644 --- a/tests/BlobStoreTestUtils/src/com/android/utils/blob/DummyBlobData.java +++ b/tests/BlobStoreTestUtils/src/com/android/utils/blob/FakeBlobData.java @@ -35,7 +35,7 @@ import java.security.MessageDigest; import java.util.Random; import java.util.concurrent.TimeUnit; -public class DummyBlobData { +public class FakeBlobData { private static final long DEFAULT_SIZE_BYTES = 10 * 1024L * 1024L; private final Random mRandom; @@ -47,7 +47,7 @@ public class DummyBlobData { byte[] mFileDigest; long mExpiryTimeMs; - private DummyBlobData(Builder builder) { + private FakeBlobData(Builder builder) { mRandom = new Random(builder.getRandomSeed()); mFile = new File(builder.getContext().getFilesDir(), builder.getFileName()); mFileSize = builder.getFileSize(); @@ -116,8 +116,8 @@ public class DummyBlobData { return mExpiryDurationMs; } - public DummyBlobData build() { - return new DummyBlobData(this); + public FakeBlobData build() { + return new FakeBlobData(this); } } |