Add listener for panel header icon
Bug: 146813761
Test: make -j42 RunSettingsRoboTests
Change-Id: I473b535593d4ecb445027d6c7dafbb235a70ffcf
diff --git a/src/com/android/settings/panel/PanelContent.java b/src/com/android/settings/panel/PanelContent.java
index 5670469..60b9ed7 100644
--- a/src/com/android/settings/panel/PanelContent.java
+++ b/src/com/android/settings/panel/PanelContent.java
@@ -55,7 +55,6 @@
*/
List<Uri> getSlices();
-
/**
* @return an {@link Intent} to the full content in Settings that is summarized by the Panel.
*
@@ -64,4 +63,15 @@
* </p>
*/
Intent getSeeMoreIntent();
+
+ /**
+ * @return an {@link Intent} to the go to the target activity.
+ *
+ * <p>
+ * A common usage is to go back to previous panel.
+ * </p>
+ */
+ default Intent getHeaderIconIntent() {
+ return null;
+ }
}
diff --git a/src/com/android/settings/panel/PanelFragment.java b/src/com/android/settings/panel/PanelFragment.java
index 8fda894..0f46758 100644
--- a/src/com/android/settings/panel/PanelFragment.java
+++ b/src/com/android/settings/panel/PanelFragment.java
@@ -201,6 +201,9 @@
mTitleIcon.setImageIcon(icon.toIcon(getContext()));
mHeaderTitle.setText(mPanel.getTitle());
mHeaderSubtitle.setText(mPanel.getSubTitle());
+ if (mPanel.getHeaderIconIntent() != null) {
+ mTitleIcon.setOnClickListener(getHeaderIconListener());
+ }
}
mSeeMoreButton.setOnClickListener(getSeeMoreListener());
mDoneButton.setOnClickListener(getCloseListener());
@@ -381,4 +384,12 @@
getActivity().finish();
};
}
+
+ @VisibleForTesting
+ View.OnClickListener getHeaderIconListener() {
+ return (v) -> {
+ final FragmentActivity activity = getActivity();
+ activity.startActivity(mPanel.getHeaderIconIntent());
+ };
+ }
}