Update system setting page subtext

- Move android version from about phone subtext to system update
- Updates strings for autofill, keyboard & input, factory reset, swipe
  for notification
- Add a new pref category for spell checker and personal dictionary
- Display "None" if any default app is not selected
- Display current keyboard type as language subtext

Bug: 36395109
Test: make RunSettingsRoboTests
Change-Id: Id6ca94ea31e55f1c1ec04e47dcf657a25c35c7fe
This commit is contained in:
Fan Zhang
2017-03-21 15:15:27 -07:00
parent aaa042de4e
commit 3720e0c4f1
13 changed files with 148 additions and 62 deletions

View File

@@ -20,14 +20,12 @@ import android.app.Activity;
import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.provider.SearchIndexableResource;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.core.PreferenceController;
import com.android.settings.core.lifecycle.Lifecycle;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.deviceinfo.AdditionalSystemUpdatePreferenceController;
import com.android.settings.deviceinfo.BasebandVersionPreferenceController;
import com.android.settings.deviceinfo.BuildNumberPreferenceController;
@@ -88,34 +86,6 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable {
getLifecycle());
}
private static class SummaryProvider implements SummaryLoader.SummaryProvider {
private final Context mContext;
private final SummaryLoader mSummaryLoader;
public SummaryProvider(Context context, SummaryLoader summaryLoader) {
mContext = context;
mSummaryLoader = summaryLoader;
}
@Override
public void setListening(boolean listening) {
if (listening) {
mSummaryLoader.setSummary(this, mContext.getString(R.string.about_summary,
Build.VERSION.RELEASE));
}
}
}
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);
}
};
private static List<PreferenceController> buildPreferenceControllers(Context context,
Activity activity, Fragment fragment, Lifecycle lifecycle) {
final List<PreferenceController> controllers = new ArrayList<>();

View File

@@ -24,6 +24,7 @@ import android.support.v7.preference.Preference;
import android.text.TextUtils;
import android.util.Log;
import com.android.settings.R;
import com.android.settings.applications.PackageManagerWrapper;
import com.android.settings.applications.PackageManagerWrapperImpl;
import com.android.settings.core.PreferenceController;
@@ -56,7 +57,7 @@ public abstract class DefaultAppPreferenceController extends PreferenceControlle
preference.setSummary(defaultAppLabel);
} else {
Log.d(TAG, "No default app");
preference.setSummary(null);
preference.setSummary(R.string.app_list_preference_none);
}
mayUpdateGearIcon(app, preference);
}

View File

@@ -17,6 +17,7 @@ package com.android.settings.deviceinfo;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.PersistableBundle;
import android.os.UserManager;
import android.support.v7.preference.Preference;
@@ -25,6 +26,7 @@ import android.telephony.CarrierConfigManager;
import android.text.TextUtils;
import android.util.Log;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.PreferenceController;
@@ -78,6 +80,12 @@ public class SystemUpdatePreferenceController extends PreferenceController {
return false;
}
@Override
public void updateState(Preference preference) {
preference.setSummary(mContext.getString(R.string.about_summary,
Build.VERSION.RELEASE));
}
/**
* Trigger client initiated action (send intent) on system update
*/

View File

@@ -16,11 +16,17 @@
package com.android.settings.language;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.UserHandle;
import android.provider.SearchIndexableResource;
import android.provider.Settings;
import android.speech.tts.TtsEngines;
import android.support.annotation.VisibleForTesting;
import android.text.TextUtils;
import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodManager;
import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.internal.logging.nano.MetricsProto;
@@ -28,14 +34,15 @@ 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.dashboard.SummaryLoader;
import com.android.settings.gestures.AssistGesturePreferenceController;
import com.android.settings.gestures.DoubleTapPowerPreferenceController;
import com.android.settings.gestures.DoubleTapScreenPreferenceController;
import com.android.settings.gestures.DoubleTwistPreferenceController;
import com.android.settings.gestures.PickupGesturePreferenceController;
import com.android.settings.gestures.SwipeToNotificationPreferenceController;
import com.android.settings.inputmethod.GameControllerPreferenceController;
import com.android.settings.inputmethod.SpellCheckerPreferenceController;
import com.android.settings.gestures.SwipeToNotificationPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider;
import java.util.ArrayList;
@@ -104,6 +111,43 @@ public class LanguageAndInputSettings extends DashboardFragment {
mAmbientDisplayConfig = ambientConfig;
}
private static class SummaryProvider implements SummaryLoader.SummaryProvider {
private final Context mContext;
private final SummaryLoader mSummaryLoader;
public SummaryProvider(Context context, SummaryLoader summaryLoader) {
mContext = context;
mSummaryLoader = summaryLoader;
}
@Override
public void setListening(boolean listening) {
if (listening) {
final String flattenComponent = Settings.Secure.getString(
mContext.getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD);
if (!TextUtils.isEmpty(flattenComponent)) {
final PackageManager packageManage = mContext.getPackageManager();
final String pkg = ComponentName.unflattenFromString(flattenComponent)
.getPackageName();
final InputMethodManager imm = (InputMethodManager) mContext.getSystemService(
Context.INPUT_METHOD_SERVICE);
final List<InputMethodInfo> imis = imm.getInputMethodList();
for (InputMethodInfo imi : imis) {
if (TextUtils.equals(imi.getPackageName(), pkg)) {
mSummaryLoader.setSummary(this, imi.loadLabel(packageManage));
return;
}
}
}
mSummaryLoader.setSummary(this, "");
}
}
}
public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY
= (activity, summaryLoader) -> new SummaryProvider(activity, summaryLoader);
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override