Skip to content

Commit 017a987

Browse files
committed
Implement share audio feature
1 parent 53ec939 commit 017a987

File tree

4 files changed

+40
-4
lines changed

4 files changed

+40
-4
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,17 @@
4040
</intent-filter>
4141
</activity>
4242
<receiver android:name=".ui.AlertReceiver" />
43+
44+
<provider
45+
android:name="androidx.core.content.FileProvider"
46+
android:authorities="com.certified.audionote.provider"
47+
android:exported="false"
48+
android:grantUriPermissions="true">
49+
<meta-data
50+
android:name="android.support.FILE_PROVIDER_PATHS"
51+
android:resource="@xml/file_paths">
52+
</meta-data>
53+
</provider>
4354
</application>
4455

4556
</manifest>

app/src/main/java/com/certified/audionote/ui/EditNoteFragment.kt

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import android.Manifest
2020
import android.app.DatePickerDialog
2121
import android.app.TimePickerDialog
2222
import android.content.Context
23+
import android.content.Intent
2324
import android.content.pm.PackageManager
2425
import android.media.MediaPlayer
2526
import android.media.MediaRecorder
@@ -33,6 +34,7 @@ import android.widget.DatePicker
3334
import android.widget.TimePicker
3435
import androidx.activity.result.contract.ActivityResultContracts
3536
import androidx.core.content.ContextCompat
37+
import androidx.core.content.FileProvider
3638
import androidx.core.content.res.ResourcesCompat
3739
import androidx.fragment.app.Fragment
3840
import androidx.fragment.app.viewModels
@@ -69,6 +71,7 @@ import java.io.IOException
6971
import java.util.Calendar
7072
import java.util.concurrent.TimeUnit
7173

74+
7275
@AndroidEntryPoint
7376
class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDateSetListener,
7477
TimePickerDialog.OnTimeSetListener {
@@ -513,8 +516,25 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa
513516
}
514517

515518
private fun shareNote(note: Note) {
516-
// TODO("Not yet Implemented")
517-
showToast("You'll be able to share ${note.title} soon")
519+
if (file == null) {
520+
showToast(requireContext().getString(R.string.file_not_found))
521+
return
522+
}
523+
try {
524+
val uri = FileProvider.getUriForFile(
525+
requireContext(),
526+
"com.certified.audionote.provider",
527+
file!!
528+
)
529+
Intent(Intent.ACTION_SEND).apply {
530+
type = "*/*"
531+
putExtra(Intent.EXTRA_STREAM, uri)
532+
startActivity(Intent.createChooser(this, "Share using"))
533+
}
534+
} catch (t: Throwable) {
535+
showToast(requireContext().getString(R.string.error_occurred))
536+
Log.d("TAG", "shareNote: ${t.localizedMessage}")
537+
}
518538
}
519539

520540
private fun updateStatusBarColor(color: Int) {

app/src/main/res/values/strings.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
<string name="hi_there">Hi there,</string>
3737
<string name="your_record_list_is_empty_click_the_button_below_to_get_started">Your record list is empty. Click the button below to get started</string>
3838
<string name="about">About</string>
39-
<string name="app_version" translatable="false">v0.1.4(04032022)</string>
39+
<string name="app_version" translatable="false">v0.1.5(29042023)</string>
4040
<string name="attributions_amp_licence"><![CDATA[Attributions & Licence]]></string>
4141
<string name="licenced_under_apache_licence_version_2_0">Licenced under Apache Licence, Version 2.0</string>
4242
<string name="app_version_licence_and_more">App version, Licence and more</string>
@@ -92,5 +92,6 @@
9292
<string name="notification_permission" translatable="false">Notification Permission</string>
9393
<string name="audio_notes_channel" translatable="false">Audio Notes channel</string>
9494
<string name="audio_record_permission" translatable="false">Audio record permission</string>
95-
<string name="ok">Ok</string>
95+
<string name="ok" translatable="false">OK</string>
96+
<string name="file_not_found">File not found</string>
9697
</resources>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<paths xmlns:android="http://schemas.android.com/apk/res/android">
3+
<external-path name="recordings" path="/" />
4+
</paths>

0 commit comments

Comments
 (0)