summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/ui/RotateTextToast.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/ui/RotateTextToast.java')
-rw-r--r--src/com/android/camera/ui/RotateTextToast.java53
1 files changed, 45 insertions, 8 deletions
diff --git a/src/com/android/camera/ui/RotateTextToast.java b/src/com/android/camera/ui/RotateTextToast.java
index 10d97bf73..2bea5bbda 100644
--- a/src/com/android/camera/ui/RotateTextToast.java
+++ b/src/com/android/camera/ui/RotateTextToast.java
@@ -16,31 +16,51 @@
package com.android.camera.ui;
+import java.util.HashSet;
+
import android.app.Activity;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
+import android.widget.Toast;
import com.android.camera.util.CameraUtil;
import org.codeaurora.snapcam.R;
public class RotateTextToast {
- private static final int TOAST_DURATION = 5000; // milliseconds
- ViewGroup mLayoutRoot;
- RotateLayout mToast;
- Handler mHandler;
+ private static final int LONG_DELAY = 3500;
+ private static final int SHORT_DELAY = 2000;
+
+ private ViewGroup mLayoutRoot;
+ private RotateLayout mToast;
+ private Handler mHandler;
+ private int mDuration;
+
+ private static HashSet<RotateLayout> mToasts = new HashSet<RotateLayout>();
+ private static int mOrientation;
- public RotateTextToast(Activity activity, int textResourceId, int orientation) {
+ private RotateTextToast(Activity activity, int duration) {
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);
+ mToast.setOrientation(mOrientation, false);
+ mHandler = new Handler();
+ mDuration = duration == Toast.LENGTH_LONG ? LONG_DELAY : SHORT_DELAY;
+ }
+
+ public RotateTextToast(Activity activity, CharSequence text, int duration) {
+ this(activity, duration);
+ TextView tv = (TextView) mToast.findViewById(R.id.message);
+ tv.setText(text);
+ }
+
+ public RotateTextToast(Activity activity, int textResourceId, int duration) {
+ this(activity, duration);
TextView tv = (TextView) mToast.findViewById(R.id.message);
tv.setText(textResourceId);
- mToast.setOrientation(orientation, false);
- mHandler = new Handler();
}
private final Runnable mRunnable = new Runnable() {
@@ -48,12 +68,29 @@ public class RotateTextToast {
public void run() {
CameraUtil.fadeOut(mToast);
mLayoutRoot.removeView(mToast);
+ mToasts.remove(mToast);
mToast = null;
}
};
public void show() {
+ mToasts.add(mToast);
mToast.setVisibility(View.VISIBLE);
- mHandler.postDelayed(mRunnable, TOAST_DURATION);
+ mHandler.postDelayed(mRunnable, mDuration);
+ }
+
+ public static RotateTextToast makeText(Activity activity, int textResourceId, int duration) {
+ return new RotateTextToast(activity, textResourceId, duration);
+ }
+
+ public static RotateTextToast makeText(Activity activity, CharSequence text, int duration) {
+ return new RotateTextToast(activity, text, duration);
+ }
+
+ public static void setOrientation(int orientation) {
+ mOrientation = orientation;
+ for (final RotateLayout toast: mToasts) {
+ toast.setOrientation(orientation, false);
+ }
}
}