Add DockUpdaterFeatureProvider and DockUpdater.

Add the new feature components for dock devices.

Bug: 77931823
Test: Build
Change-Id: I219a5256d02f2b1b8ea7cce1cff4219975f2eae2
This commit is contained in:
Ivan Chiang
2018-04-10 14:32:58 +08:00
parent e848603807
commit f2f03b8198
6 changed files with 127 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
/*
* Copyright (C) 2018 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.connecteddevice.dock;
import android.content.Context;
/**
* Update the dock devices. It notifies the upper level whether to add/remove the preference
* through {@link DevicePreferenceCallback}
*/
public interface DockUpdater {
/**
* Register the dock event callback and update the list
*/
default void registerCallback() {
}
/**
* Unregister the dock event callback
*/
default void unregisterCallback() {
}
/**
* Force to update the list of dock devices
*/
default void forceUpdate() {
}
}

View File

@@ -0,0 +1,29 @@
package com.android.settings.connecteddevice.dock;
import android.content.Context;
import com.android.settings.connecteddevice.DevicePreferenceCallback;
import com.android.settings.connecteddevice.dock.DockUpdater;
import com.android.settings.overlay.DockUpdaterFeatureProvider;
/**
* Impl for {@link DockUpdaterFeatureProvider}
*/
public class DockUpdaterFeatureProviderImpl implements DockUpdaterFeatureProvider {
@Override
public DockUpdater getConnectedDockUpdater(Context context,
DevicePreferenceCallback devicePreferenceCallback) {
final DockUpdater updater = new DockUpdater() {
};
return updater;
}
@Override
public DockUpdater getSavedDockUpdater(Context context,
DevicePreferenceCallback devicePreferenceCallback) {
final DockUpdater updater = new DockUpdater() {
};
return updater;
}
}

View File

@@ -0,0 +1,35 @@
/*
* Copyright (C) 2018 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.overlay;
import android.content.Context;
import com.android.settings.connecteddevice.DevicePreferenceCallback;
import com.android.settings.connecteddevice.dock.DockUpdater;
/** Feature provider for the dock updater. */
public interface DockUpdaterFeatureProvider {
/** Returns the DockUpdater of the connected dock device */
DockUpdater getConnectedDockUpdater(Context context,
DevicePreferenceCallback devicePreferenceCallback);
/** Returns the DockUpdater of the saved dock devices */
DockUpdater getSavedDockUpdater(Context context,
DevicePreferenceCallback devicePreferenceCallback);
}

View File

@@ -86,6 +86,8 @@ public abstract class FeatureFactory {
public abstract DashboardFeatureProvider getDashboardFeatureProvider(Context context); public abstract DashboardFeatureProvider getDashboardFeatureProvider(Context context);
public abstract DockUpdaterFeatureProvider getDockUpdaterFeatureProvider();
public abstract ApplicationFeatureProvider getApplicationFeatureProvider(Context context); public abstract ApplicationFeatureProvider getApplicationFeatureProvider(Context context);
public abstract LocaleFeatureProvider getLocaleFeatureProvider(); public abstract LocaleFeatureProvider getLocaleFeatureProvider();

View File

@@ -29,6 +29,7 @@ import com.android.settings.applications.ApplicationFeatureProvider;
import com.android.settings.applications.ApplicationFeatureProviderImpl; import com.android.settings.applications.ApplicationFeatureProviderImpl;
import com.android.settings.bluetooth.BluetoothFeatureProvider; import com.android.settings.bluetooth.BluetoothFeatureProvider;
import com.android.settings.bluetooth.BluetoothFeatureProviderImpl; import com.android.settings.bluetooth.BluetoothFeatureProviderImpl;
import com.android.settings.connecteddevice.dock.DockUpdaterFeatureProviderImpl;
import com.android.settings.dashboard.DashboardFeatureProvider; import com.android.settings.dashboard.DashboardFeatureProvider;
import com.android.settings.dashboard.DashboardFeatureProviderImpl; import com.android.settings.dashboard.DashboardFeatureProviderImpl;
import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider; import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
@@ -63,6 +64,7 @@ public class FeatureFactoryImpl extends FeatureFactory {
private ApplicationFeatureProvider mApplicationFeatureProvider; private ApplicationFeatureProvider mApplicationFeatureProvider;
private MetricsFeatureProvider mMetricsFeatureProvider; private MetricsFeatureProvider mMetricsFeatureProvider;
private DashboardFeatureProviderImpl mDashboardFeatureProvider; private DashboardFeatureProviderImpl mDashboardFeatureProvider;
private DockUpdaterFeatureProvider mDockUpdaterFeatureProvider;
private LocaleFeatureProvider mLocaleFeatureProvider; private LocaleFeatureProvider mLocaleFeatureProvider;
private EnterprisePrivacyFeatureProvider mEnterprisePrivacyFeatureProvider; private EnterprisePrivacyFeatureProvider mEnterprisePrivacyFeatureProvider;
private SearchFeatureProvider mSearchFeatureProvider; private SearchFeatureProvider mSearchFeatureProvider;
@@ -105,6 +107,14 @@ public class FeatureFactoryImpl extends FeatureFactory {
return mDashboardFeatureProvider; return mDashboardFeatureProvider;
} }
@Override
public DockUpdaterFeatureProvider getDockUpdaterFeatureProvider() {
if (mDockUpdaterFeatureProvider == null) {
mDockUpdaterFeatureProvider = new DockUpdaterFeatureProviderImpl();
}
return mDockUpdaterFeatureProvider;
}
@Override @Override
public ApplicationFeatureProvider getApplicationFeatureProvider(Context context) { public ApplicationFeatureProvider getApplicationFeatureProvider(Context context) {
if (mApplicationFeatureProvider == null) { if (mApplicationFeatureProvider == null) {

View File

@@ -30,6 +30,7 @@ import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider;
import com.android.settings.fuelgauge.PowerUsageFeatureProvider; import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
import com.android.settings.gestures.AssistGestureFeatureProvider; import com.android.settings.gestures.AssistGestureFeatureProvider;
import com.android.settings.localepicker.LocaleFeatureProvider; import com.android.settings.localepicker.LocaleFeatureProvider;
import com.android.settings.overlay.DockUpdaterFeatureProvider;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.overlay.SupportFeatureProvider; import com.android.settings.overlay.SupportFeatureProvider;
import com.android.settings.overlay.SurveyFeatureProvider; import com.android.settings.overlay.SurveyFeatureProvider;
@@ -52,6 +53,7 @@ public class FakeFeatureFactory extends FeatureFactory {
public final MetricsFeatureProvider metricsFeatureProvider; public final MetricsFeatureProvider metricsFeatureProvider;
public final PowerUsageFeatureProvider powerUsageFeatureProvider; public final PowerUsageFeatureProvider powerUsageFeatureProvider;
public final DashboardFeatureProvider dashboardFeatureProvider; public final DashboardFeatureProvider dashboardFeatureProvider;
public final DockUpdaterFeatureProvider dockUpdaterFeatureProvider;
public final LocaleFeatureProvider localeFeatureProvider; public final LocaleFeatureProvider localeFeatureProvider;
public final ApplicationFeatureProvider applicationFeatureProvider; public final ApplicationFeatureProvider applicationFeatureProvider;
public final EnterprisePrivacyFeatureProvider enterprisePrivacyFeatureProvider; public final EnterprisePrivacyFeatureProvider enterprisePrivacyFeatureProvider;
@@ -91,6 +93,7 @@ public class FakeFeatureFactory extends FeatureFactory {
metricsFeatureProvider = mock(MetricsFeatureProvider.class); metricsFeatureProvider = mock(MetricsFeatureProvider.class);
powerUsageFeatureProvider = mock(PowerUsageFeatureProvider.class); powerUsageFeatureProvider = mock(PowerUsageFeatureProvider.class);
dashboardFeatureProvider = mock(DashboardFeatureProvider.class); dashboardFeatureProvider = mock(DashboardFeatureProvider.class);
dockUpdaterFeatureProvider = mock(DockUpdaterFeatureProvider.class);
localeFeatureProvider = mock(LocaleFeatureProvider.class); localeFeatureProvider = mock(LocaleFeatureProvider.class);
applicationFeatureProvider = mock(ApplicationFeatureProvider.class); applicationFeatureProvider = mock(ApplicationFeatureProvider.class);
enterprisePrivacyFeatureProvider = mock(EnterprisePrivacyFeatureProvider.class); enterprisePrivacyFeatureProvider = mock(EnterprisePrivacyFeatureProvider.class);
@@ -131,6 +134,11 @@ public class FakeFeatureFactory extends FeatureFactory {
return dashboardFeatureProvider; return dashboardFeatureProvider;
} }
@Override
public DockUpdaterFeatureProvider getDockUpdaterFeatureProvider() {
return dockUpdaterFeatureProvider;
}
@Override @Override
public ApplicationFeatureProvider getApplicationFeatureProvider(Context context) { public ApplicationFeatureProvider getApplicationFeatureProvider(Context context) {
return applicationFeatureProvider; return applicationFeatureProvider;