mirror of
https://gitlab.futo.org/keyboard/latinime.git
synced 2024-09-28 14:54:30 +01:00
Merge "Add Accounts & privacy settings in LatinIME"
This commit is contained in:
commit
a7c5dcdedf
@ -38,6 +38,8 @@
|
|||||||
|
|
||||||
<!-- Settings screen title for preferences [CHAR LIMIT=33]-->
|
<!-- Settings screen title for preferences [CHAR LIMIT=33]-->
|
||||||
<string name="settings_screen_preferences">Preferences</string>
|
<string name="settings_screen_preferences">Preferences</string>
|
||||||
|
<!-- Settings screen title for accounts and privacy preferences [CHAR LIMIT=33]-->
|
||||||
|
<string name="settings_screen_accounts">Accounts & privacy</string>
|
||||||
<!-- Settings screen title for appearance & layouts preferences [CHAR LIMIT=33] -->
|
<!-- Settings screen title for appearance & layouts preferences [CHAR LIMIT=33] -->
|
||||||
<string name="settings_screen_appearance">Appearance & layouts</string>
|
<string name="settings_screen_appearance">Appearance & layouts</string>
|
||||||
<!-- Settings screen title for multilingual options [CHAR_LIMIT=33] -->
|
<!-- Settings screen title for multilingual options [CHAR_LIMIT=33] -->
|
||||||
@ -177,6 +179,17 @@
|
|||||||
<!-- Title of the item to change the keyboard theme [CHAR LIMIT=20]-->
|
<!-- Title of the item to change the keyboard theme [CHAR LIMIT=20]-->
|
||||||
<string name="keyboard_layout">Keyboard theme</string>
|
<string name="keyboard_layout">Keyboard theme</string>
|
||||||
|
|
||||||
|
<!-- Title of the preference item for switching accounts [CHAR LIMIT=30] -->
|
||||||
|
<string name="switch_accounts">Switch accounts</string>
|
||||||
|
|
||||||
|
<!-- Summary of the preference item for switching accounts when no accounts
|
||||||
|
are selected [CHAR LIMIT=65] -->
|
||||||
|
<string name="no_accounts_selected">No accounts selected</string>
|
||||||
|
|
||||||
|
<!-- Summary of the preference item for switching accounts when an account
|
||||||
|
is selected [CHAR LIMIT=65] -->
|
||||||
|
<string name="account_selected">Currently using <xliff:g id="EMAIL_ADDRESS" example="someone@example.com">%1$s</xliff:g></string>
|
||||||
|
|
||||||
<!-- Description for English (UK) keyboard subtype [CHAR LIMIT=25]
|
<!-- Description for English (UK) keyboard subtype [CHAR LIMIT=25]
|
||||||
(UK) should be an abbreviation of United Kingdom to fit in the CHAR LIMIT. -->
|
(UK) should be an abbreviation of United Kingdom to fit in the CHAR LIMIT. -->
|
||||||
<string name="subtype_en_GB">English (UK)</string>
|
<string name="subtype_en_GB">English (UK)</string>
|
||||||
|
@ -22,6 +22,10 @@
|
|||||||
android:fragment="com.android.inputmethod.latin.settings.PreferencesSettingsFragment"
|
android:fragment="com.android.inputmethod.latin.settings.PreferencesSettingsFragment"
|
||||||
android:title="@string/settings_screen_preferences"
|
android:title="@string/settings_screen_preferences"
|
||||||
android:key="screen_preferences" />
|
android:key="screen_preferences" />
|
||||||
|
<PreferenceScreen
|
||||||
|
android:fragment="com.android.inputmethod.latin.settings.AccountsSettingsFragment"
|
||||||
|
android:title="@string/settings_screen_accounts"
|
||||||
|
android:key="screen_accounts" />
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
android:fragment="com.android.inputmethod.latin.settings.AppearanceSettingsFragment"
|
android:fragment="com.android.inputmethod.latin.settings.AppearanceSettingsFragment"
|
||||||
android:title="@string/settings_screen_appearance"
|
android:title="@string/settings_screen_appearance"
|
||||||
|
37
java/res/xml/prefs_screen_accounts.xml
Normal file
37
java/res/xml/prefs_screen_accounts.xml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright (C) 2014 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:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
|
||||||
|
android:title="@string/settings_screen_accounts">
|
||||||
|
|
||||||
|
<!-- This preference is a dummy view of the underlying preference.
|
||||||
|
This isn't persisted and the summary/title is refreshed by the fragment
|
||||||
|
after inspecting the underlying account preference. -->
|
||||||
|
<Preference
|
||||||
|
android:key="account_switcher"
|
||||||
|
android:persistent="false"
|
||||||
|
android:title="@string/switch_accounts"
|
||||||
|
android:summary="@string/no_accounts_selected" />
|
||||||
|
|
||||||
|
<!-- title will be set programmatically to embed application name -->
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:key="pref_enable_metrics_logging"
|
||||||
|
android:summary="@string/enable_metrics_logging_summary"
|
||||||
|
android:defaultValue="true"
|
||||||
|
android:persistent="true" />
|
||||||
|
</PreferenceScreen>
|
@ -0,0 +1,82 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2014 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.inputmethod.latin.settings;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
|
import android.content.res.Resources;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.preference.Preference;
|
||||||
|
|
||||||
|
import com.android.inputmethod.latin.R;
|
||||||
|
import com.android.inputmethod.latin.SubtypeSwitcher;
|
||||||
|
import com.android.inputmethod.latin.define.ProductionFlags;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* "Accounts & Privacy" settings sub screen.
|
||||||
|
*
|
||||||
|
* This settings sub screen handles the following preferences:
|
||||||
|
* - TODO: Account selection/management for IME
|
||||||
|
* - TODO: Sync preferences
|
||||||
|
* - TODO: Privacy preferences
|
||||||
|
*/
|
||||||
|
public final class AccountsSettingsFragment extends SubScreenFragment {
|
||||||
|
@Override
|
||||||
|
public void onCreate(final Bundle icicle) {
|
||||||
|
super.onCreate(icicle);
|
||||||
|
addPreferencesFromResource(R.xml.prefs_screen_accounts);
|
||||||
|
|
||||||
|
final Resources res = getResources();
|
||||||
|
final Context context = getActivity();
|
||||||
|
|
||||||
|
// When we are called from the Settings application but we are not already running, some
|
||||||
|
// singleton and utility classes may not have been initialized. We have to call
|
||||||
|
// initialization method of these classes here. See {@link LatinIME#onCreate()}.
|
||||||
|
SubtypeSwitcher.init(context);
|
||||||
|
|
||||||
|
if (ProductionFlags.IS_METRICS_LOGGING_SUPPORTED) {
|
||||||
|
final Preference enableMetricsLogging =
|
||||||
|
findPreference(Settings.PREF_ENABLE_METRICS_LOGGING);
|
||||||
|
if (enableMetricsLogging != null) {
|
||||||
|
final String enableMetricsLoggingTitle = res.getString(
|
||||||
|
R.string.enable_metrics_logging, getApplicationName());
|
||||||
|
enableMetricsLogging.setTitle(enableMetricsLoggingTitle);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
removePreference(Settings.PREF_ENABLE_METRICS_LOGGING);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
refreshAccountSelection();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) {
|
||||||
|
// TODO: Look at the preference that changed before refreshing the view.
|
||||||
|
refreshAccountSelection();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void refreshAccountSelection() {
|
||||||
|
// TODO: Fetch the currently selected account.
|
||||||
|
// Set the summary for the account preference.
|
||||||
|
// Depending on the account selection, enable/disable preferences that
|
||||||
|
// depend on an account.
|
||||||
|
}
|
||||||
|
}
|
@ -93,14 +93,16 @@ public final class AdvancedSettingsFragment extends SubScreenFragment {
|
|||||||
removePreference(Settings.PREF_SHOW_SETUP_WIZARD_ICON);
|
removePreference(Settings.PREF_SHOW_SETUP_WIZARD_ICON);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If metrics logging isn't supported, or account sign in is enabled
|
||||||
|
// don't show the logging preference.
|
||||||
|
// TODO: Eventually when we enable account sign in by default,
|
||||||
|
// we'll remove logging preference from here.
|
||||||
if (ProductionFlags.IS_METRICS_LOGGING_SUPPORTED) {
|
if (ProductionFlags.IS_METRICS_LOGGING_SUPPORTED) {
|
||||||
final Preference enableMetricsLogging =
|
final Preference enableMetricsLogging =
|
||||||
findPreference(Settings.PREF_ENABLE_METRICS_LOGGING);
|
findPreference(Settings.PREF_ENABLE_METRICS_LOGGING);
|
||||||
if (enableMetricsLogging != null) {
|
if (enableMetricsLogging != null) {
|
||||||
final int applicationLabelRes = context.getApplicationInfo().labelRes;
|
|
||||||
final String applicationName = res.getString(applicationLabelRes);
|
|
||||||
final String enableMetricsLoggingTitle = res.getString(
|
final String enableMetricsLoggingTitle = res.getString(
|
||||||
R.string.enable_metrics_logging, applicationName);
|
R.string.enable_metrics_logging, getApplicationName());
|
||||||
enableMetricsLogging.setTitle(enableMetricsLoggingTitle);
|
enableMetricsLogging.setTitle(enableMetricsLoggingTitle);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -43,6 +43,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
|
|||||||
private static final String TAG = Settings.class.getSimpleName();
|
private static final String TAG = Settings.class.getSimpleName();
|
||||||
// Settings screens
|
// Settings screens
|
||||||
public static final String SCREEN_PREFERENCES = "screen_preferences";
|
public static final String SCREEN_PREFERENCES = "screen_preferences";
|
||||||
|
public static final String SCREEN_ACCOUNTS = "screen_accounts";
|
||||||
public static final String SCREEN_APPEARANCE = "screen_appearance";
|
public static final String SCREEN_APPEARANCE = "screen_appearance";
|
||||||
public static final String SCREEN_THEME = "screen_theme";
|
public static final String SCREEN_THEME = "screen_theme";
|
||||||
public static final String SCREEN_MULTILINGUAL = "screen_multilingual";
|
public static final String SCREEN_MULTILINGUAL = "screen_multilingual";
|
||||||
@ -104,6 +105,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
|
|||||||
public static final String PREF_KEY_IS_INTERNAL = "pref_key_is_internal";
|
public static final String PREF_KEY_IS_INTERNAL = "pref_key_is_internal";
|
||||||
|
|
||||||
public static final String PREF_ENABLE_METRICS_LOGGING = "pref_enable_metrics_logging";
|
public static final String PREF_ENABLE_METRICS_LOGGING = "pref_enable_metrics_logging";
|
||||||
|
public static final String PREF_ACCOUNT_NAME = "pref_account_name";
|
||||||
|
|
||||||
// This preference key is deprecated. Use {@link #PREF_SHOW_LANGUAGE_SWITCH_KEY} instead.
|
// This preference key is deprecated. Use {@link #PREF_SHOW_LANGUAGE_SWITCH_KEY} instead.
|
||||||
// This is being used only for the backward compatibility.
|
// This is being used only for the backward compatibility.
|
||||||
|
@ -25,6 +25,7 @@ import android.view.MenuInflater;
|
|||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
|
||||||
import com.android.inputmethod.latin.R;
|
import com.android.inputmethod.latin.R;
|
||||||
|
import com.android.inputmethod.latin.define.ProductionFlags;
|
||||||
import com.android.inputmethod.latin.utils.ApplicationUtils;
|
import com.android.inputmethod.latin.utils.ApplicationUtils;
|
||||||
import com.android.inputmethod.latin.utils.FeedbackUtils;
|
import com.android.inputmethod.latin.utils.FeedbackUtils;
|
||||||
import com.android.inputmethodcommon.InputMethodSettingsFragment;
|
import com.android.inputmethodcommon.InputMethodSettingsFragment;
|
||||||
@ -51,6 +52,10 @@ public final class SettingsFragment extends InputMethodSettingsFragment {
|
|||||||
final Preference multilingualOptions = findPreference(Settings.SCREEN_MULTILINGUAL);
|
final Preference multilingualOptions = findPreference(Settings.SCREEN_MULTILINGUAL);
|
||||||
preferenceScreen.removePreference(multilingualOptions);
|
preferenceScreen.removePreference(multilingualOptions);
|
||||||
}
|
}
|
||||||
|
if (!ProductionFlags.ENABLE_ACCOUNT_SIGN_IN) {
|
||||||
|
final Preference accountsPreference = findPreference(Settings.SCREEN_ACCOUNTS);
|
||||||
|
preferenceScreen.removePreference(accountsPreference);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -20,6 +20,7 @@ import android.app.backup.BackupManager;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
||||||
|
import android.content.res.Resources;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.ListPreference;
|
import android.preference.ListPreference;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
@ -79,6 +80,16 @@ abstract class SubScreenFragment extends PreferenceFragment
|
|||||||
return getPreferenceManager().getSharedPreferences();
|
return getPreferenceManager().getSharedPreferences();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the application name to display on the UI.
|
||||||
|
*/
|
||||||
|
final String getApplicationName() {
|
||||||
|
final Context context = getActivity();
|
||||||
|
final Resources res = getResources();
|
||||||
|
final int applicationLabelRes = context.getApplicationInfo().labelRes;
|
||||||
|
return res.getString(applicationLabelRes);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addPreferencesFromResource(final int preferencesResId) {
|
public void addPreferencesFromResource(final int preferencesResId) {
|
||||||
super.addPreferencesFromResource(preferencesResId);
|
super.addPreferencesFromResource(preferencesResId);
|
||||||
|
@ -18,6 +18,7 @@ package com.android.inputmethod.latin.utils;
|
|||||||
|
|
||||||
import com.android.inputmethod.dictionarypack.DictionarySettingsFragment;
|
import com.android.inputmethod.dictionarypack.DictionarySettingsFragment;
|
||||||
import com.android.inputmethod.latin.about.AboutPreferences;
|
import com.android.inputmethod.latin.about.AboutPreferences;
|
||||||
|
import com.android.inputmethod.latin.settings.AccountsSettingsFragment;
|
||||||
import com.android.inputmethod.latin.settings.AdvancedSettingsFragment;
|
import com.android.inputmethod.latin.settings.AdvancedSettingsFragment;
|
||||||
import com.android.inputmethod.latin.settings.AppearanceSettingsFragment;
|
import com.android.inputmethod.latin.settings.AppearanceSettingsFragment;
|
||||||
import com.android.inputmethod.latin.settings.CorrectionSettingsFragment;
|
import com.android.inputmethod.latin.settings.CorrectionSettingsFragment;
|
||||||
@ -42,6 +43,7 @@ public class FragmentUtils {
|
|||||||
sLatinImeFragments.add(DictionarySettingsFragment.class.getName());
|
sLatinImeFragments.add(DictionarySettingsFragment.class.getName());
|
||||||
sLatinImeFragments.add(AboutPreferences.class.getName());
|
sLatinImeFragments.add(AboutPreferences.class.getName());
|
||||||
sLatinImeFragments.add(PreferencesSettingsFragment.class.getName());
|
sLatinImeFragments.add(PreferencesSettingsFragment.class.getName());
|
||||||
|
sLatinImeFragments.add(AccountsSettingsFragment.class.getName());
|
||||||
sLatinImeFragments.add(AppearanceSettingsFragment.class.getName());
|
sLatinImeFragments.add(AppearanceSettingsFragment.class.getName());
|
||||||
sLatinImeFragments.add(ThemeSettingsFragment.class.getName());
|
sLatinImeFragments.add(ThemeSettingsFragment.class.getName());
|
||||||
sLatinImeFragments.add(MultiLingualSettingsFragment.class.getName());
|
sLatinImeFragments.add(MultiLingualSettingsFragment.class.getName());
|
||||||
|
Loading…
Reference in New Issue
Block a user