Change Panels creation interface to take a bundle

Fixes: 124399577
Test: robolectric
adb shell am start -a android.settings.panel.action.WIFI
adb shell am start -a android.settings.panel.action.VOLUME

Change-Id: I9e13357444e4ebeee50fb8cc68fbc974ce5fffb6
This commit is contained in:
Raff Tsai
2019-10-18 12:51:28 +08:00
parent 4b4b7e76c4
commit dfba9a0f6d
7 changed files with 31 additions and 25 deletions

View File

@@ -17,12 +17,12 @@
package com.android.settings.panel;
import android.content.Context;
import android.os.Bundle;
public interface PanelFeatureProvider {
/**
* Returns {@link PanelContent} as specified by the {@param panelType}, and
* {@param mediaPackageName}.
* Returns {@link PanelContent} as specified by the {@param bundle}
*/
PanelContent getPanel(Context context, String panelType, String mediaPackageName);
PanelContent getPanel(Context context, Bundle bundle);
}

View File

@@ -19,16 +19,22 @@ package com.android.settings.panel;
import static com.android.settingslib.media.MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT;
import android.content.Context;
import android.os.Bundle;
import android.provider.Settings;
public class PanelFeatureProviderImpl implements PanelFeatureProvider {
@Override
public PanelContent getPanel(Context context, String panelType, String mediaPackageName) {
public PanelContent getPanel(Context context, Bundle bundle) {
if (context == null) {
return null;
}
final String panelType =
bundle.getString(SettingsPanelActivity.KEY_PANEL_TYPE_ARGUMENT);
final String mediaPackageName =
bundle.getString(SettingsPanelActivity.KEY_MEDIA_PACKAGE_NAME);
switch (panelType) {
case Settings.Panel.ACTION_INTERNET_CONNECTIVITY:
return InternetConnectivityPanel.create(context);

View File

@@ -161,17 +161,12 @@ public class PanelFragment extends Fragment {
mPanelSlices.setVisibility(View.GONE);
final Bundle arguments = getArguments();
final String panelType =
arguments.getString(SettingsPanelActivity.KEY_PANEL_TYPE_ARGUMENT);
final String callingPackageName =
arguments.getString(SettingsPanelActivity.KEY_CALLING_PACKAGE_NAME);
final String mediaPackageName =
arguments.getString(SettingsPanelActivity.KEY_MEDIA_PACKAGE_NAME);
// TODO (b/124399577) transform interface to take a context and bundle.
mPanel = FeatureFactory.getFactory(activity)
.getPanelFeatureProvider()
.getPanel(activity, panelType, mediaPackageName);
.getPanel(activity, arguments);
if (mPanel == null) {
activity.finish();