From e05a7b71c61a7dd4b7f6f55e23a33807d19b1d98 Mon Sep 17 00:00:00 2001 From: "Philip P. Moltmann" Date: Wed, 11 May 2016 15:04:11 -0700 Subject: [PATCH] Handle failure to create file. This should never happen unless you disable the DocumentsUI app. Hence handle it by a simple toast. Bug: 28709934 Change-Id: Iac4aff32617120c442e0f994a2a8c0ce3cca380d --- packages/PrintSpooler/res/values/strings.xml | 3 +++ .../com/android/printspooler/ui/PrintActivity.java | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/PrintSpooler/res/values/strings.xml b/packages/PrintSpooler/res/values/strings.xml index 2836adb9830ee..13429452022bd 100644 --- a/packages/PrintSpooler/res/values/strings.xml +++ b/packages/PrintSpooler/res/values/strings.xml @@ -150,6 +150,9 @@ More information about this printer + + Could not create file + Some print services are disabled diff --git a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java index cc0b4ca46d481..8b1fd08d40fd6 100644 --- a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java +++ b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java @@ -84,6 +84,7 @@ import android.widget.ImageView; import android.widget.Spinner; import android.widget.TextView; +import android.widget.Toast; import com.android.internal.logging.MetricsLogger; import com.android.printspooler.R; import com.android.printspooler.model.MutexFileProvider; @@ -658,7 +659,15 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat intent.setType("application/pdf"); intent.putExtra(Intent.EXTRA_TITLE, info.getName()); intent.putExtra(DocumentsContract.EXTRA_PACKAGE_NAME, mCallingPackageName); - startActivityForResult(intent, ACTIVITY_REQUEST_CREATE_FILE); + + try { + startActivityForResult(intent, ACTIVITY_REQUEST_CREATE_FILE); + } catch (Exception e) { + Log.e(LOG_TAG, "Could not create file", e); + Toast.makeText(this, getString(R.string.could_not_create_file), + Toast.LENGTH_SHORT).show(); + onStartCreateDocumentActivityResult(RESULT_CANCELED, null); + } } private void onStartCreateDocumentActivityResult(int resultCode, Intent data) {