Remove storage permission requirement

It's not necessary for importing/exporting blocked numbers or keywords.

See https://github.com/FossifyOrg/Messages/discussions/309
This commit is contained in:
Naveen Singh 2025-03-23 20:23:49 +05:30
parent 23f52cb8c8
commit 6531f9f104
No known key found for this signature in database
GPG key ID: AF5D43C216778C0B
2 changed files with 17 additions and 58 deletions

View file

@ -15,10 +15,6 @@
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28" />
<uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission <uses-permission
android:name="android.permission.USE_BIOMETRIC" android:name="android.permission.USE_BIOMETRIC"

View file

@ -5,24 +5,17 @@ import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.widget.Toast import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import org.fossify.commons.dialogs.ExportBlockedNumbersDialog
import org.fossify.commons.dialogs.FilePickerDialog
import org.fossify.commons.extensions.beVisibleIf import org.fossify.commons.extensions.beVisibleIf
import org.fossify.commons.extensions.getFileOutputStream
import org.fossify.commons.extensions.getProperPrimaryColor import org.fossify.commons.extensions.getProperPrimaryColor
import org.fossify.commons.extensions.getTempFile import org.fossify.commons.extensions.getTempFile
import org.fossify.commons.extensions.showErrorToast import org.fossify.commons.extensions.showErrorToast
import org.fossify.commons.extensions.toFileDirItem
import org.fossify.commons.extensions.toast import org.fossify.commons.extensions.toast
import org.fossify.commons.extensions.underlineText import org.fossify.commons.extensions.underlineText
import org.fossify.commons.extensions.updateTextColors import org.fossify.commons.extensions.updateTextColors
import org.fossify.commons.extensions.viewBinding import org.fossify.commons.extensions.viewBinding
import org.fossify.commons.helpers.ExportResult import org.fossify.commons.helpers.ExportResult
import org.fossify.commons.helpers.NavigationIcon import org.fossify.commons.helpers.NavigationIcon
import org.fossify.commons.helpers.PERMISSION_READ_STORAGE
import org.fossify.commons.helpers.PERMISSION_WRITE_STORAGE
import org.fossify.commons.helpers.ensureBackgroundThread import org.fossify.commons.helpers.ensureBackgroundThread
import org.fossify.commons.helpers.isQPlus
import org.fossify.commons.interfaces.RefreshRecyclerViewListener import org.fossify.commons.interfaces.RefreshRecyclerViewListener
import org.fossify.messages.R import org.fossify.messages.R
import org.fossify.messages.databinding.ActivityManageBlockedKeywordsBinding import org.fossify.messages.databinding.ActivityManageBlockedKeywordsBinding
@ -120,27 +113,13 @@ class ManageBlockedKeywordsActivity : SimpleActivity(), RefreshRecyclerViewListe
} }
private fun tryImportBlockedKeywords() { private fun tryImportBlockedKeywords() {
if (isQPlus()) { val mimeType = "text/plain"
val mimeType = "text/plain" try {
try { importActivityResultLauncher.launch(mimeType)
importActivityResultLauncher.launch(mimeType) } catch (e: ActivityNotFoundException) {
} catch (e: ActivityNotFoundException) { toast(org.fossify.commons.R.string.system_service_disabled, Toast.LENGTH_LONG)
toast(org.fossify.commons.R.string.system_service_disabled, Toast.LENGTH_LONG) } catch (e: Exception) {
} catch (e: Exception) { showErrorToast(e)
showErrorToast(e)
}
} else {
handlePermission(PERMISSION_READ_STORAGE) { isAllowed ->
if (isAllowed) {
pickFileToImportBlockedKeywords()
}
}
}
}
private fun pickFileToImportBlockedKeywords() {
FilePickerDialog(this) {
importBlockedKeywords(it)
} }
} }
@ -200,32 +179,16 @@ class ManageBlockedKeywordsActivity : SimpleActivity(), RefreshRecyclerViewListe
} }
private fun tryExportBlockedNumbers() { private fun tryExportBlockedNumbers() {
if (isQPlus()) { ExportBlockedKeywordsDialog(this, config.lastBlockedKeywordExportPath, true) { file ->
ExportBlockedKeywordsDialog(this, config.lastBlockedKeywordExportPath, true) { file -> try {
try { exportActivityResultLauncher.launch(file.name)
exportActivityResultLauncher.launch(file.name) } catch (e: ActivityNotFoundException) {
} catch (e: ActivityNotFoundException) { toast(
toast( org.fossify.commons.R.string.system_service_disabled,
org.fossify.commons.R.string.system_service_disabled, Toast.LENGTH_LONG
Toast.LENGTH_LONG )
) } catch (e: Exception) {
} catch (e: Exception) { showErrorToast(e)
showErrorToast(e)
}
}
} else {
handlePermission(PERMISSION_WRITE_STORAGE) { isAllowed ->
if (isAllowed) {
ExportBlockedNumbersDialog(
this,
config.lastBlockedKeywordExportPath,
false
) { file ->
getFileOutputStream(file.toFileDirItem(this), true) { out ->
exportBlockedKeywordsTo(out)
}
}
}
} }
} }
} }