I intend to fork k-9 and build a new UI (and other things), but want to give back something if possible.
What I‘ve done so far is to upgrade a lot of dependencies and migrated to AndroidX to have an up-to-date basis for development. Currently my versions look like this:
ext
{
buildConfig = [
'compileSdk':
28,
'minSdk':
23,
'buildTools':
'28.0.3'
]
versions = [
'kotlin':
'1.3.11',
'supportLibrary':
'28.0.0',
'preferencesFix':
'28.0.0.0',
'lifecycleExtensions':
'1.1.1',
'okio':
'1.14.0',
'timber':
'4.7.1',
'koin':
'0.9.3',
'commonsIo':
'2.4',
'coreKtx':
'1.0.1',
'mime4j':
'0.8.2',
'junit':
'4.12',
'robolectric':
'4.1',
'mockito':
'2.18.0',
'mockitoKotlin':
'1.5.0',
'truth':
'0.42',
]
}
(I know that your minSdk is lower, but this can be changed back quickly.)
My main question is, if you are interested in a pull request and how to handle that best. I see all Tests passing, but I don‘t know if there are issues in the application and my experience with K-9 is to limited that I could say everything is ok.
What I have done so far:
Version upgrade
Migration to AndroidX
Coroutines: Migrated to stable API (no more experimental things here).
Instrumentation tests: Tests under android-tests didn‘t work befor my migration. I deleted them/will leave them as they are.
DateTime Picker: API has changed. At the moment I just commented it out. Is used on 2 occasions. Migration should be not a big issue.
What I intend to do next:
Migrate to Gradle 5.1 (if possible)
Migrate to Java 9/10
Stability fixes: Sonar says that there are some Streams, that are not closed properly and I will at least fix this.
Cleanup: Some deprecation warnings poping up since version update. I will also try to get rid of most of the this warnings.
Get rid of the remaining experimental code.
Cleanup most of the issues in Lint, Findbugs...
So what do you think?
Best regards,
Wolfgang