summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChung-yih Wang <cywang@google.com>2011-11-11 20:46:43 +0800
committerChung-yih Wang <cywang@google.com>2011-11-14 15:05:20 +0800
commit419d20ae123f53226ccefb7d28d8a40add8ffd0a (patch)
treeb40c50d9fef68804ce91190a44101fc6a2af00fa /src
parent8d51fc281ca4e14c87eac278d153e162c0e1fcf2 (diff)
downloadLegacyCamera-419d20ae123f53226ccefb7d28d8a40add8ffd0a.zip
LegacyCamera-419d20ae123f53226ccefb7d28d8a40add8ffd0a.tar.gz
LegacyCamera-419d20ae123f53226ccefb7d28d8a40add8ffd0a.tar.bz2
Add a rotatable toast class.
bug:5575970 In order to show the toast in a landscape orientation with portrait layout. The rotatable toast helper class is implementated and is also applied for first-hint toast messages. Change-Id: I942e87df1c1a4509d01cd41e2ecbdc2e2dfec049
Diffstat (limited to 'src')
-rw-r--r--src/com/android/camera/Camera.java22
-rwxr-xr-xsrc/com/android/camera/VideoCamera.java25
-rw-r--r--src/com/android/camera/ui/RotateTextToast.java58
3 files changed, 66 insertions, 39 deletions
diff --git a/src/com/android/camera/Camera.java b/src/com/android/camera/Camera.java
index c3f5d95..bb0c0e0 100644
--- a/src/com/android/camera/Camera.java
+++ b/src/com/android/camera/Camera.java
@@ -22,6 +22,7 @@ import com.android.camera.ui.IndicatorControlContainer;
import com.android.camera.ui.Rotatable;
import com.android.camera.ui.RotateImageView;
import com.android.camera.ui.RotateLayout;
+import com.android.camera.ui.RotateTextToast;
import com.android.camera.ui.SharePopup;
import com.android.camera.ui.ZoomControl;
@@ -95,8 +96,7 @@ public class Camera extends ActivityBase implements FocusManager.Listener,
private static final int SET_CAMERA_PARAMETERS_WHEN_IDLE = 4;
private static final int CHECK_DISPLAY_ROTATION = 5;
private static final int SHOW_TAP_TO_FOCUS_TOAST = 6;
- private static final int DISMISS_TAP_TO_FOCUS_TOAST = 7;
- private static final int UPDATE_THUMBNAIL = 8;
+ private static final int UPDATE_THUMBNAIL = 7;
// The subset of parameters we need to update in setCameraParameters().
private static final int UPDATE_PARAM_INITIALIZE = 1;
@@ -310,14 +310,6 @@ public class Camera extends ActivityBase implements FocusManager.Listener,
break;
}
- case DISMISS_TAP_TO_FOCUS_TOAST: {
- View v = findViewById(R.id.first_use_hint);
- v.setVisibility(View.GONE);
- v.setAnimation(AnimationUtils.loadAnimation(Camera.this,
- R.anim.on_screen_hint_exit));
- break;
- }
-
case UPDATE_THUMBNAIL: {
mImageSaver.updateThumbnail();
break;
@@ -2275,15 +2267,7 @@ 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.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);
+ new RotateTextToast(this, R.string.tap_to_focus, mOrientation).show();
// Clear the preference.
Editor editor = mPreferences.edit();
editor.putBoolean(CameraSettings.KEY_CAMERA_FIRST_USE_HINT_SHOWN, false);
diff --git a/src/com/android/camera/VideoCamera.java b/src/com/android/camera/VideoCamera.java
index fad9094..f725f43 100755
--- a/src/com/android/camera/VideoCamera.java
+++ b/src/com/android/camera/VideoCamera.java
@@ -22,6 +22,7 @@ import com.android.camera.ui.IndicatorControlWheelContainer;
import com.android.camera.ui.Rotatable;
import com.android.camera.ui.RotateImageView;
import com.android.camera.ui.RotateLayout;
+import com.android.camera.ui.RotateTextToast;
import com.android.camera.ui.SharePopup;
import com.android.camera.ui.ZoomControl;
@@ -98,7 +99,6 @@ public class VideoCamera extends ActivityBase
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;
@@ -308,14 +308,6 @@ public class VideoCamera extends ActivityBase
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;
@@ -2344,8 +2336,8 @@ public class VideoCamera extends ActivityBase
@Override
public boolean onTouch(View v, MotionEvent e) {
if (mMediaRecorderRecording && effectsActive()) {
- Toast.makeText(this, getResources().getString(
- R.string.disable_video_snapshot_hint), Toast.LENGTH_LONG).show();
+ new RotateTextToast(this, R.string.disable_video_snapshot_hint,
+ mOrientation).show();
return false;
}
@@ -2444,15 +2436,8 @@ public class VideoCamera extends ActivityBase
}
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);
+ new RotateTextToast(this, R.string.video_snapshot_hint, mOrientation)
+ .show();
// Clear the preference.
Editor editor = mPreferences.edit();
editor.putBoolean(CameraSettings.KEY_VIDEO_FIRST_USE_HINT_SHOWN, false);
diff --git a/src/com/android/camera/ui/RotateTextToast.java b/src/com/android/camera/ui/RotateTextToast.java
new file mode 100644
index 0000000..8ff381a
--- /dev/null
+++ b/src/com/android/camera/ui/RotateTextToast.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.camera.ui;
+
+import com.android.camera.R;
+import com.android.camera.Util;
+
+import android.app.Activity;
+import android.os.Handler;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+public class RotateTextToast {
+ private static final int TOAST_DURATION = 5000; // milliseconds
+ ViewGroup mLayoutRoot;
+ RotateLayout mToast;
+ Handler mHandler;
+
+ public RotateTextToast(Activity activity, int textResourceId, int orientation) {
+ mLayoutRoot = (ViewGroup) activity.getWindow().getDecorView();
+ LayoutInflater inflater = activity.getLayoutInflater();
+ View v = inflater.inflate(R.layout.rotate_text_toast, mLayoutRoot);
+ mToast = (RotateLayout) v.findViewById(R.id.rotate_toast);
+ TextView tv = (TextView) mToast.findViewById(R.id.message);
+ tv.setText(textResourceId);
+ mToast.setOrientation(orientation);
+ mHandler = new Handler();
+ }
+
+ private final Runnable mRunnable = new Runnable() {
+ public void run() {
+ Util.fadeOut(mToast);
+ mLayoutRoot.removeView(mToast);
+ mToast = null;
+ }
+ };
+
+ public void show() {
+ mToast.setVisibility(View.VISIBLE);
+ mHandler.postDelayed(mRunnable, TOAST_DURATION);
+ }
+}