Merge "Add checking if device should not support One-handed mode shortcut widget" into tm-dev
This commit is contained in:
@@ -44,8 +44,10 @@ import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceGroup;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Settings;
|
||||
import com.android.settings.Settings.TetherSettingsActivity;
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.gestures.OneHandedSettingsUtils;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
|
||||
@@ -178,6 +180,12 @@ public class CreateShortcutPreferenceController extends BasePreferenceController
|
||||
return null;
|
||||
}
|
||||
for (ResolveInfo info : activities) {
|
||||
if (info.activityInfo.name.contains(
|
||||
Settings.OneHandedSettingsActivity.class.getSimpleName())) {
|
||||
if (!OneHandedSettingsUtils.isSupportOneHandedMode()) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (info.activityInfo.name.endsWith(TetherSettingsActivity.class.getSimpleName())) {
|
||||
if (!mConnectivityManager.isTetheringSupported()) {
|
||||
continue;
|
||||
|
@@ -36,6 +36,7 @@ import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.content.pm.ShortcutInfo;
|
||||
import android.content.pm.ShortcutManager;
|
||||
import android.os.SystemProperties;
|
||||
|
||||
import com.android.settings.Settings;
|
||||
import com.android.settings.testutils.shadow.ShadowConnectivityManager;
|
||||
@@ -62,6 +63,8 @@ import java.util.List;
|
||||
@Config(shadows = ShadowConnectivityManager.class)
|
||||
public class CreateShortcutPreferenceControllerTest {
|
||||
|
||||
static final String SUPPORT_ONE_HANDED_MODE = "ro.support_one_handed_mode";
|
||||
|
||||
@Mock
|
||||
private ShortcutManager mShortcutManager;
|
||||
@Mock
|
||||
@@ -152,4 +155,36 @@ public class CreateShortcutPreferenceControllerTest {
|
||||
assertThat(info.get(0).activityInfo).isEqualTo(ri2.activityInfo);
|
||||
assertThat(info.get(1).activityInfo).isEqualTo(ri1.activityInfo);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void queryShortcuts_setSupportOneHandedMode_ShouldEnableShortcuts() {
|
||||
SystemProperties.set(SUPPORT_ONE_HANDED_MODE, "true");
|
||||
|
||||
setupOneHandedModeActivityInfo();
|
||||
final List<ResolveInfo> info = mController.queryShortcuts();
|
||||
|
||||
assertThat(info).hasSize(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void queryShortcuts_setUnsupportOneHandedMode_ShouldDisableShortcuts() {
|
||||
SystemProperties.set(SUPPORT_ONE_HANDED_MODE, "false");
|
||||
|
||||
setupOneHandedModeActivityInfo();
|
||||
final List<ResolveInfo> info = mController.queryShortcuts();
|
||||
|
||||
assertThat(info).hasSize(0);
|
||||
}
|
||||
|
||||
private void setupOneHandedModeActivityInfo() {
|
||||
final ResolveInfo ri = new ResolveInfo();
|
||||
ri.activityInfo = new ActivityInfo();
|
||||
ri.activityInfo.name = Settings.OneHandedSettingsActivity.class.getSimpleName();
|
||||
ri.activityInfo.applicationInfo = new ApplicationInfo();
|
||||
ri.activityInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
|
||||
|
||||
mPackageManager.setResolveInfosForIntent(
|
||||
new Intent(CreateShortcutPreferenceController.SHORTCUT_PROBE),
|
||||
Arrays.asList(ri));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user