From eb3e3e368a5093768b44b415a85a3d0bcce92583 Mon Sep 17 00:00:00 2001 From: Daisuke Miyakawa <> Date: Thu, 2 Apr 2009 10:44:31 -0700 Subject: [PATCH] AI 144210: am: CL 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/... Original author: android-build Merged from: //branches/donutburger/... Automated import of CL 144210 --- core/java/android/app/ProgressDialog.java | 24 +++++++++++++++++-- core/res/res/layout/alert_dialog_progress.xml | 8 +++---- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/core/java/android/app/ProgressDialog.java b/core/java/android/app/ProgressDialog.java index c87e3982b7bad..bdea0698cf595 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 9279efff6a55a..d2bb691c36c28 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" />