2995 Commits

Author SHA1 Message Date
Hans-Christoph Steiner
70864e3479 use custom proguard config for running tests
The new Android Testing Support library stuff causes proguard to freak
out, so make proguard ignore all that stuff when running tests.
2016-04-05 12:44:01 +02:00
Hans-Christoph Steiner
fc0df0dcf4 make db maxSdkValues values use Byte.MAX_VALUE as max not 0
Having 0 mean max makes the logic confusing when maxSdkValue is used in
variable.  This sanitizes the data so that maxSdkValue is always just a
plain int value that can be used to test against.  It does this by
defaulting to Byte.MAX_VALUE (127) if it is not explicitly set. At the rate
of 24 SDK numbers in 8 years, that gives us about 24 years before we have
to think about setting it to Short.MAX_VALUE.

This fixes an issue created by e021eb5ca7e8f05dbce7c1b87833722542138302
2016-04-05 12:44:01 +02:00
Daniel Martí
53c8752444 Update to april 5th docker image
* Debian 8.4
* Now includes curl
* No longer has android-10
* build-tools 23.0.3
2016-04-05 10:43:48 +01:00
Daniel Martí
09324bbb78 One last fix after moving to gradle dir layout 2016-04-04 21:44:56 +01:00
F-Droid Translatebot
bfca096775 Pull translation updates from Weblate
Translators:

Franco                    Spanish
Jonatan                   Swedish
Mário Castanheira         Finnish
Mohamad Hasan Al Banna    Indonesian
msrn                      Finnish
2016-04-04 21:44:56 +01:00
Hans-Christoph Steiner
0bf221383b make RepoUpdater's index URL a property for easy use
Since the DownloaderService's events are all based on the complete download
URLs, and RepoUpdater is where the update URLs are built, this makes the
full download URL into a read-only property of RepoUpdater so it can be
used wherever there is an instance of RepoUpdater

This is also important because having the `final` property highlights
the lifecycle of that variable: it does not change during the entire
life of a RepoUpdater Instance.
2016-04-04 13:21:18 +02:00
Hans-Christoph Steiner
8befba0522 send Downloader progress only via its DownloaderProgressListener
Instead of duplicate APIs, standardize on a single API, and use that
everywhere via the Downloader.LOCAL_ACTION_PROGRESS event that is already
wired in.
2016-04-04 13:21:18 +02:00
Hans-Christoph Steiner
ae0976d24a move HTTP Auth to HttpDownloader to make it testable
This also encapsulates the HTTP Auth stuff better so that it will be easier
to wrap it all into a event-based service.
2016-04-04 13:21:18 +02:00
Hans-Christoph Steiner
591b23b5ab Downloader.cancelDownload() instead of using external Thread logic
This is needed so that downloads can be canceled from within an
IntentService. Since the Downloader classes do not have any Thread logic in
them, they shouldn't use Thread logic within them anyway.

This also removes the unused argument to AsyncDownloader.attemptCancel().
2016-04-04 13:21:18 +02:00
Hans-Christoph Steiner
74274d21b4 move SanitizedFileTest into non-Android tests
It can run in plain java, so might as well.
2016-04-04 10:53:12 +02:00
Hans-Christoph Steiner
bc3d8a89b6 add tests of HttpDownloader 2016-04-04 10:53:12 +02:00
Hans-Christoph Steiner
e021eb5ca7 standardize SDK version test methods
I just took the most common method, using the SDK int value, and applied
that throughout the code to have it consistent.
2016-04-02 22:46:41 +02:00
Hans-Christoph Steiner
610ead83d0 make version of Editor.apply() for SDK 8
This is not pretty, but its the best I could think of.

Fixes this lint error:
Call requires API level 9 (current min is 8): android.content.SharedPreferences.Editor#apply [NewApi]
2016-04-02 22:46:37 +02:00
Daniel Martí
fddce692db PMD: Get closer to obeying unnecessary
Don't enable it just yet, it's way too pedantic with parenthesis.
2016-03-31 21:54:11 +01:00
Daniel Martí
b4dd9c857e Get closer to obeying PMD's unused code rules 2016-03-31 21:40:33 +01:00
Daniel Martí
0e76a2e1fe Fix source directories after gradle layout switch
'src' works because we're only doing java files under that directory.
But it would be slower than needed, and in the case of PMD it would also
use the test files which wasn't intended at all.
2016-03-31 21:40:33 +01:00
Daniel Martí
52436350c6 Make Android Studio a little happier 2016-03-31 21:40:30 +01:00
Daniel Martí
f34237f333 Remove duplicated commons-io dep
It seems like having it as a compile dependency already works for the
tests. Having it duplicated seems to sometimes trigger errors (e.g. a
user reported a duplicate zip entry due to the duplication) and might
also be problematic if we don't keep the two versions in sync.
2016-03-31 12:01:58 +01:00
Hans-Christoph Steiner
6a1ab2b80a make LocalFileDownloader.close() actually close things
This doesn't fix the stacktrace but at least it makes this class complete
2016-03-31 10:16:39 +02:00
Hans-Christoph Steiner
c3b47ecd5a fix lint warning: CommitPrefEdits: use apply() instead of commit()
"Consider using apply() instead; commit writes its data to persistent
storage immediately, whereas apply will handle it in the background"

commit() is only useful if the code actually checks the return value.
2016-03-31 10:16:39 +02:00
Hans-Christoph Steiner
c67a60271d fix lint errors: StringFormatInvalid: Invalid format string
* Use a % sign that String.format() recognizes, apparently there are more
  than one % signs, in Chinese, its big: %

* a string in lithuanian forgot the %s
2016-03-31 10:16:39 +02:00
Hans-Christoph Steiner
38680d84e3 update some javadoc 2016-03-31 10:16:39 +02:00
Hans-Christoph Steiner
7f6dfb6dfe remove unused IOException from Downloader.close() method
This makes close() easier to use, and the IOException is not used at all.
2016-03-31 10:16:39 +02:00
Paresh Chouhan
df9954ba0b Fixed Cursor initialization deprecation 2016-03-30 23:16:46 +05:30
Hans-Christoph Steiner
29788254dd use background thread for swap icons instead of AsyncTask
An AsyncTask ties into the UI thread for things like onPostExecute(). If it
is run within an AsyncTask, then it freaks out because it can't tie into
the UI thread.  We don't need it to do that here anyway, so just use a
plain Thread, and set the priority to background.
2016-03-30 14:08:21 +02:00
Hans-Christoph Steiner
260b5bb9fb remove unused AsyncDownloadWrapper.MSG_DATA
This is all wired up, but the data is never ultimately used.
2016-03-30 14:08:21 +02:00
Hans-Christoph Steiner
91edad0c31 remove EVENT_DATA_ERROR_TYPE for DownloaderService reorg
As part of the process of moving the APK downloading to an
IntentService, I'm removing and incrementally reorganizing the
existing events so that the code continues to be functional as it is
reorganized.  We might want to include more detail in a download error
to expose to the user, but I think instead what will be more fruitful
is to hide details on errors where there is nothing the user can do
except retry.  Then if there are errors where the user can do
something about it, then F-Droid should instead offer them the option
of doing that, and not just show an error message and walk away.
2016-03-30 14:06:15 +02:00
Hans-Christoph Steiner
d38058497e move ApkDownloader.EXTRA_URL to Intent.setDataString()
This is part of the move to standardizing all internal broadcasts to use
the Intent's Uri field as the standard place for a download URL, and then
using that in IntentFilters to do matching.
2016-03-30 14:06:15 +02:00
Daniel Martí
58c23c0a0e Fix binaryDeps with new app folder
Little remaining breakage in our main build.gradle. Went unnoticed
because we rarely use this. And hopefully we can get rid of it soon.
2016-03-29 17:57:21 +01:00
Daniel Martí
d5456e1bbf Bump ACRA to 4.8.5
Minor bugfix release.
2016-03-29 17:54:24 +01:00
Daniel Martí
db2aaeaf22 Bump checkstyle to 6.17
No changes were necessary to keep it happy.
2016-03-29 17:46:37 +01:00
Daniel Martí
858a44173b Add new language to the list 2016-03-29 17:25:02 +01:00
F-Droid Translatebot
c67570541b Pull translation updates from Weblate
Translators:

Marian Hanzel             Slovak
Mohamad Hasan Al Banna    Indonesian
Tobias Bannert            German
Waqar Ahmed               Urdu
2016-03-29 17:11:10 +01:00
relan
406094b56d Fix values-ldrtl placement 2016-03-29 18:10:00 +03:00
relan
057f6c167c Skip values-ldrtl while listing languages
ldrtl is a modifier ("layout direction right-to-left"), not a language.
2016-03-29 16:03:59 +03:00
relan
d54a4b07e5 Move version upgrade arrow string to resources
Hardcoded strings cannot be localized.
2016-03-29 15:59:39 +03:00
Hans-Christoph Steiner
d76d7aa367 remove unused ApkDownloader.EVENT_APK_DOWNLOAD_CANCELLED
This also removes all the related stuff that resulted in
EVENT_APK_DOWNLOAD_CANCELLED being sent. Since EVENT_APK_DOWNLOAD_CANCELLED
ultimately does nothing, that whole bit of plumbing is unused.
2016-03-29 14:13:42 +02:00
Hans-Christoph Steiner
ab709e171a remove ApkDownloader.EXTRA_TYPE, it is entirely unused
This constant is wired up, but ultimately does nothing at all, since all
of the cases in the switch do the exact same thing.
2016-03-29 14:11:40 +02:00
Hans-Christoph Steiner
9c47f56f03 remove unused event message: ApkDownloader.ERROR_DOWNLOAD_FAILED 2016-03-29 14:09:30 +02:00
Hans-Christoph Steiner
2019b7a7c3 make all Downloader downloads cancelable
Allowing all downloads, including updates, to be canceled simplifies the
code and if the user wants to cancel an update, they should be able to. But
canceling updates is not implemented in this commit.
2016-03-29 14:07:51 +02:00
Hans-Christoph Steiner
88b5e284b5 use commons-io via a gradle dependency
This makes it so gradle provides all dependencies, rather than a mix of
classes that are copied in versus imported via gradle.  This library is
already used by the tests, so its not really a new dependency, and proguard
should remove all the unused stuff.
2016-03-29 14:06:52 +02:00
Hans-Christoph Steiner
2578e6bdff remove unused portions of DownloaderFactory
Since this is internal code and not a library for use with other projects,
it should only include the methods that are actually in use. The other
copies are just dead code, which means more stuff to read in order to
figure out.
2016-03-29 14:06:52 +02:00
Hans-Christoph Steiner
9d1743af33 purge disabled Android DownloadManager code
Unfortunately, this approach did not really work out.  It would have been
really nice to rely on the provided DownloadManager stuff, but it has too
many issues, like not working with Tor or other proxies, and being
difficult to tightly integrate.
2016-03-29 14:06:52 +02:00
Hans-Christoph Steiner
4538cf1ed0 suppress PMD JUnit4 warnings until tests are ported to JUnit4
#607 https://gitlab.com/fdroid/fdroidclient/issues/607
2016-03-29 12:30:30 +02:00
Hans-Christoph Steiner
3fcdfe85bb move main project files into standard gradle/Android Studio layout
This makes it a lot easier to setup all the testing stuff.  Mostly,
I'm tired of fighting Android Studio's fragility, so I want to remove
as much non-standardness as possible in the hopes of improving that
situation.

closes #534 https://gitlab.com/fdroid/fdroidclient/issues/534
2016-03-28 12:12:37 +02:00