Skip to content

Commit

Permalink
Suggested-Changes-In-The-PR-done
Browse files Browse the repository at this point in the history
  • Loading branch information
harshilpadsala88 committed Apr 29, 2024
1 parent a8affee commit d4fc926
Show file tree
Hide file tree
Showing 10 changed files with 172 additions and 87 deletions.
22 changes: 22 additions & 0 deletions .idea/androidTestResultsUserPreferences.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 14 additions & 1 deletion .idea/deploymentTargetDropDown.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
<uses-permission android:name="android.permission.CAMERA"/>

<application
Expand Down
10 changes: 6 additions & 4 deletions app/src/main/java/com/ss/smartstorage/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.ss.smartstorage

import android.annotation.SuppressLint
import android.os.Build
import android.os.Bundle
import android.util.Log
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.annotation.RequiresApi
Expand All @@ -16,7 +18,7 @@ import com.ss.smartstorage.ui.theme.SmartStorageTheme

class MainActivity : ComponentActivity() {

@RequiresApi(Build.VERSION_CODES.R)
@SuppressLint("NewApi")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

Expand All @@ -33,9 +35,9 @@ class MainActivity : ComponentActivity() {
onStoreTap = {
smartStorage.store(
location = SmartDirectory.DOWNLOADS,
fileName = "dd",
fileType = SmartFileType.txt,
fileData = "Directed by Christopher Nolan".toByteArray()
fileType = SmartFileType.TXT,
fileName = "SampleFile.txt",
fileData = "This is a sample txt file.".toByteArray()
)
},
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
package com.ss.smart_storage

import android.Manifest
import android.content.Intent
import android.content.pm.PackageManager
import android.os.Build
import android.provider.Settings
import android.util.Log
import androidx.activity.ComponentActivity
import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.RequiresApi
import androidx.annotation.RequiresPermission
import androidx.core.content.ContextCompat
import com.ss.smart_storage.util.PermissionStatus
import com.ss.smart_storage.util.SmartDirectory
Expand All @@ -14,8 +19,6 @@ class PermissionManager(
private val activity: ComponentActivity,
val onPermissionGranted: (PermissionStatus) -> Unit
) {


private val requestPermissionLauncher = activity.registerForActivityResult(
ActivityResultContracts.RequestPermission()
) { isGranted: Boolean ->
Expand All @@ -26,11 +29,9 @@ class PermissionManager(
}
}




fun checkLocation(location: String) {
when (location) {

SmartDirectory.CUSTOM -> {
onPermissionGranted(PermissionStatus.NOT_APPLICABLE)
}
Expand All @@ -55,13 +56,10 @@ class PermissionManager(
checkOsForPermissions(location)
}
}

}

private fun checkOsForPermissions(location: String) {

if (isVersionInBetween(Build.VERSION_CODES.M, Build.VERSION_CODES.Q)) {

checkIfPermissionGranted(Manifest.permission.WRITE_EXTERNAL_STORAGE,
onPermissionGranted = {
onPermissionGranted(PermissionStatus.ACCEPTED)
Expand All @@ -70,13 +68,14 @@ class PermissionManager(
Build.VERSION_CODES.R, Build.VERSION_CODES.S
) && location == SmartDirectory.EXTERNAL_PUBLIC
) {
checkIfManagePermissionGranted(Manifest.permission.MANAGE_EXTERNAL_STORAGE ,
onPermissionGranted = {
granted ->
if(granted) onPermissionGranted(PermissionStatus.ACCEPTED)
else onPermissionGranted(PermissionStatus.REDIRECT_TO_SETTINGS)
})

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
checkIfManagePermissionGranted(Manifest.permission.MANAGE_EXTERNAL_STORAGE ,
onPermissionGranted = {
granted ->
if(granted) onPermissionGranted(PermissionStatus.ACCEPTED)
else onPermissionGranted(PermissionStatus.REDIRECT_TO_SETTINGS)
})
}

} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU && location == SmartDirectory.EXTERNAL_PUBLIC) {
onPermissionGranted(PermissionStatus.NOT_AVAILABLE)
Expand All @@ -85,6 +84,7 @@ class PermissionManager(
}
}


private fun checkIfPermissionGranted(permission: String, onPermissionGranted: () -> Unit) {
if (ContextCompat.checkSelfPermission(
activity, permission
Expand All @@ -108,6 +108,8 @@ class PermissionManager(
}




private fun isVersionInBetween(min: Int, max: Int): Boolean {
return Build.VERSION.SDK_INT in min..max
}
Expand Down
Loading

0 comments on commit d4fc926

Please sign in to comment.