Skip to content

Commit 1f1c12f

Browse files
committed
fix backup creation failed on some phones
1 parent c43decd commit 1f1c12f

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

app/src/main/java/com/example/util/simpletimetracker/navigation/ActionResolverImpl.kt

+11-13
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import com.example.util.simpletimetracker.navigation.params.action.OpenSystemSet
2121
import com.example.util.simpletimetracker.navigation.params.action.RequestPermissionParams
2222
import com.example.util.simpletimetracker.navigation.params.action.SendEmailParams
2323
import com.example.util.simpletimetracker.navigation.params.action.ShareFileParams
24+
import timber.log.Timber
2425
import javax.inject.Inject
2526

2627
class ActionResolverImpl @Inject constructor(
@@ -42,8 +43,8 @@ class ActionResolverImpl @Inject constructor(
4243
when (data) {
4344
is OpenMarketParams -> openMarket(activity, data)
4445
is SendEmailParams -> sendEmail(activity, data)
45-
is CreateFileParams -> createFile(activity, data)
46-
is OpenFileParams -> openFile(activity, data)
46+
is CreateFileParams -> createFile(data)
47+
is OpenFileParams -> openFile(data)
4748
is OpenSystemSettings -> openSystemSettings(activity, data)
4849
is ShareFileParams -> shareFile(activity, data)
4950
is RequestPermissionParams -> requestPermission(data)
@@ -96,27 +97,29 @@ class ActionResolverImpl @Inject constructor(
9697
}
9798
}
9899

99-
private fun openFile(activity: Activity?, data: OpenFileParams) {
100+
private fun openFile(data: OpenFileParams) {
100101
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT)
101102
.addCategory(Intent.CATEGORY_OPENABLE)
102103
.setType(data.type)
103104

104-
if (activity.checkIfIntentResolves(intent)) {
105+
runCatching {
105106
openFileResultLauncher?.launch(intent)
106-
} else {
107+
}.onFailure {
108+
Timber.e(it)
107109
data.notHandledCallback()
108110
}
109111
}
110112

111-
private fun createFile(activity: Activity?, data: CreateFileParams) {
113+
private fun createFile(data: CreateFileParams) {
112114
val intent = Intent(Intent.ACTION_CREATE_DOCUMENT)
113115
.addCategory(Intent.CATEGORY_OPENABLE)
114116
.setType(data.type)
115117
.putExtra(Intent.EXTRA_TITLE, data.fileName)
116118

117-
if (activity.checkIfIntentResolves(intent)) {
119+
runCatching {
118120
createFileResultLauncher?.launch(intent)
119-
} else {
121+
}.onFailure {
122+
Timber.e(it)
120123
data.notHandledCallback()
121124
}
122125
}
@@ -183,11 +186,6 @@ class ActionResolverImpl @Inject constructor(
183186
}
184187
}
185188

186-
private fun Activity?.checkIfIntentResolves(intent: Intent): Boolean {
187-
if (this == null) return false
188-
return packageManager?.let(intent::resolveActivity) != null
189-
}
190-
191189
companion object {
192190
private const val MARKET_INTENT = "market://details?id="
193191
private const val MARKET_LINK = "http://play.google.com/store/apps/details?id="

0 commit comments

Comments
 (0)