aboutsummaryrefslogtreecommitdiff
path: root/RotaryPlayground/src/com/android/car/rotaryplayground/RotaryMenu.java
diff options
context:
space:
mode:
Diffstat (limited to 'RotaryPlayground/src/com/android/car/rotaryplayground/RotaryMenu.java')
-rw-r--r--RotaryPlayground/src/com/android/car/rotaryplayground/RotaryMenu.java134
1 files changed, 76 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..0e417b4 100644
--- a/RotaryPlayground/src/com/android/car/rotaryplayground/RotaryMenu.java
+++ b/RotaryPlayground/src/com/android/car/rotaryplayground/RotaryMenu.java
@@ -37,65 +37,81 @@ public class RotaryMenu extends Fragment {
private Fragment mSysUiDirectManipulation = null;
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;
+ private Fragment mWebViewFragment = null;
+ private Fragment mCustomFocusAreasFragment = null;
@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();
+ });
+
+ Button webViewButton = view.findViewById(R.id.web_view);
+ webViewButton.setOnClickListener(v -> {
+ selectTab(v);
+ showWebViewFragment();
+ });
+
+ Button customFocusAreasButton = view.findViewById(R.id.custom_focus_areas);
+ customFocusAreasButton.setOnClickListener(v -> {
+ selectTab(v);
+ showCustomFocusAreasFragment();
+ });
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,46 +120,48 @@ 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();
}
showFragment(mScrollFragment);
}
+ private void showWebViewFragment() {
+ if (mWebViewFragment == null) {
+ mWebViewFragment = new WebViewFragment();
+ }
+ showFragment(mWebViewFragment);
+ }
+
+ private void showCustomFocusAreasFragment() {
+ if (mCustomFocusAreasFragment == null) {
+ mCustomFocusAreasFragment = new CustomFocusAreasFragment();
+ }
+ showFragment(mCustomFocusAreasFragment);
+ }
+
private void showFragment(Fragment fragment) {
getFragmentManager().beginTransaction()
.replace(R.id.rotary_content, fragment)