diff options
author | Sascha Haeberling <haeberling@google.com> | 2013-09-13 11:58:33 -0700 |
---|---|---|
committer | Sascha Haeberling <haeberling@google.com> | 2013-09-18 10:09:04 -0700 |
commit | 4ed20592482d2ab2f3f48ee72d5b1c06bf009034 (patch) | |
tree | 94f8823e5bd44e66ad4566780ce0884502726ac1 /src/com/android/camera/CameraActivity.java | |
parent | e1f0f4f1bce2a8d0dca3856aa0211dcfffb74abc (diff) | |
download | android_packages_apps_Snap-4ed20592482d2ab2f3f48ee72d5b1c06bf009034.tar.gz android_packages_apps_Snap-4ed20592482d2ab2f3f48ee72d5b1c06bf009034.tar.bz2 android_packages_apps_Snap-4ed20592482d2ab2f3f48ee72d5b1c06bf009034.zip |
Adding Hideybar support for K and up.
Bug: 10723047
Change-Id: Ie1d0bdadfbe6dee6a4e0998facac61ff1fb6e02a
Diffstat (limited to 'src/com/android/camera/CameraActivity.java')
-rw-r--r-- | src/com/android/camera/CameraActivity.java | 48 |
1 files changed, 37 insertions, 11 deletions
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java index 013b10fe8..f545bbdc7 100644 --- a/src/com/android/camera/CameraActivity.java +++ b/src/com/android/camera/CameraActivity.java @@ -19,12 +19,10 @@ package com.android.camera; import android.animation.Animator; import android.app.ActionBar; import android.app.Activity; -import android.app.AlertDialog; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; -import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.content.ServiceConnection; @@ -34,6 +32,7 @@ import android.content.res.Configuration; import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.os.AsyncTask; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; @@ -84,6 +83,12 @@ public class CameraActivity extends Activity private static final String TAG = "CAM_Activity"; + /** + * The visibility flags to use to switch the system in either lights-out + * mode (pre-K) or hideybar mode (K and up). + */ + private static final int IMMERSIVE_FLAGS = getImmersiveFlags(); + private static final String INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE = "android.media.action.STILL_IMAGE_CAMERA_SECURE"; public static final String ACTION_IMAGE_CAPTURE_SECURE = @@ -170,10 +175,6 @@ public class CameraActivity extends Activity private Intent mVideoShareIntent; private Intent mImageShareIntent; - public void gotoGallery() { - mFilmStripView.getController().goToNextItem(); - } - private class MyOrientationEventListener extends OrientationEventListener { public MyOrientationEventListener(Context context) { @@ -248,6 +249,25 @@ public class CameraActivity extends Activity } } + private static int getImmersiveFlags() { + if (isKitKatOrHigher()) { + return View.SYSTEM_UI_FLAG_IMMERSIVE + | View.SYSTEM_UI_FLAG_TRANSPARENT_STATUS + | View.SYSTEM_UI_FLAG_TRANSPARENT_NAVIGATION + | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_FULLSCREEN; + } else { + // Pre-KitKat we use lights-out mode. + return View.SYSTEM_UI_FLAG_LOW_PROFILE; + } + } + + public static boolean isKitKatOrHigher() { + // TODO: Remove CODENAME check as soon as VERSION_CODES.KITKAT is final. + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT + || "KeyLimePie".equals(Build.VERSION.CODENAME); + } + public static boolean isFirstStartAfterScreenOn() { return sFirstStartAfterScreenOn; } @@ -347,31 +367,37 @@ public class CameraActivity extends Activity public boolean onToggleActionBarVisibility(int dataID) { if (mActionBar.isShowing()) { setActionBarVisibilityAndLightsOut(true); + return false; } else { // Don't show the action bar if that is the camera preview. boolean isCameraID = isCameraPreview(dataID); if (!isCameraID) { setActionBarVisibilityAndLightsOut(false); + return true; } + return false; } - return mActionBar.isShowing(); } }; + public void gotoGallery() { + mFilmStripView.getController().goToNextItem(); + } + /** * If enabled, this hides the action bar and switches the system UI to * lights-out mode. */ private void setActionBarVisibilityAndLightsOut(boolean enabled) { + int visibility = DEFAULT_SYSTEM_UI_VISIBILITY | (enabled ? IMMERSIVE_FLAGS + : View.SYSTEM_UI_FLAG_VISIBLE); + mAboveFilmstripControlLayout + .setSystemUiVisibility(visibility); if (enabled) { mActionBar.hide(); } else { mActionBar.show(); } - int visibility = DEFAULT_SYSTEM_UI_VISIBILITY | (enabled ? View.SYSTEM_UI_FLAG_LOW_PROFILE - : View.SYSTEM_UI_FLAG_VISIBLE); - mAboveFilmstripControlLayout - .setSystemUiVisibility(visibility); } private void hidePanoStitchingProgress() { |