Dynamic summary text for network/connected device screen.

Change-Id: I3254c63b7c241e2de9251b3c2d2a0106fb049ece
Fix: 36768218
Test: make RunSettingsRoboTests
This commit is contained in:
Fan Zhang
2017-05-16 16:58:43 -07:00
parent 867c68e76c
commit 7c3a87ebd3
6 changed files with 235 additions and 16 deletions

View File

@@ -15,10 +15,12 @@
*/
package com.android.settings.network;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.provider.SearchIndexableResource;
import android.support.annotation.VisibleForTesting;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
@@ -27,7 +29,7 @@ import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.wifi.WifiMasterSwitchPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -133,6 +135,66 @@ public class NetworkDashboardFragment extends DashboardFragment implements
return 0;
}
@VisibleForTesting
static class SummaryProvider implements SummaryLoader.SummaryProvider {
private final Context mContext;
private final SummaryLoader mSummaryLoader;
private final MobileNetworkPreferenceController mMobileNetworkPreferenceController;
private final TetherPreferenceController mTetherPreferenceController;
public SummaryProvider(Context context, SummaryLoader summaryLoader) {
this(context, summaryLoader,
new MobileNetworkPreferenceController(context),
new TetherPreferenceController(context, null /* lifecycle */));
}
@VisibleForTesting(otherwise = VisibleForTesting.NONE)
SummaryProvider(Context context, SummaryLoader summaryLoader,
MobileNetworkPreferenceController mobileNetworkPreferenceController,
TetherPreferenceController tetherPreferenceController) {
mContext = context;
mSummaryLoader = summaryLoader;
mMobileNetworkPreferenceController = mobileNetworkPreferenceController;
mTetherPreferenceController = tetherPreferenceController;
}
@Override
public void setListening(boolean listening) {
if (listening) {
String summary = mContext.getString(R.string.wifi_settings_title);
if (mMobileNetworkPreferenceController.isAvailable()) {
final String mobileSettingSummary = mContext.getString(
R.string.network_dashboard_summary_mobile);
summary = mContext.getString(R.string.join_many_items_middle, summary,
mobileSettingSummary);
}
final String dataUsageSettingSummary = mContext.getString(
R.string.network_dashboard_summary_data_usage);
summary = mContext.getString(R.string.join_many_items_middle, summary,
dataUsageSettingSummary);
if (mTetherPreferenceController.isAvailable()) {
final String hotspotSettingSummary = mContext.getString(
R.string.network_dashboard_summary_hotspot);
summary = mContext.getString(R.string.join_many_items_middle, summary,
hotspotSettingSummary);
}
mSummaryLoader.setSummary(this, summary);
}
}
}
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 SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override