summaryrefslogtreecommitdiffstats
path: root/packages/PrintSpooler/src/com/android/printspooler/ui
diff options
context:
space:
mode:
Diffstat (limited to 'packages/PrintSpooler/src/com/android/printspooler/ui')
-rw-r--r--packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java29
-rw-r--r--packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java13
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