From 492efa2305a24097a1f70422f1913c8587940aec Mon Sep 17 00:00:00 2001 From: Thibaud Michel Date: Sat, 3 Jun 2017 10:28:20 +0200 Subject: [PATCH] Fixed error on preview image Fixed error on non-unlimited mode --- .gitignore | 2 +- app/build.gradle | 3 +++ app/src/main/AndroidManifest.xml | 11 +++++++++++ .../thibaudperso/sonycamera/sdk/CameraWS.java | 1 - .../connection/StateMachineConnection.java | 7 ++++--- .../ui/adjustments/AdjustmentsFragment.java | 17 ++++++++++++++--- .../ui/processing/ProcessingFragment.java | 2 +- app/src/main/res/xml/file_paths.xml | 4 ++++ 8 files changed, 38 insertions(+), 9 deletions(-) create mode 100644 app/src/main/res/xml/file_paths.xml diff --git a/.gitignore b/.gitignore index 822f055..a1c95ee 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ # built application files -#*.apk +*.apk *.ap_ # files for the dex VM diff --git a/app/build.gradle b/app/build.gradle index c03a6d5..da613b5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,6 +13,9 @@ android { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + lintOptions { + disable 'MissingTranslation' + } } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5cb0fa..6f168ee 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -59,6 +59,17 @@ android:name=".timelapse.service.IntervalometerService" android:exported="false"/> + + + + diff --git a/app/src/main/java/com/thibaudperso/sonycamera/sdk/CameraWS.java b/app/src/main/java/com/thibaudperso/sonycamera/sdk/CameraWS.java index 68c5130..bc1d39f 100644 --- a/app/src/main/java/com/thibaudperso/sonycamera/sdk/CameraWS.java +++ b/app/src/main/java/com/thibaudperso/sonycamera/sdk/CameraWS.java @@ -89,7 +89,6 @@ void sendRequest(final String method, final JSONArray params, final Listener lis throw new RequestNotWellFormatedException(e); } - Log.v("DEBUG", "Request URL: "+mWSUrl); JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.POST, mWSUrl, inputJsonObject, new Response.Listener() { diff --git a/app/src/main/java/com/thibaudperso/sonycamera/timelapse/control/connection/StateMachineConnection.java b/app/src/main/java/com/thibaudperso/sonycamera/timelapse/control/connection/StateMachineConnection.java index 0d9d801..33b5988 100644 --- a/app/src/main/java/com/thibaudperso/sonycamera/timelapse/control/connection/StateMachineConnection.java +++ b/app/src/main/java/com/thibaudperso/sonycamera/timelapse/control/connection/StateMachineConnection.java @@ -21,6 +21,7 @@ import java.util.Arrays; import java.util.List; +import static com.thibaudperso.sonycamera.timelapse.Constants.LOG_TAG; import static com.thibaudperso.sonycamera.timelapse.control.connection.StateMachineConnection.State.BAD_API_ACCESS; import static com.thibaudperso.sonycamera.timelapse.control.connection.StateMachineConnection.State.CHECK_API; import static com.thibaudperso.sonycamera.timelapse.control.connection.StateMachineConnection.State.GOOD_API_ACCESS; @@ -60,7 +61,7 @@ public StateMachineConnection(TimelapseApplication application) { public void start() { - Log.d("DEBUG", " ----------- StateMachineConnection START -----------"); + Log.d(LOG_TAG, " ----------- StateMachineConnection START -----------"); mCurrentState.process(this); mWifiHandler.setListener(mWifiListener); @@ -73,7 +74,7 @@ public void start() { public void stop() { - Log.d("DEBUG", " ----------- StateMachineConnection STOP -----------"); + Log.d(LOG_TAG, " ----------- StateMachineConnection STOP -----------"); mCurrentState.stopAsyncTasks(); mWifiHandler.setListener(null); @@ -483,7 +484,7 @@ public void onNewDevice(Device device) { private void setCurrentState(State newState) { if (Arrays.asList(newState.previousPossibleStates()).contains(mCurrentState)) { - Log.d("DEBUG", "State: " + mCurrentState + " ---> " + newState); + Log.d(LOG_TAG, "State: " + mCurrentState + " ---> " + newState); for (Listener listener : mListeners) listener.onNewState(mCurrentState, newState); mCurrentState.stopAsyncTasks(); diff --git a/app/src/main/java/com/thibaudperso/sonycamera/timelapse/ui/adjustments/AdjustmentsFragment.java b/app/src/main/java/com/thibaudperso/sonycamera/timelapse/ui/adjustments/AdjustmentsFragment.java index 8800bf5..3333446 100644 --- a/app/src/main/java/com/thibaudperso/sonycamera/timelapse/ui/adjustments/AdjustmentsFragment.java +++ b/app/src/main/java/com/thibaudperso/sonycamera/timelapse/ui/adjustments/AdjustmentsFragment.java @@ -36,6 +36,7 @@ import java.io.File; +import static android.support.v4.content.FileProvider.getUriForFile; import static com.thibaudperso.sonycamera.timelapse.Constants.PREF_AUTOMATIC_CONTINUE; public class AdjustmentsFragment extends Fragment { @@ -219,15 +220,25 @@ private void onResultPicture(String url) { // data network to try to download this image (by default) and it will fail. So we need to // use the current process to download and store it in a public directory. - mTemporaryPreviewPicture = new File(getContext().getExternalCacheDir(), PREVIEW_PICTURE_NAME); + File imgPath = new File(getContext().getExternalCacheDir(), "images"); + if (!imgPath.exists()) { + if (!imgPath.mkdir()) { + throw new RuntimeException("Impossible to create " + imgPath.toString()); + } + } + mTemporaryPreviewPicture = new File(imgPath, PREVIEW_PICTURE_NAME); Request request = new FileRequest<>(url, mTemporaryPreviewPicture, new Response.Listener() { @Override public void onResponse(File file) { + Uri uri = getUriForFile(getContext(), + "com.thibaudperso.sonycamera.fileprovider", + mTemporaryPreviewPicture); Intent intent = new Intent(); intent.setAction(android.content.Intent.ACTION_VIEW); - intent.setDataAndType(Uri.fromFile(mTemporaryPreviewPicture), "image/jpeg"); + intent.setDataAndType(uri, "image/jpeg"); + intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); startActivityForResult(intent, PREVIEW_PICTURE_ACTIVITY_RESULT); getActivity().overridePendingTransition(0, 0); } @@ -282,7 +293,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { public void onNewState(StateMachineConnection.State previousState, StateMachineConnection.State newState) { - if(!mIsFragmentResumed) return; + if (!mIsFragmentResumed) return; if (newState == StateMachineConnection.State.GOOD_API_ACCESS) { startLiveView(); diff --git a/app/src/main/java/com/thibaudperso/sonycamera/timelapse/ui/processing/ProcessingFragment.java b/app/src/main/java/com/thibaudperso/sonycamera/timelapse/ui/processing/ProcessingFragment.java index 5450ea5..8b0e1cd 100644 --- a/app/src/main/java/com/thibaudperso/sonycamera/timelapse/ui/processing/ProcessingFragment.java +++ b/app/src/main/java/com/thibaudperso/sonycamera/timelapse/ui/processing/ProcessingFragment.java @@ -453,7 +453,7 @@ private void updateProgressBar(double millisUntilFinished) { double ratio = (double) totalElapsedTime / totalTime; mOverallProgressBar.setProgress((int) totalElapsedTime); mOverallProgressValue.setText(String.format(getString(R.string.percent1f), - (int) (ratio * 100))); + ratio * 100)); } } diff --git a/app/src/main/res/xml/file_paths.xml b/app/src/main/res/xml/file_paths.xml new file mode 100644 index 0000000..87a5c92 --- /dev/null +++ b/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,4 @@ + + + +