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);
}
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);
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();
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;
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);
}
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;
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());
new LinearLayout(mContext), null);
PanelSlicesLoaderCountdownLatch countdownLatch =
mPanelFragment.mPanelSlicesLoaderCountdownLatch;
- for (Uri sliecUri: mFakePanelContent.getSlices()) {
+ for (Uri sliecUri : mFakePanelContent.getSlices()) {
countdownLatch.markSliceLoaded(sliecUri);
}
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)
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<FakeSettingsPanelActivity> activityController =
Robolectric.buildActivity(FakeSettingsPanelActivity.class);
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