From 79ca54c5afb9d6f5f5fc2adfadb9255203e35852 Mon Sep 17 00:00:00 2001 From: jendib Date: Sat, 30 Jul 2016 02:52:53 +0200 Subject: [PATCH] Android: Ask permission to write files --- .../docs/activity/DocumentViewActivity.java | 7 +------ .../java/com/sismics/docs/util/NetworkUtil.java | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentViewActivity.java b/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentViewActivity.java index 06297596..b586a911 100644 --- a/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentViewActivity.java +++ b/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentViewActivity.java @@ -76,11 +76,6 @@ public class DocumentViewActivity extends AppCompatActivity { */ public static final int REQUEST_CODE_ADD_FILE = 1; - /** - * Request code of editing document. - */ - public static final int REQUEST_CODE_EDIT_DOCUMENT = 2; - /** * File view pager. */ @@ -214,7 +209,7 @@ public class DocumentViewActivity extends AppCompatActivity { public void onClick(View view) { Intent intent = new Intent(DocumentViewActivity.this, DocumentEditActivity.class); intent.putExtra("document", DocumentViewActivity.this.document.toString()); - startActivityForResult(intent, REQUEST_CODE_EDIT_DOCUMENT); + startActivity(intent); } }); diff --git a/docs-android/app/src/main/java/com/sismics/docs/util/NetworkUtil.java b/docs-android/app/src/main/java/com/sismics/docs/util/NetworkUtil.java index a81b4862..fb5959a4 100644 --- a/docs-android/app/src/main/java/com/sismics/docs/util/NetworkUtil.java +++ b/docs-android/app/src/main/java/com/sismics/docs/util/NetworkUtil.java @@ -1,9 +1,14 @@ package com.sismics.docs.util; +import android.Manifest; +import android.app.Activity; import android.app.DownloadManager; import android.content.Context; +import android.content.pm.PackageManager; import android.net.Uri; import android.os.Environment; +import android.support.v4.app.ActivityCompat; +import android.support.v4.content.ContextCompat; /** * Utility class for network actions. @@ -19,9 +24,14 @@ public class NetworkUtil { * @param title Notification title * @param description Notification description */ - public static void downloadFile(Context context, String url, String fileName, String title, String description) { - String authToken = PreferenceUtil.getAuthToken(context); - DownloadManager downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); + public static void downloadFile(Activity activity, String url, String fileName, String title, String description) { + if (ContextCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + ActivityCompat.requestPermissions(activity, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 0); + return; + } + + String authToken = PreferenceUtil.getAuthToken(activity); + DownloadManager downloadManager = (DownloadManager) activity.getSystemService(Context.DOWNLOAD_SERVICE); DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName);