diff --git a/src/com/android/settings/applications/appinfo/AppStoragePreferenceController.java b/src/com/android/settings/applications/appinfo/AppStoragePreferenceController.java index d887634a540..b0d49390cd0 100644 --- a/src/com/android/settings/applications/appinfo/AppStoragePreferenceController.java +++ b/src/com/android/settings/applications/appinfo/AppStoragePreferenceController.java @@ -31,6 +31,7 @@ import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.applications.AppStorageSettings; import com.android.settings.applications.FetchPackageStorageAsyncLoader; +import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.applications.StorageStatsSource; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; @@ -48,9 +49,12 @@ public class AppStoragePreferenceController extends AppInfoPreferenceControllerB @Override public void updateState(Preference preference) { - final boolean isExternal = - (mParent.getAppEntry().info.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0; - preference.setSummary(getStorageSummary(mLastResult, isExternal)); + final ApplicationsState.AppEntry entry = mParent.getAppEntry(); + if (entry != null && entry.info != null) { + final boolean isExternal = + (entry.info.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0; + preference.setSummary(getStorageSummary(mLastResult, isExternal)); + } } @Override diff --git a/src/com/android/settings/biometrics/face/FaceEnrollEducation.java b/src/com/android/settings/biometrics/face/FaceEnrollEducation.java index 99d96dd6d06..011cc12ae7a 100644 --- a/src/com/android/settings/biometrics/face/FaceEnrollEducation.java +++ b/src/com/android/settings/biometrics/face/FaceEnrollEducation.java @@ -134,7 +134,10 @@ public class FaceEnrollEducation extends BiometricEnrollBase { final AccessibilityManager accessibilityManager = getApplicationContext().getSystemService( AccessibilityManager.class); if (accessibilityManager != null) { - accessibilityEnabled = accessibilityManager.isEnabled(); + // Add additional check for touch exploration. This prevents other accessibility + // features such as Live Transcribe from defaulting to the accessibility setup. + accessibilityEnabled = accessibilityManager.isEnabled() + && accessibilityManager.isTouchExplorationEnabled(); } mFooterBarMixin.setPrimaryButton(footerButton); final Context context = getApplicationContext(); diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppStoragePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppStoragePreferenceControllerTest.java index 809d2cfefd1..065544b2f68 100644 --- a/tests/robotests/src/com/android/settings/applications/appinfo/AppStoragePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppStoragePreferenceControllerTest.java @@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -99,6 +100,16 @@ public class AppStoragePreferenceControllerTest { verify(preference).setSummary(any()); } + @Test + public void updateState_entryIsNull_shouldNotUpdatePreferenceSummary() { + when(mFragment.getAppEntry()).thenReturn(null); + Preference preference = mock(Preference.class); + + mController.updateState(preference); + + verify(preference, never()).setSummary(any()); + } + @Test public void getStorageSummary_shouldWorkForExternal() { final StorageStatsSource.AppStorageStats stats =