beemdevelopment / Aegis

A free, secure and open source app for Android to manage your 2-step verification tokens.
https://getaegis.app
GNU General Public License v3.0
8.37k stars 355 forks source link

JCenter removal and dependency replacement #1313

Closed cyb3rko closed 3 months ago

cyb3rko commented 3 months ago

Hey guys,
I would like to work on updating the build structure (moving to best-practice build.gradle structure).

One part of that is the removal of the JCenter repository as it was deprecated in 2021.

https://github.com/beemdevelopment/Aegis/blob/9737c85f8659ec797af2524a6495d8837c36dd1d/build.gradle#L18-L25


But there are two dependencies that still use that repository, just because they have not been updated in a decade:

I therefore recommend moving these two implementations to the Aegis source code, that would help us get rid of their old gradle dependencies as a side effect.
They both only consist of 2-3 classes each, I've cut down the TextDrawable logic to one class and the TrustedIntents to 3 classes and only a few methods (all other logic is not used in Aegis' case).

Do you agree that this step is meaningful? PR can be opened soon

PS: We have to keep licensing in mind, as the licenses dialog will then no longer give attribute to those libraries by itself.

alexbakker commented 3 months ago

I'm not especially concerned about having jcenter() in the repository list. Since those two dependencies have not seen updates in years, JCenter staying read-only indefinitely is not a problem for us. Apparently Gradle will be removing the jcenter() method in a future Gradle version though. To get rid of the deprecation warning:

maven { url 'https://jcenter.bintray.com' }

It would probably be good to specify that we only want to fetch those two dependencies from JCenter, and nothing else.

alexbakker commented 3 months ago

3a66851df5536c16274d5c5ecd316f937dd65360