- May 03, 2016
-
-
F-Droid Translatebot authored
Translators: Adrià García-Alzórriz Catalan Adrià García-Alzórriz Spanish Marcelo Santana Portuguese (Brazil) Mladen Pejaković Serbian naofum Japanese Tobias Bannert German Verdulo Esperanto Verdulo Polish YFdyh000 Simplified Chinese
- May 02, 2016
-
-
Daniel Martí authored
CleanCacheService This creates `CleanCacheService` to do all of the cache clean up at the lowest possible priority. It also adds a preference to set how long to keep cached APKs. See merge request !260
-
Daniel Martí authored
Updater speed improvements during "Saving Application Details" I've been able to reproduce #324 OutOfMemory errors on an emulator with 12MiB of heap space. This branch did _not_ have an OOM error when updating with F-Droid and F-Droid Archive repos enabled. They successfully update without problem. Fixes #45. The "Saving Application Details" stage of repository updating is where each apk has its suggested version calculated, icon URLs calculated, etc. These all require [correlated subqueries](https://en.wikipedia.org/wiki/Correlated_subquery) resulting in a full scan of the apk table for each row in the app table. This takes in the order of 25 seconds on my Moto X 2nd Gen. This branch improves this process by doing the queries in an [sqlite in-memory database](https://sqlite.org/inmemorydb.html), with the results transferred to the database on disk when done. The time required drops from 25 seconds to ~0.5 seconds on my device. *Note:* I was hoping this would also improve the "Processing ..." Part of the udpater, given it was inserting into an in memory table instead of on disk. If it did have any effect, it was negligible though, so that part is still likely slower than it could be. Each 50 apps (and their associated apks) takes between 150ms and 500ms on my Moto X. *Secondary Note:* When creating the in memory database, I create indexes for some columns as per before. This technically should slow down the inserts we do, however in practice they had almost no effect. As such, I've left the index creation there because it is required for the correlated subqueries to not suck. See merge request !269
-
Hans-Christoph Steiner authored
Security-sensitive code should not be changed unless there is a good reason to do so. It is too easy to introduce bugs. This change does not address an issue, so I'm reverting it. See comment in javadoc header for the class. This reverts commit 20747183 for just the RepoUpdater.java file.
-
Hans-Christoph Steiner authored
This schedules CleanCacheService to run regularly, and delete files older than the value set in the new "Keep cached apps" preference. It auto- migrates the old "Cache packages" pref to the new one. The default cache time for people who did not have "Cache packages" enabled is one day.
-
Hans-Christoph Steiner authored
This moves the cache file deletion to a dedicated IntentService that runs at the lowest possible priority. The cache cleanup does not need to happen with any kind of priority, so it shouldn't delay the app start or take any resources away from foreground processes. This also changes the logic around the "Cache packages" preference. The downloader always saves APKs, then if "Cache packages" is disabled, those APKs are deleted when they are older than an hour. This also simplifies Utils.deleteFiles() since the endswith arg is no longer needed.
-
Hans-Christoph Steiner authored
* if there is a file there, remove it The paths are all from the system, so are safe. No SanitizedFile is needed. Plus, this method was not checking if the original and sanitized versions where different, and instead just creating the sanitized version. I worry that could cause odd bugs.
-
Hans-Christoph Steiner authored
By putting these comments into javadoc, they are directly describing the code where it is, and there are many tools in IDEs for searching, viewing, sorting, etc. javadoc comments. Plain comments do not have those tools.
-
Hans-Christoph Steiner authored
Just trying to keep the code as close to what is actually used as possible.
-
- May 01, 2016
-
-
F-Droid Translatebot authored
Translators: Ajeje Brazorf Sardinian Allan Nordhøy Norwegian Bokmål Paresh Chouhan Hindi Sérgio Marques Portuguese (Portugal) tacsipacsi Hungarian
-
Daniel Martí authored
Fixes for priv extension install For now, disable install of privileged extension on Android >=5.1 until we found better methods. Also, fix crash of dialogs on Android 6 using a workaround for transparent activities and some code simplifications. See merge request !259
-
Dominik Schürmann authored
-
Dominik Schürmann authored
-
Dominik Schürmann authored
-
- Apr 30, 2016
-
-
Peter Serwylo authored
CI: Bump image, use 64-bit emulator Since the base image is now 200MB smaller, this one too. Also updates the SDK to 25.1.3. See merge request !271
-
- Apr 29, 2016
-
-
Daniel Martí authored
Enable some more PMD rules See merge request !270
-
Daniel Martí authored
-
Daniel Martí authored
This way, error lines like this one: Waiting for emulator to start: unknown: error: no devices found Become: Waiting for emulator to start: error: no devices found
-
Daniel Martí authored
Otherwise, we'd interpret this as "booting", which is wrong: $ adb -e shell getprop init.svc.bootanim * daemon not running. starting it now on port 5037 * * daemon started successfully * error: no devices found
-
Daniel Martí authored
Since the base image is now 200MB smaller, this one too. Also updates the SDK to 25.1.3.
-
Daniel Martí authored
-
Daniel Martí authored
This works on statements, not expressions, so it's a lot easier and saner to obey than UselessParentheses.
-
- Apr 28, 2016
-
-
Daniel Martí authored
We already obey them.
-
Peter Serwylo authored
-
Peter Serwylo authored
-
Peter Serwylo authored
This increases the speed of the complex queries required at the end of the update process to: * calculate suggested version codes * figure out icon urls * etc, by two orders of magnitude.
-
- Apr 27, 2016
-
-
Peter Serwylo authored
This was there as a workaround for #1, but that has subsequently been fixed. Thus, the hack is no longer required. Also removed an additional `AND` because it is already performed in the `JOIN`. I supsect this last one would've been eliminated by the sqlite optimizer anyway, but the query is slightly simpler now. This fix doesn't improve performance as much as I'd hoped, but it is something.
-
Daniel Martí authored
Its first translations were added in the previous commit, pulled from Weblate.
-
F-Droid Translatebot authored
Translators: Danial Behzadi Persian fastest noob Turkish Fert Bálint Hungarian Green Lunar Hebrew Jean-Baptiste French Karola Marky Japanese Kristjan Räts Estonian Licaon Kter Romanian Marian Hanzel Slovak Mohamad Hasan Al Banna Indonesian naofum Japanese Tobias Bannert German YFdyh000 Simplified Chinese
-
- Apr 26, 2016
-
-
Daniel Martí authored
Added cancel action to notifications.  See merge request !267
-
Daniel Martí authored
Don't show "Updates Available" if auto updates is enabled. This notification is redundant in this circumstance. See merge request !268
-
Paresh Chouhan authored
-
Peter Serwylo authored
This notification is redundant in this circumstance.
-
- Apr 25, 2016
-
-
Peter Serwylo authored
A few Java fixes and tweaks, enable more PMD rules See merge request !266
-
- Apr 24, 2016
-
-
Daniel Martí authored
Also, Log.d in tests don't make much sense - replace by Log.i. This way it's easier to limit all Log.d calls to Utils.java.
-
Daniel Martí authored
This happened to me when I clicked on an app link for a new app which was already in the repo, but I had not ran an index update yet since the app got built. Stack trace prior to the fix follows. java.lang.RuntimeException: Unable to destroy activity {org.fdroid.fdroid/org.fdroid.fdroid.AppDetails}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.content.LocalBroadcastManager.unregisterReceiver(android.content.BroadcastReceiver)' on a null object reference at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3865) at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3883) at android.app.ActivityThread.-wrap5(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1417) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5461) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.content.LocalBroadcastManager.unregisterReceiver(android.content.BroadcastReceiver)' on a null object reference at org.fdroid.fdroid.AppDetails.unregisterDownloaderReceivers(AppDetails.java:469) at org.fdroid.fdroid.AppDetails.onDestroy(AppDetails.java:569) at android.app.Activity.performDestroy(Activity.java:6422) at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1143) at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3852) ... 9 more
-
Daniel Martí authored
See #632.
-
- Apr 23, 2016
-
-
Daniel Martí authored
-
Daniel Martí authored
Found by Android Studio.
-