@@ -4,6 +4,7 @@ import android.app.AlertDialog
4
4
import android.app.Dialog
5
5
import android.content.DialogInterface
6
6
import android.content.Intent
7
+ import android.os.Build
7
8
import android.os.Bundle
8
9
import android.widget.Toast
9
10
import androidx.fragment.app.DialogFragment
@@ -100,17 +101,6 @@ class SendLogDialogFragment : DialogFragment() {
100
101
}
101
102
}
102
103
103
- private var zipFile: Deferred <File >? = null
104
-
105
- override fun onCreate (savedInstanceState : Bundle ? ) {
106
- super .onCreate(savedInstanceState)
107
- zipFile = CoroutineScope (Dispatchers .IO ).async {
108
- val extraFiles = requireArguments().getSerializable(EXTRA_FILES ) as ArrayList <File >
109
- val maxFileAge = requireArguments().getInt(MAX_FILE_AGE )
110
- getZipOfLogs(requireActivity().applicationContext, maxFileAge, extraFiles)
111
- }
112
- }
113
-
114
104
override fun onCreateDialog (savedInstanceState : Bundle ? ): Dialog {
115
105
val hasFilePermission = requireActivity().applicationContext.hasFileWritePermission()
116
106
@@ -146,7 +136,7 @@ class SendLogDialogFragment : DialogFragment() {
146
136
val subject =
147
137
getString(R .string.logs_email_subject) + " " + getFormattedFileNameDayNow()
148
138
val bodyText = getString(R .string.logs_email_text)
149
- val zipFileUri = zipFile? .await()? .getUriForFile(appContext)
139
+ val zipFileUri = getZipFileDeferred() .await().getUriForFile(appContext)
150
140
151
141
val intent = Intent (Intent .ACTION_SEND ).apply {
152
142
type = " message/rfc822" // email
@@ -178,7 +168,7 @@ class SendLogDialogFragment : DialogFragment() {
178
168
val appContext = this @SendLogDialogFragment.requireContext().applicationContext
179
169
180
170
val destinationDir = requireArguments().getString(SAVE_LOGS_DIR_NAME )
181
- val resultPath = zipFile? .await()? .copyLogsToSDCard(requireContext(), destinationDir ? : DEFAULT_SAVE_LOGS_DIR_NAME )
171
+ val resultPath = getZipFileDeferred() .await().copyLogsToSDCard(requireContext(), destinationDir ? : DEFAULT_SAVE_LOGS_DIR_NAME )
182
172
183
173
val text = if (resultPath == null ) {
184
174
" File copy failed"
@@ -192,4 +182,17 @@ class SendLogDialogFragment : DialogFragment() {
192
182
Toast .LENGTH_LONG
193
183
).show()
194
184
}
185
+
186
+ private fun getZipFileDeferred (): Deferred <File > {
187
+ return CoroutineScope (Dispatchers .IO ).async {
188
+ val extraFiles = if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .TIRAMISU ) {
189
+ requireArguments().getSerializable(EXTRA_FILES , ArrayList ::class .java)
190
+ } else {
191
+ @Suppress(" DEPRECATION" )
192
+ requireArguments().getSerializable(EXTRA_FILES )
193
+ } as ArrayList <File >
194
+ val maxFileAge = requireArguments().getInt(MAX_FILE_AGE )
195
+ getZipOfLogs(requireActivity().applicationContext, maxFileAge, extraFiles)
196
+ }
197
+ }
195
198
}
0 commit comments