From 12a54fabf8072091ddba9d3ef5bbe5f112a3c64f Mon Sep 17 00:00:00 2001 From: shidqizh <shidqizh@gmail.com> Date: Sat, 30 Mar 2024 17:13:23 +0700 Subject: [PATCH] fix: email with attachment --- .idea/deploymentTargetDropDown.xml | 15 +++++++++- app/src/main/AndroidManifest.xml | 8 +++++- .../ui/settings/SendEmailActivity.kt | 28 ++++++++++--------- 3 files changed, 36 insertions(+), 15 deletions(-) diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index 0c0c338..b248a5f 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 41dd141..75284d4 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 913bb23..7ef6c70 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) -- GitLab