aboutsummaryrefslogtreecommitdiff
path: root/RotaryPlayground/src/com/android/car/rotaryplayground
diff options
context:
space:
mode:
authorDanny Epstein <depstein@google.com>2020-07-18 12:17:50 -0700
committerDanny Epstein <depstein@google.com>2020-07-18 12:17:50 -0700
commitfcf79e37ad837cdf2c99bf785d0154e66a302e7f (patch)
treecffcb4541e95c970bb801c0e38fd5d84ec258fc9 /RotaryPlayground/src/com/android/car/rotaryplayground
parent41af77ce3fcd704f6738f8edf9ffc1de3a7be4d4 (diff)
downloadtests-fcf79e37ad837cdf2c99bf785d0154e66a302e7f.tar.gz
Improve tabs in reference app.
For now, don't switch tabs on focus. Select the button for the active tab and visually indicate the selected button. Bug: 157241844 Test: manual Change-Id: I3f99b9a9a2a8c48d33e7852a75b4ecf3483280ba
Diffstat (limited to 'RotaryPlayground/src/com/android/car/rotaryplayground')
-rw-r--r--RotaryPlayground/src/com/android/car/rotaryplayground/RotaryMenu.java108
1 files changed, 50 insertions, 58 deletions
diff --git a/RotaryPlayground/src/com/android/car/rotaryplayground/RotaryMenu.java b/RotaryPlayground/src/com/android/car/rotaryplayground/RotaryMenu.java
index c87fe1b..fd3baa8 100644
--- a/RotaryPlayground/src/com/android/car/rotaryplayground/RotaryMenu.java
+++ b/RotaryPlayground/src/com/android/car/rotaryplayground/RotaryMenu.java
@@ -38,64 +38,68 @@ public class RotaryMenu extends Fragment {
private Fragment mNotificationFragment = null;
private Fragment mScrollFragment = null;
- private Button mCardButton;
- private Button mGridButton;
- private Button mDirectManipulationButton;
- private Button mSysUiDirectManipulationButton;
- private Button mNotificationButton;
- private Button mScrollButton;
-
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.rotary_menu, container, false);
- mCardButton = view.findViewById(R.id.cards);
- mCardButton.setOnFocusChangeListener((v, hasFocus) -> showRotaryCards(hasFocus));
- mCardButton.setOnClickListener(v -> showRotaryCards(/* hasFocus= */ true));
-
- mGridButton = view.findViewById(R.id.grid);
- mGridButton.setOnFocusChangeListener((v, hasFocus) -> showGridExample(hasFocus));
- mGridButton.setOnClickListener(v -> showGridExample(/* hasFocus= */ true));
-
- mDirectManipulationButton = view.findViewById(R.id.direct_manipulation);
- mDirectManipulationButton.setOnFocusChangeListener(
- (v, hasFocus) -> showDirectManipulationExamples(hasFocus));
- mDirectManipulationButton.setOnClickListener(
- (v -> showDirectManipulationExamples(/* hasFocus= */ true)));
-
- mSysUiDirectManipulationButton = view.findViewById(R.id.sys_ui_direct_manipulation);
- mSysUiDirectManipulationButton.setOnFocusChangeListener(
- (v, hasFocus) -> showSysUiDirectManipulationExamples(hasFocus));
- mSysUiDirectManipulationButton.setOnClickListener(
- (v -> showSysUiDirectManipulationExamples(/* hasFocus= */ true)));
-
- mNotificationButton = view.findViewById(R.id.notification);
- mNotificationButton.setOnFocusChangeListener(
- (v, hasFocus) -> showNotificationExample(hasFocus));
- mNotificationButton.setOnClickListener(v -> showNotificationExample(/* hasFocus= */ true));
-
- mScrollButton = view.findViewById(R.id.scroll);
- mScrollButton.setOnFocusChangeListener((v, hasFocus) -> showScrollFragment(hasFocus));
- mScrollButton.setOnClickListener(v -> showScrollFragment(/* hasFocus= */ true));
+ Button cardButton = view.findViewById(R.id.cards);
+ cardButton.setOnClickListener(v -> {
+ selectTab(v);
+ showRotaryCards();
+ });
+
+ Button gridButton = view.findViewById(R.id.grid);
+ gridButton.setOnClickListener(v -> {
+ selectTab(v);
+ showGridExample();
+ });
+
+ Button directManipulationButton = view.findViewById(R.id.direct_manipulation);
+ directManipulationButton.setOnClickListener(
+ (v -> {
+ selectTab(v);
+ showDirectManipulationExamples();
+ }));
+
+ Button sysUiDirectManipulationButton = view.findViewById(R.id.sys_ui_direct_manipulation);
+ sysUiDirectManipulationButton.setOnClickListener(
+ (v -> {
+ selectTab(v);
+ showSysUiDirectManipulationExamples();
+ }));
+
+ Button notificationButton = view.findViewById(R.id.notification);
+ notificationButton.setOnClickListener(v -> {
+ selectTab(v);
+ showNotificationExample();
+ });
+
+ Button scrollButton = view.findViewById(R.id.scroll);
+ scrollButton.setOnClickListener(v -> {
+ selectTab(v);
+ showScrollFragment();
+ });
return view;
}
- private void showRotaryCards(boolean hasFocus) {
- if (!hasFocus) {
- return; // Do nothing if no focus.
+ private void selectTab(View view) {
+ ViewGroup container = (ViewGroup) view.getParent();
+ for (int i = 0; i < container.getChildCount(); i++) {
+ container.getChildAt(i).setSelected(false);
}
+ view.setSelected(true);
+ }
+
+ private void showRotaryCards() {
if (mRotaryCards == null) {
mRotaryCards = new RotaryCards();
}
showFragment(mRotaryCards);
}
- private void showGridExample(boolean hasFocus) {
- if (!hasFocus) {
- return; // do nothing if no focus.
- }
+ private void showGridExample() {
if (mRotaryGrid == null) {
mRotaryGrid = new RotaryGrid();
}
@@ -104,40 +108,28 @@ public class RotaryMenu extends Fragment {
// TODO(agathaman): refactor this and the showRotaryCards above into a
// showFragment(Fragment fragment, boolean hasFocus); method.
- private void showDirectManipulationExamples(boolean hasFocus) {
- if (!hasFocus) {
- return; // Do nothing if no focus.
- }
+ private void showDirectManipulationExamples() {
if (mDirectManipulation == null) {
mDirectManipulation = new RotaryDirectManipulationWidgets();
}
showFragment(mDirectManipulation);
}
- private void showSysUiDirectManipulationExamples(boolean hasFocus) {
- if (!hasFocus) {
- return; // Do nothing if no focus.
- }
+ private void showSysUiDirectManipulationExamples() {
if (mSysUiDirectManipulation == null) {
mSysUiDirectManipulation = new RotarySysUiDirectManipulationWidgets();
}
showFragment(mSysUiDirectManipulation);
}
- private void showNotificationExample(boolean hasFocus) {
- if (!hasFocus) {
- return; // do nothing if no focus.
- }
+ private void showNotificationExample() {
if (mNotificationFragment == null) {
mNotificationFragment = new HeadsUpNotificationFragment();
}
showFragment(mNotificationFragment);
}
- private void showScrollFragment(boolean hasFocus) {
- if (!hasFocus) {
- return; // Do nothing if no focus.
- }
+ private void showScrollFragment() {
if (mScrollFragment == null) {
mScrollFragment = new ScrollFragment();
}