Skip to content

Commit a1432e9

Browse files
committed
Fix onActivityResult deprecation in SubscriptionFragment
1 parent cae160b commit a1432e9

1 file changed

Lines changed: 27 additions & 25 deletions

File tree

app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ import android.view.MenuInflater
1515
import android.view.View
1616
import android.view.ViewGroup
1717
import android.widget.Toast
18+
import androidx.activity.result.ActivityResult
19+
import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult
1820
import androidx.appcompat.app.AlertDialog
1921
import androidx.lifecycle.ViewModelProvider
2022
import androidx.localbroadcastmanager.content.LocalBroadcastManager
@@ -82,6 +84,11 @@ class SubscriptionFragment : BaseStateFragment<SubscriptionState>() {
8284
private lateinit var feedGroupsSortMenuItem: HeaderWithMenuItem
8385
private val subscriptionsSection = Section()
8486

87+
private val requestExportLauncher =
88+
registerForActivityResult(StartActivityForResult(), this::requestExportResult)
89+
private val requestImportLauncher =
90+
registerForActivityResult(StartActivityForResult(), this::requestImportResult)
91+
8592
@State
8693
@JvmField
8794
var itemsListState: Parcelable? = null
@@ -184,39 +191,39 @@ class SubscriptionFragment : BaseStateFragment<SubscriptionState>() {
184191
}
185192

186193
private fun onImportPreviousSelected() {
187-
startActivityForResult(StoredFileHelper.getPicker(activity), REQUEST_IMPORT_CODE)
194+
requestImportLauncher.launch(StoredFileHelper.getPicker(activity))
188195
}
189196

190197
private fun onExportSelected() {
191198
val date = SimpleDateFormat("yyyyMMddHHmm", Locale.ENGLISH).format(Date())
192199
val exportName = "newpipe_subscriptions_$date.json"
193200

194-
startActivityForResult(
195-
StoredFileHelper.getNewPicker(activity, exportName, "application/json", null),
196-
REQUEST_EXPORT_CODE
201+
requestExportLauncher.launch(
202+
StoredFileHelper.getNewPicker(activity, exportName, "application/json", null)
197203
)
198204
}
199205

200206
private fun openReorderDialog() {
201207
FeedGroupReorderDialog().show(parentFragmentManager, null)
202208
}
203209

204-
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
205-
super.onActivityResult(requestCode, resultCode, data)
206-
if (data != null && data.data != null && resultCode == Activity.RESULT_OK) {
207-
if (requestCode == REQUEST_EXPORT_CODE) {
208-
activity.startService(
209-
Intent(activity, SubscriptionsExportService::class.java)
210-
.putExtra(SubscriptionsExportService.KEY_FILE_PATH, data.data)
211-
)
212-
} else if (requestCode == REQUEST_IMPORT_CODE) {
213-
ImportConfirmationDialog.show(
214-
this,
215-
Intent(activity, SubscriptionsImportService::class.java)
216-
.putExtra(KEY_MODE, PREVIOUS_EXPORT_MODE)
217-
.putExtra(KEY_VALUE, data.data)
218-
)
219-
}
210+
fun requestExportResult(result: ActivityResult) {
211+
if (result.data != null && result.resultCode == Activity.RESULT_OK) {
212+
activity.startService(
213+
Intent(activity, SubscriptionsExportService::class.java)
214+
.putExtra(SubscriptionsExportService.KEY_FILE_PATH, result.data?.data)
215+
)
216+
}
217+
}
218+
219+
fun requestImportResult(result: ActivityResult) {
220+
if (result.data != null && result.resultCode == Activity.RESULT_OK) {
221+
ImportConfirmationDialog.show(
222+
this,
223+
Intent(activity, SubscriptionsImportService::class.java)
224+
.putExtra(KEY_MODE, PREVIOUS_EXPORT_MODE)
225+
.putExtra(KEY_VALUE, result.data?.data)
226+
)
220227
}
221228
}
222229

@@ -436,9 +443,4 @@ class SubscriptionFragment : BaseStateFragment<SubscriptionState>() {
436443
val minWidth = resources.getDimensionPixelSize(R.dimen.channel_item_grid_min_width)
437444
return max(1, floor(resources.displayMetrics.widthPixels / minWidth.toDouble()).toInt())
438445
}
439-
440-
companion object {
441-
private const val REQUEST_EXPORT_CODE = 666
442-
private const val REQUEST_IMPORT_CODE = 667
443-
}
444446
}

0 commit comments

Comments
 (0)