diff options
-rw-r--r-- | res/layout-sw600dp/preview_frame.xml | 2 | ||||
-rw-r--r-- | res/layout-sw600dp/preview_frame_video.xml | 1 | ||||
-rw-r--r-- | res/layout/first_hint_toast.xml (renamed from res/layout/tap_to_focus_toast.xml) | 8 | ||||
-rw-r--r-- | res/layout/preview_frame.xml | 2 | ||||
-rw-r--r-- | res/layout/preview_frame_video.xml | 1 | ||||
-rw-r--r-- | src/com/android/camera/Camera.java | 11 | ||||
-rw-r--r-- | src/com/android/camera/CameraSettings.java | 3 | ||||
-rw-r--r-- | src/com/android/camera/ComboPreferences.java | 3 | ||||
-rwxr-xr-x | src/com/android/camera/VideoCamera.java | 45 |
9 files changed, 64 insertions, 12 deletions
diff --git a/res/layout-sw600dp/preview_frame.xml b/res/layout-sw600dp/preview_frame.xml index 961a407..896d394 100644 --- a/res/layout-sw600dp/preview_frame.xml +++ b/res/layout-sw600dp/preview_frame.xml @@ -31,6 +31,6 @@ android:visibility="gone"/> <include layout="@layout/focus_indicator"/> <include layout="@layout/priority_indicators"/> - <include layout="@layout/tap_to_focus_toast"/> + <include layout="@layout/first_hint_toast"/> </com.android.camera.PreviewFrameLayout> </RelativeLayout> diff --git a/res/layout-sw600dp/preview_frame_video.xml b/res/layout-sw600dp/preview_frame_video.xml index 69b7fe3..4e59c90 100644 --- a/res/layout-sw600dp/preview_frame_video.xml +++ b/res/layout-sw600dp/preview_frame_video.xml @@ -44,5 +44,6 @@ android:background="@drawable/bg_pressed" android:visibility="gone" android:onClick="onReviewPlayClicked" /> + <include layout="@layout/first_hint_toast"/> </com.android.camera.PreviewFrameLayout> </RelativeLayout> diff --git a/res/layout/tap_to_focus_toast.xml b/res/layout/first_hint_toast.xml index 1ea67e7..fb60d29 100644 --- a/res/layout/tap_to_focus_toast.xml +++ b/res/layout/first_hint_toast.xml @@ -17,13 +17,12 @@ */ --> <com.android.camera.ui.RotateLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/tap_to_focus_prompt" + android:id="@+id/first_use_hint" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:visibility="gone"> - <TextView - android:text="@string/tap_to_focus" + <TextView android:id="@+id/toast_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="10dp" @@ -32,4 +31,5 @@ android:paddingBottom="5dp" android:textAppearance="?android:textAppearanceMedium" android:background="@color/on_viewfinder_label_background_color" /> -</com.android.camera.ui.RotateLayout>
\ No newline at end of file +</com.android.camera.ui.RotateLayout> + diff --git a/res/layout/preview_frame.xml b/res/layout/preview_frame.xml index c225a58..31ba61b 100644 --- a/res/layout/preview_frame.xml +++ b/res/layout/preview_frame.xml @@ -32,7 +32,7 @@ android:visibility="gone"/> <include layout="@layout/focus_indicator"/> <include layout="@layout/priority_indicators"/> - <include layout="@layout/tap_to_focus_toast"/> + <include layout="@layout/first_hint_toast"/> </com.android.camera.PreviewFrameLayout> <include layout="@layout/indicator_bar" /> </RelativeLayout> diff --git a/res/layout/preview_frame_video.xml b/res/layout/preview_frame_video.xml index 5e27169..af945f5 100644 --- a/res/layout/preview_frame_video.xml +++ b/res/layout/preview_frame_video.xml @@ -44,6 +44,7 @@ android:src="@drawable/ic_gallery_play" android:visibility="gone" android:onClick="onReviewPlayClicked"/> + <include layout="@layout/first_hint_toast"/> </com.android.camera.PreviewFrameLayout> <!-- Fill up the space below preview frame with black. --> diff --git a/src/com/android/camera/Camera.java b/src/com/android/camera/Camera.java index 151ef7a..8012a2b 100644 --- a/src/com/android/camera/Camera.java +++ b/src/com/android/camera/Camera.java @@ -303,7 +303,7 @@ public class Camera extends ActivityBase implements FocusManager.Listener, } case DISMISS_TAP_TO_FOCUS_TOAST: { - View v = findViewById(R.id.tap_to_focus_prompt); + View v = findViewById(R.id.first_use_hint); v.setVisibility(View.GONE); v.setAnimation(AnimationUtils.loadAnimation(Camera.this, R.anim.on_screen_hint_exit)); @@ -389,7 +389,7 @@ public class Camera extends ActivityBase implements FocusManager.Listener, startFaceDetection(); // Show the tap to focus toast if this is the first start. if (mFocusAreaSupported && - mPreferences.getBoolean(CameraSettings.KEY_TAP_TO_FOCUS_PROMPT_SHOWN, true)) { + mPreferences.getBoolean(CameraSettings.KEY_CAMERA_FIRST_USE_HINT_SHOWN, true)) { // Delay the toast for one second to wait for orientation. mHandler.sendEmptyMessageDelayed(SHOW_TAP_TO_FOCUS_TOAST, 1000); } @@ -2214,15 +2214,18 @@ public class Camera extends ActivityBase implements FocusManager.Listener, } private void showTapToFocusToast() { + // Set the text of toast + TextView textView = (TextView) findViewById(R.id.toast_text); + textView.setText(R.string.tap_to_focus); // Show the toast. - RotateLayout v = (RotateLayout) findViewById(R.id.tap_to_focus_prompt); + RotateLayout v = (RotateLayout) findViewById(R.id.first_use_hint); v.setOrientation(mOrientationCompensation); v.startAnimation(AnimationUtils.loadAnimation(this, R.anim.on_screen_hint_enter)); v.setVisibility(View.VISIBLE); mHandler.sendEmptyMessageDelayed(DISMISS_TAP_TO_FOCUS_TOAST, 5000); // Clear the preference. Editor editor = mPreferences.edit(); - editor.putBoolean(CameraSettings.KEY_TAP_TO_FOCUS_PROMPT_SHOWN, false); + editor.putBoolean(CameraSettings.KEY_CAMERA_FIRST_USE_HINT_SHOWN, false); editor.apply(); } diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index 9c3104b..c861366 100644 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -50,7 +50,8 @@ public class CameraSettings { public static final String KEY_EXPOSURE = "pref_camera_exposure_key"; public static final String KEY_VIDEO_EFFECT = "pref_video_effect_key"; public static final String KEY_CAMERA_ID = "pref_camera_id_key"; - public static final String KEY_TAP_TO_FOCUS_PROMPT_SHOWN = "pref_tap_to_focus_prompt_shown_key"; + public static final String KEY_CAMERA_FIRST_USE_HINT_SHOWN = "pref_camera_first_use_hint_shown_key"; + public static final String KEY_VIDEO_FIRST_USE_HINT_SHOWN = "pref_video_first_use_hint_shown_key"; public static final String EXPOSURE_DEFAULT_VALUE = "0"; diff --git a/src/com/android/camera/ComboPreferences.java b/src/com/android/camera/ComboPreferences.java index 1af634c..bea2ffd 100644 --- a/src/com/android/camera/ComboPreferences.java +++ b/src/com/android/camera/ComboPreferences.java @@ -76,7 +76,8 @@ public class ComboPreferences implements SharedPreferences, OnSharedPreferenceCh return key.equals(CameraSettings.KEY_VIDEO_TIME_LAPSE_FRAME_INTERVAL) || key.equals(CameraSettings.KEY_CAMERA_ID) || key.equals(CameraSettings.KEY_RECORD_LOCATION) - || key.equals(CameraSettings.KEY_TAP_TO_FOCUS_PROMPT_SHOWN) + || key.equals(CameraSettings.KEY_CAMERA_FIRST_USE_HINT_SHOWN) + || key.equals(CameraSettings.KEY_VIDEO_FIRST_USE_HINT_SHOWN) || key.equals(CameraSettings.KEY_VIDEO_EFFECT); } diff --git a/src/com/android/camera/VideoCamera.java b/src/com/android/camera/VideoCamera.java index 7c87892..78978f5 100755 --- a/src/com/android/camera/VideoCamera.java +++ b/src/com/android/camera/VideoCamera.java @@ -32,6 +32,7 @@ import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.SharedPreferences.Editor; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.graphics.Bitmap; @@ -65,6 +66,7 @@ import android.view.SurfaceView; import android.view.View; import android.view.Window; import android.view.WindowManager; +import android.view.animation.AnimationUtils; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -95,6 +97,8 @@ public class VideoCamera extends ActivityBase private static final int CLEAR_SCREEN_DELAY = 4; private static final int UPDATE_RECORD_TIME = 5; private static final int ENABLE_SHUTTER_BUTTON = 6; + private static final int SHOW_TAP_TO_SNAPSHOT_TOAST = 7; + private static final int DISMISS_TAP_TO_SNAPSHOT_TOAST = 8; private static final int SCREEN_DELAY = 2 * 60 * 1000; @@ -298,6 +302,19 @@ public class VideoCamera extends ActivityBase break; } + case SHOW_TAP_TO_SNAPSHOT_TOAST: { + showTapToSnapshotToast(); + break; + } + + case DISMISS_TAP_TO_SNAPSHOT_TOAST: { + View v = findViewById(R.id.first_use_hint); + v.setVisibility(View.GONE); + v.setAnimation(AnimationUtils.loadAnimation(VideoCamera.this, + R.anim.on_screen_hint_exit)); + break; + } + default: Log.v(TAG, "Unhandled message: " + msg.what); break; @@ -540,6 +557,12 @@ public class VideoCamera extends ActivityBase setOrientationIndicator(mOrientationCompensation); } } + + // Show the toast after getting the first orientation changed. + if (mHandler.hasMessages(SHOW_TAP_TO_SNAPSHOT_TOAST)) { + mHandler.removeMessages(SHOW_TAP_TO_SNAPSHOT_TOAST); + showTapToSnapshotToast(); + } } } @@ -2292,6 +2315,12 @@ public class VideoCamera extends ActivityBase private void initializeVideoSnapshot() { if (mParameters.isVideoSnapshotSupported() && !mIsVideoCaptureIntent) { findViewById(R.id.camera_preview).setOnTouchListener(this); + // Show the tap to focus toast if this is the first start. + if (mPreferences.getBoolean( + CameraSettings.KEY_VIDEO_FIRST_USE_HINT_SHOWN, true)) { + // Delay the toast for one second to wait for orientation. + mHandler.sendEmptyMessageDelayed(SHOW_TAP_TO_SNAPSHOT_TOAST, 1000); + } } } @@ -2405,4 +2434,20 @@ public class VideoCamera extends ActivityBase mVideoFileDescriptor = null; } } + + private void showTapToSnapshotToast() { + // Set the text of toast + TextView textView = (TextView) findViewById(R.id.toast_text); + textView.setText(R.string.video_snapshot_hint); + // Show the toast. + RotateLayout v = (RotateLayout) findViewById(R.id.first_use_hint); + v.setOrientation(mOrientationCompensation); + v.startAnimation(AnimationUtils.loadAnimation(this, R.anim.on_screen_hint_enter)); + v.setVisibility(View.VISIBLE); + mHandler.sendEmptyMessageDelayed(DISMISS_TAP_TO_SNAPSHOT_TOAST, 5000); + // Clear the preference. + Editor editor = mPreferences.edit(); + editor.putBoolean(CameraSettings.KEY_VIDEO_FIRST_USE_HINT_SHOWN, false); + editor.apply(); + } } |