Stop redirecting the user dicitonary settings fragments
Bug: 9755092 Change-Id: If4443412ca8f33e076edbe2c23c15b07b9b89fa9
This commit is contained in:
@@ -20,10 +20,12 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.Settings.KeyboardLayoutPickerActivity;
|
import com.android.settings.Settings.KeyboardLayoutPickerActivity;
|
||||||
import com.android.settings.Settings.SpellCheckersSettingsActivity;
|
import com.android.settings.Settings.SpellCheckersSettingsActivity;
|
||||||
import com.android.settings.SettingsPreferenceFragment;
|
import com.android.settings.SettingsPreferenceFragment;
|
||||||
|
import com.android.settings.UserDictionarySettings;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.VoiceInputOutputSettings;
|
import com.android.settings.VoiceInputOutputSettings;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
import android.app.Fragment;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@@ -38,6 +40,7 @@ import android.os.Handler;
|
|||||||
import android.preference.CheckBoxPreference;
|
import android.preference.CheckBoxPreference;
|
||||||
import android.preference.ListPreference;
|
import android.preference.ListPreference;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
|
import android.preference.Preference.OnPreferenceClickListener;
|
||||||
import android.preference.PreferenceCategory;
|
import android.preference.PreferenceCategory;
|
||||||
import android.preference.PreferenceScreen;
|
import android.preference.PreferenceScreen;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
@@ -200,7 +203,35 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment
|
|||||||
// not present or disabled. In this case we need to remove the preference.
|
// not present or disabled. In this case we need to remove the preference.
|
||||||
getPreferenceScreen().removePreference(userDictionaryPreference);
|
getPreferenceScreen().removePreference(userDictionaryPreference);
|
||||||
} else {
|
} else {
|
||||||
userDictionaryPreference.setFragment(UserDictionaryList.class.getName());
|
userDictionaryPreference.setOnPreferenceClickListener(
|
||||||
|
new OnPreferenceClickListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceClick(Preference arg0) {
|
||||||
|
// Redirect to UserDictionarySettings if the user needs only one
|
||||||
|
// language.
|
||||||
|
final Bundle extras = new Bundle();
|
||||||
|
final Class<? extends Fragment> targetFragment;
|
||||||
|
if (localeSet.size() <= 1) {
|
||||||
|
if (!localeSet.isEmpty()) {
|
||||||
|
// If the size of localeList is 0, we don't set the locale
|
||||||
|
// parameter in the extras. This will be interpreted by the
|
||||||
|
// UserDictionarySettings class as meaning
|
||||||
|
// "the current locale". Note that with the current code for
|
||||||
|
// UserDictionaryList#getUserDictionaryLocalesSet()
|
||||||
|
// the locale list always has at least one element, since it
|
||||||
|
// always includes the current locale explicitly.
|
||||||
|
// @see UserDictionaryList.getUserDictionaryLocalesSet().
|
||||||
|
extras.putString("locale", localeSet.first());
|
||||||
|
}
|
||||||
|
targetFragment = UserDictionarySettings.class;
|
||||||
|
} else {
|
||||||
|
targetFragment = UserDictionaryList.class;
|
||||||
|
}
|
||||||
|
startFragment(InputMethodAndLanguageSettings.this,
|
||||||
|
targetFragment.getCanonicalName(), -1, extras);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -124,9 +124,8 @@ public class UserDictionaryList extends SettingsPreferenceFragment {
|
|||||||
/**
|
/**
|
||||||
* Creates the entries that allow the user to go into the user dictionary for each locale.
|
* Creates the entries that allow the user to go into the user dictionary for each locale.
|
||||||
* @param userDictGroup The group to put the settings in.
|
* @param userDictGroup The group to put the settings in.
|
||||||
* @return the shown language set
|
|
||||||
*/
|
*/
|
||||||
protected TreeSet<String> createUserDictSettingsAndReturnSet(PreferenceGroup userDictGroup) {
|
protected void createUserDictSettings(PreferenceGroup userDictGroup) {
|
||||||
final Activity activity = getActivity();
|
final Activity activity = getActivity();
|
||||||
userDictGroup.removeAll();
|
userDictGroup.removeAll();
|
||||||
final TreeSet<String> localeSet =
|
final TreeSet<String> localeSet =
|
||||||
@@ -144,7 +143,6 @@ public class UserDictionaryList extends SettingsPreferenceFragment {
|
|||||||
userDictGroup.addPreference(createUserDictionaryPreference(locale, activity));
|
userDictGroup.addPreference(createUserDictionaryPreference(locale, activity));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return localeSet;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -173,25 +171,6 @@ public class UserDictionaryList extends SettingsPreferenceFragment {
|
|||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
final TreeSet<String> localeSet = createUserDictSettingsAndReturnSet(getPreferenceScreen());
|
createUserDictSettings(getPreferenceScreen());
|
||||||
if (localeSet.size() <= 1) {
|
|
||||||
// Redirect to UserDictionarySettings if the user needs only one language.
|
|
||||||
final Bundle extras = new Bundle();
|
|
||||||
if (!localeSet.isEmpty()) {
|
|
||||||
// If the size of localeList is 0, we don't set the locale parameter in the
|
|
||||||
// extras. This will be interpreted by the UserDictionarySettings class as
|
|
||||||
// meaning "the current locale".
|
|
||||||
// Note that with the current code for
|
|
||||||
// UserDictionaryList#getUserDictionaryLocalesSet()
|
|
||||||
// the locale list always has at least one element, since it always includes
|
|
||||||
// the current locale explicitly.
|
|
||||||
// @see UserDictionaryList.getUserDictionaryLocalesSet().
|
|
||||||
extras.putString("locale", localeSet.first());
|
|
||||||
}
|
|
||||||
startFragment(this,
|
|
||||||
com.android.settings.UserDictionarySettings.class.getCanonicalName(), -1,
|
|
||||||
extras);
|
|
||||||
finish();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user