Loading res/menu/desk_clock_menu.xml +23 −19 Original line number Diff line number Diff line Loading @@ -17,26 +17,30 @@ <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <group android:id="@+id/menu_items"> <item android:id="@+id/menu_item_search" android:title="@android:string/search_go" <item android:id="@+id/menu_item_search" android:icon="@android:drawable/ic_menu_search" android:imeOptions="actionSearch" android:orderInCategory="1" app:showAsAction="ifRoom" app:actionViewClass="android.support.v7.widget.SearchView" /> <item android:id="@+id/menu_item_sort" android:title="@android:string/search_go" android:visible="false" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="ifRoom"/> <item android:id="@+id/menu_item_sort" android:title="@string/menu_item_sort_by_gmt_offset" app:showAsAction="never"/> <item android:id="@+id/menu_item_night_mode" android:title="@string/menu_item_night_mode" android:icon="@android:drawable/ic_menu_preferences"/> <item android:id="@+id/menu_item_settings" android:title="@string/menu_item_settings" android:icon="@android:drawable/ic_menu_preferences"/> <item android:id="@+id/menu_item_help" android:title="@string/menu_item_help" android:icon="@android:drawable/ic_menu_preferences"/> <item android:id="@+id/menu_item_night_mode" android:icon="@android:drawable/ic_menu_preferences" android:title="@string/menu_item_night_mode"/> <item android:id="@+id/menu_item_settings" android:icon="@android:drawable/ic_menu_preferences" android:title="@string/menu_item_settings"/> <item android:id="@+id/menu_item_help" android:icon="@android:drawable/ic_menu_preferences" android:title="@string/menu_item_help"/> </group> </menu> No newline at end of file src/com/android/deskclock/DeskClock.java +53 −49 Original line number Diff line number Diff line Loading @@ -100,7 +100,7 @@ public class DeskClock extends BaseActivity // not the most recent launch was via a dock event setIntent(newIntent); // Timer receiver may ask to go to the timers fragment if a timer expired. // Honor the tab requested by the intent, if any. int tab = newIntent.getIntExtra(SELECT_TAB_INTENT_EXTRA, -1); if (tab != -1 && mTabLayout != null) { mTabLayout.getTabAt(tab).select(); Loading @@ -108,45 +108,6 @@ public class DeskClock extends BaseActivity } } private void initViews() { setContentView(R.layout.desk_clock); setSupportActionBar((Toolbar) findViewById(R.id.toolbar)); mTabLayout = (TabLayout) findViewById(R.id.sliding_tabs); mFab = (ImageView) findViewById(R.id.fab); mLeftButton = (ImageButton) findViewById(R.id.left_button); mRightButton = (ImageButton) findViewById(R.id.right_button); if (mTabsAdapter == null) { mViewPager = (RtlViewPager) findViewById(R.id.desk_clock_pager); // Keep all four tabs to minimize jank. mViewPager.setOffscreenPageLimit(3); // Set Accessibility Delegate to null so ViewPager doesn't intercept movements and // prevent the fab from being selected. mViewPager.setAccessibilityDelegate(null); mTabsAdapter = new TabsAdapter(this, mViewPager); createTabs(); mTabLayout.setOnTabSelectedListener(new ViewPagerOnTabSelectedListener(mViewPager)); } mFab.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { getSelectedFragment().onFabClick(view); } }); mLeftButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { getSelectedFragment().onLeftButtonClick(view); } }); mRightButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { getSelectedFragment().onRightButtonClick(view); } }); } @VisibleForTesting DeskClockFragment getSelectedFragment() { return (DeskClockFragment) mTabsAdapter.getItem(mSelectedTab); Loading Loading @@ -178,10 +139,6 @@ public class DeskClock extends BaseActivity @Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); mActionBarMenuManager.addMenuItemController(new SettingMenuItemController(this)) .addMenuItemController(MenuItemControllerFactory.getInstance() .buildMenuItemControllers(this)) .addMenuItemController(nightModeMenuItemController); setVolumeControlStream(AudioManager.STREAM_ALARM); if (icicle != null) { Loading @@ -195,15 +152,62 @@ public class DeskClock extends BaseActivity false /* animate */); } // Timer receiver may ask the app to go to the timer fragment if a timer expired Intent i = getIntent(); if (i != null) { int tab = i.getIntExtra(SELECT_TAB_INTENT_EXTRA, -1); // Honor the tab requested by the intent, if any. final Intent intent = getIntent(); if (intent != null) { int tab = intent.getIntExtra(SELECT_TAB_INTENT_EXTRA, -1); if (tab != -1) { mSelectedTab = tab; } } initViews(); setContentView(R.layout.desk_clock); final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); mTabLayout = (TabLayout) findViewById(R.id.sliding_tabs); mFab = (ImageView) findViewById(R.id.fab); mLeftButton = (ImageButton) findViewById(R.id.left_button); mRightButton = (ImageButton) findViewById(R.id.right_button); if (mTabsAdapter == null) { mViewPager = (RtlViewPager) findViewById(R.id.desk_clock_pager); // Keep all four tabs to minimize jank. mViewPager.setOffscreenPageLimit(3); // Set Accessibility Delegate to null so ViewPager doesn't intercept movements and // prevent the fab from being selected. mViewPager.setAccessibilityDelegate(null); mTabsAdapter = new TabsAdapter(this, mViewPager); createTabs(); mTabLayout.setOnTabSelectedListener(new ViewPagerOnTabSelectedListener(mViewPager)); } mFab.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { getSelectedFragment().onFabClick(view); } }); mLeftButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { getSelectedFragment().onLeftButtonClick(view); } }); mRightButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { getSelectedFragment().onRightButtonClick(view); } }); // Configure the menu item controllers. mActionBarMenuManager.addMenuItemController(new SettingMenuItemController(this)) .addMenuItemController(MenuItemControllerFactory.getInstance() .buildMenuItemControllers(this)) .addMenuItemController(nightModeMenuItemController); // Inflate the menu during creation to avoid a double layout pass. Otherwise, the menu // inflation occurs *after* the initial draw and a second layout pass adds in the menu. onCreateOptionsMenu(toolbar.getMenu()); // We need to update the system next alarm time on app startup because the // user might have clear our data. Loading Loading
res/menu/desk_clock_menu.xml +23 −19 Original line number Diff line number Diff line Loading @@ -17,26 +17,30 @@ <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <group android:id="@+id/menu_items"> <item android:id="@+id/menu_item_search" android:title="@android:string/search_go" <item android:id="@+id/menu_item_search" android:icon="@android:drawable/ic_menu_search" android:imeOptions="actionSearch" android:orderInCategory="1" app:showAsAction="ifRoom" app:actionViewClass="android.support.v7.widget.SearchView" /> <item android:id="@+id/menu_item_sort" android:title="@android:string/search_go" android:visible="false" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="ifRoom"/> <item android:id="@+id/menu_item_sort" android:title="@string/menu_item_sort_by_gmt_offset" app:showAsAction="never"/> <item android:id="@+id/menu_item_night_mode" android:title="@string/menu_item_night_mode" android:icon="@android:drawable/ic_menu_preferences"/> <item android:id="@+id/menu_item_settings" android:title="@string/menu_item_settings" android:icon="@android:drawable/ic_menu_preferences"/> <item android:id="@+id/menu_item_help" android:title="@string/menu_item_help" android:icon="@android:drawable/ic_menu_preferences"/> <item android:id="@+id/menu_item_night_mode" android:icon="@android:drawable/ic_menu_preferences" android:title="@string/menu_item_night_mode"/> <item android:id="@+id/menu_item_settings" android:icon="@android:drawable/ic_menu_preferences" android:title="@string/menu_item_settings"/> <item android:id="@+id/menu_item_help" android:icon="@android:drawable/ic_menu_preferences" android:title="@string/menu_item_help"/> </group> </menu> No newline at end of file
src/com/android/deskclock/DeskClock.java +53 −49 Original line number Diff line number Diff line Loading @@ -100,7 +100,7 @@ public class DeskClock extends BaseActivity // not the most recent launch was via a dock event setIntent(newIntent); // Timer receiver may ask to go to the timers fragment if a timer expired. // Honor the tab requested by the intent, if any. int tab = newIntent.getIntExtra(SELECT_TAB_INTENT_EXTRA, -1); if (tab != -1 && mTabLayout != null) { mTabLayout.getTabAt(tab).select(); Loading @@ -108,45 +108,6 @@ public class DeskClock extends BaseActivity } } private void initViews() { setContentView(R.layout.desk_clock); setSupportActionBar((Toolbar) findViewById(R.id.toolbar)); mTabLayout = (TabLayout) findViewById(R.id.sliding_tabs); mFab = (ImageView) findViewById(R.id.fab); mLeftButton = (ImageButton) findViewById(R.id.left_button); mRightButton = (ImageButton) findViewById(R.id.right_button); if (mTabsAdapter == null) { mViewPager = (RtlViewPager) findViewById(R.id.desk_clock_pager); // Keep all four tabs to minimize jank. mViewPager.setOffscreenPageLimit(3); // Set Accessibility Delegate to null so ViewPager doesn't intercept movements and // prevent the fab from being selected. mViewPager.setAccessibilityDelegate(null); mTabsAdapter = new TabsAdapter(this, mViewPager); createTabs(); mTabLayout.setOnTabSelectedListener(new ViewPagerOnTabSelectedListener(mViewPager)); } mFab.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { getSelectedFragment().onFabClick(view); } }); mLeftButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { getSelectedFragment().onLeftButtonClick(view); } }); mRightButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { getSelectedFragment().onRightButtonClick(view); } }); } @VisibleForTesting DeskClockFragment getSelectedFragment() { return (DeskClockFragment) mTabsAdapter.getItem(mSelectedTab); Loading Loading @@ -178,10 +139,6 @@ public class DeskClock extends BaseActivity @Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); mActionBarMenuManager.addMenuItemController(new SettingMenuItemController(this)) .addMenuItemController(MenuItemControllerFactory.getInstance() .buildMenuItemControllers(this)) .addMenuItemController(nightModeMenuItemController); setVolumeControlStream(AudioManager.STREAM_ALARM); if (icicle != null) { Loading @@ -195,15 +152,62 @@ public class DeskClock extends BaseActivity false /* animate */); } // Timer receiver may ask the app to go to the timer fragment if a timer expired Intent i = getIntent(); if (i != null) { int tab = i.getIntExtra(SELECT_TAB_INTENT_EXTRA, -1); // Honor the tab requested by the intent, if any. final Intent intent = getIntent(); if (intent != null) { int tab = intent.getIntExtra(SELECT_TAB_INTENT_EXTRA, -1); if (tab != -1) { mSelectedTab = tab; } } initViews(); setContentView(R.layout.desk_clock); final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); mTabLayout = (TabLayout) findViewById(R.id.sliding_tabs); mFab = (ImageView) findViewById(R.id.fab); mLeftButton = (ImageButton) findViewById(R.id.left_button); mRightButton = (ImageButton) findViewById(R.id.right_button); if (mTabsAdapter == null) { mViewPager = (RtlViewPager) findViewById(R.id.desk_clock_pager); // Keep all four tabs to minimize jank. mViewPager.setOffscreenPageLimit(3); // Set Accessibility Delegate to null so ViewPager doesn't intercept movements and // prevent the fab from being selected. mViewPager.setAccessibilityDelegate(null); mTabsAdapter = new TabsAdapter(this, mViewPager); createTabs(); mTabLayout.setOnTabSelectedListener(new ViewPagerOnTabSelectedListener(mViewPager)); } mFab.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { getSelectedFragment().onFabClick(view); } }); mLeftButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { getSelectedFragment().onLeftButtonClick(view); } }); mRightButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { getSelectedFragment().onRightButtonClick(view); } }); // Configure the menu item controllers. mActionBarMenuManager.addMenuItemController(new SettingMenuItemController(this)) .addMenuItemController(MenuItemControllerFactory.getInstance() .buildMenuItemControllers(this)) .addMenuItemController(nightModeMenuItemController); // Inflate the menu during creation to avoid a double layout pass. Otherwise, the menu // inflation occurs *after* the initial draw and a second layout pass adds in the menu. onCreateOptionsMenu(toolbar.getMenu()); // We need to update the system next alarm time on app startup because the // user might have clear our data. Loading