Loading res/xml/input_methods_subtype.xml 0 → 100644 +25 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8"?> <!-- /* * Copyright 2018, 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:key="input_methods_subtype_preference" android:title="@string/app_settings_link" settings:controller="com.android.settings.inputmethod.InputMethodAndSubtypePreferenceController" /> src/com/android/settings/inputmethod/InputMethodAndSubtypeEnabler.java +20 −24 Original line number Diff line number Diff line Loading @@ -16,17 +16,18 @@ package com.android.settings.inputmethod; import android.content.Context; import android.content.Intent; import android.os.Bundle; import androidx.preference.PreferenceScreen; import android.text.TextUtils; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.SettingsPreferenceFragment; import com.android.settingslib.inputmethod.InputMethodAndSubtypeEnablerManager; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; public class InputMethodAndSubtypeEnabler extends SettingsPreferenceFragment { private InputMethodAndSubtypeEnablerManager mManager; public class InputMethodAndSubtypeEnabler extends DashboardFragment { private static final String TAG = "InputMethodAndSubtypeEnabler"; @Override public int getMetricsCategory() { Loading @@ -34,8 +35,18 @@ public class InputMethodAndSubtypeEnabler extends SettingsPreferenceFragment { } @Override public void onCreate(final Bundle icicle) { super.onCreate(icicle); protected int getPreferenceScreenResId() { return R.xml.input_methods_subtype; } @Override protected String getLogTag() { return TAG; } @Override public void onAttach(Context context) { super.onAttach(context); // Input method id should be available from an Intent when this preference is launched as a // single Activity (see InputMethodAndSubtypeEnablerActivity). It should be available Loading @@ -44,11 +55,8 @@ public class InputMethodAndSubtypeEnabler extends SettingsPreferenceFragment { final String targetImi = getStringExtraFromIntentOrArguments( android.provider.Settings.EXTRA_INPUT_METHOD_ID); final PreferenceScreen root = getPreferenceManager().createPreferenceScreen(getPrefContext()); mManager = new InputMethodAndSubtypeEnablerManager(this); mManager.init(this, targetImi, root); setPreferenceScreen(root); use(InputMethodAndSubtypePreferenceController.class).initialize(this /* fragment */, targetImi); } private String getStringExtraFromIntentOrArguments(final String name) { Loading @@ -69,16 +77,4 @@ public class InputMethodAndSubtypeEnabler extends SettingsPreferenceFragment { getActivity().setTitle(title); } } @Override public void onResume() { super.onResume(); mManager.refresh(getContext(), this); } @Override public void onPause() { super.onPause(); mManager.save(getContext(), this); } } src/com/android/settings/inputmethod/InputMethodAndSubtypePreferenceController.java 0 → 100644 +67 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 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.content.Context; import com.android.settings.core.BasePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.inputmethod.InputMethodAndSubtypeEnablerManager; import androidx.preference.PreferenceFragment; import androidx.preference.PreferenceScreen; public class InputMethodAndSubtypePreferenceController extends BasePreferenceController implements LifecycleObserver, OnStart, OnStop { private PreferenceFragment mFragment; private InputMethodAndSubtypeEnablerManager mManager; private String mTargetImi; public InputMethodAndSubtypePreferenceController(Context context, String key) { super(context, key); } public void initialize(PreferenceFragment fragment, String imi) { mFragment = fragment; mTargetImi = imi; mManager = new InputMethodAndSubtypeEnablerManager(mFragment); } @Override public int getAvailabilityStatus() { return AVAILABLE; } @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); mManager.init(mFragment, mTargetImi, screen); } @Override public void onStart() { mManager.refresh(mContext, mFragment); } @Override public void onStop() { mManager.save(mContext, mFragment); } } tests/robotests/assets/grandfather_not_implementing_index_provider +1 −0 Original line number Diff line number Diff line Loading @@ -27,3 +27,4 @@ com.android.settings.notification.ZenModeEventRuleSettings com.android.settings.notification.ZenModeScheduleRuleSettings com.android.settings.fuelgauge.RestrictedAppDetails com.android.settings.datetime.timezone.TimeZoneSettings com.android.settings.inputmethod.InputMethodAndSubtypeEnabler tests/robotests/assets/grandfather_not_implementing_indexable +0 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ com.android.settings.accessibility.ToggleScreenReaderPreferenceFragmentForSetupW com.android.settings.accessibility.ToggleSelectToSpeakPreferenceFragmentForSetupWizard com.android.settings.accounts.AccountSyncSettings com.android.settings.notification.RedactionInterstitial$RedactionInterstitialFragment com.android.settings.inputmethod.InputMethodAndSubtypeEnabler com.android.settings.applications.appinfo.DrawOverlayDetails com.android.settings.backup.ToggleBackupSettingFragment com.android.settings.users.UserDetailsSettings Loading Loading
res/xml/input_methods_subtype.xml 0 → 100644 +25 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8"?> <!-- /* * Copyright 2018, 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:key="input_methods_subtype_preference" android:title="@string/app_settings_link" settings:controller="com.android.settings.inputmethod.InputMethodAndSubtypePreferenceController" />
src/com/android/settings/inputmethod/InputMethodAndSubtypeEnabler.java +20 −24 Original line number Diff line number Diff line Loading @@ -16,17 +16,18 @@ package com.android.settings.inputmethod; import android.content.Context; import android.content.Intent; import android.os.Bundle; import androidx.preference.PreferenceScreen; import android.text.TextUtils; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.SettingsPreferenceFragment; import com.android.settingslib.inputmethod.InputMethodAndSubtypeEnablerManager; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; public class InputMethodAndSubtypeEnabler extends SettingsPreferenceFragment { private InputMethodAndSubtypeEnablerManager mManager; public class InputMethodAndSubtypeEnabler extends DashboardFragment { private static final String TAG = "InputMethodAndSubtypeEnabler"; @Override public int getMetricsCategory() { Loading @@ -34,8 +35,18 @@ public class InputMethodAndSubtypeEnabler extends SettingsPreferenceFragment { } @Override public void onCreate(final Bundle icicle) { super.onCreate(icicle); protected int getPreferenceScreenResId() { return R.xml.input_methods_subtype; } @Override protected String getLogTag() { return TAG; } @Override public void onAttach(Context context) { super.onAttach(context); // Input method id should be available from an Intent when this preference is launched as a // single Activity (see InputMethodAndSubtypeEnablerActivity). It should be available Loading @@ -44,11 +55,8 @@ public class InputMethodAndSubtypeEnabler extends SettingsPreferenceFragment { final String targetImi = getStringExtraFromIntentOrArguments( android.provider.Settings.EXTRA_INPUT_METHOD_ID); final PreferenceScreen root = getPreferenceManager().createPreferenceScreen(getPrefContext()); mManager = new InputMethodAndSubtypeEnablerManager(this); mManager.init(this, targetImi, root); setPreferenceScreen(root); use(InputMethodAndSubtypePreferenceController.class).initialize(this /* fragment */, targetImi); } private String getStringExtraFromIntentOrArguments(final String name) { Loading @@ -69,16 +77,4 @@ public class InputMethodAndSubtypeEnabler extends SettingsPreferenceFragment { getActivity().setTitle(title); } } @Override public void onResume() { super.onResume(); mManager.refresh(getContext(), this); } @Override public void onPause() { super.onPause(); mManager.save(getContext(), this); } }
src/com/android/settings/inputmethod/InputMethodAndSubtypePreferenceController.java 0 → 100644 +67 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 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.content.Context; import com.android.settings.core.BasePreferenceController; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.inputmethod.InputMethodAndSubtypeEnablerManager; import androidx.preference.PreferenceFragment; import androidx.preference.PreferenceScreen; public class InputMethodAndSubtypePreferenceController extends BasePreferenceController implements LifecycleObserver, OnStart, OnStop { private PreferenceFragment mFragment; private InputMethodAndSubtypeEnablerManager mManager; private String mTargetImi; public InputMethodAndSubtypePreferenceController(Context context, String key) { super(context, key); } public void initialize(PreferenceFragment fragment, String imi) { mFragment = fragment; mTargetImi = imi; mManager = new InputMethodAndSubtypeEnablerManager(mFragment); } @Override public int getAvailabilityStatus() { return AVAILABLE; } @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); mManager.init(mFragment, mTargetImi, screen); } @Override public void onStart() { mManager.refresh(mContext, mFragment); } @Override public void onStop() { mManager.save(mContext, mFragment); } }
tests/robotests/assets/grandfather_not_implementing_index_provider +1 −0 Original line number Diff line number Diff line Loading @@ -27,3 +27,4 @@ com.android.settings.notification.ZenModeEventRuleSettings com.android.settings.notification.ZenModeScheduleRuleSettings com.android.settings.fuelgauge.RestrictedAppDetails com.android.settings.datetime.timezone.TimeZoneSettings com.android.settings.inputmethod.InputMethodAndSubtypeEnabler
tests/robotests/assets/grandfather_not_implementing_indexable +0 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ com.android.settings.accessibility.ToggleScreenReaderPreferenceFragmentForSetupW com.android.settings.accessibility.ToggleSelectToSpeakPreferenceFragmentForSetupWizard com.android.settings.accounts.AccountSyncSettings com.android.settings.notification.RedactionInterstitial$RedactionInterstitialFragment com.android.settings.inputmethod.InputMethodAndSubtypeEnabler com.android.settings.applications.appinfo.DrawOverlayDetails com.android.settings.backup.ToggleBackupSettingFragment com.android.settings.users.UserDetailsSettings Loading