From 80aca906fa354ee03afc95f875b0fa0e4444a3a7 Mon Sep 17 00:00:00 2001 From: Mitchell Tilbrook Date: Tue, 21 May 2024 15:36:20 +1000 Subject: [PATCH] Do not show onboarding when lock task mode is enabled --- .../talkback/training/OnboardingInitiator.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/talkback/src/main/java/com/google/android/accessibility/talkback/training/OnboardingInitiator.java b/talkback/src/main/java/com/google/android/accessibility/talkback/training/OnboardingInitiator.java index c018e1e35..6e655cedf 100644 --- a/talkback/src/main/java/com/google/android/accessibility/talkback/training/OnboardingInitiator.java +++ b/talkback/src/main/java/com/google/android/accessibility/talkback/training/OnboardingInitiator.java @@ -20,12 +20,15 @@ import static com.google.android.accessibility.talkback.trainingcommon.TrainingConfig.TrainingId.TRAINING_ID_ON_BOARDING_TALKBACK; import static com.google.android.accessibility.talkback.trainingcommon.TrainingConfig.TrainingId.TRAINING_ID_ON_BOARDING_TALKBACK_WITHOUT_DESCRIBE_IMAGE; +import android.app.ActivityManager; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; +import android.util.Log; + import androidx.annotation.StringRes; import androidx.annotation.VisibleForTesting; import com.google.android.accessibility.talkback.R; @@ -78,7 +81,7 @@ public static boolean hasOnboardingForNewFeaturesBeenShown( */ public static void showOnboardingIfNecessary(Context context) { FormFactorUtils formFactorUtils = FormFactorUtils.getInstance(); - if (formFactorUtils.isAndroidTv() || formFactorUtils.isAndroidWear()) { + if (formFactorUtils.isAndroidTv() || formFactorUtils.isAndroidWear() || isInLockTaskMode(context)) { return; } @@ -118,6 +121,13 @@ public static void showOnboardingIfNecessary(Context context) { } } + /** Typically Kiosk device use Lock Task mode. If enabled assume the device is a Kiosk device */ + private static boolean isInLockTaskMode(Context context) { + ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); + Log.i("DEBUG", "activityManager.getLockTaskModeState() " + activityManager.getLockTaskModeState()); + return activityManager.getLockTaskModeState() != ActivityManager.LOCK_TASK_MODE_NONE; + } + private static boolean hasOnboardingForMultiFingerGestureSupportBeenShown( SharedPreferences prefs, Context context) { return prefs.getBoolean(