diff --git a/src/com/android/settings/panel/PanelContent.java b/src/com/android/settings/panel/PanelContent.java
index 56704694f99..60b9ed7ab18 100644
--- a/src/com/android/settings/panel/PanelContent.java
+++ b/src/com/android/settings/panel/PanelContent.java
@@ -55,7 +55,6 @@ public interface PanelContent extends Instrumentable {
*/
List
+ * A common usage is to go back to previous panel. + *
+ */ + default Intent getHeaderIconIntent() { + return null; + } } diff --git a/src/com/android/settings/panel/PanelFragment.java b/src/com/android/settings/panel/PanelFragment.java index 8fda894adaf..0f467582443 100644 --- a/src/com/android/settings/panel/PanelFragment.java +++ b/src/com/android/settings/panel/PanelFragment.java @@ -201,6 +201,9 @@ public class PanelFragment extends Fragment { 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 @@ public class PanelFragment extends Fragment { getActivity().finish(); }; } + + @VisibleForTesting + View.OnClickListener getHeaderIconListener() { + return (v) -> { + final FragmentActivity activity = getActivity(); + activity.startActivity(mPanel.getHeaderIconIntent()); + }; + } }