Loading packages/PrintSpooler/res/layout/preview_page.xml +6 −4 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ limitations under the License. --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <com.android.printspooler.widget.PreviewPageFrame xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/preview_page" android:layout_width="wrap_content" android:layout_height="wrap_content" Loading @@ -33,7 +33,8 @@ android:layout_width="fill_parent" android:layout_height="@dimen/preview_page_footer_height" android:background="@color/material_grey_500" android:orientation="horizontal"> android:orientation="horizontal" android:duplicateParentState="true"> <TextView android:id="@+id/page_number" Loading @@ -51,9 +52,10 @@ android:layout_marginRight="8dip" android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:background="@drawable/page_selector_background"> android:background="@drawable/page_selector_background" android:duplicateParentState="true"> </ImageView> </RelativeLayout> </LinearLayout> </com.android.printspooler.widget.PreviewPageFrame> packages/PrintSpooler/res/values/strings.xml +27 −1 Original line number Diff line number Diff line Loading @@ -76,10 +76,36 @@ <!-- Title for the print dialog announced to the user for accessibility. Not shown in the UI. [CHAR LIMIT=none] --> <string name="print_dialog">Print dialog</string> <!-- Template for the message that shows the current page out of the total number of pages --> <!-- Template for the message that shows the current page out of the total number of pages [CHAR LIMIT=none] --> <string name="current_page_template"><xliff:g id="current_page">%1$d</xliff:g> /<xliff:g id="page_count">%2$d</xliff:g></string> <!-- Description of the current page - spoken to the user [CHAR LIMIT=none] --> <string name="page_description_template">Page <xliff:g id="current_page" example="1">%1$d</xliff:g> of <xliff:g id="page_count" example="100">%2$d</xliff:g></string> <!-- Template for the message to announce the print options summary - spoken to the user. [CHAR LIMIT=none] --> <string name="summary_template">Summary, copies <xliff:g id="copies" example="1">%1$s</xliff:g>, paper size <xliff:g id="paper_size" example="A4">%2$s</xliff:g></string> <!-- Description for the handle to expand all print options - spoken to the user. [CHAR LIMIT=none] --> <string name="expand_handle">Expand handle</string> <!-- Description for the handle to collapse all print options - spoken to the user. [CHAR LIMIT=none] --> <string name="collapse_handle">Collapse handle</string> <!-- Description for the print button - spoken to the user. [CHAR LIMIT=none] --> <string name="print_button">Print</string> <!-- Description for the save to PDF button - spoken to the user. [CHAR LIMIT=none] --> <string name="savetopdf_button">Save to PDF</string> <!-- Message to announce print options are expanded - spoken to the user. [CHAR LIMIT=none] --> <string name="print_options_expanded">Print options expanded</string> <!-- Message to announce print options are collapsed - spoken to the user. [CHAR LIMIT=none] --> <string name="print_options_collapsed">Print options collapsed</string> <!-- Select printer activity --> <!-- Title for the share action bar menu item. [CHAR LIMIT=20] --> Loading packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java +11 −35 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import com.android.printspooler.model.PageContentRepository; import com.android.printspooler.model.PageContentRepository.PageContentProvider; import com.android.printspooler.util.PageRangeUtils; import com.android.printspooler.widget.PageContentView; import com.android.printspooler.widget.PreviewPageFrame; import dalvik.system.CloseGuard; import java.util.ArrayList; Loading Loading @@ -94,12 +95,6 @@ public final class PageAdapter extends Adapter implements private int mDocumentPageCount = PrintDocumentInfo.PAGE_COUNT_UNKNOWN; private int mSelectedPageCount; private float mSelectedPageElevation; private float mSelectedPageAlpha; private float mUnselectedPageElevation; private float mUnselectedPageAlpha; private int mPreviewPageMargin; private int mPreviewPageMinWidth; private int mPreviewListPadding; Loading Loading @@ -134,16 +129,6 @@ public final class PageAdapter extends Adapter implements Context.LAYOUT_INFLATER_SERVICE); mPageContentRepository = new PageContentRepository(context, this); mSelectedPageElevation = mContext.getResources().getDimension( R.dimen.selected_page_elevation); mSelectedPageAlpha = mContext.getResources().getFraction( R.fraction.page_selected_alpha, 1, 1); mUnselectedPageElevation = mContext.getResources().getDimension( R.dimen.unselected_page_elevation); mUnselectedPageAlpha = mContext.getResources().getFraction( R.fraction.page_unselected_alpha, 1, 1); mPreviewPageMargin = mContext.getResources().getDimensionPixelSize( R.dimen.preview_page_margin); Loading Loading @@ -296,7 +281,7 @@ public final class PageAdapter extends Adapter implements MyViewHolder myHolder = (MyViewHolder) holder; View page = holder.itemView; PreviewPageFrame page = (PreviewPageFrame) holder.itemView; page.setOnClickListener(mPageClickListener); page.setTag(holder); Loading Loading @@ -340,20 +325,15 @@ public final class PageAdapter extends Adapter implements } content.init(provider, mEmptyState, mMediaSize, mMinMargins); View pageSelector = page.findViewById(R.id.page_selector); pageSelector.setTag(myHolder); pageSelector.setOnClickListener(mPageClickListener); if (mConfirmedPagesInDocument.indexOfKey(pageInDocument) >= 0) { pageSelector.setSelected(true); page.setTranslationZ(mSelectedPageElevation); page.setAlpha(mSelectedPageAlpha); page.setSelected(true, false); } else { pageSelector.setSelected(false); page.setTranslationZ(mUnselectedPageElevation); page.setAlpha(mUnselectedPageAlpha); page.setSelected(false, false); } page.setContentDescription(mContext.getString(R.string.page_description_template, pageInDocument + 1, mDocumentPageCount)); TextView pageNumberView = (TextView) page.findViewById(R.id.page_number); String text = mContext.getString(R.string.current_page_template, pageInDocument + 1, mDocumentPageCount); Loading Loading @@ -793,24 +773,20 @@ public final class PageAdapter extends Adapter implements private final class PageClickListener implements OnClickListener { @Override public void onClick(View page) { public void onClick(View view) { PreviewPageFrame page = (PreviewPageFrame) view; MyViewHolder holder = (MyViewHolder) page.getTag(); final int pageInAdapter = holder.mPageInAdapter; final int pageInDocument = computePageIndexInDocument(pageInAdapter); View pageSelector = page.findViewById(R.id.page_selector); if (mConfirmedPagesInDocument.indexOfKey(pageInDocument) < 0) { mConfirmedPagesInDocument.put(pageInDocument, null); pageSelector.setSelected(true); page.animate().translationZ(mSelectedPageElevation) .alpha(mSelectedPageAlpha); page.setSelected(true, true); } else { if (mConfirmedPagesInDocument.size() <= 1) { return; } mConfirmedPagesInDocument.remove(pageInDocument); pageSelector.setSelected(false); page.animate().translationZ(mUnselectedPageElevation) .alpha(mUnselectedPageAlpha); page.setSelected(false, true); } } } Loading packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java +28 −9 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnFocusChangeListener; import android.view.ViewGroup; import android.view.accessibility.AccessibilityEvent; import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; Loading Loading @@ -191,6 +192,7 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat private PrintContentView mOptionsContent; private View mSummaryContainer; private TextView mSummaryCopies; private TextView mSummaryPaperSize; Loading Loading @@ -983,6 +985,7 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat private void bindUi() { // Summary mSummaryContainer = findViewById(R.id.summary_content); mSummaryCopies = (TextView) findViewById(R.id.copies_count_summary); mSummaryPaperSize = (TextView) findViewById(R.id.paper_size_summary); Loading Loading @@ -1081,15 +1084,7 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat void updateOptionsUi() { // Always update the summary. if (!TextUtils.isEmpty(mCopiesEditText.getText())) { mSummaryCopies.setText(mCopiesEditText.getText()); } final int selectedMediaIndex = mMediaSizeSpinner.getSelectedItemPosition(); if (selectedMediaIndex >= 0) { SpinnerItem<MediaSize> mediaItem = mMediaSizeSpinnerAdapter.getItem(selectedMediaIndex); mSummaryPaperSize.setText(mediaItem.label); } updateSummary(); if (mState == STATE_PRINT_CONFIRMED || mState == STATE_PRINT_COMPLETED Loading Loading @@ -1330,8 +1325,10 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat // Print if (mDestinationSpinnerAdapter.getPdfPrinter() != mCurrentPrinter) { mPrintButton.setImageResource(com.android.internal.R.drawable.ic_print); mPrintButton.setContentDescription(getString(R.string.print_button)); } else { mPrintButton.setImageResource(R.drawable.ic_menu_savetopdf); mPrintButton.setContentDescription(getString(R.string.savetopdf_button)); } if ((mRangeOptionsSpinner.getSelectedItemPosition() == 1 && (TextUtils.isEmpty(mPageRangeEditText.getText()) || hasErrors())) Loading @@ -1357,6 +1354,28 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat } } private void updateSummary() { CharSequence copiesText = null; CharSequence mediaSizeText = null; if (!TextUtils.isEmpty(mCopiesEditText.getText())) { copiesText = mCopiesEditText.getText(); mSummaryCopies.setText(copiesText); } final int selectedMediaIndex = mMediaSizeSpinner.getSelectedItemPosition(); if (selectedMediaIndex >= 0) { SpinnerItem<MediaSize> mediaItem = mMediaSizeSpinnerAdapter.getItem(selectedMediaIndex); mediaSizeText = mediaItem.label; mSummaryPaperSize.setText(mediaSizeText); } if (!TextUtils.isEmpty(copiesText) && !TextUtils.isEmpty(mediaSizeText)) { String summaryText = getString(R.string.summary_template, copiesText, mediaSizeText); mSummaryContainer.setContentDescription(summaryText); } } private void updatePageRangeOptions(int pageCount) { ArrayAdapter<SpinnerItem<Integer>> rangeOptionsSpinnerAdapter = (ArrayAdapter) mRangeOptionsSpinner.getAdapter(); Loading packages/PrintSpooler/src/com/android/printspooler/widget/PageContentView.java +1 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import com.android.printspooler.model.PageContentRepository.PageContentProvider; */ public class PageContentView extends View implements PageContentRepository.OnPageContentAvailableCallback { private PageContentProvider mProvider; private MediaSize mMediaSize; Loading Loading
packages/PrintSpooler/res/layout/preview_page.xml +6 −4 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ limitations under the License. --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <com.android.printspooler.widget.PreviewPageFrame xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/preview_page" android:layout_width="wrap_content" android:layout_height="wrap_content" Loading @@ -33,7 +33,8 @@ android:layout_width="fill_parent" android:layout_height="@dimen/preview_page_footer_height" android:background="@color/material_grey_500" android:orientation="horizontal"> android:orientation="horizontal" android:duplicateParentState="true"> <TextView android:id="@+id/page_number" Loading @@ -51,9 +52,10 @@ android:layout_marginRight="8dip" android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:background="@drawable/page_selector_background"> android:background="@drawable/page_selector_background" android:duplicateParentState="true"> </ImageView> </RelativeLayout> </LinearLayout> </com.android.printspooler.widget.PreviewPageFrame>
packages/PrintSpooler/res/values/strings.xml +27 −1 Original line number Diff line number Diff line Loading @@ -76,10 +76,36 @@ <!-- Title for the print dialog announced to the user for accessibility. Not shown in the UI. [CHAR LIMIT=none] --> <string name="print_dialog">Print dialog</string> <!-- Template for the message that shows the current page out of the total number of pages --> <!-- Template for the message that shows the current page out of the total number of pages [CHAR LIMIT=none] --> <string name="current_page_template"><xliff:g id="current_page">%1$d</xliff:g> /<xliff:g id="page_count">%2$d</xliff:g></string> <!-- Description of the current page - spoken to the user [CHAR LIMIT=none] --> <string name="page_description_template">Page <xliff:g id="current_page" example="1">%1$d</xliff:g> of <xliff:g id="page_count" example="100">%2$d</xliff:g></string> <!-- Template for the message to announce the print options summary - spoken to the user. [CHAR LIMIT=none] --> <string name="summary_template">Summary, copies <xliff:g id="copies" example="1">%1$s</xliff:g>, paper size <xliff:g id="paper_size" example="A4">%2$s</xliff:g></string> <!-- Description for the handle to expand all print options - spoken to the user. [CHAR LIMIT=none] --> <string name="expand_handle">Expand handle</string> <!-- Description for the handle to collapse all print options - spoken to the user. [CHAR LIMIT=none] --> <string name="collapse_handle">Collapse handle</string> <!-- Description for the print button - spoken to the user. [CHAR LIMIT=none] --> <string name="print_button">Print</string> <!-- Description for the save to PDF button - spoken to the user. [CHAR LIMIT=none] --> <string name="savetopdf_button">Save to PDF</string> <!-- Message to announce print options are expanded - spoken to the user. [CHAR LIMIT=none] --> <string name="print_options_expanded">Print options expanded</string> <!-- Message to announce print options are collapsed - spoken to the user. [CHAR LIMIT=none] --> <string name="print_options_collapsed">Print options collapsed</string> <!-- Select printer activity --> <!-- Title for the share action bar menu item. [CHAR LIMIT=20] --> Loading
packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java +11 −35 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import com.android.printspooler.model.PageContentRepository; import com.android.printspooler.model.PageContentRepository.PageContentProvider; import com.android.printspooler.util.PageRangeUtils; import com.android.printspooler.widget.PageContentView; import com.android.printspooler.widget.PreviewPageFrame; import dalvik.system.CloseGuard; import java.util.ArrayList; Loading Loading @@ -94,12 +95,6 @@ public final class PageAdapter extends Adapter implements private int mDocumentPageCount = PrintDocumentInfo.PAGE_COUNT_UNKNOWN; private int mSelectedPageCount; private float mSelectedPageElevation; private float mSelectedPageAlpha; private float mUnselectedPageElevation; private float mUnselectedPageAlpha; private int mPreviewPageMargin; private int mPreviewPageMinWidth; private int mPreviewListPadding; Loading Loading @@ -134,16 +129,6 @@ public final class PageAdapter extends Adapter implements Context.LAYOUT_INFLATER_SERVICE); mPageContentRepository = new PageContentRepository(context, this); mSelectedPageElevation = mContext.getResources().getDimension( R.dimen.selected_page_elevation); mSelectedPageAlpha = mContext.getResources().getFraction( R.fraction.page_selected_alpha, 1, 1); mUnselectedPageElevation = mContext.getResources().getDimension( R.dimen.unselected_page_elevation); mUnselectedPageAlpha = mContext.getResources().getFraction( R.fraction.page_unselected_alpha, 1, 1); mPreviewPageMargin = mContext.getResources().getDimensionPixelSize( R.dimen.preview_page_margin); Loading Loading @@ -296,7 +281,7 @@ public final class PageAdapter extends Adapter implements MyViewHolder myHolder = (MyViewHolder) holder; View page = holder.itemView; PreviewPageFrame page = (PreviewPageFrame) holder.itemView; page.setOnClickListener(mPageClickListener); page.setTag(holder); Loading Loading @@ -340,20 +325,15 @@ public final class PageAdapter extends Adapter implements } content.init(provider, mEmptyState, mMediaSize, mMinMargins); View pageSelector = page.findViewById(R.id.page_selector); pageSelector.setTag(myHolder); pageSelector.setOnClickListener(mPageClickListener); if (mConfirmedPagesInDocument.indexOfKey(pageInDocument) >= 0) { pageSelector.setSelected(true); page.setTranslationZ(mSelectedPageElevation); page.setAlpha(mSelectedPageAlpha); page.setSelected(true, false); } else { pageSelector.setSelected(false); page.setTranslationZ(mUnselectedPageElevation); page.setAlpha(mUnselectedPageAlpha); page.setSelected(false, false); } page.setContentDescription(mContext.getString(R.string.page_description_template, pageInDocument + 1, mDocumentPageCount)); TextView pageNumberView = (TextView) page.findViewById(R.id.page_number); String text = mContext.getString(R.string.current_page_template, pageInDocument + 1, mDocumentPageCount); Loading Loading @@ -793,24 +773,20 @@ public final class PageAdapter extends Adapter implements private final class PageClickListener implements OnClickListener { @Override public void onClick(View page) { public void onClick(View view) { PreviewPageFrame page = (PreviewPageFrame) view; MyViewHolder holder = (MyViewHolder) page.getTag(); final int pageInAdapter = holder.mPageInAdapter; final int pageInDocument = computePageIndexInDocument(pageInAdapter); View pageSelector = page.findViewById(R.id.page_selector); if (mConfirmedPagesInDocument.indexOfKey(pageInDocument) < 0) { mConfirmedPagesInDocument.put(pageInDocument, null); pageSelector.setSelected(true); page.animate().translationZ(mSelectedPageElevation) .alpha(mSelectedPageAlpha); page.setSelected(true, true); } else { if (mConfirmedPagesInDocument.size() <= 1) { return; } mConfirmedPagesInDocument.remove(pageInDocument); pageSelector.setSelected(false); page.animate().translationZ(mUnselectedPageElevation) .alpha(mUnselectedPageAlpha); page.setSelected(false, true); } } } Loading
packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java +28 −9 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnFocusChangeListener; import android.view.ViewGroup; import android.view.accessibility.AccessibilityEvent; import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; Loading Loading @@ -191,6 +192,7 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat private PrintContentView mOptionsContent; private View mSummaryContainer; private TextView mSummaryCopies; private TextView mSummaryPaperSize; Loading Loading @@ -983,6 +985,7 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat private void bindUi() { // Summary mSummaryContainer = findViewById(R.id.summary_content); mSummaryCopies = (TextView) findViewById(R.id.copies_count_summary); mSummaryPaperSize = (TextView) findViewById(R.id.paper_size_summary); Loading Loading @@ -1081,15 +1084,7 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat void updateOptionsUi() { // Always update the summary. if (!TextUtils.isEmpty(mCopiesEditText.getText())) { mSummaryCopies.setText(mCopiesEditText.getText()); } final int selectedMediaIndex = mMediaSizeSpinner.getSelectedItemPosition(); if (selectedMediaIndex >= 0) { SpinnerItem<MediaSize> mediaItem = mMediaSizeSpinnerAdapter.getItem(selectedMediaIndex); mSummaryPaperSize.setText(mediaItem.label); } updateSummary(); if (mState == STATE_PRINT_CONFIRMED || mState == STATE_PRINT_COMPLETED Loading Loading @@ -1330,8 +1325,10 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat // Print if (mDestinationSpinnerAdapter.getPdfPrinter() != mCurrentPrinter) { mPrintButton.setImageResource(com.android.internal.R.drawable.ic_print); mPrintButton.setContentDescription(getString(R.string.print_button)); } else { mPrintButton.setImageResource(R.drawable.ic_menu_savetopdf); mPrintButton.setContentDescription(getString(R.string.savetopdf_button)); } if ((mRangeOptionsSpinner.getSelectedItemPosition() == 1 && (TextUtils.isEmpty(mPageRangeEditText.getText()) || hasErrors())) Loading @@ -1357,6 +1354,28 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat } } private void updateSummary() { CharSequence copiesText = null; CharSequence mediaSizeText = null; if (!TextUtils.isEmpty(mCopiesEditText.getText())) { copiesText = mCopiesEditText.getText(); mSummaryCopies.setText(copiesText); } final int selectedMediaIndex = mMediaSizeSpinner.getSelectedItemPosition(); if (selectedMediaIndex >= 0) { SpinnerItem<MediaSize> mediaItem = mMediaSizeSpinnerAdapter.getItem(selectedMediaIndex); mediaSizeText = mediaItem.label; mSummaryPaperSize.setText(mediaSizeText); } if (!TextUtils.isEmpty(copiesText) && !TextUtils.isEmpty(mediaSizeText)) { String summaryText = getString(R.string.summary_template, copiesText, mediaSizeText); mSummaryContainer.setContentDescription(summaryText); } } private void updatePageRangeOptions(int pageCount) { ArrayAdapter<SpinnerItem<Integer>> rangeOptionsSpinnerAdapter = (ArrayAdapter) mRangeOptionsSpinner.getAdapter(); Loading
packages/PrintSpooler/src/com/android/printspooler/widget/PageContentView.java +1 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import com.android.printspooler.model.PageContentRepository.PageContentProvider; */ public class PageContentView extends View implements PageContentRepository.OnPageContentAvailableCallback { private PageContentProvider mProvider; private MediaSize mMediaSize; Loading