From e9c08056fafab720856ab8516ea0e623a5c0e360 Mon Sep 17 00:00:00 2001
From: Daisuke Miyakawa <>
Date: Thu, 2 Apr 2009 01:34:15 -0700
Subject: AI 144182: am: CL 144181 Modify ProgressDialog class and its xml so
 that it follows the   Android's UI guide line. This modification is based on
 leland's mock.   See http://b/issue?id=1748136 for more information.   Put
 ProgressNumber left side, next to ProgressPercentage.   Make
 ProgressPercentage Bold.   Put ProgressNumber and ProgressPercentage near to
 the ProgressBar   above. This is same as the design of Market application.  
 Enable ProgressDialog change the ProgressNumber format. This is hidden  
 since the interface is premature.   Original author: dmiyakawa   Merged from:
 //branches/cupcake/...

Automated import of CL 144182
---
 core/java/android/app/ProgressDialog.java     | 24 ++++++++++++++++++++++--
 core/res/res/layout/alert_dialog_progress.xml |  8 ++++----
 2 files changed, 26 insertions(+), 6 deletions(-)

(limited to 'core')

diff --git a/core/java/android/app/ProgressDialog.java b/core/java/android/app/ProgressDialog.java
index c87e398..bdea069 100644
--- a/core/java/android/app/ProgressDialog.java
+++ b/core/java/android/app/ProgressDialog.java
@@ -21,6 +21,9 @@ import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.style.StyleSpan;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.ProgressBar;
@@ -52,6 +55,7 @@ public class ProgressDialog extends AlertDialog {
     
     private int mProgressStyle = STYLE_SPINNER;
     private TextView mProgressNumber;
+    private String mProgressNumberFormat;
     private TextView mProgressPercent;
     private NumberFormat mProgressPercentFormat;
     
@@ -121,13 +125,18 @@ public class ProgressDialog extends AlertDialog {
                     int progress = mProgress.getProgress();
                     int max = mProgress.getMax();
                     double percent = (double) progress / (double) max;
-                    mProgressNumber.setText(progress + "/" + max);
-                    mProgressPercent.setText(mProgressPercentFormat.format(percent));
+                    String format = mProgressNumberFormat;
+                    mProgressNumber.setText(String.format(format, progress, max));
+                    SpannableString tmp = new SpannableString(mProgressPercentFormat.format(percent));
+                    tmp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD),
+                            0, tmp.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+                    mProgressPercent.setText(tmp);
                 }
             };
             View view = inflater.inflate(R.layout.alert_dialog_progress, null);
             mProgress = (ProgressBar) view.findViewById(R.id.progress);
             mProgressNumber = (TextView) view.findViewById(R.id.progress_number);
+            mProgressNumberFormat = "%d/%d";
             mProgressPercent = (TextView) view.findViewById(R.id.progress_percent);
             mProgressPercentFormat = NumberFormat.getPercentInstance();
             mProgressPercentFormat.setMaximumFractionDigits(0);
@@ -293,6 +302,17 @@ public class ProgressDialog extends AlertDialog {
         mProgressStyle = style;
     }
 
+    /**
+     * Change the format of Progress Number. The default is "current/max".
+     * Should not be called during the number is progressing.
+     * @param format Should contain two "%d". The first is used for current number
+     * and the second is used for the maximum.
+     * @hide
+     */
+    public void setProgressNumberFormat(String format) {
+        mProgressNumberFormat = format;
+    }
+    
     private void onProgressChanged() {
         if (mProgressStyle == STYLE_HORIZONTAL) {
             mViewUpdateHandler.sendEmptyMessage(0);
diff --git a/core/res/res/layout/alert_dialog_progress.xml b/core/res/res/layout/alert_dialog_progress.xml
index 9279eff..d2bb691 100644
--- a/core/res/res/layout/alert_dialog_progress.xml
+++ b/core/res/res/layout/alert_dialog_progress.xml
@@ -21,7 +21,7 @@
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:layout_marginTop="12dip"
-            android:layout_marginBottom="12dip"
+            android:layout_marginBottom="1dip"
             android:layout_marginLeft="10dip"
             android:layout_marginRight="10dip"
             android:layout_centerHorizontal="true" />
@@ -30,7 +30,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:paddingBottom="12dip"
-            android:layout_marginLeft="15dip"
+            android:layout_marginLeft="10dip"
             android:layout_marginRight="10dip"
             android:layout_alignParentLeft="true"
             android:layout_below="@id/progress"
@@ -40,9 +40,9 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:paddingBottom="12dip"
-            android:layout_marginLeft="10dip"
+            android:layout_marginLeft="50dip"
             android:layout_marginRight="15dip"
-            android:layout_alignParentRight="true"
+            android:layout_alignParentLeft="true"
             android:layout_below="@id/progress"
         />
 </RelativeLayout>
-- 
cgit v1.1