JunkFood02 / Seal

🦭 Video/Audio Downloader for Android, based on yt-dlp, designed with Material You
GNU General Public License v3.0
11.52k stars 501 forks source link

F-Droid inclusion #41

Closed shuvashish76 closed 2 years ago

shuvashish76 commented 2 years ago

Would you consider publishing this app on F-Droid please?

RFP: https://gitlab.com/fdroid/rfp/-/issues/2142

JunkFood02 commented 2 years ago

Do you mean publishing this app(Seal) on F-Droid? I would be happy to do this. Please let me know whether I can help.

shuvashish76 commented 2 years ago

Please implement app metadata (summary/description/images/changelog/etc) in a Fastlane or Triple-T folder structure for F-Droid. Here is an example: https://github.com/patzly/doodle-android/tree/master/fastlane/metadata/android/en-US

JunkFood02 commented 2 years ago

Merged. Is there any other thing that needs to be done?

shuvashish76 commented 2 years ago

Let's wait for F-Droid maintainers reply or you could create a merge request, which will speedup the process significantly.

linsui commented 2 years ago

We need a static version code for auto update. We don't run the gradle code when checking update. Could you please provide it somewhere, e.g. in the tag name?

JunkFood02 commented 2 years ago

We need a static version code for auto update. We don't run the gradle code when checking update. Could you please provide it somewhere, e.g. in the tag name?

Is hardcoding works here?

linsui commented 2 years ago

Yes.

JunkFood02 commented 2 years ago

@linsui I've made the change in the latest tag. Please check if everything works well. Thanks!

linsui commented 2 years ago

The short_description in en-US is too long. We have a limit the it should be shorter than 80 charactors. You can change it to Video/audio downloader designed and themed with Material-You since we all know that it's open source and for Android.

linsui commented 2 years ago

It checks the yt-dlp update on start so it connects to GitHub without any interaction. Could you make it a dialog that user can choose what to do? It crashes when the link is not supported, e.g. a bilibili bangumi link.

JunkFood02 commented 2 years ago

It checks the yt-dlp update on start so it connects to GitHub without any interaction. Could you make it a dialog that user can choose what to do? It crashes when the link is not supported, e.g. a bilibili bangumi link.

This seems like an emerging bug, I'll fix it ASAP 🤦

Edit: I re-released the tag for a hot-fix 🤕

linsui commented 2 years ago

Thanks! The app will be available in F-Droid in 2-3 days. This is the badge of F-Droid.

<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" alt="Get it on F-Droid" height="80">

[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
    alt="Get it on F-Droid"
    height="80">](https://f-droid.org/packages/com.junkfood.seal)
shuvashish76 commented 2 years ago

Live on F-Droid : https://www.f-droid.org/packages/com.junkfood.seal/

BTW app size is too heavy 114MB 🤯, any possibility of reducing it's size? @JunkFood02

JunkFood02 commented 2 years ago

Live on F-Droid : https://www.f-droid.org/packages/com.junkfood.seal/

BTW app size is too heavy 114MB 🤯, any possibility of reducing it's size? @JunkFood02

The thing's not working as expected. 😳 When I compile the app on my own, Android Studio will just generate four separate apks for different ABIs. It seems like F-Droid compiles only a single apk, with native libraries for all four ABIs packaged into it.

And the solution of dvd is to publish four different apks variants for four different ABIs with different version codes.

@linsui Any ideas for this?

linsui commented 2 years ago

Currently if we build multiple apks we can't enable auto update. So if you'd like to open an MR for every version as dvd we can do that.

JunkFood02 commented 2 years ago

Currently if we build multiple apks we can't enable auto update. So if you'd like to open an MR for every version as dvd we can do that.

Thx! Maybe there's something needed to be done here and gradle.properties. I'll also bump up the version code to 900.

shuvashish76 commented 2 years ago

F-Droid app size issue fixed? Hope to get v1.0.0 as multiple apks on F-Droid.

JunkFood02 commented 2 years ago

F-Droid app size issue fixed? Hope to get v1.0.0 as multiple apks on F-Droid.

I've released version 10000, please take a look at it. @linsui According to what dvd does, switch splitApks to false, configure separate ABI_FILTERS in gradle.properties, and set the corresponding version code should do the work.

linsui commented 2 years ago

It should work but you still need to add new versions manully as dvd. https://gitlab.com/fdroid/fdroiddata/-/commit/7fd1b40d2c371453c55a62778956800674893295 The auto update is still enabled so I guess ot will be a universe apk?

JunkFood02 commented 2 years ago

I see. So it means that I should manually modify 'metadata/com.junkfood.seal.yml' for every new release and disable auto-update. I thought there were some ways to get things done automatically. 🤔 Releases could be updated quite frequently so I think we'd better leave the auto-update enabled.

However, the 100M+ size of the apk for an update is still painful. Since very few devices run Android with x86 or x86_64, maybe a workaround here is to package only armeabi-v7a and arm64-v8a architectures into a single F-Droid build apk.

I built it on my own, and the size of apk with only armeabi-v7a and arm64-v8a is around 60MB, which might be acceptable.

JunkFood02 commented 2 years ago

After a bit of search, I found this mentions something about building apks for multiple ABIs with different version codes. So I'm still wondering whether there's any way to achieve this, or if we should still build a single apk. @linsui

linsui commented 2 years ago

It can be used to select an ABI but still only one... Currently we can't auto update for multiple apks.

shuvashish76 commented 2 years ago

@linsui The v1.0.0 should be the "Suggested" version but keep updating pre-releases just like K-9 Mail. Screenshot_2022-08-16-06-22-32

Currently the latest version (pre-releases) are suggested for Seal.

linsui commented 2 years ago

Someone needs to make an MR for every update if they want to keep 1.0.0 as suggested.

shuvashish76 commented 2 years ago

I meant v1.0.0 stable releases, NVM not an issue.

JunkFood02 commented 2 years ago

I meant ~v1.0.0~ stable releases, NVM not an issue.

That's fine I think even though they're tagged as "pre-release". I'll pay more attention to releasing more stable versions.

linsui commented 2 years ago

Now we support auto-update for multi-abi apps.

JunkFood02 commented 2 years ago

Now we support auto-update for multi-abi apps.

@linsui Please let me know if I can help with this

linsui commented 2 years ago

@JunkFood02 Oh, there is a new version. How to build an apk for one abi? I thought I need to patch https://github.com/JunkFood02/Seal/blob/main/app/build.gradle.kts#L77? And what's the version scheme for different abi?

JunkFood02 commented 2 years ago

How to build an apk for one abi?

ABI splits is for build four apks at a time, meanwhile ABIFilters are for building one apk for single or multiple ABIs. So if you need to execute the gradle script for four times to build multiple apks, you should manally specified the ABI_FILTERS in gradle.properties or here

And what's the version scheme for different abi?

arm64-v8a>armeabi-v7a>x86_64>x86 I think. Corresponding version codes are 14004 -> 14001

linsui commented 2 years ago

arm64-v8a>armeabi-v7a>x86_64>x86 I think. Corresponding version codes are 14004 -> 14001

Do I need to set the version code manully or it's set with the ABIFilters? The version code is 10401->10404?

JunkFood02 commented 2 years ago

Yes, the version codes should be modified manually. For a specific release like v1.4.0 (10400), add 1-4 to the version code

linsui commented 2 years ago

APK: '1.4.0-(F-Droid)' / '10400', Expected: '1.4.0-(F-Droid)' / '10404'

Looks like I need to patch the version code manully. Most apps use x86_64>x86>arm64-v8a>armeabi-v7a however.

linsui commented 2 years ago

https://gitlab.com/fdroid/fdroiddata/-/merge_requests/11980

JunkFood02 commented 2 years ago

Most apps use x86_64>x86>arm64-v8a>armeabi-v7a however.

This makes sense. 😳 Since some emulators with x86_64 arch also support arm ABIs.

linsui commented 2 years ago

I'll change the version code in the next version.