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,9 +15,11 @@
*/
package com.android.settings.connecteddevice;
import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageManager;
import android.provider.SearchIndexableResource;
import android.support.annotation.VisibleForTesting;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
@@ -25,6 +27,7 @@ import com.android.settings.bluetooth.BluetoothMasterSwitchPreferenceController;
import com.android.settings.bluetooth.Utils;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.deviceinfo.UsbBackend;
import com.android.settings.nfc.NfcPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider;
@@ -67,13 +70,50 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment {
lifecycle.addObserver(mUsbPrefController);
controllers.add(mUsbPrefController);
final BluetoothMasterSwitchPreferenceController bluetoothPreferenceController =
new BluetoothMasterSwitchPreferenceController(
context, Utils.getLocalBtManager(context));
new BluetoothMasterSwitchPreferenceController(
context, Utils.getLocalBtManager(context));
lifecycle.addObserver(bluetoothPreferenceController);
controllers.add(bluetoothPreferenceController);
return controllers;
}
@VisibleForTesting
static class SummaryProvider implements SummaryLoader.SummaryProvider {
private final Context mContext;
private final SummaryLoader mSummaryLoader;
private final NfcPreferenceController mNfcPreferenceController;
public SummaryProvider(Context context, SummaryLoader summaryLoader) {
mContext = context;
mSummaryLoader = summaryLoader;
mNfcPreferenceController = new NfcPreferenceController(context);
}
@Override
public void setListening(boolean listening) {
if (listening) {
if (mNfcPreferenceController.isAvailable()) {
mSummaryLoader.setSummary(this,
mContext.getString(R.string.connected_devices_dashboard_summary));
} else {
mSummaryLoader.setSummary(this, mContext.getString(
R.string.connected_devices_dashboard_no_nfc_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);
}
};
/**
* For Search.
*/