Skip to content
Snippets Groups Projects
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
No related branches found
No related tags found
No related merge requests found
......@@ -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) {
......
......@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment