4083 Commits

Author SHA1 Message Date
Daniel Martí
3d20a07c8a Update CI image and build-tools to 25.0.2
The new CI image also contains the support repo r41, with the support
libs version 25.1.0.
2016-12-23 12:55:28 +01:00
Daniel Martí
7997024a18 Adjust 0.102 release date in changelog
Forgot to do this when tagging.
2016-12-13 18:39:41 +00:00
Peter Serwylo
f9f0a0f91c Merge branch 'app_details_749' into 'master'
App details 749

The new App Details screen (issue #749), now accessible by long-clicking on an app in the application list.

See merge request !419
2016-12-08 01:19:49 +00:00
Daniel Martí
2b088bc438 README: clarify AM/PM meeting time via 24h format 2016-12-07 22:31:27 +00:00
mvp76
2c0a5fcb21 Checkstyle fixes 2016-12-07 23:25:34 +01:00
Daniel Martí
42b188a005 Merge branch 'correct-meeting-time' into 'master'
Correct meeting time

With the discussion on IRC [starting here](https://botbot.me/freenode/fdroid-dev/2016-11-14/?msg=76442333&page=1), the time in `README.md` is wrong.

> We are on `#fdroid` and `#fdroid-dev` on Freenode. We hold weekly dev meetings on `#fdroid-dev` on Tuesdays at 20h UTC, which usually last half an hour.

[It should be](https://botbot.me/freenode/fdroid-dev/2016-11-15/?msg=76516527&page=1) be:

> We are on `#fdroid` and `#fdroid-dev` on Freenode. We hold weekly dev meetings on `#fdroid-dev` on Thursdays at 8:30h UTC, which usually last half an hour.

See merge request !424
2016-12-07 21:39:28 +00:00
Nico Alt
2b98f5477b Correct meeting time
With the discussion on IRC [starting here](https://botbot.me/freenode/fdroid-dev/2016-11-14/?msg=76442333&page=1), the time in `README.md` is wrong.

> We are on `#fdroid` and `#fdroid-dev` on Freenode. We hold weekly dev meetings on `#fdroid-dev` on Tuesdays at 20h UTC, which usually last half an hour.

[It should be](https://botbot.me/freenode/fdroid-dev/2016-11-15/?msg=76516527&page=1) be:

> We are on `#fdroid` and `#fdroid-dev` on Freenode. We hold weekly dev meetings on `#fdroid-dev` on Thursdays at 8:30h UTC, which usually last half an hour.
2016-12-07 22:33:19 +01:00
mvp76
56575c3291 Bugfix, don't show "more" if we have MAX_LINES lines. 2016-12-06 09:45:35 +01:00
mvp76
65b16beb61 Make sure right view is selected as anchor on "more"-expansion 2016-12-06 09:44:46 +01:00
mvp76
734741c8f4 New implementation that is commented + easier to understand 2016-12-05 18:31:41 +01:00
Peter Serwylo
ccf763199f Replace if's with switches
Required changing some local variable names to prevent the same
`view` variable being declared multiple times. Otherwise it should
be a verbatim change from if statements to switch statements.
2016-12-05 22:56:27 +11:00
Peter Serwylo
a00534c7c7 Obey checkstyle rule preventing 'm' prefix for member variables
Required a couple of undesirable changes, such as:
 * sCollated -> collated
 * mFDroidApp -> fdroidApp (note the lower case 'd')

Otherwise it was relatively minor given how many member variables there are
in the code base.
2016-12-05 22:56:27 +11:00
Peter Serwylo
4f7116fcfb Add checkstyle rule to catch usage of member variables prefixed with 'm' 2016-12-05 22:56:26 +11:00
Peter Serwylo
22d9f55afb Move business logic from onBindViewHolder logic into respective ViewHolder subclasses. 2016-12-01 12:32:39 +11:00
Peter Serwylo
c50c9f2ea0 Appease pmd
Can be run via `gradle pmd`.

Mostly making fields final where appropriate.
2016-12-01 12:15:36 +11:00
Peter Serwylo
1f83cf1eca Appease checkstyle
Can be run via `gradle checkstyle`.

Mostly:
 * Removing one line if statements in favour of braces.
 * Whitespace between typecast and expression.
2016-12-01 12:15:36 +11:00
Peter Serwylo
539455bd16 Remove unnesseary class prefix 2016-12-01 12:15:36 +11:00
Peter Serwylo
0847bb6008 Inline check for 'isInstalled()'.
The adapter has its own copy of the `App`, and so can ask directly
instead of delegating to the activity.
2016-12-01 12:15:36 +11:00
Peter Serwylo
6e0ea68bab Push notifyDataSetChanged invocation into adapter.
That is probably the place most responsible for knowing if the dataset has changed
and broadcasting that fact.
2016-12-01 12:15:36 +11:00
Peter Serwylo
17c97e577e Format comments 2016-12-01 12:15:36 +11:00
Peter Serwylo
598d604ca5 Ported code for handling 'ignore this/all' from AppDetails
Allows the two menu items "Ignore All Updates" and "Ignore This Update"
to be checked and save the relevant preferences to the database in response.

The old code waited until the activity was paused before saving the
preferences to the database. This code does not, and as such incurs
a database write on the main UI thread as soon as the user checks the
menu items. However that database code has recently been refactored so
it should be much more performant. If it turns out to still be problematic
then we can revert to the old behaviour of hodling onto any state changes until
onPause then persisting to the database.
2016-12-01 12:15:36 +11:00
Peter Serwylo
9f758c4f86 Prefer Javadoc where possible 2016-12-01 12:15:36 +11:00
Peter Serwylo
003b9459da Removed need for upcast by parameterising mIntents over ResolveInfo instead of Object
Allows the type checking to be done by the compiler rather than the developer.
It was possible here because there is only two types of view, and the first type
will only have one or zero entries in the adapter. Thus, I've swapped the usage
of a `String` type for a `null` and checked for null instead of `instanceof String`.
2016-12-01 12:15:36 +11:00
Peter Serwylo
0b09d591ea Clarifying comment 2016-12-01 12:15:36 +11:00
Peter Serwylo
4e664c3d92 ints to Constants for viewtypes 2016-12-01 12:15:36 +11:00
Peter Serwylo
d0a326aa2c Lowercase stray N 2016-12-01 12:15:36 +11:00
Peter Serwylo
d2787d8d09 Add annotation as per the parent class. 2016-12-01 12:15:36 +11:00
Peter Serwylo
65f2c0eac7 Extracted string literals into constants. 2016-12-01 12:15:36 +11:00
Peter Serwylo
88661757f6 Added clarifying comment. 2016-12-01 12:15:36 +11:00
Peter Serwylo
a67ef806d2 Finalised property which is calculated once during construction 2016-12-01 12:15:36 +11:00
Peter Serwylo
ab72797a41 Added test for trailing newline stripping. Renamed method for clarity. Doccomments.
Changed the helpful comments to a Javadoc comment, as tooling such as editors
will be more likely to make use of it like that.

Renamed to emphasise that only trailing new lines are stripped.

Added a basic test for this function to ensure it only strips trailing,
and also that it does actually strip trailing slashes.
2016-12-01 12:15:36 +11:00
Peter Serwylo
ab917b6272 Remove need for setTag and (String) getTag()
Can use the argument passed to addLinkItemView() instead. Requires making
it final so that the anonymous inner class can read it.
2016-12-01 12:15:35 +11:00
Peter Serwylo
2709d00b70 Point to R.id.information, not R.id.text
Although the `textView` in `DonateViewHolder is currently not used, it was
pointing to an id which was not in the layout. This has been fixed in case
future devs choose to use this text view. Alternatively, we could remove it
completely if we don't think it is going to be used in this upcoming UI work.
2016-12-01 12:15:35 +11:00
Peter Serwylo
5f09c80914 Make constants static.
Not any need at this point for them to be object properties.
2016-12-01 12:15:35 +11:00
Peter Serwylo
2e1484bcb2 Correctly check whether mailto: links can be handled
Similar to the litecoin/bitcoin/flattr stuff, we need to check that a
proper URI can be handled via an intent. This previously just checked
whether the email address could be handled without the mailto: prefix.
2016-12-01 12:15:35 +11:00
Peter Serwylo
a0c40bcaae Remove some commented out code 2016-12-01 12:15:35 +11:00
Peter Serwylo
920e6499ab Minor formatting 2016-12-01 12:15:35 +11:00
Peter Serwylo
4a92a37df2 Use TextUtils.isEmpty instead of null and length check 2016-12-01 12:15:35 +11:00
Peter Serwylo
46eb6ee3b4 Added initial test for AppDetailsRecyclerViewAdapter.
Doesn't do anything except create an app with no versions,
no donate links, anything like that, and ensure that the adapter
is able to create the view holders for each resulting item.

In the future we can beef this up to check more exotic conditions,
such as calling `updateItems(App)` with different apps, each
with different combinations of versions, donation links, permissions,
etc.
2016-12-01 12:15:31 +11:00
Peter Serwylo
774ca02d22 Use correct URIs when attempting to show donate links.
This extracts the functionality from the old AppDetails which prefixes
donation links with the relevant scheme (bitcoin: or litecoin:) or URL
(https://flattr.com/thing/) into the App class.
2016-12-01 12:15:31 +11:00
Peter Serwylo
190cf40ff9 Make assumption that app is non-null explicit
The adapter has a hard coded assumption that mApp is never null.
This documents it as such by making the member variable @NonNull.
This is not perfect, because the consumer of this class doesn't quite
seem to check this constraing properly, however at least within the
class it adds some explicit documentation that is understood by editors
and lint that this is a non-nullable field.
2016-12-01 12:15:31 +11:00
Peter Serwylo
1eb7d389f2 Refactor setProgress code for the header view.
Each call site of the `getHeaderView()` method needed to do a null
check and then it would call `setProgress()`. This has been replaced
with two methods `setProgress()` and `clearProgress()` to make it a
bit less repetative and harder to accidentally get a NPE in the future
by invoking `getHeaderView()` incorrectly.
2016-12-01 12:15:31 +11:00
Peter Serwylo
7d2d22cf96 Extracted variable, made code fit on single lines. 2016-12-01 12:15:31 +11:00
Peter Serwylo
4c42e73243 Removed unused imports 2016-12-01 12:15:31 +11:00
Daniel Martí
af24db2d14 Bump to 0.102 v0.102 2016-11-28 12:15:30 +00:00
Daniel Martí
a8b84ff815 Add two new languages to list 2016-11-28 12:11:51 +00:00
F-Droid Translatebot
f566a53efb Pull translation updates from Weblate
Translators:

Ajeje Brazorf          Sardinian
Alberto Moshpirit      Spanish
Andreas Nordal         Norwegian Bokmål
Clara Chido            Shona
Enol P                 Asturian
E T                    Turkish
ezjerry liao           Chinese (Traditional)
Licaon Kter            Romanian
naofum                 Japanese
Nebojsa Tausanov       Macedonian
Nutchanon Wetchasit    Thai
Osoitz                 Basque
Sylvia van Os          Dutch
Tawanda Mugari         Shona
Verdulo                Esperanto
Verdulo                Polish
Yaron Shahrabani       Hebrew
YFdyh000               Chinese (Simplified)
zmni                   Indonesian
2016-11-28 11:59:17 +00:00
mvp76
3b23ea019b Reset build files to release 2016-11-25 10:07:56 +01:00
mvp76
e1af82c5f8 Adjust margins 2016-11-25 09:46:35 +01:00
Hans-Christoph Steiner
7f49c82b62 Merge branch 'fix-806--categories-remaining-when-they-shouldnt' into 'master'
Ensure categories are not shown unless there are apps in them

**Note: To be hot fixed into 0.102.1 also when merged.**

Fixes #806. Also adds tests to hopefully prevent this from regressing in the future.

Ensure app-category join table is cleared out properly upon disabling repo.
    
There are certain things we can leave in the database even when they are not being used. The criteria for this is:
     * Could it be used again in the future?
     * Can it be excluded from queries easily while it is unused?
    
Examples are entries in the package table, and entries in the category table.
    
This fixes a problem where entries in the category-app join table stayed in the database, causing categories to be considered as "in use" when really there were no apps in those categories. These rows need to be removed, because when new apps are added again in the future, they will have different primary keys. These different primary keys mean that the rows in the category-app table will never be useful again, and thus should be removed.

See merge request !418
2016-11-24 09:55:28 +00:00