Remove swipe up setting page if the feature is not available
Bug: 77974864 Test: Manual test and RoboTests Change-Id: Ie23a01f254d65e5888f91b5b1cb80df40976c569
This commit is contained in:
@@ -16,8 +16,11 @@
|
||||
|
||||
package com.android.settings.gestures;
|
||||
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.Resources;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
@@ -33,6 +36,7 @@ public class SwipeUpPreferenceController extends GesturePreferenceController {
|
||||
private final int ON = 1;
|
||||
private final int OFF = 0;
|
||||
|
||||
private static final String ACTION_QUICKSTEP = "android.intent.action.QUICKSTEP_SERVICE";
|
||||
private static final String PREF_KEY_VIDEO = "gesture_swipe_up_video";
|
||||
private final UserManager mUserManager;
|
||||
|
||||
@@ -42,6 +46,14 @@ public class SwipeUpPreferenceController extends GesturePreferenceController {
|
||||
}
|
||||
|
||||
static boolean isGestureAvailable(Context context) {
|
||||
final ComponentName recentsComponentName = ComponentName.unflattenFromString(
|
||||
context.getString(com.android.internal.R.string.config_recentsComponentName));
|
||||
final Intent quickStepIntent = new Intent(ACTION_QUICKSTEP)
|
||||
.setPackage(recentsComponentName.getPackageName());
|
||||
if (context.getPackageManager().resolveService(quickStepIntent,
|
||||
PackageManager.MATCH_SYSTEM_ONLY) == null) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -17,12 +17,14 @@
|
||||
package com.android.settings.gestures;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Matchers.anyInt;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.hardware.Sensor;
|
||||
import android.hardware.SensorManager;
|
||||
import android.os.UserManager;
|
||||
@@ -38,7 +40,8 @@ import org.mockito.Answers;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.Shadows;
|
||||
import org.robolectric.shadows.ShadowPackageManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -47,15 +50,35 @@ import java.util.List;
|
||||
public class SwipeUpPreferenceControllerTest {
|
||||
|
||||
private Context mContext;
|
||||
private ShadowPackageManager mPackageManager;
|
||||
private SwipeUpPreferenceController mController;
|
||||
|
||||
private static final String ACTION_QUICKSTEP = "android.intent.action.QUICKSTEP_SERVICE";
|
||||
private static final String KEY_SWIPE_UP = "gesture_swipe_up";
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
mContext = RuntimeEnvironment.application;
|
||||
mPackageManager = Shadows.shadowOf(mContext.getPackageManager());
|
||||
mController = new SwipeUpPreferenceController(mContext, KEY_SWIPE_UP);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsGestureAvailable_matchingServiceExists_shouldReturnTrue() {
|
||||
final ComponentName recentsComponentName = ComponentName.unflattenFromString(
|
||||
mContext.getString(com.android.internal.R.string.config_recentsComponentName));
|
||||
final Intent quickStepIntent = new Intent(ACTION_QUICKSTEP)
|
||||
.setPackage(recentsComponentName.getPackageName());
|
||||
mPackageManager.addResolveInfoForIntent(quickStepIntent, new ResolveInfo());
|
||||
|
||||
assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsGestureAvailable_noMatchingServiceExists_shouldReturnFalse() {
|
||||
assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsChecked_configIsSet_shouldReturnTrue() {
|
||||
// Set the setting to be enabled.
|
||||
|
Reference in New Issue
Block a user