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; } }