From d5638425df8b7b6a23026df2149c69f7639952dd Mon Sep 17 00:00:00 2001 From: Zahnstocher <1073398+Zahnstocher@users.noreply.github.com> Date: Wed, 31 Jul 2024 20:34:00 +0200 Subject: [PATCH 1/3] Grant camera write permissions, remove obsolete permissions (Fix #441) --- app/src/main/AndroidManifest.xml | 7 +------ .../main/java/net/osmtracker/activity/TrackLogger.java | 8 +++++++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a2b63e2b8..d0d5141b1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,16 +18,11 @@ - - - - + android:theme="@style/HighContrast"> Date: Fri, 2 Aug 2024 16:39:26 +0200 Subject: [PATCH 2/3] Capture photo via camera app (intent) does not require camera permission --- app/src/main/AndroidManifest.xml | 5 +- .../net/osmtracker/activity/TrackLogger.java | 52 +--------------- .../listener/StillImageOnClickListener.java | 62 +------------------ 3 files changed, 6 insertions(+), 113 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d0d5141b1..618bc2ca3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,11 +13,14 @@ - + + + + 1) { - // TODO: fix permission management - //&& grantResults[0] == PackageManager.PERMISSION_GRANTED - //&& grantResults[1] == PackageManager.PERMISSION_GRANTED) { - - // permission was granted, yay! - requestStillImage(); - - } else { - - // permission denied, boo! Disable the - // functionality that depends on this permission. - //TODO: add an informative message. - Log.v(TAG, "Camera permission is denied."); - } - return; - } } } diff --git a/app/src/main/java/net/osmtracker/listener/StillImageOnClickListener.java b/app/src/main/java/net/osmtracker/listener/StillImageOnClickListener.java index c53cbd936..bfd963b5c 100644 --- a/app/src/main/java/net/osmtracker/listener/StillImageOnClickListener.java +++ b/app/src/main/java/net/osmtracker/listener/StillImageOnClickListener.java @@ -2,11 +2,6 @@ import net.osmtracker.activity.TrackLogger; -import android.Manifest; -import android.content.pm.PackageManager; -import androidx.core.app.ActivityCompat; -import androidx.core.content.ContextCompat; - import android.view.View; import android.view.View.OnClickListener; @@ -22,8 +17,6 @@ public class StillImageOnClickListener implements OnClickListener { * Parent activity */ TrackLogger activity; - - final private int RC_STORAGE_CAMERA_PERMISSIONS = 2; public StillImageOnClickListener(TrackLogger parent) { activity = parent; @@ -31,59 +24,6 @@ public StillImageOnClickListener(TrackLogger parent) { @Override public void onClick(View v) { - if (ContextCompat.checkSelfPermission(activity, - Manifest.permission.WRITE_EXTERNAL_STORAGE) + ContextCompat.checkSelfPermission(activity, - Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { - - // Should we show an explanation? - if ( (ActivityCompat.shouldShowRequestPermissionRationale(activity, - Manifest.permission.WRITE_EXTERNAL_STORAGE)) - || (ActivityCompat.shouldShowRequestPermissionRationale(activity, - Manifest.permission.CAMERA)) ) { - - // Show an expanation to the user *asynchronously* -- don't block - // this thread waiting for the user's response! After the user - // sees the explanation, try again to request the permission. - // TODO: explain why we need permission. - //"we should explain why we need write and record audio permission" - - } else { - - // No explanation needed, we can request the permission. - ActivityCompat.requestPermissions(activity, - new String[]{ - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.CAMERA}, - RC_STORAGE_CAMERA_PERMISSIONS); - } - - } else { - activity.requestStillImage(); - } - + activity.requestStillImage(); } - - public void onRequestPermissionsResult(int requestCode, - String permissions[], int[] grantResults) { - switch (requestCode) { - case RC_STORAGE_CAMERA_PERMISSIONS: { - // If request is cancelled, the result arrays are empty. - if (grantResults.length == 2 - && grantResults[0] == PackageManager.PERMISSION_GRANTED - && grantResults[1] == PackageManager.PERMISSION_GRANTED) { - - // permission was granted, yay! - activity.requestStillImage(); - - } else { - - // permission denied, boo! Disable the - // functionality that depends on this permission. - //TODO: add an informative message. - } - return; - } - } - } - } From 90506a0d6d8c8d0bee98b788e11dbff07d2f7284 Mon Sep 17 00:00:00 2001 From: Zahnstocher <1073398+Zahnstocher@users.noreply.github.com> Date: Sat, 3 Aug 2024 12:46:02 +0200 Subject: [PATCH 3/3] Add back requestLegacyExternalStorage --- app/src/main/AndroidManifest.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 618bc2ca3..389cfec12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -25,7 +25,8 @@ android:description="@string/app_description" android:icon="@drawable/ic_launcher" android:label="@string/app_name" - android:theme="@style/HighContrast"> + android:theme="@style/HighContrast" + android:requestLegacyExternalStorage="true">