diff options
Diffstat (limited to 'packages/PrintSpooler/src/com/android/printspooler/ui')
-rw-r--r-- | packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java | 29 | ||||
-rw-r--r-- | packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java | 13 |
2 files changed, 31 insertions, 11 deletions
diff --git a/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java b/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java index aa79568..0d2e736 100644 --- a/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java +++ b/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java @@ -37,6 +37,7 @@ import android.view.ViewGroup.LayoutParams; import android.view.View.MeasureSpec; import android.widget.TextView; import com.android.printspooler.R; +import com.android.printspooler.model.OpenDocumentCallback; import com.android.printspooler.model.PageContentRepository; import com.android.printspooler.model.PageContentRepository.PageContentProvider; import com.android.printspooler.util.PageRangeUtils; @@ -51,8 +52,7 @@ import java.util.List; /** * This class represents the adapter for the pages in the print preview list. */ -public final class PageAdapter extends Adapter implements - PageContentRepository.OnMalformedPdfFileListener { +public final class PageAdapter extends Adapter { private static final String LOG_TAG = "PageAdapter"; private static final int MAX_PREVIEW_PAGES_BATCH = 50; @@ -113,6 +113,7 @@ public final class PageAdapter extends Adapter implements public interface ContentCallbacks { public void onRequestContentUpdate(); public void onMalformedPdfFile(); + public void onSecurePdfFile(); } public interface PreviewArea { @@ -127,7 +128,7 @@ public final class PageAdapter extends Adapter implements mCallbacks = callbacks; mLayoutInflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE); - mPageContentRepository = new PageContentRepository(context, this); + mPageContentRepository = new PageContentRepository(context); mPreviewPageMargin = mContext.getResources().getDimensionPixelSize( R.dimen.preview_page_margin); @@ -156,11 +157,6 @@ public final class PageAdapter extends Adapter implements } } - @Override - public void onMalformedPdfFile() { - mCallbacks.onMalformedPdfFile(); - } - public void onOrientationChanged() { mColumnCount = mContext.getResources().getInteger( R.integer.preview_page_per_row_count); @@ -181,12 +177,25 @@ public final class PageAdapter extends Adapter implements if (DEBUG) { Log.i(LOG_TAG, "STATE_OPENED"); } - mPageContentRepository.open(source, new Runnable() { + mPageContentRepository.open(source, new OpenDocumentCallback() { @Override - public void run() { + public void onSuccess() { notifyDataSetChanged(); callback.run(); } + + @Override + public void onFailure(int error) { + switch (error) { + case OpenDocumentCallback.ERROR_MALFORMED_PDF_FILE: { + mCallbacks.onMalformedPdfFile(); + } break; + + case OpenDocumentCallback.ERROR_SECURE_PDF_FILE: { + mCallbacks.onSecurePdfFile(); + } break; + } + } }); } diff --git a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java index f361884..b76a9cd 100644 --- a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java +++ b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java @@ -378,7 +378,7 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat return true; } - if (mState == STATE_PRINT_CANCELED ||mState == STATE_PRINT_CONFIRMED + if (mState == STATE_PRINT_CANCELED || mState == STATE_PRINT_CONFIRMED || mState == STATE_PRINT_COMPLETED) { return true; } @@ -405,12 +405,23 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat @Override public void onMalformedPdfFile() { + onPrintDocumentError("Cannot print a malformed PDF file"); + } + + @Override + public void onSecurePdfFile() { + onPrintDocumentError("Cannot print a password protected PDF file"); + } + + private void onPrintDocumentError(String message) { mProgressMessageController.cancel(); ensureErrorUiShown(null, PrintErrorFragment.ACTION_RETRY); setState(STATE_UPDATE_FAILED); updateOptionsUi(); + + mPrintedDocument.kill(message); } @Override |