diff --git a/app/build.gradle b/app/build.gradle index d9ae26436..8e203db20 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -184,7 +184,7 @@ dependencies { // name and the commit hash with the commit hash of the (pushed) commit you want to test // This works thanks to JitPack: https://jitpack.io/ implementation 'com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751' - implementation 'com.github.TeamNewPipe:NewPipeExtractor:v0.21.9' + implementation 'com.github.TeamNewPipe:NewPipeExtractor:68f1fa994af78d2cd0f354f9226d5dbe3dc03d54' /** Checkstyle **/ checkstyle "com.puppycrawl.tools:checkstyle:${checkstyleVersion}" diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/services/SubscriptionsImportService.java b/app/src/main/java/org/schabi/newpipe/local/subscription/services/SubscriptionsImportService.java index a843ad77c..638a2e4f7 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/services/SubscriptionsImportService.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/services/SubscriptionsImportService.java @@ -26,6 +26,7 @@ import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.documentfile.provider.DocumentFile; import androidx.localbroadcastmanager.content.LocalBroadcastManager; import org.reactivestreams.Subscriber; @@ -89,6 +90,8 @@ public class SubscriptionsImportService extends BaseImportExportService { private String channelUrl; @Nullable private InputStream inputStream; + @Nullable + private String inputStreamType; @Override public int onStartCommand(final Intent intent, final int flags, final int startId) { @@ -113,6 +116,9 @@ public class SubscriptionsImportService extends BaseImportExportService { try { inputStream = new SharpInputStream( new StoredFileHelper(this, uri, DEFAULT_MIME).getStream()); + + final DocumentFile documentFile = DocumentFile.fromSingleUri(this, uri); + inputStreamType = documentFile.getType(); } catch (final IOException e) { handleError(e); return START_NOT_STICKY; @@ -282,7 +288,7 @@ public class SubscriptionsImportService extends BaseImportExportService { private Flowable> importFromInputStream() { return Flowable.fromCallable(() -> NewPipe.getService(currentServiceId) .getSubscriptionExtractor() - .fromInputStream(inputStream)); + .fromInputStream(inputStream, inputStreamType)); } private Flowable> importFromPreviousExport() { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8199feb8b..bf1c74446 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -544,7 +544,7 @@ Previous export Could not import subscriptions Could not export subscriptions - Import YouTube subscriptions from Google takeout:\n\n1. Go to this URL: %1$s\n2. Log in when asked\n3. Click on \"All data included\", then on \"Deselect all\", then select only \"subscriptions\" and click \"OK\"\n4. Click on \"Next step\" and then on \"Create export\"\n5. Click on the \"Download\" button after it appears and \n6. From the downloaded takeout zip extract the .json file (usually under \"YouTube and YouTube Music/subscriptions/subscriptions.json\") and import it here. + Import YouTube subscriptions from Google takeout:\n\n1. Go to this URL: %1$s\n2. Log in when asked\n3. Click on \"All data included\", then on \"Deselect all\", then select only \"subscriptions\" and click \"OK\"\n4. Click on \"Next step\" and then on \"Create export\"\n5. Click on the \"Download\" button after it appears\n6. Click on IMPORT FILE below and select the downloaded zip file\n7. [If the zip import fails] Extract the .csv file (usually under \"YouTube and YouTube Music/subscriptions/subscriptions.csv\"), click on IMPORT FILE below and select the extracted csv file Import a SoundCloud profile by typing either the URL or your ID:\n\n1. Enable \"desktop mode\" in a web-browser (the site is not available for mobile devices)\n2. Go to this URL: %1$s\n3. Log in when asked\n4. Copy the profile URL you were redirected to. yourID, soundcloud.com/yourid Keep in mind this operation can be network expensive.\n\nDo you want to continue?