From 1fe2e4f083e208f169d7a15d84ed44bb53d90c4c Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Thu, 13 Mar 2014 19:59:53 +0000 Subject: [PATCH] Add button on action bar to enter full screen mode --- clients/android/NewsBlur/res/menu/reading.xml | 6 ++++++ .../android/NewsBlur/res/values/strings.xml | 1 + .../src/com/newsblur/activity/Reading.java | 7 ++++++- .../fragment/ReadingItemFragment.java | 20 ++----------------- .../src/com/newsblur/util/ViewUtils.java | 15 ++++++++++++++ 5 files changed, 30 insertions(+), 19 deletions(-) diff --git a/clients/android/NewsBlur/res/menu/reading.xml b/clients/android/NewsBlur/res/menu/reading.xml index ad5573475..ff485641e 100644 --- a/clients/android/NewsBlur/res/menu/reading.xml +++ b/clients/android/NewsBlur/res/menu/reading.xml @@ -1,6 +1,12 @@ + Mark previous as read Mark as read Mark as unread + Full Screen Error loading stories diff --git a/clients/android/NewsBlur/src/com/newsblur/activity/Reading.java b/clients/android/NewsBlur/src/com/newsblur/activity/Reading.java index ec36c3044..f6c91e668 100644 --- a/clients/android/NewsBlur/src/com/newsblur/activity/Reading.java +++ b/clients/android/NewsBlur/src/com/newsblur/activity/Reading.java @@ -40,6 +40,7 @@ import com.newsblur.util.DefaultFeedView; import com.newsblur.util.FeedUtils; import com.newsblur.util.PrefsUtils; import com.newsblur.util.UIUtils; +import com.newsblur.util.ViewUtils; import com.newsblur.view.NonfocusScrollview.ScrollChangeListener; public abstract class Reading extends NbFragmentActivity implements OnPageChangeListener, OnSeekBarChangeListener, ScrollChangeListener, FeedUtils.ActionCompletionListener, LoaderManager.LoaderCallbacks { @@ -210,6 +211,7 @@ public abstract class Reading extends NbFragmentActivity implements OnPageChange Story story = readingAdapter.getStory(pager.getCurrentItem()); if (story == null ) { return false; } menu.findItem(R.id.menu_reading_save).setTitle(story.starred ? R.string.menu_unsave_story : R.string.menu_save_story); + menu.findItem(R.id.menu_reading_fullscreen).setVisible(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT); return true; } @@ -249,7 +251,10 @@ public abstract class Reading extends NbFragmentActivity implements OnPageChange } else if (item.getItemId() == R.id.menu_reading_markunread) { this.markStoryUnread(story); return true; - } else { + } else if (item.getItemId() == R.id.menu_reading_fullscreen) { + ViewUtils.hideSystemUI(getWindow().getDecorView()); + return true; + } else { return super.onOptionsItemSelected(item); } } diff --git a/clients/android/NewsBlur/src/com/newsblur/fragment/ReadingItemFragment.java b/clients/android/NewsBlur/src/com/newsblur/fragment/ReadingItemFragment.java index f36e225a0..0d6b4aaf8 100644 --- a/clients/android/NewsBlur/src/com/newsblur/fragment/ReadingItemFragment.java +++ b/clients/android/NewsBlur/src/com/newsblur/fragment/ReadingItemFragment.java @@ -562,28 +562,12 @@ public class ReadingItemFragment extends Fragment implements ClassifierDialogFra @Override public boolean onSingleTapUp(MotionEvent e) { if ((view.getSystemUiVisibility() & View.SYSTEM_UI_FLAG_IMMERSIVE) != 0) { - showSystemUI(); + ViewUtils.showSystemUI(view); } else { - hideSystemUI(); + ViewUtils.hideSystemUI(view); } return super.onSingleTapUp(e); } - - private void hideSystemUI() { - view.setSystemUiVisibility( - View.SYSTEM_UI_FLAG_LAYOUT_STABLE - | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION - | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN - | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION - | View.SYSTEM_UI_FLAG_FULLSCREEN - | View.SYSTEM_UI_FLAG_IMMERSIVE); - } - - private void showSystemUI() { - // Some layout/drawing artifacts as we don't use the FLAG_LAYOUT flags but otherwise the overlays wouldn't appear - // and the action bar would overlap the content - view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); - } } } diff --git a/clients/android/NewsBlur/src/com/newsblur/util/ViewUtils.java b/clients/android/NewsBlur/src/com/newsblur/util/ViewUtils.java index 004e27892..2def54e04 100644 --- a/clients/android/NewsBlur/src/com/newsblur/util/ViewUtils.java +++ b/clients/android/NewsBlur/src/com/newsblur/util/ViewUtils.java @@ -127,4 +127,19 @@ public class ViewUtils { v.setPadding(oldPadL, oldPadT, oldPadR, oldPadB); } + public static void showSystemUI(View view) { + // Some layout/drawing artifacts as we don't use the FLAG_LAYOUT flags but otherwise the overlays wouldn't appear + // and the action bar would overlap the content + view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); + } + + public static void hideSystemUI(View view) { + view.setSystemUiVisibility( + View.SYSTEM_UI_FLAG_LAYOUT_STABLE + | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_FULLSCREEN + | View.SYSTEM_UI_FLAG_IMMERSIVE); + } }