diff options
author | Raff Tsai <rafftsai@google.com> | 2019-10-02 16:43:23 +0800 |
---|---|---|
committer | Raff Tsai <rafftsai@google.com> | 2019-10-03 15:04:36 +0800 |
commit | 6db277ebb7af2017df3d1ceb4da834230ceb764d (patch) | |
tree | e8e4edf29f092807d6082472390e35df35fbecbc /src/com/android/settings/wfd | |
parent | 9e3a9fd255d9cb84c582e8cf6fda6faccb1bbc07 (diff) | |
download | packages_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.java | 107 | ||||
-rwxr-xr-x | src/com/android/settings/wfd/WifiDisplaySettings.java | 75 |
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); } |