Skip to content

Commit 935e2a5

Browse files
committed
showStoragePermissionDialogFragment
Signed-off-by: alperozturk <[email protected]>
1 parent 479d83f commit 935e2a5

File tree

2 files changed

+24
-5
lines changed

2 files changed

+24
-5
lines changed

app/src/main/java/com/owncloud/android/ui/activity/UploadFilesActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ public void onRequestPermissionsResult(int requestCode,
353353
// permission was granted
354354
showLocalStoragePathPickerDialog();
355355
} else {
356-
DisplayUtils.showSnackMessage(this, R.string.permission_storage_access);
356+
PermissionUtil.INSTANCE.showPermissionDeniedSnackbar(this);
357357
}
358358
} else {
359359
super.onRequestPermissionsResult(requestCode, permissions, grantResults);

app/src/main/java/com/owncloud/android/utils/PermissionUtil.kt

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import android.content.Context
1414
import android.content.Intent
1515
import android.content.pm.PackageManager
1616
import android.content.pm.ResolveInfo
17+
import android.net.Uri
1718
import android.os.Build
1819
import android.os.Environment
1920
import android.provider.Settings
@@ -22,8 +23,10 @@ import androidx.appcompat.app.AppCompatActivity
2223
import androidx.core.app.ActivityCompat
2324
import androidx.core.content.ContextCompat
2425
import androidx.core.net.toUri
26+
import com.google.android.material.snackbar.Snackbar
2527
import com.nextcloud.client.preferences.AppPreferences
2628
import com.nextcloud.client.preferences.AppPreferencesImpl
29+
import com.owncloud.android.R
2730
import com.owncloud.android.lib.common.utils.Log_OC
2831
import com.owncloud.android.ui.dialog.StoragePermissionDialogFragment
2932
import com.owncloud.android.utils.PermissionUtil.PERMISSIONS_EXTERNAL_STORAGE
@@ -119,11 +122,12 @@ object PermissionUtil {
119122

120123
@Suppress("DEPRECATION")
121124
val preferences: AppPreferences = AppPreferencesImpl.fromContext(activity)
125+
if (preferences.isStoragePermissionRequested) {
126+
showPermissionDeniedSnackbar(activity)
127+
return
128+
}
122129

123-
if (!preferences.isStoragePermissionRequested &&
124-
Build.VERSION.SDK_INT >= Build.VERSION_CODES.R &&
125-
canRequestAllFilesPermission(activity)
126-
) {
130+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && canRequestAllFilesPermission(activity)) {
127131
showStoragePermissionDialogFragment(activity, showStrictText)
128132
} else {
129133
requestStoragePermissions(activity, preferences.isStoragePermissionRequested)
@@ -137,6 +141,21 @@ object PermissionUtil {
137141
}
138142
}
139143

144+
fun showPermissionDeniedSnackbar(activity: AppCompatActivity) {
145+
Snackbar.make(
146+
activity.findViewById(android.R.id.content),
147+
R.string.permission_storage_access, Snackbar.LENGTH_SHORT
148+
)
149+
.setAction(R.string.actionbar_settings) { v ->
150+
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply {
151+
data = Uri.fromParts("package", activity.packageName, null)
152+
}
153+
154+
activity.startActivity(intent)
155+
}
156+
.show()
157+
}
158+
140159
private fun getStoragePermissions() = when {
141160
Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE -> arrayOf(
142161
Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED,

0 commit comments

Comments
 (0)