Merge "Move Panel to public API"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 3933b9c..871f609 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -2973,11 +2973,16 @@
android:label="@string/settings_panel_title"
android:theme="@style/Theme.BottomDialog"
android:excludeFromRecents="true"
- android:launchMode="singleTask">
+ android:launchMode="singleTask"
+ android:exported="true">
<intent-filter>
- <action android:name="android.settings.SETTINGSPANEL" />
+ <action android:name="android.settings.panel.action.INTERNET_CONNECTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
+ <intent-filter>
+ <action android:name="android.settings.panel.action.VOLUME" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
</activity>
<provider android:name=".slices.SettingsSliceProvider"
diff --git a/res/layout/panel_layout.xml b/res/layout/panel_layout.xml
index a6f62a4..c466ce8 100644
--- a/res/layout/panel_layout.xml
+++ b/res/layout/panel_layout.xml
@@ -22,7 +22,7 @@
android:orientation="vertical">
<TextView
- android:id="@+id/title"
+ android:id="@+id/panel_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
diff --git a/src/com/android/settings/panel/PanelFeatureProviderImpl.java b/src/com/android/settings/panel/PanelFeatureProviderImpl.java
index 503a5c3..ade2ffd 100644
--- a/src/com/android/settings/panel/PanelFeatureProviderImpl.java
+++ b/src/com/android/settings/panel/PanelFeatureProviderImpl.java
@@ -17,15 +17,16 @@
package com.android.settings.panel;
import android.content.Context;
+import android.provider.Settings;
public class PanelFeatureProviderImpl implements PanelFeatureProvider {
@Override
public PanelContent getPanel(Context context, String panelType) {
switch (panelType) {
- case SettingsPanelActivity.PANEL_TYPE_WIFI:
+ case Settings.Panel.ACTION_INTERNET_CONNECTIVITY:
return InternetConnectivityPanel.create(context);
- case SettingsPanelActivity.PANEL_TYPE_VOLUME:
+ case Settings.Panel.ACTION_VOLUME:
return VolumePanel.create(context);
}
diff --git a/src/com/android/settings/panel/PanelFragment.java b/src/com/android/settings/panel/PanelFragment.java
index e61b8f8..7655be8 100644
--- a/src/com/android/settings/panel/PanelFragment.java
+++ b/src/com/android/settings/panel/PanelFragment.java
@@ -69,7 +69,7 @@
mPanelSlices = view.findViewById(R.id.panel_parent_layout);
mSeeMoreButton = view.findViewById(R.id.see_more);
mDoneButton = view.findViewById(R.id.done);
- mTitleView = view.findViewById(R.id.title);
+ mTitleView = view.findViewById(R.id.panel_title);
final Bundle arguments = getArguments();
final String panelType = arguments.getString(SettingsPanelActivity.KEY_PANEL_TYPE_ARGUMENT);
diff --git a/src/com/android/settings/panel/SettingsPanelActivity.java b/src/com/android/settings/panel/SettingsPanelActivity.java
index 09bead4..ffe94f8 100644
--- a/src/com/android/settings/panel/SettingsPanelActivity.java
+++ b/src/com/android/settings/panel/SettingsPanelActivity.java
@@ -16,11 +16,9 @@
package com.android.settings.panel;
-import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
-import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.Window;
@@ -35,8 +33,6 @@
/**
* Dialog Activity to host Settings Slices.
- *
- * TODO link to action / framework API
*/
public class SettingsPanelActivity extends FragmentActivity {
@@ -47,28 +43,10 @@
*/
public static final String KEY_PANEL_TYPE_ARGUMENT = "PANEL_TYPE_ARGUMENT";
-
- // TODO (b/117804442) move to framework
- public static final String EXTRA_PANEL_TYPE = "com.android.settings.panel.extra";
-
- // TODO (b/117804442) move to framework
- public static final String PANEL_TYPE_WIFI = "wifi_panel";
-
- // TODO (b/117804442) move to framework
- public static final String PANEL_TYPE_VOLUME = "volume_panel";
-
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- final ComponentName callingActivityName = getCallingActivity();
-
- if (callingActivityName == null) {
- Log.e(TAG, "Must start with startActivityForResult. Closing.");
- finish();
- return;
- }
-
final Intent callingIntent = getIntent();
if (callingIntent == null) {
Log.e(TAG, "Null intent, closing Panel Activity");
@@ -76,12 +54,6 @@
return;
}
- final String typeExtra = callingIntent.getStringExtra(EXTRA_PANEL_TYPE);
- if (TextUtils.isEmpty(typeExtra)) {
- Log.e(TAG, "No intent passed, closing Panel Activity");
- return;
- }
-
setContentView(R.layout.settings_panel);
// Move the window to the bottom of screen, and make it take up the entire screen width.
@@ -90,9 +62,8 @@
window.setLayout(WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.WRAP_CONTENT);
-
final Bundle bundle = new Bundle();
- bundle.putString(KEY_PANEL_TYPE_ARGUMENT, typeExtra);
+ bundle.putString(KEY_PANEL_TYPE_ARGUMENT, callingIntent.getAction());
final PanelFragment panelFragment = new PanelFragment();
panelFragment.setArguments(bundle);
diff --git a/tests/robotests/src/com/android/settings/panel/FakePanelContent.java b/tests/robotests/src/com/android/settings/panel/FakePanelContent.java
index 60f0d5d..1d79952 100644
--- a/tests/robotests/src/com/android/settings/panel/FakePanelContent.java
+++ b/tests/robotests/src/com/android/settings/panel/FakePanelContent.java
@@ -29,7 +29,7 @@
*/
public class FakePanelContent implements PanelContent {
- public static final String FAKE_KEY = "fake_key";
+ public static final String FAKE_ACTION = "fake_action";
public static final CharSequence TITLE = "title";
diff --git a/tests/robotests/src/com/android/settings/panel/FakeSettingsPanelActivity.java b/tests/robotests/src/com/android/settings/panel/FakeSettingsPanelActivity.java
index afd0bec..2a62b54 100644
--- a/tests/robotests/src/com/android/settings/panel/FakeSettingsPanelActivity.java
+++ b/tests/robotests/src/com/android/settings/panel/FakeSettingsPanelActivity.java
@@ -27,8 +27,7 @@
@Override
public Intent getIntent() {
- final Intent intent = new Intent();
- intent.putExtra(SettingsPanelActivity.EXTRA_PANEL_TYPE, FakePanelContent.FAKE_KEY);
+ final Intent intent = new Intent(FakePanelContent.FAKE_ACTION);
return intent;
}
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/panel/PanelFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/panel/PanelFeatureProviderImplTest.java
index 754c937..99d5d6c 100644
--- a/tests/robotests/src/com/android/settings/panel/PanelFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/panel/PanelFeatureProviderImplTest.java
@@ -20,6 +20,7 @@
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
+import android.provider.Settings;
import org.junit.Before;
import org.junit.Test;
@@ -43,8 +44,16 @@
@Test
public void getPanel_internetConnectivityKey_returnsCorrectPanel() {
final PanelContent panel = mProvider.getPanel(mContext,
- SettingsPanelActivity.PANEL_TYPE_WIFI);
+ Settings.Panel.ACTION_INTERNET_CONNECTIVITY);
assertThat(panel).isInstanceOf(InternetConnectivityPanel.class);
}
+
+ @Test
+ public void getPanel_volume_returnsCorrectPanel() {
+ final PanelContent panel = mProvider.getPanel(mContext,
+ Settings.Panel.ACTION_VOLUME);
+
+ assertThat(panel).isInstanceOf(VolumePanel.class);
+ }
}