diff --git a/src/com/android/settings/panel/PanelFeatureProvider.java b/src/com/android/settings/panel/PanelFeatureProvider.java index 85e098d603c..402a562d53d 100644 --- a/src/com/android/settings/panel/PanelFeatureProvider.java +++ b/src/com/android/settings/panel/PanelFeatureProvider.java @@ -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); } diff --git a/src/com/android/settings/panel/PanelFeatureProviderImpl.java b/src/com/android/settings/panel/PanelFeatureProviderImpl.java index e6b0a231885..04d3095cc38 100644 --- a/src/com/android/settings/panel/PanelFeatureProviderImpl.java +++ b/src/com/android/settings/panel/PanelFeatureProviderImpl.java @@ -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); diff --git a/src/com/android/settings/panel/PanelFragment.java b/src/com/android/settings/panel/PanelFragment.java index 006ed005ee4..0eda36f5205 100644 --- a/src/com/android/settings/panel/PanelFragment.java +++ b/src/com/android/settings/panel/PanelFragment.java @@ -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(); diff --git a/tests/robotests/src/com/android/settings/panel/PanelFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/panel/PanelFeatureProviderImplTest.java index ae57a778b61..54f18948cb7 100644 --- a/tests/robotests/src/com/android/settings/panel/PanelFeatureProviderImplTest.java +++ b/tests/robotests/src/com/android/settings/panel/PanelFeatureProviderImplTest.java @@ -17,17 +17,19 @@ package com.android.settings.panel; +import static com.android.settings.panel.SettingsPanelActivity.KEY_MEDIA_PACKAGE_NAME; +import static com.android.settings.panel.SettingsPanelActivity.KEY_PANEL_TYPE_ARGUMENT; import static com.android.settingslib.media.MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT; import static com.google.common.truth.Truth.assertThat; import android.content.Context; +import android.os.Bundle; import android.provider.Settings; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; - import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @@ -38,33 +40,39 @@ public class PanelFeatureProviderImplTest { private Context mContext; private PanelFeatureProviderImpl mProvider; + private Bundle mBundle; @Before public void setUp() { mContext = RuntimeEnvironment.application; mProvider = new PanelFeatureProviderImpl(); + mBundle = new Bundle(); + mBundle.putString(KEY_MEDIA_PACKAGE_NAME, TEST_PACKAGENAME); } @Test public void getPanel_internetConnectivityKey_returnsCorrectPanel() { - final PanelContent panel = mProvider.getPanel(mContext, - Settings.Panel.ACTION_INTERNET_CONNECTIVITY, TEST_PACKAGENAME); + mBundle.putString(KEY_PANEL_TYPE_ARGUMENT, Settings.Panel.ACTION_INTERNET_CONNECTIVITY); + + final PanelContent panel = mProvider.getPanel(mContext, mBundle); assertThat(panel).isInstanceOf(InternetConnectivityPanel.class); } @Test public void getPanel_volume_returnsCorrectPanel() { - final PanelContent panel = mProvider.getPanel(mContext, - Settings.Panel.ACTION_VOLUME, TEST_PACKAGENAME); + mBundle.putString(KEY_PANEL_TYPE_ARGUMENT, Settings.Panel.ACTION_VOLUME); + + final PanelContent panel = mProvider.getPanel(mContext, mBundle); assertThat(panel).isInstanceOf(VolumePanel.class); } @Test public void getPanel_mediaOutputKey_returnsCorrectPanel() { - final PanelContent panel = mProvider.getPanel(mContext, - ACTION_MEDIA_OUTPUT, TEST_PACKAGENAME); + mBundle.putString(KEY_PANEL_TYPE_ARGUMENT, ACTION_MEDIA_OUTPUT); + + final PanelContent panel = mProvider.getPanel(mContext, mBundle); assertThat(panel).isInstanceOf(MediaOutputPanel.class); } diff --git a/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java b/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java index 44dc3bcfcee..cbeff97c314 100644 --- a/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java +++ b/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java @@ -38,7 +38,6 @@ import com.android.settings.testutils.FakeFeatureFactory; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; - import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @@ -63,7 +62,7 @@ public class PanelFragmentTest { mFakeFeatureFactory = FakeFeatureFactory.setupForTest(); mFakeFeatureFactory.panelFeatureProvider = mPanelFeatureProvider; mFakePanelContent = new FakePanelContent(); - doReturn(mFakePanelContent).when(mPanelFeatureProvider).getPanel(any(), any(), any()); + doReturn(mFakePanelContent).when(mPanelFeatureProvider).getPanel(any(), any()); mActivity = spy(Robolectric.buildActivity(FakeSettingsPanelActivity.class).setup().get()); @@ -83,7 +82,7 @@ public class PanelFragmentTest { new LinearLayout(mContext), null); PanelSlicesLoaderCountdownLatch countdownLatch = mPanelFragment.mPanelSlicesLoaderCountdownLatch; - for (Uri sliecUri: mFakePanelContent.getSlices()) { + for (Uri sliecUri : mFakePanelContent.getSlices()) { countdownLatch.markSliceLoaded(sliecUri); } diff --git a/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java b/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java index 89288f6bbd9..9f4fffcdeff 100644 --- a/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java +++ b/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java @@ -40,17 +40,15 @@ import com.android.settings.slices.CustomSliceRegistry; import com.android.settings.testutils.FakeFeatureFactory; import org.junit.Before; -import org.junit.runner.RunWith; import org.junit.Test; +import org.junit.runner.RunWith; import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.android.controller.ActivityController; -import java.util.ArrayList; import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; @RunWith(RobolectricTestRunner.class) @@ -74,7 +72,7 @@ public class PanelSlicesAdapterTest { mFakeFeatureFactory = FakeFeatureFactory.setupForTest(); mFakeFeatureFactory.panelFeatureProvider = mPanelFeatureProvider; mFakePanelContent = new FakePanelContent(); - doReturn(mFakePanelContent).when(mPanelFeatureProvider).getPanel(any(), any(), any()); + doReturn(mFakePanelContent).when(mPanelFeatureProvider).getPanel(any(), any()); ActivityController activityController = Robolectric.buildActivity(FakeSettingsPanelActivity.class); diff --git a/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java b/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java index a4b7aa551bb..44e5eefcf6c 100644 --- a/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java +++ b/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java @@ -65,7 +65,7 @@ public class SettingsPanelActivityTest { mPanelFeatureProvider = spy(new PanelFeatureProviderImpl()); mFakeFeatureFactory.panelFeatureProvider = mPanelFeatureProvider; mFakePanelContent = new FakePanelContent(); - doReturn(mFakePanelContent).when(mPanelFeatureProvider).getPanel(any(), any(), any()); + doReturn(mFakePanelContent).when(mPanelFeatureProvider).getPanel(any(), any()); } @Test