1212import android .widget .EditText ;
1313import android .widget .TextView ;
1414
15+ import androidx .activity .result .ActivityResult ;
16+ import androidx .activity .result .ActivityResultLauncher ;
17+ import androidx .activity .result .contract .ActivityResultContracts .StartActivityForResult ;
1518import androidx .annotation .NonNull ;
1619import androidx .annotation .Nullable ;
1720import androidx .annotation .StringRes ;
2730import org .schabi .newpipe .extractor .exceptions .ExtractionException ;
2831import org .schabi .newpipe .extractor .subscription .SubscriptionExtractor ;
2932import org .schabi .newpipe .local .subscription .services .SubscriptionsImportService ;
33+ import org .schabi .newpipe .streams .io .StoredFileHelper ;
3034import org .schabi .newpipe .util .Constants ;
3135import org .schabi .newpipe .util .ServiceHelper ;
3236
3337import java .util .Collections ;
3438import java .util .List ;
3539
3640import icepick .State ;
37- import org .schabi .newpipe .streams .io .StoredFileHelper ;
3841
3942import static org .schabi .newpipe .extractor .subscription .SubscriptionExtractor .ContentSource .CHANNEL_URL ;
4043import static org .schabi .newpipe .local .subscription .services .SubscriptionsImportService .CHANNEL_URL_MODE ;
4346import static org .schabi .newpipe .local .subscription .services .SubscriptionsImportService .KEY_VALUE ;
4447
4548public class SubscriptionsImportFragment extends BaseFragment {
46- private static final int REQUEST_IMPORT_FILE_CODE = 666 ;
47-
4849 @ State
4950 int currentServiceId = Constants .NO_SERVICE_ID ;
5051
@@ -62,6 +63,9 @@ public class SubscriptionsImportFragment extends BaseFragment {
6263 private EditText inputText ;
6364 private Button inputButton ;
6465
66+ private final ActivityResultLauncher <Intent > requestImportFileLauncher =
67+ registerForActivityResult (new StartActivityForResult (), this ::requestImportFileResult );
68+
6569 public static SubscriptionsImportFragment getInstance (final int serviceId ) {
6670 final SubscriptionsImportFragment instance = new SubscriptionsImportFragment ();
6771 instance .setInitialData (serviceId );
@@ -173,22 +177,19 @@ public void onImportUrl(final String value) {
173177 }
174178
175179 public void onImportFile () {
176- startActivityForResult (StoredFileHelper .getPicker (activity ), REQUEST_IMPORT_FILE_CODE );
180+ requestImportFileLauncher . launch (StoredFileHelper .getPicker (activity ));
177181 }
178182
179- @ Override
180- public void onActivityResult (final int requestCode , final int resultCode , final Intent data ) {
181- super .onActivityResult (requestCode , resultCode , data );
182- if (data == null ) {
183+ private void requestImportFileResult (final ActivityResult result ) {
184+ if (result .getData () == null ) {
183185 return ;
184186 }
185187
186- if (resultCode == Activity .RESULT_OK && requestCode == REQUEST_IMPORT_FILE_CODE
187- && data .getData () != null ) {
188+ if (result .getResultCode () == Activity .RESULT_OK && result .getData ().getData () != null ) {
188189 ImportConfirmationDialog .show (this ,
189190 new Intent (activity , SubscriptionsImportService .class )
190191 .putExtra (KEY_MODE , INPUT_STREAM_MODE )
191- .putExtra (KEY_VALUE , data .getData ())
192+ .putExtra (KEY_VALUE , result . getData () .getData ())
192193 .putExtra (Constants .KEY_SERVICE_ID , currentServiceId ));
193194 }
194195 }
0 commit comments