Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5901d8f7 authored by Massimo Carli's avatar Massimo Carli
Browse files

Show Reachability only once per user on device lifetime

The Reachability education dialog will appear automatically
only the first time an app eligible to be moved with
double-tap action is displayed on the screen.

Fixes: 274991247
Test: Manual

Change-Id: Ifec12a4386e69d7fd2ba895a298a46059203a59d
parent 8cc83cc4
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -156,15 +156,13 @@ public class CompatUIConfiguration implements DeviceConfig.OnPropertiesChangedLi

    void setDontShowReachabilityEducationAgain(TaskInfo taskInfo) {
        mCompatUISharedPreferences.edit().putBoolean(
                getDontShowAgainReachabilityEduKey(taskInfo.userId,
                        taskInfo.topActivity.getPackageName()), true).apply();
                getDontShowAgainReachabilityEduKey(taskInfo.userId), true).apply();
    }

    boolean shouldShowReachabilityEducation(@NonNull TaskInfo taskInfo) {
        return getHasSeenLetterboxEducation(taskInfo.userId)
                && !mCompatUISharedPreferences.getBoolean(
                getDontShowAgainReachabilityEduKey(taskInfo.userId,
                        taskInfo.topActivity.getPackageName()), /* default= */false);
                getDontShowAgainReachabilityEduKey(taskInfo.userId), /* default= */false);
    }

    boolean getHasSeenLetterboxEducation(int userId) {
@@ -206,8 +204,8 @@ public class CompatUIConfiguration implements DeviceConfig.OnPropertiesChangedLi
        }
    }

    private static String getDontShowAgainReachabilityEduKey(int userId, String packageName) {
        return HAS_SEEN_REACHABILITY_EDUCATION_KEY_PREFIX + "_" + packageName + "@" + userId;
    private static String getDontShowAgainReachabilityEduKey(int userId) {
        return HAS_SEEN_REACHABILITY_EDUCATION_KEY_PREFIX + "@" + userId;
    }

    private static String getDontShowLetterboxEduKey(int userId) {
+14 −0
Original line number Diff line number Diff line
@@ -66,6 +66,8 @@ import org.mockito.Captor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;

import java.util.HashSet;
import java.util.Set;
import java.util.function.Consumer;

/**
@@ -118,6 +120,18 @@ public class LetterboxEduWindowManagerTest extends ShellTestCase {
        mExecutor = new TestShellExecutor();
        mCompatUIConfiguration = new CompatUIConfiguration(mContext, mExecutor) {

            final Set<Integer> mHasSeenSet = new HashSet<>();

            @Override
            boolean getHasSeenLetterboxEducation(int userId) {
                return mHasSeenSet.contains(userId);
            }

            @Override
            void setSeenLetterboxEducation(int userId) {
                mHasSeenSet.add(userId);
            }

            @Override
            protected String getCompatUISharedPreferenceName() {
                return TEST_COMPAT_UI_SHARED_PREFERENCES;