summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/wfd
diff options
context:
space:
mode:
authorRaff Tsai <rafftsai@google.com>2019-10-02 16:43:23 +0800
committerRaff Tsai <rafftsai@google.com>2019-10-03 15:04:36 +0800
commit6db277ebb7af2017df3d1ceb4da834230ceb764d (patch)
treee8e4edf29f092807d6082472390e35df35fbecbc /src/com/android/settings/wfd
parent9e3a9fd255d9cb84c582e8cf6fda6faccb1bbc07 (diff)
downloadpackages_apps_Settings-6db277ebb7af2017df3d1ceb4da834230ceb764d.tar.gz
packages_apps_Settings-6db277ebb7af2017df3d1ceb4da834230ceb764d.tar.bz2
packages_apps_Settings-6db277ebb7af2017df3d1ceb4da834230ceb764d.zip
Remove summary provider
- use SummaryProvider to provide the summary of UserSettings - use WifiDisplayPreferenceController to replace the summary loader in WifiDisplaySettings - use ConfigureNotificationPreferernceController to replace the sumary load in ConfigureNotificationSettings Fixes: 141653158 Test: robolectric Change-Id: Id5f5ed645707caa0b25ecae5252174cbf017651c
Diffstat (limited to 'src/com/android/settings/wfd')
-rw-r--r--src/com/android/settings/wfd/WifiDisplayPreferenceController.java107
-rwxr-xr-xsrc/com/android/settings/wfd/WifiDisplaySettings.java75
2 files changed, 108 insertions, 74 deletions
diff --git a/src/com/android/settings/wfd/WifiDisplayPreferenceController.java b/src/com/android/settings/wfd/WifiDisplayPreferenceController.java
new file mode 100644
index 0000000000..32273878b7
--- /dev/null
+++ b/src/com/android/settings/wfd/WifiDisplayPreferenceController.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2019 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.settings.wfd;
+
+import android.content.Context;
+import android.media.MediaRouter;
+import android.media.MediaRouter.RouteInfo;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+
+public class WifiDisplayPreferenceController extends BasePreferenceController implements
+ LifecycleObserver, OnStart, OnStop {
+
+ private final MediaRouter mRouter;
+ private Preference mPreference;
+ private final MediaRouter.Callback mRouterCallback = new MediaRouter.SimpleCallback() {
+ @Override
+ public void onRouteSelected(MediaRouter router, int type, RouteInfo info) {
+ refreshSummary(mPreference);
+ }
+
+ @Override
+ public void onRouteUnselected(MediaRouter router, int type, RouteInfo info) {
+ refreshSummary(mPreference);
+ }
+
+ @Override
+ public void onRouteAdded(MediaRouter router, RouteInfo info) {
+ refreshSummary(mPreference);
+ }
+
+ @Override
+ public void onRouteRemoved(MediaRouter router, RouteInfo info) {
+ refreshSummary(mPreference);
+ }
+
+ @Override
+ public void onRouteChanged(MediaRouter router, RouteInfo info) {
+ refreshSummary(mPreference);
+ }
+ };
+
+ public WifiDisplayPreferenceController(Context context, String key) {
+ super(context, key);
+ mRouter = context.getSystemService(MediaRouter.class);
+ mRouter.setRouterGroupId(MediaRouter.MIRRORING_GROUP_ID);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return WifiDisplaySettings.isAvailable(mContext) ? AVAILABLE_UNSEARCHABLE
+ : UNSUPPORTED_ON_DEVICE;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = screen.findPreference(getPreferenceKey());
+ }
+
+ @Override
+ public CharSequence getSummary() {
+ CharSequence summary = mContext.getString(R.string.disconnected);
+
+ final int routeCount = mRouter.getRouteCount();
+ for (int i = 0; i < routeCount; i++) {
+ final MediaRouter.RouteInfo route = mRouter.getRouteAt(i);
+ if (route.matchesTypes(MediaRouter.ROUTE_TYPE_REMOTE_DISPLAY)
+ && route.isSelected() && !route.isConnecting()) {
+ summary = mContext.getString(R.string.wifi_display_status_connected);
+ break;
+ }
+ }
+ return summary;
+ }
+
+ @Override
+ public void onStart() {
+ mRouter.addCallback(MediaRouter.ROUTE_TYPE_REMOTE_DISPLAY, mRouterCallback);
+ }
+
+ @Override
+ public void onStop() {
+ mRouter.removeCallback(mRouterCallback);
+ }
+} \ No newline at end of file
diff --git a/src/com/android/settings/wfd/WifiDisplaySettings.java b/src/com/android/settings/wfd/WifiDisplaySettings.java
index 0953ef76cf..4022809bff 100755
--- a/src/com/android/settings/wfd/WifiDisplaySettings.java
+++ b/src/com/android/settings/wfd/WifiDisplaySettings.java
@@ -37,7 +37,6 @@ import android.net.wifi.p2p.WifiP2pManager.Channel;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
-import android.provider.SearchIndexableResource;
import android.provider.Settings;
import android.util.Slog;
import android.util.TypedValue;
@@ -64,15 +63,11 @@ import androidx.preference.SwitchPreference;
import com.android.internal.app.MediaRouteDialogPresenter;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
-import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settingslib.search.Indexable;
import com.android.settingslib.TwoTargetPreference;
+import com.android.settingslib.search.Indexable;
import com.android.settingslib.search.SearchIndexable;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* The Settings screen for WifiDisplay configuration and connection management.
*
@@ -767,74 +762,6 @@ public final class WifiDisplaySettings extends SettingsPreferenceFragment implem
}
}
- private static class SummaryProvider implements SummaryLoader.SummaryProvider {
-
- private final Context mContext;
- private final SummaryLoader mSummaryLoader;
- private final MediaRouter mRouter;
- private final MediaRouter.Callback mRouterCallback = new MediaRouter.SimpleCallback() {
- @Override
- public void onRouteSelected(MediaRouter router, int type, RouteInfo info) {
- updateSummary();
- }
-
- @Override
- public void onRouteUnselected(MediaRouter router, int type, RouteInfo info) {
- updateSummary();
- }
-
- @Override
- public void onRouteAdded(MediaRouter router, RouteInfo info) {
- updateSummary();
- }
-
- @Override
- public void onRouteRemoved(MediaRouter router, RouteInfo info) {
- updateSummary();
- }
-
- @Override
- public void onRouteChanged(MediaRouter router, RouteInfo info) {
- updateSummary();
- }
- };
-
- public SummaryProvider(Context context, SummaryLoader summaryLoader) {
- mContext = context;
- mSummaryLoader = summaryLoader;
- mRouter = (MediaRouter) context.getSystemService(Context.MEDIA_ROUTER_SERVICE);
- mRouter.setRouterGroupId(MediaRouter.MIRRORING_GROUP_ID);
- }
-
- @Override
- public void setListening(boolean listening) {
- if (listening) {
- mRouter.addCallback(MediaRouter.ROUTE_TYPE_REMOTE_DISPLAY, mRouterCallback);
- updateSummary();
- } else {
- mRouter.removeCallback(mRouterCallback);
- }
- }
-
- private void updateSummary() {
- String summary = mContext.getString(R.string.disconnected);
-
- final int routeCount = mRouter.getRouteCount();
- for (int i = 0; i < routeCount; i++) {
- final MediaRouter.RouteInfo route = mRouter.getRouteAt(i);
- if (route.matchesTypes(MediaRouter.ROUTE_TYPE_REMOTE_DISPLAY)
- && route.isSelected() && !route.isConnecting()) {
- summary = mContext.getString(R.string.wifi_display_status_connected);
- break;
- }
- }
- mSummaryLoader.setSummary(this, summary);
- }
- }
-
- public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY
- = (activity, summaryLoader) -> new SummaryProvider(activity, summaryLoader);
-
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider(R.xml.wifi_display_settings);
}