4023 Commits

Author SHA1 Message Date
mvp76
f3e88535f9 Load feature graphic (currently large icon) 2016-11-18 15:55:44 +01:00
mvp76
30bcad963e Move from ListView to LinearLayout temporarily
These need to go into t he recyclerview instead.
2016-11-18 15:39:53 +01:00
mvp76
7061e47a8c Fix toolbar icons 2016-11-18 15:39:53 +01:00
mvp76
5a0b625dc0 Add Nearby to share (if applicable) 2016-11-18 15:39:53 +01:00
mvp76
46308dcbde Added share to details view
TODO: still need to add Nearby
2016-11-18 15:39:53 +01:00
mvp76
d90cb040b1 Move some files and add donate section 2016-11-18 15:39:53 +01:00
mvp76
d3247b9cfd Post update, so all receivers have run 2016-11-18 15:39:53 +01:00
mvp76
be16137553 Install/Uninstall
Does not work yet, race condition on the listeners I guess.
2016-11-18 15:39:53 +01:00
mvp76
7469a1cdab Some layout and color fixes 2016-11-18 15:39:53 +01:00
mvp76
88c60b98f9 Added permissions section 2016-11-18 15:39:53 +01:00
mvp76
56f0505d4a Added versions section
TODO: need string and icon
2016-11-18 15:39:53 +01:00
mvp76
0898db3490 Add click handler to links 2016-11-18 15:39:53 +01:00
mvp76
3eb2a5eb96 Added the links section, cleanup some code 2016-11-18 15:39:53 +01:00
mvp76
34450569b3 Initial work on details view 2016-11-18 15:39:53 +01:00
mvp76
f355232bd5 Build changes 2016-11-18 15:39:53 +01:00
Daniel Martí
99216d923a Bump to 0.102-alpha3 v0.102-alpha3 2016-11-16 22:06:03 +00:00
Peter Serwylo
43303d17cc Merge branch 'master' into 'master'
Fixed long version overriding app name (issue #322)

Also, fixed deprecated "singleLine" property to "maxLines="1"".
Also removed reduntant (legacy) padding declarations, for the files used exclusively by newer APIs which override those declarations with new ones.

See merge request !417
2016-11-16 21:39:24 +00:00
Peter Serwylo
35996952ef Merge branch 'rework-net-for-0.102' into 'master'
Rework net for 0.102

This is a collection of targeted fixes for the %"0.102" release.  Most of them are quite narrowly targeted bug fixes.  I couldn't avoid reworking the update scheduling in order to fix some of the listed bugs.  This is the only part that seems possible to have regressions.  In any case, if there are regressions, they will be in a very limited chunk of the code, in `UpdateService`, which we have no plans to touch in %"0.103 - UX Overhaul" so it'll be easy to do a 0.102.1 release.

See merge request !415
2016-11-16 21:19:15 +00:00
aleksandar-stefanovic
e01ec5f3e8 Fixed long version overriding app name (issue #322)
Also, fixed deprecated "singleLine" property to "maxLines="1"".
Also removed reduntant (legacy) padding declarations, for the files
used exclusively by newer APIs which override those declarations with new ones.
2016-11-16 21:46:55 +01:00
Hans-Christoph Steiner
b799fe8494 follow "Only on WiFi" preference strictly
This is a tested version of pserwlyo's suggestion in !415
https://gitlab.com/fdroid/fdroidclient/merge_requests/415#note_18469122
2016-11-15 21:36:30 +01:00
F-Droid Translatebot
5925851f40 Pull translation updates from Weblate
Translators:

Anteri                  Finnish
Enol P                  Asturian
Jonatan Nyberg          Swedish
Mladen Pejaković        Serbian
Sami “6sto” Kuusisto    Finnish
Tacsipacsi              Hungarian
2016-11-15 20:27:30 +00:00
Hans-Christoph Steiner
7e7ec966ee improved internet state handling for updates, including metered
This introduces three network states:

1. completely disconnected
2. connected only via metered networks
3. connected via unlimited networks

This allows the update process to use bandwidth better, especially when the
user has enabled the "Only on WiFi" setting.  It also helps prevent silly,
cryptic error messages in the update process is triggered when there isn't
internet available.

I tested this with:

* 4G only, but not set up for internet
* 4G only, with internet
* 4G + WiFi
* WiFi only airplane mode
* no internet at all, full airplane mode

closes #793
closes #774
2016-11-14 16:03:37 +01:00
Hans-Christoph Steiner
e14cb9d16a treat ethernet as WiFi when checking updates
Its really easy to use USB Ethernet devices with ChromeOS and some Android
devices like Android TV.  ChromeOS now supports Android apps.  Since really
the goal is to avoid metered networks, and ethernet is very rarely metered,
this fits in with the user expectations around the preference.  And if it
doesn't, there are very few people using Ethernet with F-Droid right now,
so whatever harm does happen will affect an extremely limited number of
people.
2016-11-14 09:36:45 +01:00
Hans-Christoph Steiner
6545a26e31 set HTTP User Agent to "F-Droid"
First, this is more honest than just using the default since it is saying
what the actual software is.  Second, it protects identity, since the
default User Agent on Android can have a lot of info in it, for example:

"Dalvik/2.1.0 (Linux; U; Android 5.1; XT1039 Build/LPBS23.13-17.3-1)"
2016-11-14 09:36:45 +01:00
Hans-Christoph Steiner
ab1e869ebe use HEAD request when just checking the file size
This code will be changed again when implementing the client-side etag
check #562

closes #777
2016-11-10 20:44:53 +01:00
Hans-Christoph Steiner
096b7132c4 prevent AppDetailsHeaderFragment crash in startProgress()
The real solution would involve figuring out where to handle this in the
right spot in the lifecycle.  Since AppDetails is being totally replaced,
this is just to stop the crashing.

closes #802
2016-11-10 20:44:53 +01:00
Hans-Christoph Steiner
b9dad4bce6 handle dirs and I/O errors when parsing ACTION_PACKAGE_ADDED Intents
InstalledAppProviderService tries to keep a running log of what is actually
installed on the device.  It seems that ApplicationInfo.sourceDir and
related things sometimes returns a dir rather than an APK. So try to find
an APK in that folder.

closes #801
2016-11-10 20:44:53 +01:00
Hans-Christoph Steiner
b852c0dca0 Merge branch 'category-table' into 'master'
Store categories in separate category table

Currently, the category that an app is in is recorded in the database via the `fdroid_app.categories` column, containing a comma separated list of strings. This makes it hard to query. The existing code to get a list of categories was pretty bad as a result. 

This moves to a different data model whereby categories are stored in a separate table. Each repo is free to specify that an app is in arbitray caregories (as with before). This is represented by a join table between categories and app metadata.

The end result is that categories are much more a first class citizen than before, and they will be able to be queried easier - which is important for the new UI.

Note that the categories table need never be emptied, it can keep being appended to. The reason is that if there are no apps in a particular category (represented by no corresponding rows in the join table) then the category will not be shown to the user.

See merge request !409
2016-11-10 10:19:06 +00:00
Hans-Christoph Steiner
0c6ca09a7d Merge branch 'partially-fix-520--performance-when-changing-preference' into 'master'
Improve performance when changing "Unstable Updates" preference

This is only a partial solution to #520. 

It does as I suggested in the issue comments, by doing less work when the preference is checked. The proper solution is an `IntentService` which queues requests to update these details, but that is a (slightly) larger change for the future.

I also noticed it wasn't correctly notifying the UI of the change, so this now notifies the list of apps which can be updated. That was hard to test though, so not sure if it updates the UI correctly or not. It shouldn't do it _incorrectly_, but it may not work. The reason it should work is because the `AppListFragment` (baseclass of `CanUpdateAppsFragment`) uses a cursor loader with the `AppProvider.getCanUpdateUri()` URI. This `CursorLoader` should automatically attach an observer for that URI and requery if required.

See merge request !414
2016-11-10 10:17:03 +00:00
Hans-Christoph Steiner
b2b108c39e Merge branch 'fix-800--npe-uninstalling' into 'master'
Fall back to InstalledAppProvider when trying to identify the apk to uninstall.

Extracted `getInstalledApk()` method so that it could be better documented, and
makes the `uninstallApk()` more consise. It will now throw an `IllegalStateException`
if no apk is found, because as issue #800 shows we will end up with a NPE otherwise.

Fixes issue #800.

See merge request !413
2016-11-10 08:36:00 +00:00
Peter Serwylo
b2c497e5b9 Only update suggested versions, not other unneeded things.
Also, while we are here, lets notify the content observers that the suggested
versions have changed, so that the UI can update in response.
2016-11-10 12:57:49 +11:00
Peter Serwylo
fdc95c071d Rename from 'calc app details' to 'calc all details'
In preperation for a subsequent change to only calculate a subset of details
for performance reasons.
2016-11-10 12:25:55 +11:00
Peter Serwylo
f060efb7ba Remove outdated doc comment and simplify method. 2016-11-10 12:22:37 +11:00
Peter Serwylo
a7a52fbfba Fall back to InstalledAppProvider when trying to identify the apk to uninstall.
Extracted `getInstalledApk()` method so that it could be better documented, and
makes the `uninstallApk()` more consise. It will now throw an `IllegalStateException`
if no apk is found, because as issue #800 shows we will end up with a NPE otherwise.

Fixes issue #800.
2016-11-10 11:16:29 +11:00
Peter Serwylo
2263352ca4 Add test for miscellanious update from f-droid.org metadata
During development of a new feature, I noticed a bug occuring only after using
the new feature for several days. This was because the metadata only infrequently
changes in ways which cause certain code paths to be hit. By having the f-droid.org
metadata from several days apart in the test suite, it allows for testing more
of these cases. In the future, even later versions of the metadata can be added
to ensure that we can update happily from old to new metadata.
2016-11-10 09:09:47 +11:00
Peter Serwylo
9785536910 Use the Query object rather than the SQLiteDatabase#query() method.
This ensures that all of the relevant joins are in place, so that when
the updater asks to `queryPackageName()` then it can assume that we have
already joined onto the `Schema.PackageTable`.
2016-11-10 09:09:43 +11:00
Peter Serwylo
354f0a9b53 Make it explicit that the CATEGORIES column is not for selecting from.
Renamed the `Schema.AppMetadata.Categories.CATEGORIES` constant into the
`Schema.AppMetadata.ForWriting.Categories.CATEGORIES` constant. This is
to make it very clear that it is not for reading from the database.
2016-11-10 08:09:49 +11:00
Peter Serwylo
68f666685f Make category helper functions query new category table 2016-11-10 08:09:49 +11:00
Peter Serwylo
634fe1084a Move category helper functions to CategoryProvider
Don't change anything yet, just move them.
2016-11-10 08:09:49 +11:00
Peter Serwylo
a7a7f77b42 Refactored categories field from column in metadata table to join table.
When updating existing apps or inserting new apps, instead of splatting
a comma separated list into a single sqlite3 column, we now put it into
several rows in the `CatJoinTable`. This is done after deleting existing
categories, to make sure that if the app has been removed from a category,
then this is reflected during the update.
2016-11-10 08:09:49 +11:00
Peter Serwylo
b2d5bcc94a When querying based on category, use join table. 2016-11-10 08:09:49 +11:00
Peter Serwylo
3e3fdd5c07 Added category to keyword search. 2016-11-10 08:09:49 +11:00
Peter Serwylo
8757acca1a Added category provider.
Not used by anything yet.
2016-11-10 08:09:49 +11:00
Peter Serwylo
99f7cab62e Added "category" table and "category to app metadata" join table.
Nothing uses these added tables yet.
db-version/65
2016-11-10 08:09:49 +11:00
Peter Serwylo
bb7cfc14cc Comments for the Schema.PackageTable. 2016-11-10 08:09:49 +11:00
Peter Serwylo
19ca68cb30 Removed unused category view in app details.
It was hidden some time ago, and nobody seems to miss it.
Also, we will be redoing this view soon anyway. In the meantime,
this category stuff is changing and this view should be removed.
2016-11-10 08:09:49 +11:00
Daniel Martí
6f0b33a092 Bump to 0.102-alpha2 v0.102-alpha2 2016-11-02 21:19:34 +00:00
F-Droid Translatebot
eae81b51ee Pull translation updates from Weblate
Translators:

Andy               Finnish
Buru Gher          Bulgarian
Matej Kolarević    Croatian
Sérgio Marques     Portuguese (Portugal)
Tobias Bannert     German
Verdulo            Esperanto
2016-11-02 21:19:18 +00:00
Hans-Christoph Steiner
dd5f84f226 Merge branch 'ci-bumps' into 'master'
ACRA and Checkstyle bumps

See merge request !412
2016-11-01 18:44:21 +00:00
Daniel Martí
04c7176a2a Bump checkstyle to 7.2 2016-10-31 14:19:30 +00:00