Remove old code relating to SystemSettings not used in new IA.

- remove activity alias: DevelopmentSettingsDashboardAlias,
DateTimeDashboardAlias, AboutDeviceDashboardAlias,
BackupResetDashboardAlias, EnterprisePrivacyDashboardAlias, and
AccessibilityDashboardAlias and updated the corresponding target
activities with the alias metadata.

- remove InputMethodAndLanguageSettingsActivity and
GestureSettingsActivity and the associated xml.

Bug: 35764802
Test: make RunSettingsRoboTests
Change-Id: I7d4922f8dfaac40e8ad077a68008185cd9fe3304
This commit is contained in:
Doris Ling
2017-02-28 17:32:36 -08:00
parent b567ff46c3
commit d299b03f28
18 changed files with 77 additions and 965 deletions

View File

@@ -537,11 +537,11 @@
<category android:name="android.intent.category.VOICE_LAUNCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter android:priority="5">
<intent-filter android:priority="240">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.system" />
android:value="com.android.settings.category.ia.system" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.DateTimeSettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
@@ -552,7 +552,7 @@
android:label="@string/language_picker_title"
android:icon="@drawable/ic_settings_language"
android:taskAffinity="com.android.settings"
android:parentActivityName="Settings$InputMethodAndLanguageSettingsActivity">
android:parentActivityName="Settings$LanguageAndInputSettingsActivity">
<intent-filter android:priority="1">
<action android:name="android.settings.LOCALE_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -568,25 +568,25 @@
android:value="true" />
</activity>
<activity android:name="Settings$InputMethodAndLanguageSettingsActivity"
<activity android:name=".Settings$LanguageAndInputSettingsActivity"
android:label="@string/language_keyboard_settings_title"
android:icon="@drawable/ic_settings_language"
android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
android:parentActivityName="Settings$SystemDashboardActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.VOICE_LAUNCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter android:priority="-1">
<action android:name="com.android.settings.action.SETTINGS" />
<intent-filter android:priority="260">
<action android:name="com.android.settings.action.SETTINGS"/>
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.personal" />
android:value="com.android.settings.category.ia.system"/>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.inputmethod.InputMethodAndLanguageSettings" />
android:value="com.android.settings.language.LanguageAndInputSettings"/>
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
android:value="true"/>
</activity>
<activity android:name="Settings$AvailableVirtualKeyboardActivity"
@@ -648,15 +648,15 @@
android:label="@string/language_keyboard_settings_title"
android:clearTaskOnLaunch="true"
android:exported="true"
android:targetActivity="Settings$InputMethodAndLanguageSettingsActivity">
android:targetActivity="Settings$LanguageAndInputSettingsActivity">
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.inputmethod.InputMethodAndLanguageSettings" />
android:value="com.android.settings.language.LanguageAndInputSettings" />
</activity-alias>
<activity android:name="Settings$SpellCheckersSettingsActivity"
android:label="@string/spellcheckers_settings_title"
android:taskAffinity="com.android.settings"
android:parentActivityName="Settings$InputMethodAndLanguageSettingsActivity">
android:parentActivityName="Settings$LanguageAndInputSettingsActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.VOICE_LAUNCH" />
@@ -692,7 +692,7 @@
<activity android:name="Settings$UserDictionarySettingsActivity"
android:label="@string/user_dict_settings_title"
android:taskAffinity="com.android.settings"
android:parentActivityName="Settings$InputMethodAndLanguageSettingsActivity">
android:parentActivityName="Settings$LanguageAndInputSettingsActivity">
<intent-filter android:priority="1">
<action android:name="android.settings.USER_DICTIONARY_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -955,11 +955,11 @@
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.VOICE_LAUNCH" />
</intent-filter>
<intent-filter android:priority="-1">
<intent-filter android:priority="10">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.system" />
android:value="com.android.settings.category.ia.system" />
<meta-data android:name="com.android.settings.title"
android:resource="@string/about_settings" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
@@ -1454,15 +1454,17 @@
<category android:name="android.intent.category.VOICE_LAUNCH" />
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
<intent-filter android:priority="4">
<intent-filter android:priority="2">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.system" />
android:value="com.android.settings.category.ia.homepage" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.accessibility.AccessibilitySettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
<meta-data android:name="com.android.settings.summary"
android:resource="@string/accessibility_settings_summary" />
</activity>
<activity android:name=".accessibility.AccessibilitySettingsForSetupWizardActivity"
@@ -1520,7 +1522,7 @@
<activity android:name="Settings$TextToSpeechSettingsActivity"
android:label="@string/tts_settings"
android:taskAffinity="com.android.settings"
android:parentActivityName="Settings$InputMethodAndLanguageSettingsActivity">
android:parentActivityName="Settings$LanguageAndInputSettingsActivity">
<intent-filter android:priority="1">
<action android:name="com.android.settings.TTS_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -1540,11 +1542,11 @@
<action android:name="android.settings.ENTERPRISE_PRIVACY_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<intent-filter android:priority="-1">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.device" />
android:value="com.android.settings.category.ia.system" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.enterprise.EnterprisePrivacySettings" />
</activity>
@@ -1918,11 +1920,11 @@
<action android:name="com.android.settings.APPLICATION_DEVELOPMENT_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter android:priority="2">
<intent-filter android:priority="50">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.system" />
android:value="com.android.settings.category.ia.system" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.DevelopmentSettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
@@ -2931,27 +2933,7 @@
android:value="true" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.webview.WebViewAppPicker" />
</activity-alias>
<!-- activity for gesture settings -->
<activity android:name="Settings$GestureSettingsActivity"
android:label="@string/gesture_preference_title"
android:icon="@drawable/ic_settings_gestures"
android:enabled="@bool/config_gesture_settings_enabled">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
<intent-filter>
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.device" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.gestures.GestureSettings" />
<meta-data android:name="com.android.settings.summary"
android:resource="@string/gesture_preference_summary" />
</activity>
</activity-alias>
<activity android:name=".backup.BackupSettingsActivity"
android:label="@string/privacy_settings_title"
@@ -2968,11 +2950,11 @@
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.VOICE_LAUNCH" />
</intent-filter>
<intent-filter android:priority="-2">
<intent-filter android:priority="60">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.personal" />
android:value="com.android.settings.category.ia.system" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
</activity>
@@ -3118,21 +3100,6 @@
android:value="true" />
</activity>
<activity-alias android:name="AccessibilityDashboardAlias"
android:targetActivity="Settings$AccessibilitySettingsActivity">
<intent-filter android:priority="2">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.homepage" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.accessibility.AccessibilitySettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
<meta-data android:name="com.android.settings.summary"
android:resource="@string/accessibility_settings_summary" />
</activity-alias>
<activity android:name=".Settings$SystemDashboardActivity"
android:label="@string/header_category_system"
android:icon="@drawable/ic_dashboard_system">
@@ -3161,78 +3128,6 @@
android:resource="@string/support_summary"/>
</activity>
<!-- Alias for IME & Language in new IA. Should merge into TargetActivity when launch -->
<activity android:name=".Settings$LanguageAndInputSettingsActivity"
android:label="@string/language_keyboard_settings_title"
android:icon="@drawable/ic_settings_language">
<intent-filter android:priority="260">
<action android:name="com.android.settings.action.SETTINGS"/>
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.system"/>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.language.LanguageAndInputSettings"/>
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true"/>
<!-- Inherit intent-filter from LanguageSettingsActivity -->
</activity>
<!-- Alias for Date & Time in new IA. Should merge into TargetActivity when launch -->
<activity-alias android:name="DateTimeDashboardAlias"
android:targetActivity="Settings$DateTimeSettingsActivity">
<intent-filter android:priority="240">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.system" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.DateTimeSettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
</activity-alias>
<activity-alias android:name="BackupResetDashboardAlias"
android:targetActivity=".backup.BackupSettingsActivity">
<intent-filter android:priority="60">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.system" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
</activity-alias>
<!-- Alias for developer setting in new IA. Should merge into TargetActivity when launch -->
<activity-alias android:name="DevelopmentSettingsDashboardAlias"
android:targetActivity="Settings$DevelopmentSettingsActivity"
android:label="@string/development_settings_title"
android:icon="@drawable/ic_settings_development">
<intent-filter android:priority="50">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.system" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.DevelopmentSettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
</activity-alias>
<activity-alias android:name="AboutDeviceDashboardAlias"
android:targetActivity="Settings$DeviceInfoSettingsActivity">
<intent-filter android:priority="10">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.system" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.DeviceInfoSettings" />
<meta-data android:name="com.android.settings.title"
android:resource="@string/about_settings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
</activity-alias>
<activity-alias android:name="MemorySettingsDashboardAlias"
android:targetActivity=".Settings$MemorySettingsActivity">
<intent-filter>
@@ -3335,18 +3230,6 @@
android:value="true"/>
</activity-alias>
<!-- Alias for enterprise privacy setting in new IA. Should merge into TargetActivity when launch -->
<activity-alias android:name="EnterprisePrivacyDashboardAlias"
android:targetActivity="Settings$EnterprisePrivacySettingsActivity">
<intent-filter android:priority="-1">
<action android:name="com.android.settings.action.SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.system" />
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.enterprise.EnterprisePrivacySettings" />
</activity-alias>
<!-- End of information architecture host activities -->
<service

View File

@@ -1,64 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/gesture_preference_title"
settings:keywords="@string/keywords_gesture">
<com.android.settings.gestures.GesturePreference
android:key="gesture_assist"
android:title="@string/assist_gesture_title"
android:summary="@string/assist_gesture_summary"
settings:animation="@raw/gesture_assist"
settings:preview="@drawable/gesture_assist"/>
<com.android.settings.gestures.GesturePreference
android:key="gesture_swipe_down_fingerprint"
android:title="@string/fingerprint_swipe_for_notifications_title"
android:summary="@string/fingerprint_swipe_for_notifications_summary"
settings:animation="@raw/gesture_fingerprint_swipe"
settings:preview="@drawable/gesture_fingerprint_swipe"/>
<com.android.settings.gestures.GesturePreference
android:key="gesture_double_tap_power"
android:title="@string/double_tap_power_for_camera_title"
android:summary="@string/double_tap_power_for_camera_summary"
settings:animation="@raw/gesture_double_tap"
settings:preview="@drawable/gesture_double_tap"/>
<com.android.settings.gestures.GesturePreference
android:key="gesture_double_twist"
android:title="@string/double_twist_for_camera_mode_title"
android:summary="@string/double_twist_for_camera_mode_summary"
settings:animation="@raw/gesture_twist"
settings:preview="@drawable/gesture_twist"/>
<com.android.settings.gestures.GesturePreference
android:key="gesture_double_tap_screen"
android:title="@string/ambient_display_title"
android:summary="@string/ambient_display_summary"
settings:animation="@raw/gesture_ambient_tap"
settings:preview="@drawable/gesture_ambient_tap"/>
<com.android.settings.gestures.GesturePreference
android:key="gesture_pick_up"
android:title="@string/ambient_display_pickup_title"
android:summary="@string/ambient_display_pickup_summary"
settings:animation="@raw/gesture_ambient_lift"
settings:preview="@drawable/gesture_ambient_lift"/>
</PreferenceScreen>

View File

@@ -1,89 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2008 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:key="language_keyboard_settings"
android:title="@string/language_keyboard_settings_title">
<Preference
android:key="phone_language"
android:title="@string/phone_language"
android:fragment="com.android.settings.localepicker.LocaleListEditor"
/>
<!-- Spell checker preference title, summary and fragment will be set programmatically. -->
<!-- Note: Mark this as persistent="false" to remove unnecessarily saved shared preference.
See: InputMethodAndSubtypeUtil.removeUnnecessaryNonPersistentPreference. -->
<Preference
android:key="spellcheckers_settings"
android:title="@string/spellcheckers_settings_title"
android:fragment="com.android.settings.inputmethod.SpellCheckersSettings"
android:persistent="false"/>
<!-- User dictionary preference title and fragment will be set programmatically. -->
<Preference
android:key="key_user_dictionary_settings"
android:title="@string/user_dict_settings_title"
/>
<PreferenceCategory
android:title="@string/keyboard_and_input_methods_category">
<Preference
android:title="@string/virtual_keyboard_category"
android:fragment="com.android.settings.inputmethod.VirtualKeyboardFragment" />
<Preference
android:title="@string/physical_keyboard_title"
android:fragment="com.android.settings.inputmethod.PhysicalKeyboardFragment" />
</PreferenceCategory>
<PreferenceCategory
android:key="voice_category"
android:title="@string/voice_category" >
<Preference
android:key="tts_settings"
android:title="@string/tts_settings_title"
android:fragment="com.android.settings.tts.TextToSpeechSettings"
/>
</PreferenceCategory>
<PreferenceCategory
android:key="pointer_settings_category"
android:title="@string/pointer_settings_category">
<com.android.settings.PointerSpeedPreference
android:key="pointer_speed"
android:title="@string/pointer_speed"
android:dialogTitle="@string/pointer_speed"
/>
</PreferenceCategory>
<PreferenceCategory
android:key="game_controller_settings_category"
android:title="@string/game_controller_settings_category">
<SwitchPreference
android:key="vibrate_input_devices"
android:title="@string/vibrate_input_devices"
android:summaryOn="@string/vibrate_input_devices_summary"
android:summaryOff="@string/vibrate_input_devices_summary"
/>
</PreferenceCategory>
</PreferenceScreen>

View File

@@ -40,7 +40,6 @@ public class Settings extends SettingsActivity {
public static class PublicVolumeSettingsActivity extends SettingsActivity { /* empty */ }
public static class WifiSettingsActivity extends SettingsActivity { /* empty */ }
public static class WifiP2pSettingsActivity extends SettingsActivity { /* empty */ }
public static class InputMethodAndLanguageSettingsActivity extends SettingsActivity { /* empty */ }
public static class AvailableVirtualKeyboardActivity extends SettingsActivity { /* empty */ }
public static class KeyboardLayoutPickerActivity extends SettingsActivity { /* empty */ }
public static class PhysicalKeyboardActivity extends SettingsActivity { /* empty */ }
@@ -68,10 +67,7 @@ public class Settings extends SettingsActivity {
}
public static class BackgroundCheckSummaryActivity extends SettingsActivity { /* empty */ }
public static class StorageUseActivity extends SettingsActivity { /* empty */ }
public static class DevelopmentSettingsActivity extends SettingsActivity {
public static final String DASHBOARD_ALIAS =
"com.android.settings.DevelopmentSettingsDashboardAlias";
}
public static class DevelopmentSettingsActivity extends SettingsActivity { /* empty */ }
public static class AccessibilitySettingsActivity extends SettingsActivity { /* empty */ }
public static class CaptioningSettingsActivity extends SettingsActivity { /* empty */ }
public static class AccessibilityInversionSettingsActivity extends SettingsActivity { /* empty */ }
@@ -87,7 +83,6 @@ public class Settings extends SettingsActivity {
public static class BatterySaverSettingsActivity extends SettingsActivity { /* empty */ }
public static class AccountSyncSettingsActivity extends SettingsActivity { /* empty */ }
public static class AccountSyncSettingsInAddAccountActivity extends SettingsActivity { /* empty */ }
public static class GestureSettingsActivity extends SettingsActivity { /* empty */ }
public static class CryptKeeperSettingsActivity extends SettingsActivity { /* empty */ }
public static class DeviceAdminSettingsActivity extends SettingsActivity { /* empty */ }
public static class DataUsageSummaryActivity extends SettingsActivity { /* empty */ }

View File

@@ -951,9 +951,6 @@ public class SettingsActivity extends SettingsDrawerActivity
setTileEnabled(new ComponentName(packageName,
Settings.DevelopmentSettingsActivity.class.getName()),
showDev, isAdmin);
setTileEnabled(new ComponentName(packageName,
Settings.DevelopmentSettingsActivity.DASHBOARD_ALIAS),
showDev, isAdmin);
if (UserHandle.MU_ENABLED && !isAdmin) {
// When on restricted users, disable all extra categories (but only the settings ones).
@@ -981,17 +978,11 @@ public class SettingsActivity extends SettingsDrawerActivity
setTileEnabled(new ComponentName(packageName,
BackupSettingsActivity.class.getName()), true,
isAdmin || Utils.isCarrierDemoUser(this));
setTileEnabled(new ComponentName(packageName,
"com.android.settings.BackupResetDashboardAlias"), true, isAdmin);
setTileEnabled(new ComponentName(packageName,
Settings.EnterprisePrivacySettingsActivity.class.getName()),
FeatureFactory.getFactory(this).getEnterprisePrivacyFeatureProvider(this)
.hasDeviceOwner(), isAdmin);
setTileEnabled(new ComponentName(packageName,
"com.android.settings.EnterprisePrivacyDashboardAlias"),
FeatureFactory.getFactory(this).getEnterprisePrivacyFeatureProvider(this)
.hasDeviceOwner(), isAdmin);
// Final step, refresh categories.
updateCategories();
}

View File

@@ -84,11 +84,9 @@ import com.android.settings.gestures.AssistGestureSettings;
import com.android.settings.gestures.DoubleTapPowerSettings;
import com.android.settings.gestures.DoubleTapScreenSettings;
import com.android.settings.gestures.DoubleTwistGestureSettings;
import com.android.settings.gestures.GestureSettings;
import com.android.settings.gestures.PickupGestureSettings;
import com.android.settings.gestures.SwipeToNotificationSettings;
import com.android.settings.inputmethod.AvailableVirtualKeyboardFragment;
import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
import com.android.settings.inputmethod.KeyboardLayoutPickerFragment;
import com.android.settings.inputmethod.PhysicalKeyboardFragment;
import com.android.settings.inputmethod.SpellCheckersSettings;
@@ -147,7 +145,6 @@ public class SettingsGateway {
VpnSettings.class.getName(),
DateTimeSettings.class.getName(),
LocaleListEditor.class.getName(),
InputMethodAndLanguageSettings.class.getName(),
AvailableVirtualKeyboardFragment.class.getName(),
LanguageAndInputSettings.class.getName(),
SpellCheckersSettings.class.getName(),
@@ -180,7 +177,6 @@ public class SettingsGateway {
WifiDisplaySettings.class.getName(),
PowerUsageSummary.class.getName(),
AccountSyncSettings.class.getName(),
GestureSettings.class.getName(),
AssistGestureSettings.class.getName(),
SwipeToNotificationSettings.class.getName(),
DoubleTapPowerSettings.class.getName(),
@@ -263,11 +259,9 @@ public class SettingsGateway {
Settings.StorageSettingsActivity.class.getName(),
Settings.ManageApplicationsActivity.class.getName(),
Settings.PowerUsageSummaryActivity.class.getName(),
Settings.GestureSettingsActivity.class.getName(),
//personal_section
Settings.LocationSettingsActivity.class.getName(),
Settings.SecuritySettingsActivity.class.getName(),
Settings.InputMethodAndLanguageSettingsActivity.class.getName(),
Settings.UserSettingsActivity.class.getName(),
//system_section
Settings.DateTimeSettingsActivity.class.getName(),
@@ -296,9 +290,5 @@ public class SettingsGateway {
"com.android.settings.DataUsageDashboardAlias",
// Home page > System
Settings.LanguageAndInputSettingsActivity.class.getName(),
"com.android.settings.DateTimeDashboardAlias",
"com.android.settings.AccessibilityDashboardAlias",
"com.android.settings.AboutDeviceDashboardAlias",
"com.android.settings.EnterprisePrivacyDashboardAlias",
};
}

View File

@@ -28,7 +28,6 @@ import com.android.settings.applications.AppAndNotificationDashboardFragment;
import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
import com.android.settings.deviceinfo.StorageDashboardFragment;
import com.android.settings.fuelgauge.PowerUsageSummary;
import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
import com.android.settings.language.LanguageAndInputSettings;
import com.android.settings.network.NetworkDashboardFragment;
import com.android.settings.notification.SoundSettings;
@@ -80,8 +79,6 @@ public class DashboardFragmentRegistry {
CategoryKey.CATEGORY_ACCOUNT);
PARENT_TO_CATEGORY_KEY_MAP.put(
SystemDashboardFragment.class.getName(), CategoryKey.CATEGORY_SYSTEM);
PARENT_TO_CATEGORY_KEY_MAP.put(InputMethodAndLanguageSettings.class.getName(),
CategoryKey.CATEGORY_SYSTEM_LANGUAGE);
PARENT_TO_CATEGORY_KEY_MAP.put(LanguageAndInputSettings.class.getName(),
CategoryKey.CATEGORY_SYSTEM_LANGUAGE);
PARENT_TO_CATEGORY_KEY_MAP.put(DevelopmentSettings.class.getName(),

View File

@@ -1,148 +0,0 @@
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.gestures;
import android.content.Context;
import android.os.Bundle;
import android.os.UserHandle;
import android.provider.SearchIndexableResource;
import android.support.v7.preference.Preference;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.core.lifecycle.Lifecycle;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
import java.util.ArrayList;
import java.util.List;
/**
* Top level fragment for gesture settings.
* This will create individual switch preference for each gesture and handle updates when each
* preference is updated
*/
public class GestureSettings extends DashboardFragment {
private static final String TAG = "GestureSettings";
private List<GesturePreference> mPreferences;
@Override
protected int getPreferenceScreenResId() {
return R.xml.gesture_settings;
}
@Override
protected List<PreferenceController> getPreferenceControllers(Context context) {
final AmbientDisplayConfiguration ambientConfig = new AmbientDisplayConfiguration(context);
final List<PreferenceController> controllers = new ArrayList<>();
final Lifecycle lifecycle = getLifecycle();
controllers.add(new AssistGesturePreferenceController(context, lifecycle));
controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle));
controllers.add(new DoubleTapPowerPreferenceController(context, lifecycle));
controllers.add(new DoubleTwistPreferenceController(context, lifecycle));
controllers.add(new PickupGesturePreferenceController(
context, lifecycle, ambientConfig, UserHandle.myUserId()));
controllers.add(new DoubleTapScreenPreferenceController(
context, lifecycle, ambientConfig, UserHandle.myUserId()));
return controllers;
}
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
super.onCreatePreferences(savedInstanceState, rootKey);
mPreferences = new ArrayList();
addPreferenceToTrackingList(AssistGesturePreferenceController.class);
addPreferenceToTrackingList(SwipeToNotificationPreferenceController.class);
addPreferenceToTrackingList(DoubleTapScreenPreferenceController.class);
addPreferenceToTrackingList(DoubleTwistPreferenceController.class);
addPreferenceToTrackingList(PickupGesturePreferenceController.class);
addPreferenceToTrackingList(DoubleTapPowerPreferenceController.class);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
RecyclerView listview = getListView();
listview.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
if (newState == RecyclerView.SCROLL_STATE_DRAGGING) {
for (GesturePreference pref : mPreferences) {
pref.setScrolling(true);
}
} else if (newState == RecyclerView.SCROLL_STATE_IDLE) {
for (GesturePreference pref : mPreferences) {
pref.setScrolling(false);
}
}
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
}
});
return view;
}
@Override
public void onStart() {
super.onStart();
for (GesturePreference preference : mPreferences) {
preference.onViewVisible();
}
}
@Override
public void onStop() {
super.onStop();
for (GesturePreference preference : mPreferences) {
preference.onViewInvisible();
}
}
@Override
protected String getLogTag() {
return TAG;
}
@Override
protected int getHelpResource() {
return R.string.help_url_gestures;
}
@Override
public int getMetricsCategory() {
return MetricsEvent.SETTINGS_GESTURES;
}
private <T extends PreferenceController> void addPreferenceToTrackingList(Class<T> clazz) {
final PreferenceController controller = getPreferenceController(clazz);
final Preference preference = findPreference(controller.getPreferenceKey());
if (preference != null && preference instanceof GesturePreference) {
mPreferences.add((GesturePreference) preference);
}
}
}

View File

@@ -1,251 +0,0 @@
/*
* Copyright (C) 2008 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.inputmethod;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.hardware.input.InputDeviceIdentifier;
import android.speech.tts.TtsEngines;
import android.support.v7.preference.Preference;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.Settings.KeyboardLayoutPickerActivity;
import com.android.settings.Utils;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.language.PhoneLanguagePreferenceController;
import com.android.settings.language.TtsPreferenceController;
import com.android.settings.language.UserDictionaryPreferenceController;
import com.android.settings.localepicker.LocaleFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
import com.android.settings.search.SearchIndexableRaw;
import java.util.ArrayList;
import java.util.List;
/**
* @deprecated New features should use {@code InputAndGestureSettings} and
* {@code LanguageAndRegionSettings} instead.
*/
@Deprecated
public class InputMethodAndLanguageSettings extends DashboardFragment
implements KeyboardLayoutDialogFragment.OnSetupKeyboardLayoutsListener, Indexable {
private static final String TAG = "IMEAndLanguageSetting";
private Intent mIntentWaitingForResult;
@Override
public int getMetricsCategory() {
return MetricsEvent.INPUTMETHOD_LANGUAGE;
}
@Override
protected String getLogTag() {
return TAG;
}
@Override
protected int getPreferenceScreenResId() {
return R.xml.language_settings;
}
@Override
protected List<PreferenceController> getPreferenceControllers(Context context) {
final GameControllerPreferenceController gameControllerPreferenceController =
new GameControllerPreferenceController(context);
getLifecycle().addObserver(gameControllerPreferenceController);
final List<PreferenceController> list = new ArrayList<>();
list.add(gameControllerPreferenceController);
list.add(new PhoneLanguagePreferenceController(context));
list.add(new SpellCheckerPreferenceController(context));
list.add(new UserDictionaryPreferenceController(context));
list.add(new TtsPreferenceController(context, new TtsEngines(context)));
return list;
}
@Override
public boolean onPreferenceTreeClick(Preference preference) {
// Input Method stuff
if (Utils.isMonkeyRunning()) {
return false;
}
return super.onPreferenceTreeClick(preference);
}
private void showKeyboardLayoutDialog(InputDeviceIdentifier inputDeviceIdentifier) {
KeyboardLayoutDialogFragment fragment = (KeyboardLayoutDialogFragment)
getFragmentManager().findFragmentByTag("keyboardLayout");
if (fragment == null) {
fragment = new KeyboardLayoutDialogFragment(inputDeviceIdentifier);
fragment.setTargetFragment(this, 0);
fragment.show(getActivity().getFragmentManager(), "keyboardLayout");
}
}
@Override
public void onSetupKeyboardLayouts(InputDeviceIdentifier inputDeviceIdentifier) {
final Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClass(getActivity(), KeyboardLayoutPickerActivity.class);
intent.putExtra(KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER,
inputDeviceIdentifier);
mIntentWaitingForResult = intent;
startActivityForResult(intent, 0);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (mIntentWaitingForResult != null) {
InputDeviceIdentifier inputDeviceIdentifier = mIntentWaitingForResult
.getParcelableExtra(KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER);
mIntentWaitingForResult = null;
showKeyboardLayoutDialog(inputDeviceIdentifier);
}
}
private static class SummaryProvider implements SummaryLoader.SummaryProvider {
private final SummaryLoader mSummaryLoader;
private LocaleFeatureProvider mLocaleFeatureProvider;
public SummaryProvider(Context context, SummaryLoader summaryLoader) {
mSummaryLoader = summaryLoader;
mLocaleFeatureProvider = FeatureFactory.getFactory(context).getLocaleFeatureProvider();
}
@Override
public void setListening(boolean listening) {
if (listening) {
String localeNames = mLocaleFeatureProvider.getLocaleNames();
mSummaryLoader.setSummary(this, localeNames);
}
}
}
public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY
= new SummaryLoader.SummaryProviderFactory() {
@Override
public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity,
SummaryLoader summaryLoader) {
return new SummaryProvider(activity, summaryLoader);
}
};
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override
public List<SearchIndexableRaw> getRawDataToIndex(Context context, boolean enabled) {
List<SearchIndexableRaw> indexables = new ArrayList<>();
final String screenTitle = context.getString(R.string.language_keyboard_settings_title);
// Locale picker.
final PhoneLanguagePreferenceController mLanguagePrefController =
new PhoneLanguagePreferenceController(context);
if (mLanguagePrefController.isAvailable()) {
String localeNames = FeatureFactory.getFactory(context).getLocaleFeatureProvider()
.getLocaleNames();
SearchIndexableRaw indexable = new SearchIndexableRaw(context);
indexable.key = mLanguagePrefController.getPreferenceKey();
indexable.title = context.getString(R.string.phone_language);
indexable.summaryOn = localeNames;
indexable.summaryOff = localeNames;
indexable.screenTitle = screenTitle;
indexables.add(indexable);
}
// Spell checker.
SearchIndexableRaw indexable = new SearchIndexableRaw(context);
indexable.key = SpellCheckerPreferenceController.KEY_SPELL_CHECKERS;
indexable.title = context.getString(R.string.spellcheckers_settings_title);
indexable.screenTitle = screenTitle;
indexable.keywords = context.getString(R.string.keywords_spell_checker);
indexables.add(indexable);
// User dictionary.
if (UserDictionaryList.getUserDictionaryLocalesSet(context) != null) {
indexable = new SearchIndexableRaw(context);
indexable.key = "user_dict_settings";
indexable.title = context.getString(R.string.user_dict_settings_title);
indexable.screenTitle = screenTitle;
indexables.add(indexable);
}
// Keyboard settings.
indexable = new SearchIndexableRaw(context);
indexable.key = "keyboard_settings";
indexable.title = context.getString(R.string.keyboard_settings_category);
indexable.screenTitle = screenTitle;
indexable.keywords = context.getString(R.string.keywords_keyboard_and_ime);
indexables.add(indexable);
if (!PhysicalKeyboardFragment.getPhysicalFullKeyboards().isEmpty()) {
// Hard keyboard category.
indexable = new SearchIndexableRaw(context);
indexable.key = "builtin_keyboard_settings";
indexable.title = context.getString(R.string.builtin_keyboard_settings_title);
indexable.screenTitle = screenTitle;
indexables.add(indexable);
}
// Text-to-speech.
TtsEngines ttsEngines = new TtsEngines(context);
if (!ttsEngines.getEngines().isEmpty()) {
indexable = new SearchIndexableRaw(context);
indexable.key = "tts_settings";
indexable.title = context.getString(R.string.tts_settings_title);
indexable.screenTitle = screenTitle;
indexable.keywords = context.getString(R.string.keywords_text_to_speech_output);
indexables.add(indexable);
}
// Pointer settings.
indexable = new SearchIndexableRaw(context);
indexable.key = "pointer_settings_category";
indexable.title = context.getString(R.string.pointer_settings_category);
indexable.screenTitle = screenTitle;
indexables.add(indexable);
indexable = new SearchIndexableRaw(context);
indexable.key = "pointer_speed";
indexable.title = context.getString(R.string.pointer_speed);
indexable.screenTitle = screenTitle;
indexables.add(indexable);
// Game controllers.
if (!new GameControllerPreferenceController(context).isAvailable()) {
indexable = new SearchIndexableRaw(context);
indexable.key = GameControllerPreferenceController.PREF_KEY;
indexable.title = context.getString(R.string.vibrate_input_devices);
indexable.summaryOn = context.getString(R.string.vibrate_input_devices_summary);
indexable.summaryOff = context.getString(R.string.vibrate_input_devices_summary);
indexable.screenTitle = screenTitle;
indexables.add(indexable);
}
return indexables;
}
};
}

View File

@@ -49,9 +49,9 @@ import android.view.inputmethod.InputMethodManager;
import com.android.internal.content.PackageMonitor;
import com.android.settings.accessibility.AccessibilitySettings;
import com.android.settings.inputmethod.AvailableVirtualKeyboardFragment;
import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
import com.android.settings.inputmethod.PhysicalKeyboardFragment;
import com.android.settings.inputmethod.VirtualKeyboardFragment;
import com.android.settings.language.LanguageAndInputSettings;
import com.android.settings.print.PrintSettingsFragment;
import java.util.ArrayList;
@@ -423,7 +423,7 @@ public final class DynamicIndexableContentMonitor implements
mContentResolver = context.getContentResolver();
mInputMethodServices.clear();
// Build index of {@link UserDictionary}.
buildIndex(InputMethodAndLanguageSettings.class, true /* rebuild */);
buildIndex(LanguageAndInputSettings.class, true /* rebuild */);
// Build index of IMEs.
buildIndex(VirtualKeyboardFragment.class, true /* rebuild */);
buildIndex(AvailableVirtualKeyboardFragment.class, true /* rebuild */);
@@ -478,7 +478,7 @@ public final class DynamicIndexableContentMonitor implements
buildIndex(VirtualKeyboardFragment.class, true /* rebuild */);
buildIndex(AvailableVirtualKeyboardFragment.class, true /* rebuild */);
} else if (UserDictionary.Words.CONTENT_URI.equals(uri)) {
buildIndex(InputMethodAndLanguageSettings.class, true /* rebuild */);
buildIndex(LanguageAndInputSettings.class, true /* rebuild */);
}
}
}

View File

@@ -41,8 +41,13 @@ import com.android.settings.display.ScreenZoomSettings;
import com.android.settings.enterprise.EnterprisePrivacySettings;
import com.android.settings.fuelgauge.BatterySaverSettings;
import com.android.settings.fuelgauge.PowerUsageSummary;
import com.android.settings.gestures.GestureSettings;
import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
import com.android.settings.gestures.AssistGestureSettings;
import com.android.settings.gestures.DoubleTapPowerSettings;
import com.android.settings.gestures.DoubleTapScreenSettings;
import com.android.settings.gestures.DoubleTwistGestureSettings;
import com.android.settings.gestures.PickupGestureSettings;
import com.android.settings.gestures.SwipeToNotificationSettings;
import com.android.settings.language.LanguageAndInputSettings;
import com.android.settings.location.LocationSettings;
import com.android.settings.location.ScanningSettings;
import com.android.settings.notification.ConfigureNotificationSettings;
@@ -154,7 +159,12 @@ public final class Ranking {
sRankMap.put(UserSettings.class.getName(), RANK_USERS);
// Gestures
sRankMap.put(GestureSettings.class.getName(), RANK_GESTURE);
sRankMap.put(AssistGestureSettings.class.getName(), RANK_GESTURE);
sRankMap.put(DoubleTapPowerSettings.class.getName(), RANK_GESTURE);
sRankMap.put(DoubleTapScreenSettings.class.getName(), RANK_GESTURE);
sRankMap.put(DoubleTwistGestureSettings.class.getName(), RANK_GESTURE);
sRankMap.put(PickupGestureSettings.class.getName(), RANK_GESTURE);
sRankMap.put(SwipeToNotificationSettings.class.getName(), RANK_GESTURE);
// Location
sRankMap.put(LocationSettings.class.getName(), RANK_LOCATION);
@@ -169,7 +179,7 @@ public final class Ranking {
sRankMap.put(UserAndAccountDashboardFragment.class.getName(), RANK_ACCOUNT);
// IMEs
sRankMap.put(InputMethodAndLanguageSettings.class.getName(), RANK_IME);
sRankMap.put(LanguageAndInputSettings.class.getName(), RANK_IME);
// Privacy
sRankMap.put(PrivacySettings.class.getName(), RANK_PRIVACY);

View File

@@ -44,7 +44,6 @@ import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
import com.android.settings.datausage.DataUsageMeteredSettings;
import com.android.settings.datausage.DataUsageSummary;
import com.android.settings.deviceinfo.StorageDashboardFragment;
import com.android.settings.deviceinfo.StorageProfileFragment;
import com.android.settings.deviceinfo.StorageSettings;
import com.android.settings.display.ScreenZoomSettings;
import com.android.settings.enterprise.EnterprisePrivacySettings;
@@ -56,11 +55,9 @@ import com.android.settings.gestures.AssistGestureSettings;
import com.android.settings.gestures.DoubleTapPowerSettings;
import com.android.settings.gestures.DoubleTapScreenSettings;
import com.android.settings.gestures.DoubleTwistGestureSettings;
import com.android.settings.gestures.GestureSettings;
import com.android.settings.gestures.PickupGestureSettings;
import com.android.settings.gestures.SwipeToNotificationSettings;
import com.android.settings.inputmethod.AvailableVirtualKeyboardFragment;
import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
import com.android.settings.inputmethod.PhysicalKeyboardFragment;
import com.android.settings.inputmethod.VirtualKeyboardFragment;
import com.android.settings.language.LanguageAndInputSettings;
@@ -139,7 +136,6 @@ public final class SearchIndexableResources {
addIndex(SpecialAccessSettings.class,
R.xml.special_access, R.drawable.ic_settings_applications);
addIndex(UserSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_multiuser);
addIndex(GestureSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
addIndex(AssistGestureSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
addIndex(PickupGestureSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
addIndex(DoubleTapScreenSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
@@ -156,8 +152,6 @@ public final class SearchIndexableResources {
addIndex(ScreenPinningSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_security);
addIndex(UserAndAccountDashboardFragment.class, NO_DATA_RES_ID,
R.drawable.ic_settings_accounts);
addIndex(InputMethodAndLanguageSettings.class,
NO_DATA_RES_ID, R.drawable.ic_settings_language);
addIndex(VirtualKeyboardFragment.class, NO_DATA_RES_ID, R.drawable.ic_settings_language);
addIndex(AvailableVirtualKeyboardFragment.class,
NO_DATA_RES_ID, R.drawable.ic_settings_language);

View File

@@ -1,195 +0,0 @@
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.gesture;
import android.content.Context;
import android.content.Intent;
import android.provider.Settings.Secure;
import android.support.test.filters.MediumTest;
import android.support.test.uiautomator.UiDevice;
import android.support.test.uiautomator.UiObject;
import android.support.test.uiautomator.UiSelector;
import android.support.test.uiautomator.UiScrollable;
import android.test.InstrumentationTestCase;
import android.util.Log;
import android.widget.RelativeLayout;
import android.widget.Switch;
import com.android.settings.R;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import org.junit.Test;
/**
* Test for Gesture preferences.
*/
@MediumTest
public class GestureSettingsTest extends InstrumentationTestCase {
private static final String TAG = "GestureSettingsTest";
private UiDevice mDevice;
private Context mTargetContext;
private String mTargetPackage;
@Override
protected void setUp() throws Exception {
super.setUp();
mDevice = UiDevice.getInstance(getInstrumentation());
mTargetContext = getInstrumentation().getTargetContext();
mTargetPackage = mTargetContext.getPackageName();
}
@Test
public void testAmbientDisplaySwitchPreference() throws Exception {
launchSettings();
UiObject dozeSwitch = getDozeSwitch();
assertNotNull(dozeSwitch);
assertTrue(dozeSwitch.exists());
assertToggleStateMatchesSettingValue(dozeSwitch, Secure.DOZE_ENABLED, 1, 1);
}
@Test
public void testGestureSettingsExists() throws Exception {
launchMoves();
UiObject titleObj = mDevice.findObject(new UiSelector().text(
mTargetContext.getResources().getString(R.string.gesture_preference_title)));
assertNotNull(titleObj);
assertTrue(titleObj.exists());
}
@Test
public void testCameraDoubleTapToggle() throws Exception {
assertSwitchToggle(mTargetContext.getResources().getString(
R.string.double_tap_power_for_camera_title),
Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0, 0);
}
@Test
public void testCameraDoubleTwistToggle() throws Exception {
assertSwitchToggle(mTargetContext.getResources().getString(
R.string.double_twist_for_camera_mode_title),
Secure.CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 1, 1);
}
@Test
public void testFingerprintSwipeToggle() throws Exception {
assertSwitchToggle(mTargetContext.getResources().getString(
R.string.fingerprint_swipe_for_notifications_title),
Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, 0, 1);
}
@Test
public void testDozeDoubleTapToggle() throws Exception {
assertSwitchToggle(mTargetContext.getResources().getString(
R.string.ambient_display_title),
Secure.DOZE_PULSE_ON_DOUBLE_TAP, 1, 1);
}
@Test
public void testDozePickupToggle() throws Exception {
assertSwitchToggle(mTargetContext.getResources().getString(
R.string.ambient_display_pickup_title),
Secure.DOZE_PULSE_ON_PICK_UP, 1, 1);
}
private void launchSettings() {
Intent settingsIntent = new Intent(Intent.ACTION_MAIN)
.addCategory(Intent.CATEGORY_LAUNCHER)
.setPackage(mTargetPackage)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getInstrumentation().getContext().startActivity(settingsIntent);
}
private void launchMoves() throws Exception {
launchSettings();
UiScrollable settings = new UiScrollable(
new UiSelector().packageName(mTargetPackage).scrollable(true));
String titleMoves =
mTargetContext.getResources().getString(R.string.gesture_preference_title);
settings.scrollTextIntoView(titleMoves);
mDevice.findObject(new UiSelector().text(titleMoves)).click();
}
private void navigateToMovesSetting(String title) throws Exception {
launchMoves();
UiScrollable moves = new UiScrollable(
new UiSelector().packageName(mTargetPackage).scrollable(true));
moves.scrollTextIntoView(title);
}
private UiScrollable navigateToAmbientDisplay() throws Exception {
UiScrollable settings = new UiScrollable(
new UiSelector().packageName(mTargetPackage).scrollable(true));
String titleDisplay =
mTargetContext.getResources().getString(R.string.display_settings_title);
settings.scrollTextIntoView(titleDisplay);
mDevice.findObject(new UiSelector().text(titleDisplay)).click();
settings.scrollTextIntoView(mTargetContext.getResources().getString(R.string.doze_title));
return settings;
}
private UiObject getGestureSwitch(String title) throws Exception {
UiObject titleView = mDevice.findObject(new UiSelector().text(title));
UiObject gestureSwitch =
titleView.getFromParent(new UiSelector().className(Switch.class.getName()));
assertNotNull(gestureSwitch);
assertTrue(gestureSwitch.exists());
return gestureSwitch;
}
private UiObject getDozeSwitch() throws Exception {
UiScrollable settings = navigateToAmbientDisplay();
UiObject dozeSwitch = null;
UiSelector relativeLayoutSelector =
new UiSelector().className(RelativeLayout.class.getName());
String titleDoze = mTargetContext.getResources().getString(R.string.doze_title);
for (int i = 0; i <= settings.getChildCount(relativeLayoutSelector); i++) {
UiObject relativeLayout = settings.getChild(relativeLayoutSelector.instance(i));
if (relativeLayout.getChildCount() != 2) {
continue;
}
UiObject obj1 = relativeLayout.getChild(new UiSelector().index(0));
if (obj1.getText() == titleDoze) {
return relativeLayout.getFromParent(
new UiSelector().className(Switch.class.getName()));
}
}
return null;
}
private void assertSwitchToggle(String title, String key, int defaultVal, int enabledVal)
throws Exception {
navigateToMovesSetting(title);
assertToggleStateMatchesSettingValue(getGestureSwitch(title), key, defaultVal, enabledVal);
}
private void assertToggleStateMatchesSettingValue (
UiObject testSwitch, String key, int defaultVal, int enabledVal) throws Exception {
// check initial state
int currentValue = Secure.getInt(mTargetContext.getContentResolver(), key, defaultVal);
boolean enabled = currentValue == enabledVal;
assertEquals(enabled, testSwitch.isChecked());
// toggle the preference
testSwitch.click();
assertEquals(!enabled, testSwitch.isChecked());
int newValue = currentValue == 1 ? 0 : 1;
assertEquals(newValue, Secure.getInt(mTargetContext.getContentResolver(), key, defaultVal));
}
}

View File

@@ -3,6 +3,5 @@ com.android.settings.language.LanguageAndRegionSettings
com.android.settings.notification.ZenModePrioritySettings
com.android.settings.inputmethod.InputAndGestureSettings
com.android.settings.accounts.AccountDetailDashboardFragment
com.android.settings.gestures.GestureSettings
com.android.settings.fuelgauge.PowerUsageDetail
com.android.settings.deviceinfo.StorageProfileFragment

View File

@@ -58,9 +58,9 @@ import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.accessibility.AccessibilitySettings;
import com.android.settings.inputmethod.AvailableVirtualKeyboardFragment;
import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
import com.android.settings.inputmethod.PhysicalKeyboardFragment;
import com.android.settings.inputmethod.VirtualKeyboardFragment;
import com.android.settings.language.LanguageAndInputSettings;
import com.android.settings.print.PrintSettingsFragment;
import com.android.settings.testutils.shadow.ShadowActivityWithLoadManager;
import com.android.settings.testutils.shadow.ShadowContextImplWithRegisterReceiver;
@@ -417,7 +417,7 @@ public class DynamicIndexableContentMonitorTest {
final ContentObserver observer = extractContentObserver(UserDictionary.Words.CONTENT_URI);
assertThat(observer).isNotNull();
verifyRebuildIndexing(InputMethodAndLanguageSettings.class);
verifyRebuildIndexing(LanguageAndInputSettings.class);
/*
* When user dictionary content is changed, rebuild indexing happens.
@@ -426,7 +426,7 @@ public class DynamicIndexableContentMonitorTest {
observer.onChange(false /* selfChange */, UserDictionary.Words.CONTENT_URI);
verifyRebuildIndexing(InputMethodAndLanguageSettings.class);
verifyRebuildIndexing(LanguageAndInputSettings.class);
}
/*

View File

@@ -56,40 +56,40 @@ public class XmlParserUtilTest {
@Test
public void testDataTitleValid_ReturnsPreferenceTitle() {
XmlResourceParser parser = getChildByType(R.xml.gesture_settings,
"com.android.settings.gestures.GesturePreference");
XmlResourceParser parser = getChildByType(R.xml.ia_display_settings,
"com.android.settings.TimeoutListPreference");
final AttributeSet attrs = Xml.asAttributeSet(parser);
String title = XmlParserUtils.getDataTitle(mContext, attrs);
String expTitle = mContext.getString(R.string.assist_gesture_title);
String expTitle = mContext.getString(R.string.screen_timeout);
assertThat(title).isEqualTo(expTitle);
}
@Test
public void testDataKeywordsValid_ReturnsPreferenceKeywords() {
XmlResourceParser parser = getParentPrimedParser(R.xml.gesture_settings);
XmlResourceParser parser = getParentPrimedParser(R.xml.ia_display_settings);
final AttributeSet attrs = Xml.asAttributeSet(parser);
String keywords = XmlParserUtils.getDataKeywords(mContext, attrs);
String expKeywords = mContext.getString(R.string.keywords_gesture);
String expKeywords = mContext.getString(R.string.keywords_display);
assertThat(keywords).isEqualTo(expKeywords);
}
@Test
public void testDataKeyValid_ReturnsPreferenceKey() {
XmlResourceParser parser = getChildByType(R.xml.gesture_settings,
"com.android.settings.gestures.GesturePreference");
XmlResourceParser parser = getChildByType(R.xml.ia_display_settings,
"com.android.settings.TimeoutListPreference");
final AttributeSet attrs = Xml.asAttributeSet(parser);
String key = XmlParserUtils.getDataKey(mContext, attrs);
String expKey = "gesture_assist";
String expKey = "screen_timeout";
assertThat(key).isEqualTo(expKey);
}
@Test
public void testDataSummaryValid_ReturnsPreferenceSummary() {
XmlResourceParser parser = getChildByType(R.xml.gesture_settings,
"com.android.settings.gestures.GesturePreference");
XmlResourceParser parser = getChildByType(R.xml.ia_display_settings,
"com.android.settings.TimeoutListPreference");
final AttributeSet attrs = Xml.asAttributeSet(parser);
String summary = XmlParserUtils.getDataSummary(mContext, attrs);
String expSummary = mContext.getString(R.string.assist_gesture_summary);
String expSummary = mContext.getString(R.string.screen_timeout_summary);
assertThat(summary).isEqualTo(expSummary);
}
@@ -128,7 +128,7 @@ public class XmlParserUtilTest {
@Test
public void testDataKeyInvalid_ReturnsNull() {
XmlResourceParser parser = getParentPrimedParser(R.xml.gesture_settings);
XmlResourceParser parser = getParentPrimedParser(R.xml.ia_display_settings);
final AttributeSet attrs = Xml.asAttributeSet(parser);
String key = XmlParserUtils.getDataKey(mContext, attrs);
assertThat(key).isNull();
@@ -136,7 +136,7 @@ public class XmlParserUtilTest {
@Test
public void testDataSummaryInvalid_ReturnsNull() {
XmlResourceParser parser = getParentPrimedParser(R.xml.gesture_settings);
XmlResourceParser parser = getParentPrimedParser(R.xml.ia_display_settings);
final AttributeSet attrs = Xml.asAttributeSet(parser);
String summary = XmlParserUtils.getDataSummary(mContext, attrs);
assertThat(summary).isNull();
@@ -144,7 +144,7 @@ public class XmlParserUtilTest {
@Test
public void testDataSummaryOffInvalid_ReturnsNull() {
XmlResourceParser parser = getParentPrimedParser(R.xml.gesture_settings);
XmlResourceParser parser = getParentPrimedParser(R.xml.ia_display_settings);
final AttributeSet attrs = Xml.asAttributeSet(parser);
String summaryOff = XmlParserUtils.getDataSummaryOff(mContext, attrs);
assertThat(summaryOff).isNull();
@@ -152,7 +152,7 @@ public class XmlParserUtilTest {
@Test
public void testDataEntriesInvalid_ReturnsNull() {
XmlResourceParser parser = getParentPrimedParser(R.xml.gesture_settings);
XmlResourceParser parser = getParentPrimedParser(R.xml.ia_display_settings);
final AttributeSet attrs = Xml.asAttributeSet(parser);
String entries = XmlParserUtils.getDataEntries(mContext, attrs);
assertThat(entries).isNull();

View File

@@ -29,7 +29,7 @@ import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.SubSettings;
import com.android.settings.TestConfig;
import com.android.settings.dashboard.SiteMapManager;
import com.android.settings.gestures.GestureSettings;
import com.android.settings.gestures.SwipeToNotificationSettings;
import com.android.settings.search2.ResultPayload.PayloadType;
import org.junit.Before;
@@ -155,7 +155,7 @@ public class CursorToSearchResultConverterTest {
TITLES[0], // Title
SUMMARY, // Summary on
SUMMARY, // summary off
GestureSettings.class.getName(),
SwipeToNotificationSettings.class.getName(),
BLANK, // screen title
null, // icon
BLANK, // action
@@ -226,7 +226,7 @@ public class CursorToSearchResultConverterTest {
TITLES[0], // Title
SUMMARY, // Summary on
SUMMARY, // summary off
GestureSettings.class.getName(),
SwipeToNotificationSettings.class.getName(),
BLANK, // screen title
null, // icon
BLANK, // action

View File

@@ -205,25 +205,25 @@ public class DatabaseIndexingManagerTest {
@Test
public void testAddResource_RowsInserted() {
SearchIndexableResource resource = getFakeResource(R.xml.gesture_settings);
SearchIndexableResource resource = getFakeResource(R.xml.ia_display_settings);
mManager.indexOneSearchIndexableData(mDb, localeStr, resource,
new HashMap<>());
Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index", null);
assertThat(cursor.getCount()).isEqualTo(7);
assertThat(cursor.getCount()).isEqualTo(16);
}
@Test
public void testAddResourceWithNIKs_RowsInsertedDisabled() {
SearchIndexableResource resource = getFakeResource(R.xml.gesture_settings);
// Only add 2 of 6 items to be disabled.
String[] keys = {"gesture_double_tap_power", "gesture_swipe_down_fingerprint"};
SearchIndexableResource resource = getFakeResource(R.xml.ia_display_settings);
// Only add 2 of 16 items to be disabled.
String[] keys = {"brightness", "wallpaper"};
Map<String, List<String>> niks = getNonIndexableKeys(keys);
mManager.indexOneSearchIndexableData(mDb, localeStr, resource, niks);
Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE enabled = 0", null);
assertThat(cursor.getCount()).isEqualTo(2);
cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE enabled = 1", null);
assertThat(cursor.getCount()).isEqualTo(5);
assertThat(cursor.getCount()).isEqualTo(14);
}
@Test
@@ -306,7 +306,7 @@ public class DatabaseIndexingManagerTest {
@Test
public void testAddResourceCustomSetting_RowsMatch() {
SearchIndexableResource resource = getFakeResource(R.xml.gesture_settings);
SearchIndexableResource resource = getFakeResource(R.xml.swipe_to_notification_settings);
mManager.indexOneSearchIndexableData(mDb, localeStr, resource,
new HashMap<>());
final String prefTitle =
@@ -339,7 +339,7 @@ public class DatabaseIndexingManagerTest {
assertThat(cursor.getString(9)).isEmpty();
// Screen Title
assertThat(cursor.getString(10)).isEqualTo(
mContext.getString(R.string.gesture_preference_title));
mContext.getString(R.string.fingerprint_swipe_for_notifications_title));
// Class Name
assertThat(cursor.getString(11)).isEqualTo(className);
// Icon
@@ -477,7 +477,7 @@ public class DatabaseIndexingManagerTest {
@Test
public void testResourceProvider_RowInserted() {
SearchIndexableResource resource = getFakeResource(R.xml.gesture_settings);
SearchIndexableResource resource = getFakeResource(R.xml.swipe_to_notification_settings);
resource.xmlResId = 0;
resource.className = "com.android.settings.display.ScreenZoomSettings";
@@ -489,7 +489,7 @@ public class DatabaseIndexingManagerTest {
@Test
public void testResourceProvider_Matches() {
SearchIndexableResource resource = getFakeResource(R.xml.gesture_settings);
SearchIndexableResource resource = getFakeResource(R.xml.swipe_to_notification_settings);
resource.xmlResId = 0;
resource.className = "com.android.settings.display.ScreenZoomSettings";