diff --git a/packages/PrintSpooler/res/drawable/ic_savetopdf.xml b/packages/PrintSpooler/res/drawable/ic_savetopdf.xml
new file mode 100644
index 0000000000000..60ed33aceca2b
--- /dev/null
+++ b/packages/PrintSpooler/res/drawable/ic_savetopdf.xml
@@ -0,0 +1,19 @@
+
+
+
+
diff --git a/packages/PrintSpooler/res/layout/preview_page.xml b/packages/PrintSpooler/res/layout/preview_page.xml
index 509a1d2d090bf..76dd76bfa9566 100644
--- a/packages/PrintSpooler/res/layout/preview_page.xml
+++ b/packages/PrintSpooler/res/layout/preview_page.xml
@@ -31,7 +31,7 @@
diff --git a/packages/PrintSpooler/res/layout/print_activity.xml b/packages/PrintSpooler/res/layout/print_activity.xml
index 3905646c1f652..ee5d42a0cdc14 100644
--- a/packages/PrintSpooler/res/layout/print_activity.xml
+++ b/packages/PrintSpooler/res/layout/print_activity.xml
@@ -27,7 +27,6 @@
android:id="@+id/static_content"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:padding="16dip"
android:elevation="@dimen/preview_controls_elevation"
android:background="?android:attr/colorPrimary">
@@ -35,6 +34,7 @@
android:id="@+id/destination_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_marginTop="4dip"
android:dropDownWidth="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeightSmall">
@@ -56,7 +56,6 @@
@@ -76,7 +74,6 @@
diff --git a/packages/PrintSpooler/res/layout/print_activity_controls.xml b/packages/PrintSpooler/res/layout/print_activity_controls.xml
index ef6044afb28c8..31bda7e7be47e 100644
--- a/packages/PrintSpooler/res/layout/print_activity_controls.xml
+++ b/packages/PrintSpooler/res/layout/print_activity_controls.xml
@@ -267,8 +267,8 @@
android:id="@+id/expand_collapse_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="8dip"
- android:layout_marginBottom="8dip"
+ android:layout_marginTop="4dip"
+ android:layout_marginBottom="4dip"
android:layout_gravity="center"
android:background="@drawable/ic_expand_more">
diff --git a/packages/PrintSpooler/res/values/constants.xml b/packages/PrintSpooler/res/values/constants.xml
index faad5278d63ce..b95703b63b764 100644
--- a/packages/PrintSpooler/res/values/constants.xml
+++ b/packages/PrintSpooler/res/values/constants.xml
@@ -45,4 +45,7 @@
100%
50%
+ 32dip
+ 130dip
+
diff --git a/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java b/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
index e97693641c2cb..5bcdb9f49d03a 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
@@ -96,6 +96,7 @@ public final class PageAdapter extends Adapter implements
private float mUnselectedPageAlpha;
private int mPreviewPageMargin;
+ private int mPreviewPageMinWidth;
private int mPreviewListPadding;
private int mFooterHeight;
@@ -141,17 +142,17 @@ public final class PageAdapter extends Adapter implements
mPreviewPageMargin = mContext.getResources().getDimensionPixelSize(
R.dimen.preview_page_margin);
+ mPreviewPageMinWidth = mContext.getResources().getDimensionPixelSize(
+ R.dimen.preview_page_min_width);
+
mPreviewListPadding = mContext.getResources().getDimensionPixelSize(
R.dimen.preview_list_padding);
mColumnCount = mContext.getResources().getInteger(
R.integer.preview_page_per_row_count);
- TypedValue outValue = new TypedValue();
- mContext.getTheme().resolveAttribute(
- com.android.internal.R.attr.listPreferredItemHeightSmall, outValue, true);
- mFooterHeight = TypedValue.complexToDimensionPixelSize(outValue.data,
- mContext.getResources().getDisplayMetrics());
+ mFooterHeight = mContext.getResources().getDimensionPixelSize(
+ R.dimen.preview_page_footer_height);
mPreviewArea = previewArea;
@@ -428,8 +429,12 @@ public final class PageAdapter extends Adapter implements
// Compute max page height.
final int pageContentDesiredHeight = (int) (((float) pageContentDesiredWidth
/ pageAspectRatio) + 0.5f);
- final int pageContentMaxHeight = availableHeight - 2 * (mPreviewListPadding
- + mPreviewPageMargin) - mFooterHeight;
+
+ // If the page does not fit entirely in a vertial direction,
+ // we shirk it but not less than the minimal page width.
+ final int pageContentMinHeight = (int) (mPreviewPageMinWidth / pageAspectRatio + 0.5f);
+ final int pageContentMaxHeight = Math.max(pageContentMinHeight,
+ availableHeight - 2 * (mPreviewListPadding + mPreviewPageMargin) - mFooterHeight);
mPageContentHeight = Math.min(pageContentDesiredHeight, pageContentMaxHeight);
mPageContentWidth = (int) ((mPageContentHeight * pageAspectRatio) + 0.5f);
@@ -439,10 +444,17 @@ public final class PageAdapter extends Adapter implements
final int rowCount = mSelectedPageCount / columnCount
+ ((mSelectedPageCount % columnCount) > 0 ? 1 : 0);
- final int totalContentHeight = rowCount* (mPageContentHeight + mFooterHeight + 2
+ final int totalContentHeight = rowCount * (mPageContentHeight + mFooterHeight + 2
* mPreviewPageMargin);
- final int verticalPadding = Math.max(mPreviewListPadding,
- (availableHeight - totalContentHeight) / 2);
+
+ final int verticalPadding;
+ if (mPageContentHeight + mFooterHeight + mPreviewListPadding > availableHeight) {
+ verticalPadding = Math.max(mPreviewPageMargin,
+ (availableHeight - totalContentHeight) / 2);
+ } else {
+ verticalPadding = Math.max(mPreviewListPadding,
+ (availableHeight - totalContentHeight) / 2);
+ }
mPreviewArea.setPadding(horizontalPadding, verticalPadding,
horizontalPadding, verticalPadding);
diff --git a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java
index a1b1aec5003f3..6b29e5f2a6b0d 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java
@@ -1704,7 +1704,7 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat
if (position == 0 && getPdfPrinter() != null) {
PrinterHolder printerHolder = (PrinterHolder) getItem(position);
title = printerHolder.printer.getName();
- icon = getResources().getDrawable(com.android.internal.R.drawable.ic_menu_save);
+ icon = getResources().getDrawable(R.drawable.ic_savetopdf);
} else if (position == 1) {
title = getString(R.string.all_printers);
}
@@ -1712,7 +1712,7 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat
if (position == 1 && getPdfPrinter() != null) {
PrinterHolder printerHolder = (PrinterHolder) getItem(position);
title = printerHolder.printer.getName();
- icon = getResources().getDrawable(com.android.internal.R.drawable.ic_menu_save);
+ icon = getResources().getDrawable(R.drawable.ic_savetopdf);
} else if (position == getCount() - 1) {
title = getString(R.string.all_printers);
} else {
diff --git a/packages/PrintSpooler/src/com/android/printspooler/widget/PageContentView.java b/packages/PrintSpooler/src/com/android/printspooler/widget/PageContentView.java
index 4d2cb6ce8e295..83653731fba48 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/widget/PageContentView.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/widget/PageContentView.java
@@ -94,7 +94,7 @@ public class PageContentView extends View
mMinMargins = minMargins;
mContentRequested = false;
- // If there is not provider we want immediately to switch to
+ // If there is no provider we want immediately to switch to
// the empty state, so pages with no content appear blank.
if (mProvider == null && getBackground() != mEmptyState) {
setBackground(mEmptyState);
diff --git a/packages/PrintSpooler/src/com/android/printspooler/widget/PrintOptionsLayout.java b/packages/PrintSpooler/src/com/android/printspooler/widget/PrintOptionsLayout.java
index 01f4a044e1538..71f4aa71d9c2d 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/widget/PrintOptionsLayout.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/widget/PrintOptionsLayout.java
@@ -162,7 +162,7 @@ public final class PrintOptionsLayout extends ViewGroup {
}
cellStart = getPaddingStart();
- cellTop += cellTop + rowHeight;
+ cellTop += rowHeight;
}
}