aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxime Biais <maxime.biais@gmail.com>2016-10-03 18:10:52 +0200
committerMaxime Biais <maxime.biais@gmail.com>2016-10-03 18:10:52 +0200
commit5862838a0de38708306bffb5c4f72451cf8ffacc (patch)
tree614c5aba44d91d42d0f91dfad601f8684b2b08df
parentcb3f360209d720ebd00b8782a3a152c96bcddc02 (diff)
parent1a93647bbf014f913220e60262e883b583787fce (diff)
downloadgradle-perf-android-medium-5862838a0de38708306bffb5c4f72451cf8ffacc.tar.gz
Merge branch 'release/5.9' of https://github.com/wordpress-mobile/WordPress-Android into release/5.9
-rw-r--r--WordPress/src/main/AndroidManifest.xml11
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.java16
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/media/MediaAddFragment.java3
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/media/MediaPickerActivity.java14
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/media/WordPressMediaUtils.java30
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java15
-rw-r--r--WordPress/src/main/res/xml/provider_paths.xml6
7 files changed, 61 insertions, 34 deletions
diff --git a/WordPress/src/main/AndroidManifest.xml b/WordPress/src/main/AndroidManifest.xml
index 35d2bd005..1c0c1fb85 100644
--- a/WordPress/src/main/AndroidManifest.xml
+++ b/WordPress/src/main/AndroidManifest.xml
@@ -512,5 +512,16 @@
<!-- Smart Lock for Passwords -->
<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
+
+ <!-- Provider for exposing file URIs on Android 7+ -->
+ <provider
+ android:name="android.support.v4.content.FileProvider"
+ android:authorities="${applicationId}.provider"
+ android:exported="false"
+ android:grantUriPermissions="true">
+ <meta-data
+ android:name="android.support.FILE_PROVIDER_PATHS"
+ android:resource="@xml/provider_paths"/>
+ </provider>
</application>
</manifest>
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.java
index 316cf2a3c..7873492d3 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.java
@@ -37,6 +37,7 @@ import android.view.ViewOutlineProvider;
import android.widget.TextView;
import android.widget.Toast;
+import org.wordpress.android.BuildConfig;
import org.wordpress.android.R;
import org.wordpress.android.WordPress;
import org.wordpress.android.analytics.AnalyticsTracker;
@@ -504,13 +505,14 @@ public class MeFragment extends Fragment {
}
private void askForCameraOrGallery() {
- WordPressMediaUtils.launchPictureLibraryOrCapture(MeFragment.this, new WordPressMediaUtils
- .LaunchCameraCallback() {
- @Override
- public void onMediaCapturePathReady(String mediaCapturePath) {
- mMediaCapturePath = mediaCapturePath;
- }
- });
+ WordPressMediaUtils
+ .launchPictureLibraryOrCapture(MeFragment.this, BuildConfig.APPLICATION_ID,
+ new WordPressMediaUtils.LaunchCameraCallback() {
+ @Override
+ public void onMediaCapturePathReady(String mediaCapturePath) {
+ mMediaCapturePath = mediaCapturePath;
+ }
+ });
}
private void startCropActivity(Uri uri) {
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/media/MediaAddFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/media/MediaAddFragment.java
index 81d84e77a..ea8d06f47 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/media/MediaAddFragment.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/media/MediaAddFragment.java
@@ -20,6 +20,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
+import org.wordpress.android.BuildConfig;
import org.wordpress.android.R;
import org.wordpress.android.WordPress;
import org.wordpress.android.models.Blog;
@@ -231,7 +232,7 @@ public class MediaAddFragment extends Fragment implements LaunchCameraCallback {
}
public void launchCamera() {
- WordPressMediaUtils.launchCamera(this, this);
+ WordPressMediaUtils.launchCamera(this, BuildConfig.APPLICATION_ID, this);
}
public void launchVideoCamera() {
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/media/MediaPickerActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/media/MediaPickerActivity.java
index 0faf227e2..ea4664f67 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/media/MediaPickerActivity.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/media/MediaPickerActivity.java
@@ -23,6 +23,7 @@ import android.widget.LinearLayout;
import com.android.volley.toolbox.ImageLoader;
+import org.wordpress.android.BuildConfig;
import org.wordpress.android.R;
import org.wordpress.android.WordPress;
import org.wordpress.android.ui.RequestCodes;
@@ -134,12 +135,13 @@ public class MediaPickerActivity extends AppCompatActivity
if (item.getItemId() == android.R.id.home) {
finish();
} else if (item.getItemId() == R.id.capture_image) {
- WordPressMediaUtils.launchCamera(this, new WordPressMediaUtils.LaunchCameraCallback() {
- @Override
- public void onMediaCapturePathReady(String mediaCapturePath) {
- mCapturePath = mediaCapturePath;
- }
- });
+ WordPressMediaUtils.launchCamera(this, BuildConfig.APPLICATION_ID,
+ new WordPressMediaUtils.LaunchCameraCallback() {
+ @Override
+ public void onMediaCapturePathReady(String mediaCapturePath) {
+ mCapturePath = mediaCapturePath;
+ }
+ });
return true;
} else if (item.getItemId() == R.id.capture_video) {
WordPressMediaUtils.launchVideoCamera(this);
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/media/WordPressMediaUtils.java b/WordPress/src/main/java/org/wordpress/android/ui/media/WordPressMediaUtils.java
index 749666846..16c2c5ccc 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/media/WordPressMediaUtils.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/media/WordPressMediaUtils.java
@@ -13,6 +13,7 @@ import android.net.Uri;
import android.os.AsyncTask;
import android.os.Environment;
import android.provider.MediaStore;
+import android.support.v4.content.FileProvider;
import android.widget.ImageView;
import com.android.volley.toolbox.ImageLoader;
@@ -121,41 +122,43 @@ public class WordPressMediaUtils {
return Intent.createChooser(intent, title);
}
- public static void launchCamera(Activity activity, LaunchCameraCallback callback) {
- Intent intent = preparelaunchCamera(activity, callback);
+ public static void launchCamera(Activity activity, String applicationId, LaunchCameraCallback callback) {
+ Intent intent = preparelaunchCamera(activity, applicationId, callback);
if (intent != null) {
AppLockManager.getInstance().setExtendedTimeout();
activity.startActivityForResult(intent, RequestCodes.TAKE_PHOTO);
}
}
- public static void launchCamera(Fragment fragment, LaunchCameraCallback callback) {
+ public static void launchCamera(Fragment fragment, String applicationId, LaunchCameraCallback callback) {
if (!fragment.isAdded()) {
return;
}
- Intent intent = preparelaunchCamera(fragment.getActivity(), callback);
+ Intent intent = preparelaunchCamera(fragment.getActivity(), applicationId, callback);
if (intent != null) {
AppLockManager.getInstance().setExtendedTimeout();
fragment.startActivityForResult(intent, RequestCodes.TAKE_PHOTO);
}
}
- private static Intent preparelaunchCamera(Context context, LaunchCameraCallback callback) {
+ private static Intent preparelaunchCamera(Context context, String applicationId, LaunchCameraCallback callback) {
String state = android.os.Environment.getExternalStorageState();
if (!state.equals(android.os.Environment.MEDIA_MOUNTED)) {
showSDCardRequiredDialog(context);
return null;
} else {
- return getLaunchCameraIntent(callback);
+ return getLaunchCameraIntent(context, applicationId, callback);
}
}
- private static Intent getLaunchCameraIntent(LaunchCameraCallback callback) {
+ private static Intent getLaunchCameraIntent(Context context, String applicationId, LaunchCameraCallback callback) {
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
- String mediaCapturePath = path + File.separator + "Camera" + File.separator + "wp-" + System.currentTimeMillis() + ".jpg";
+ String mediaCapturePath = path + File.separator + "Camera" + File.separator + "wp-" + System
+ .currentTimeMillis() + ".jpg";
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
- intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(mediaCapturePath)));
+ intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, FileProvider.getUriForFile(context,
+ applicationId + ".provider", new File(mediaCapturePath)));
if (callback != null) {
callback.onMediaCapturePathReady(mediaCapturePath);
@@ -173,20 +176,21 @@ public class WordPressMediaUtils {
return intent;
}
- public static void launchPictureLibraryOrCapture(Fragment fragment, LaunchCameraCallback callback) {
+ public static void launchPictureLibraryOrCapture(Fragment fragment, String applicationId, LaunchCameraCallback
+ callback) {
if (!fragment.isAdded()) {
return;
}
AppLockManager.getInstance().setExtendedTimeout();
- fragment.startActivityForResult(makePickOrCaptureIntent(fragment.getActivity(), callback),
+ fragment.startActivityForResult(makePickOrCaptureIntent(fragment.getActivity(), applicationId, callback),
RequestCodes.PICTURE_LIBRARY_OR_CAPTURE);
}
- private static Intent makePickOrCaptureIntent(Context context, LaunchCameraCallback callback) {
+ private static Intent makePickOrCaptureIntent(Context context, String applicationId, LaunchCameraCallback callback) {
Intent pickPhotoIntent = prepareGalleryIntent(context.getString(R.string.capture_or_pick_photo));
if (DeviceUtils.getInstance().hasCamera(context)) {
- Intent cameraIntent = getLaunchCameraIntent(callback);
+ Intent cameraIntent = getLaunchCameraIntent(context, applicationId, callback);
pickPhotoIntent.putExtra(
Intent.EXTRA_INITIAL_INTENTS,
new Intent[]{ cameraIntent });
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java
index e670d7cd7..dc8761fcc 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java
@@ -1226,13 +1226,14 @@ public class EditPostActivity extends AppCompatActivity implements EditorFragmen
}
private void launchCamera() {
- WordPressMediaUtils.launchCamera(this, new WordPressMediaUtils.LaunchCameraCallback() {
- @Override
- public void onMediaCapturePathReady(String mediaCapturePath) {
- mMediaCapturePath = mediaCapturePath;
- AppLockManager.getInstance().setExtendedTimeout();
- }
- });
+ WordPressMediaUtils.launchCamera(this, BuildConfig.APPLICATION_ID,
+ new WordPressMediaUtils.LaunchCameraCallback() {
+ @Override
+ public void onMediaCapturePathReady(String mediaCapturePath) {
+ mMediaCapturePath = mediaCapturePath;
+ AppLockManager.getInstance().setExtendedTimeout();
+ }
+ });
}
protected void setPostContentFromShareAction() {
diff --git a/WordPress/src/main/res/xml/provider_paths.xml b/WordPress/src/main/res/xml/provider_paths.xml
new file mode 100644
index 000000000..7c82c7779
--- /dev/null
+++ b/WordPress/src/main/res/xml/provider_paths.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<paths xmlns:android="http://schemas.android.com/apk/res/android">
+ <external-path
+ name="external_files"
+ path="."/>
+</paths>