548 Commits

Author SHA1 Message Date
Daniel Martí
ed978ba785 Downloader: Don't use DownloadManager if null
If getSystemService(Context.DOWNLOAD_SERVICE) returns null, we should not go
ahead with using AsyncDownloaderFromAndroid. This would result in NPE and
crashes.

Fixes #442.
2015-10-12 13:02:32 +02:00
Daniel Martí
7b8f577fd4 Keep apk downloads from crashing on 2.2
Use a temporary quick fix for the crash until a better solution is in place.
This is explained in the TODO.

Fixes #448.
2015-10-12 12:45:27 +02:00
Daniel Martí
8d4e785185 Simplify a few elses
Mostly just dropping them after returns.
2015-10-12 12:37:39 +02:00
Daniel Martí
1e8bbbd1f9 checkstyle: Add curly checks 2015-10-09 11:40:50 +02:00
Daniel Martí
65f292708c checkstyle: Add AvoidStaticImport
Plus bonus build fix (whoops).
2015-10-09 11:04:39 +02:00
Daniel Martí
2249ad59da checkstyle: Add StaticVariableName 2015-10-09 11:02:19 +02:00
Daniel Martí
caa91186cc checkstyle: Add LocalFinalVariableName 2015-10-09 10:59:44 +02:00
Daniel Martí
6ee3dba3ea checkstyle: Add LocalVariableName 2015-10-09 10:56:50 +02:00
Daniel Martí
b5f62c03cb checkstyle: Add MemberName 2015-10-09 10:55:27 +02:00
Daniel Martí
bd68caa152 checkstyle: Add FallThrough
With bonus bugfix.
2015-10-08 23:33:29 +02:00
Daniel Martí
7bbcbf25a6 checkstyle: Add EmptyLineSeparator 2015-10-08 22:23:10 +02:00
Daniel Martí
f5352eaf28 checkstyle: Add ArrayTrailingComma 2015-10-08 22:15:51 +02:00
Daniel Martí
3f8875ab9c checkstyle: Add EqualsAvoidNull 2015-10-08 22:09:51 +02:00
Daniel Martí
174e37e4e0 checkstyle: Add ExplicitInitialization 2015-10-08 22:01:09 +02:00
Daniel Martí
0a13cf5c63 checkstyle: Add UnnecessaryParentheses 2015-10-08 21:50:46 +02:00
Daniel Martí
561d7833d1 checkstyle: Add indentation 2015-10-08 21:41:38 +02:00
Daniel Martí
04ea84640e Run dos2unix on BoundedInputStream.java 2015-10-08 20:01:58 +02:00
Daniel Martí
3eb758f1b2 checkstyle: Add WhitespaceAround 2015-10-08 20:01:37 +02:00
Daniel Martí
95b53706f9 checkstyle: Add NoWhitespace{Before,After} 2015-10-08 19:49:43 +02:00
Daniel Martí
793788eadf checkstyle: enable and apply WhitespaceAfter 2015-10-08 19:44:31 +02:00
Daniel Martí
5736c70dc8 checkstyle: enable and apply FinalClass 2015-10-08 19:29:04 +02:00
Daniel Martí
2b0e6dade1 checkstyle: enable ModifierOrder and apply it 2015-10-08 18:59:41 +02:00
Daniel Martí
1f973a7c88 checkstyle: Enable and apply AvoidNestedBlocks 2015-10-08 17:26:27 +02:00
Daniel Martí
b05ed99c74 Make F-Droid obey the easy checkstyle rules 2015-10-08 17:26:27 +02:00
Daniel Martí
42b7687cf9 Remove trailing whitespaces from zxing code 2015-10-08 17:26:27 +02:00
Daniel Martí
89607eb58a Don't update repos when opening the app yet
As the comment says, this should not be on until it can be opted out from. The
biggest problem is unwanted repo updates, e.g. when a user is on a mobile
connection.

Fixes #435.
2015-10-07 10:58:09 +02:00
Daniel Martí
995036f4e4 Fix regression introduced in 37e23e8d5082
The idea was good, but it applied the second-precise date format everywhere.
This broke dates on apps and apks, which have the format yyyy-MM-dd on the
index.

Fix this by having two sets of funcs in Utils, one for dates (precise to a
day) and one for times (precise to a second). We should use the latter for
dates we ourselves measure, like the last repo update time.
2015-10-07 10:51:32 +02:00
Daniel Martí
a6b416e7c9 Don't fall back to category resource ids
Fall back to their full names instead.
2015-10-07 10:51:32 +02:00
Daniel Martí
cebf82e7e3 Merge branch 'last-repo-update' of https://gitlab.com/relan/fdroidclient 2015-10-07 10:10:27 +02:00
Daniel Martí
b204377a4e AppDetails: don't remove last character
When fixing the trailing newline issue, I overlooked the fact that
subsequence's second index is exclusive, not inclusive, so it's i<=len not
i<len.
2015-10-07 10:06:20 +02:00
relan
714fbc8f2a Show last repo update time in locale-dependent format 2015-10-07 08:58:07 +03:00
relan
37e23e8d50 Store last repo update time with 1 sec precision 2015-10-07 08:58:07 +03:00
Daniel Martí
7cfc2ea004 Simplify some bits of code
* Don't call getIntent() multiple times
* Drop else after return
* Don't do "if (!cond) foo else bar"
2015-10-06 14:50:57 +02:00
Daniel Martí
fd8355e872 Fix lint warning about implicit locale 2015-10-06 14:36:40 +02:00
Daniel Martí
77306e85e7 Make sure locale display names are capitalized 2015-10-06 12:34:09 +02:00
Daniel Martí
c4699df82a Merge branch 'theme-night' into 'master'
Add night theme

[Screenshot](http://i.imgur.com/gVK5M0G.png)

The screenshot is huge, so making it an image in markdown takes up a lot of space. Hence link.

See merge request !149
2015-10-06 10:33:18 +00:00
Daniel Martí
b94e2e3648 Support spaces and apostrophes in categories
Just like the hard-coded ones, for consistency.
2015-10-06 09:38:44 +02:00
Daniel Martí
5c4de9a166 Use the same format for hardcoded categories 2015-10-06 09:32:31 +02:00
Daniel Martí
c8bf53fd3b Use category_X for category name strings
This means more consistent and descriptive naming.
2015-10-06 09:18:15 +02:00
Daniel Martí
a052dc2ff1 Add night theme
Similar to the dark theme, but dropping blue in favour of very dark shades of
grey.

Removed colorEdgeEffect to simplify the sharing of the style between dark and
night themes. It should default to colorPrimary anyway, so we're good.

Fixes #345.
2015-10-06 09:03:11 +02:00
Jeff Mixon
36e0479967 Refresh layout of AppDetails screen
This change primarily affects the AppDetails links section to make them easier to click. It also strips down the UI a bit to provide a cleaner interface as well as some modest Material Design tweaks.

Fixes #389.
2015-10-05 22:38:57 +02:00
Toby Kurien
a0ad3ee07d Use correct downloadId when there are multiple
Fixes #447.
2015-10-05 18:15:10 +02:00
Daniel Martí
d7d13b26e0 Merge branch 'privileged-fixes' into 'master'
Privileged Extension fixes

Remove install/unistall commands, not needed and can cause problems

See merge request !152
2015-10-05 13:00:57 +00:00
Dominik Schürmann
dda3ea15b7 Privileged Extension: Remove install/unistall commands, not needed and can cause problems 2015-10-05 13:45:45 +02:00
Daniel Martí
d7a30b4c34 Merge branch 'fix-430--download-without-content-length' into 'master'
Ddownload index, even when not presented with a Content-Length header (Fixes 430)

This works for the index download, but still does not work for downloading .apks correctly. That is, the Android Download Manager needs one of:

 * `Content-Length: ...`
 * `Connection: close`
 * `Transfer-Encoding: Chunked`

headers to be set to work correctly. In the absence of all three of these, problems ensue. In fact in my toy web server, even the `Connection: close` did not seem to work correctly, but I'd be happy to be corrected on that. Either way, this is an improvement on what was there before.

For reference, here is my toy PHP web server, which can be saved in the root of the F-Droid repo and invoked with:

> `php -S 10.0.0.4:8888 no-headers.php`

```
<?php

function streamFile( $file ) { $size     = filesize( $file );
        $contents = file_get_contents( $file );

        $buffer = (int)( $size / 5 );
        $bytes = 0;
        while ( $bytes < $size ) {
                $toStream = min( $size - $bytes, $buffer );
                echo substr( $contents, $bytes, $toStream );
                $bytes += $toStream;

                // Sleep to allow progress to be viewed in F-Droid
                sleep( 1 );
        }
}

$index    = "/fdroid/repo/index.jar";
$firefox  = "/fdroid/repo/fennec-40.0.multi.android-arm.apk";

// Test downloading a large .apk to see how it behaves
if ( $_SERVER['REQUEST_URI'] == "/fdroid/repo/fennec-40.0.multi.android-arm.apk" ) {
        $file = $firefox;
} else {
        $file = $index;
}

// Android Download Manager requires this (if not using Content-Length or Transfer-Encoding
// headers, but I can't seem to get it to work as expected).
header( "Connection: Close" );
streamFile( dirname( __FILE__ ) . $file );

```

See merge request !150
2015-10-04 15:00:07 +00:00
Peter Serwylo
19ae4a76c2 Use existing byte-format function.
Utils already contains a function to format bytes, removed duplicate
function.
2015-10-04 11:24:40 +11:00
Daniel Martí
d911aa2424 Merge branch 'feature/return-to-search-on-up' into 'master'
Return to SearchResults on "Up" navigation from AppDetails

When arriving to the AppDetails screen from SearchResults, the Up navigation should return to SearchResults screen and not its actual parent.

Not only is this behavior intuitive, it is a commonly accepted UX paradigm on the platform.

See merge request !147
2015-10-04 00:23:56 +00:00
Peter Serwylo
0164adc386 Don't depend on Content-Length headers to download (Fixes #430)
Instead, keep downloading until the `InputStream` returns -1.

Also, required updates to the UI so that when the download size is
not known, there is still a reasonable response to the user.

Note that this still fails when using the Android download manager
if the download attempts to get resumed, and the server did not
send a Connection: close, Content-Length, or Transfer-Encoding: Chunked
header.
2015-10-04 11:21:38 +11:00
Daniel Martí
eea66e390b Make some fields final as suggested by AS
Most of these are fields initialized statically or in the constructor.
2015-10-02 16:41:08 -07:00
Daniel Martí
34ac244fdf Optimize imports 2015-10-02 16:16:30 -07:00