diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index 0c0c3383890637b4721df1f49d0b229e55c0f361..b248a5f47493bcc06e6683bc3da32514c966b9c0 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -3,7 +3,20 @@ <component name="deploymentTargetDropDown"> <value> <entry key="app"> - <State /> + <State> + <runningDeviceTargetSelectedWithDropDown> + <Target> + <type value="RUNNING_DEVICE_TARGET" /> + <deviceKey> + <Key> + <type value="VIRTUAL_DEVICE_PATH" /> + <value value="C:\Users\Shidq\.android\avd\Medium_Phone_API_33.avd" /> + </Key> + </deviceKey> + </Target> + </runningDeviceTargetSelectedWithDropDown> + <timeTargetWasSelectedWithDropDown value="2024-03-30T06:44:39.973184600Z" /> + </State> </entry> </value> </component> diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 41dd1419ca90126d6785ab09ea5927afe8b7fa40..75284d44246151ac6010e659b77048b11d32f2e6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -7,7 +7,13 @@ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" /> - <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" + android:maxSdkVersion="32" /> + <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /> + <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> + <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> + + <application android:name=".BondowowoApp" diff --git a/app/src/main/java/com/atm/bondowowo/ui/settings/SendEmailActivity.kt b/app/src/main/java/com/atm/bondowowo/ui/settings/SendEmailActivity.kt index 913bb23b4bddcfaa1a579c4c325b7012b4b14e66..7ef6c707decbb56ad0661c490cd639a98a4be4c8 100644 --- a/app/src/main/java/com/atm/bondowowo/ui/settings/SendEmailActivity.kt +++ b/app/src/main/java/com/atm/bondowowo/ui/settings/SendEmailActivity.kt @@ -1,14 +1,16 @@ package com.atm.bondowowo.ui.settings -import android.content.Context import android.content.Intent -import android.net.Uri import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Toast import androidx.core.content.FileProvider import com.atm.bondowowo.R import java.io.File +import android.content.pm.PackageManager + + + class SendEmailActivity : AppCompatActivity() { @@ -25,23 +27,24 @@ class SendEmailActivity : AppCompatActivity() { if (file != null && file.exists()) { val uri = FileProvider.getUriForFile(this, "${packageName}.fileprovider", file) -// val uri = FileProvider.getUriForFile(this, "${packageName}.fileprovider", File("/storage/emulated/0/Android/data/com.atm.bondowowo/files/transaction_data.xlsx")) -// val uri = Uri.fromFile(file) + + val resInfoList = packageManager.queryIntentActivities(Intent(Intent.ACTION_SEND).apply { + type = "application/vnd.ms-excel" + putExtra(Intent.EXTRA_STREAM, uri) + }, PackageManager.MATCH_DEFAULT_ONLY) + + for (resolveInfo in resInfoList) { + val packageName = resolveInfo.activityInfo.packageName + grantUriPermission(packageName, uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION or Intent.FLAG_GRANT_READ_URI_PERMISSION) + } val emailIntent = Intent(Intent.ACTION_SEND) emailIntent.type = "application/vnd.ms-excel" -// emailIntent.type = "message/rfc822" - emailIntent.putExtra(Intent.EXTRA_EMAIL, arrayOf("shidqizh@gmail.com")) -// emailIntent.putExtra(Intent.EXTRA_SUBJECT, file.toString()) + emailIntent.putExtra(Intent.EXTRA_EMAIL, arrayOf("shidqizh@gmail.com")) // tar benerin ini kirim ke user yang lagi login emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Export File") - emailIntent.putExtra(Intent.EXTRA_TEXT, "Berikut terlampir file transaksi dalam format spreadsheet.") -// emailIntent.putExtra(Intent.EXTRA_TEXT, uri.toString()) - emailIntent.putExtra(Intent.EXTRA_STREAM, uri) - emailIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) - try { startActivity(Intent.createChooser(emailIntent, "Send mail...")) } catch (ex: android.content.ActivityNotFoundException) { @@ -52,7 +55,6 @@ class SendEmailActivity : AppCompatActivity() { } } - private fun getLatestFileFromStorage(): File? { val directoryPath = "/storage/emulated/0/Android/data/com.atm.bondowowo/files" val directory = File(directoryPath)