Add listener for panel header icon

Bug: 146813761
Test: make -j42 RunSettingsRoboTests
Change-Id: I473b535593d4ecb445027d6c7dafbb235a70ffcf
This commit is contained in:
timhypeng
2020-02-14 10:30:13 +08:00
parent 9ccbadebab
commit cc0069e42f
2 changed files with 22 additions and 1 deletions

View File

@@ -55,7 +55,6 @@ public interface PanelContent extends Instrumentable {
*/ */
List<Uri> getSlices(); List<Uri> getSlices();
/** /**
* @return an {@link Intent} to the full content in Settings that is summarized by the Panel. * @return an {@link Intent} to the full content in Settings that is summarized by the Panel.
* *
@@ -64,4 +63,15 @@ public interface PanelContent extends Instrumentable {
* </p> * </p>
*/ */
Intent getSeeMoreIntent(); 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;
}
} }

View File

@@ -201,6 +201,9 @@ public class PanelFragment extends Fragment {
mTitleIcon.setImageIcon(icon.toIcon(getContext())); mTitleIcon.setImageIcon(icon.toIcon(getContext()));
mHeaderTitle.setText(mPanel.getTitle()); mHeaderTitle.setText(mPanel.getTitle());
mHeaderSubtitle.setText(mPanel.getSubTitle()); mHeaderSubtitle.setText(mPanel.getSubTitle());
if (mPanel.getHeaderIconIntent() != null) {
mTitleIcon.setOnClickListener(getHeaderIconListener());
}
} }
mSeeMoreButton.setOnClickListener(getSeeMoreListener()); mSeeMoreButton.setOnClickListener(getSeeMoreListener());
mDoneButton.setOnClickListener(getCloseListener()); mDoneButton.setOnClickListener(getCloseListener());
@@ -381,4 +384,12 @@ public class PanelFragment extends Fragment {
getActivity().finish(); getActivity().finish();
}; };
} }
@VisibleForTesting
View.OnClickListener getHeaderIconListener() {
return (v) -> {
final FragmentActivity activity = getActivity();
activity.startActivity(mPanel.getHeaderIconIntent());
};
}
} }