kiwix / kiwix-android

Kiwix for Android
https://android.kiwix.org
GNU General Public License v3.0
880 stars 444 forks source link

Move all file opreation on IO thread. #4035

Open MohitMaliFtechiz opened 2 weeks ago

MohitMaliFtechiz commented 2 weeks ago

Describe the bug We have the FileExtension class. In this class, we perform file operations, e.g., exit (), freeSpace, and totalSpace etc. However, we are using the runBlocking method, which uses the mainThread. Due to this, performing these actions on large files can lead to a crash, just like https://github.com/kiwix/kiwix-android/issues/4031. However, for #4031 there are 4-5 crashes but the application should not crash.

It is a very big change for our application since we are using these file extensions in our whole project, and after purely moving these to the IO thread we have to handle the UI to reflect the file operation changes.

Expected behavior All the file operations should be performed on the IO thread without affecting the existing functionality.

Environment

kelson42 commented 4 days ago

@MohitMaliFtechiz I don't understand why only 1 issue of these 4 are on milestone 2.12?! I though this is a blocker to pass Google Play validation on Android 14?

MohitMaliFtechiz commented 3 days ago

@kelson42 These issues are linked to our reader functionality, and changing them to the IO thread needs proper testing and handling, which takes time since there are many changes like we have done in https://github.com/kiwix/kiwix-android/issues/4039. Also, the due date for uploading the application on PlayStore is approaching. That's why I have included other issues in the next milestone since the occurrences are very few, and we have some important tickets are left to do.