678 Commits

Author SHA1 Message Date
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
Jeff Mixon
1daae076ec 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.
2015-10-02 11:39:16 +02:00
relan
2cc6661979 Make repository details look more Material
See http://www.google.com/design/spec/style/typography.html

Remove useless attributes; add styles with proper paddings, size and color
for caption and body text. Unfortunately, line spacing attributes are
supported only since Jelly Bean.
2015-10-01 17:38:20 +03:00
relan
4b2089b790 Use primary text color for key fingerprint
No need to grey it out.
2015-10-01 07:26:58 +03:00
relan
6f6bd44a38 Use static title for repository details activity
Repository name is usually too long to fit into the title. Besides, it's
also shown in the activity, no need to duplicate it.
2015-10-01 07:26:58 +03:00
relan
f5906f320f Remove update button
It's confusing because it does not update the repo details view.
2015-10-01 07:26:58 +03:00
Daniel Martí
8f6af2be55 Merge branch 'improve-privileged' of https://gitlab.com/dschuermann/fdroidclient 2015-09-30 11:40:58 -07:00
Daniel Martí
d77fce9d80 Don't use DownloadManager on Android 2.3
Fixes apk downloads crashing on 2.3 devices as spotted in the comments at
issue #421.
2015-09-30 11:29:04 -07:00
Dominik Schürmann
6de7d9f3f0 proper const naming 2015-09-30 07:41:32 +02:00
Dominik Schürmann
3c9df2fc74 Improve constants 2015-09-30 07:41:32 +02:00
Dominik Schürmann
f27823adc8 sleep before folder removal 2015-09-30 07:41:32 +02:00
Dominik Schürmann
178eabfd01 Fix nullpointer 2015-09-30 07:41:32 +02:00
Dominik Schürmann
8f5a1850e9 Fix permissions check 2015-09-30 07:41:32 +02:00
Dominik Schürmann
2b0f2cfc67 Better error handling 2015-09-30 07:41:32 +02:00
Dominik Schürmann
50215356ae Privileged Install: improve strings, fix uninstall 2015-09-30 07:41:27 +02:00
Daniel Martí
9b3ede7a81 Get rid of all newly added Log.d calls
Some were wrapped in BuildConfig.DEBUG, some weren't. Move all of them to
debugLog.

The ones that require building complex strings are left with an explicit
BuildConfig.DEBUG if so that the strings aren't constructed.
2015-09-29 22:28:38 -07:00
Daniel Martí
80e9ff9994 Get rid of some elses after return/continue 2015-09-29 22:07:31 -07:00
Daniel Martí
12386570ff Remove unnecessary extra getter calls
These are especially to be avoided since they require casting, which means
really long lines everywhere.
2015-09-29 22:06:45 -07:00
Daniel Martí
07f528352a Simplify some more boolean inversions 2015-09-29 22:03:26 -07:00
Daniel Martí
d1d81d85fa RepoXMLHandler: tag handling simplification
* Don't have both curel and localName
* Check for empty content only once
* Don't convert curchars (StringBuilder) to String and trim unless necessary
2015-09-29 21:56:14 -07:00
relan
d535d9c6ae Use affirmative action in the "Delete repository?" dialog
"Delete" instead of "OK" more clearly indicates the outcome.
See http://www.google.com/design/spec/components/dialogs.html
2015-09-27 11:41:59 +03:00