Fix for saving a WebArchive when the external storage isn't mounted.

Change-Id: I572da2013b5ba988c899ba2f64453dfc908b4fec
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 2260200..3535725 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -1414,17 +1414,26 @@
                 if (LOGD_ENABLED) {
                     Log.d(LOGTAG, "Save as Web Archive");
                 }
-                String directory = getExternalFilesDir(null).getAbsolutePath() + File.separator;
-                getTopWindow().saveWebArchive(directory, true, new ValueCallback<String>() {
-                    @Override
-                    public void onReceiveValue(String value) {
-                        if (value != null) {
-                            Toast.makeText(BrowserActivity.this, R.string.webarchive_saved, Toast.LENGTH_SHORT).show();
-                        } else {
-                            Toast.makeText(BrowserActivity.this, R.string.webarchive_failed, Toast.LENGTH_SHORT).show();
+                String state = Environment.getExternalStorageState();
+                if (Environment.MEDIA_MOUNTED.equals(state)) {
+                    String directory = Environment.getExternalStoragePublicDirectory(
+                            Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + File.separator;
+                    getTopWindow().saveWebArchive(directory, true, new ValueCallback<String>() {
+                        @Override
+                        public void onReceiveValue(String value) {
+                            if (value != null) {
+                                Toast.makeText(BrowserActivity.this, R.string.webarchive_saved,
+                                        Toast.LENGTH_SHORT).show();
+                            } else {
+                                Toast.makeText(BrowserActivity.this, R.string.webarchive_failed,
+                                        Toast.LENGTH_SHORT).show();
+                            }
                         }
-                    }
-                });
+                    });
+                } else {
+                    Toast.makeText(BrowserActivity.this, R.string.webarchive_failed,
+                            Toast.LENGTH_SHORT).show();
+                }
                 break;
 
             case R.id.page_info_menu_id: