Move panorama stitch progress outside the image.

 Bug 7302513

Change-Id: Ie6505c8ed2125b878e54a93c4b8c0f51d80a1385
diff --git a/res/layout/photopage_progress_bar.xml b/res/layout/photopage_progress_bar.xml
new file mode 100644
index 0000000..778feb3
--- /dev/null
+++ b/res/layout/photopage_progress_bar.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/photopage_progress_bar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentLeft="true"
+        android:padding="25dp"
+        android:visibility="invisible">
+        <View
+                android:id="@+id/photopage_progress_background"
+                android:background="#ff000000"
+                android:layout_width="match_parent"
+                android:layout_height="8dp"
+                android:layout_alignParentBottom="true"
+                android:visibility="visible"/>
+        <View
+                android:id="@+id/photopage_progress_foreground"
+                android:background="#ff33b5e5"
+                android:layout_width="10dp"
+                android:layout_height="8dp"
+                android:layout_alignParentLeft="true"
+                android:layout_alignParentBottom="true"
+                android:visibility="visible"/>
+        <TextView
+                android:id="@+id/photopage_progress_bar_text"
+                android:text="@string/pano_progress_text"
+                android:textColor="#ffffffff"
+                android:textSize="14dp"
+                android:shadowColor="#ff000000"
+                android:shadowDx="0"
+                android:shadowDy="0"
+                android:shadowRadius="2"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentRight="true"
+                android:layout_above="@id/photopage_progress_background"
+                android:paddingBottom="8dp"
+                android:visibility="visible"/>
+</RelativeLayout>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c6ef704..92d4308 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -496,4 +496,8 @@
 
     <!-- Toast if the trimmed video is the same as the original one. [CHAR LIMIT=80] -->
     <string name="trim_too_long">Did not trim : the same length as origin</string>
+
+    <!-- Text to show with progress bar while stitching in Gallery -->
+    <string name="pano_progress_text">Rendering panorama</string>
+
 </resources>
diff --git a/src/com/android/gallery3d/app/PhotoPageProgressBar.java b/src/com/android/gallery3d/app/PhotoPageProgressBar.java
new file mode 100644
index 0000000..141fea6
--- /dev/null
+++ b/src/com/android/gallery3d/app/PhotoPageProgressBar.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2012 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.gallery3d.app;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewGroup.LayoutParams;
+import android.widget.RelativeLayout;
+
+import com.android.gallery3d.R;
+
+public class PhotoPageProgressBar {
+    private ViewGroup mContainer;
+    private View mProgress;
+
+    public PhotoPageProgressBar(Context context, RelativeLayout parentLayout) {
+        LayoutInflater inflater = (LayoutInflater) context
+                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        mContainer = (ViewGroup) inflater.inflate(R.layout.photopage_progress_bar, parentLayout,
+                false);
+        parentLayout.addView(mContainer);
+        mProgress = mContainer.findViewById(R.id.photopage_progress_foreground);
+    }
+
+    public void setProgress(int progressPercent) {
+        mContainer.setVisibility(View.VISIBLE);
+        LayoutParams layoutParams = mProgress.getLayoutParams();
+        layoutParams.width = mContainer.getWidth() * progressPercent / 100;
+        mProgress.setLayoutParams(layoutParams);
+    }
+
+    public void hideProgress() {
+        mContainer.setVisibility(View.INVISIBLE);
+    }
+}