756 Commits

Author SHA1 Message Date
Peter Serwylo
315f1fa932 Use a better name than "handled" for swap activity.
Before, both the swap activity and the fdroid activity would use
the "handled" key to check if an intent had been handled. This caused
problems, because by the time we got to handling the add repo intent,
it had already been "handled" by the swap activity so we bailed.
2016-01-07 21:54:32 +11:00
Peter Serwylo
b4bf5d6daf Remove unused constant. 2016-01-07 21:54:32 +11:00
Peter Serwylo
16b765a6b8 Handle add repo intents after F-Droid is already open.
Before, it only happened in onResume(). Now, it happens in onNewIntent()
too (but ensures to only handle the same intent once).

Note the onResume() only ever handles the original intent, not the new
intent.

Fixes #524.
2016-01-07 21:54:17 +11:00
relan
e09e1dba0a Properly handle CrashReportActivity recreation
Retain comment text on device rotation.
2016-01-07 11:45:49 +03:00
relan
16170c0901 Fix null pointer exception on crash report sending
EditText with comment is in the dialog, not in the activity.
2016-01-07 11:42:25 +03:00
Daniel Martí
e3b29f9613 Fix regression in prefix/suffix file deletion
This partyally reverts ea3c95832ea733bb4e928772772b13638d243032.

Fixes #537.
2016-01-06 20:48:07 +01:00
Peter Serwylo
db1f54c352 Create fragments appropriately in main view.
The approach to creating fragments in the constructor of the `AppListFragmentPagerAdapter`
was incorrect. Fragments are a special kind of magic, so this commit uses the approach
documented at http://stackoverflow.com/a/15261142 to make sure that the correct
fragment instances are always retrieved.

Fixes #521.
2016-01-06 21:18:41 +11:00
Dominik George
0df829034c
Add author/email/license display capabilities to app. (Closes: #532) 2016-01-05 13:18:38 +01:00
Daniel Martí
ea3c95832e Simplify some ifs
Sometimes joining them, removing unnecessary checks and removing
unnecessary levels of indentation.
2016-01-04 11:03:00 +01:00
Daniel Martí
8e193cecff Apk: Don't create Integer object just to compare 2016-01-03 18:55:15 +01:00
Daniel Martí
87fb293348 Merge branch 'acra-dialog-styles' into 'master'
Use custom layout for ACRA report dialog, not default one.

Styling the default dialog was difficult and it doesn't obey some
of the guidelines provided by the Android design docs:

 https://www.google.com/design/spec/components/dialogs.html#dialogs-specs
 (see "Content Guidelines")

This change introduces a custom dialog extending the base ACRA reporting
activity. Specifically, it introduces a padding of 24dp around the dialog
contents.

I couldn't find design specs on the specific spacing between different elements _within_ the dialog, so I used the same spacing of 20dp suggested to use between the title and the main body of the dialog.

At the very least, this change should make it easier to update styles in the future if somebody suggests improvements to the layout of the dialog.

### Before

![acra-dialog.1](/uploads/9540290fcbe245f8b573506c6a982332/acra-dialog.1.png)

### After

![acra-dialog.2](/uploads/2cad0213101f53edfd32dab69cafa757/acra-dialog.2.png)


See merge request !186
2016-01-03 17:42:17 +00:00
Peter Serwylo
a99767f3a6 Remove icon, add scroll view to crash report dialog.
Scroll view helps with smaller screens. Alert dialog icons are not
part of the material design spec so that was removed.
2016-01-03 15:48:44 +11:00
Daniel Martí
c2c8c55862 Merge branch 'fix-519--crash-during-swap' into 'master'
Partially revert f2212e33. Make some constructors public again.

There is some code in the Android SDK using reflection to find the constructor
of one of our custom views. As such, a previous change in f2212e33 broke this
code because it made constructors package local. This partially reverts the bit
of f2212e33 which pertains to the constructors accessed using reflection.

Fixes #519.

See merge request !187
2016-01-03 01:03:14 +00:00
Peter Serwylo
d24a6b71b9 Partially revert f2212e33. Make some constructors public again.
There is some code in the Android SDK using reflection to find the constructor
of one of our custom views. As such, a previous change in f2212e33 broke this
code because it made constructors package local. This partially reverts the bit
of f2212e33 which pertains to the constructors accessed using reflection.
2016-01-03 11:06:52 +11:00
Daniel Martí
03c0ef5f65 Make checkstyle happy again 2016-01-02 20:00:16 +01:00
Daniel Martí
e1058ba46d Remove unused classes
These were useful at some point, but stopped being used some time ago.
Should have been removed then.
2016-01-02 19:19:16 +01:00
Daniel Martí
d0c8fecfd3 Remove some public fields and methods 2016-01-02 19:13:11 +01:00
Daniel Martí
e34192573d Remove some unused code 2016-01-02 19:04:11 +01:00
Daniel Martí
ae5fb8e8fc Run Studio's imports optimizer 2016-01-02 18:47:59 +01:00
Peter Serwylo
49d01e0ca3 Use custom layout for ACRA report dialog, not default one.
Styling the default dialog was difficult and it doesn't obey some
of the guidelines provided by the Android design docs:

 https://www.google.com/design/spec/components/dialogs.html#dialogs-specs
 (see "Content Guidelines")

This change introduces a custom dialog extending the base ACRA reporting
activity. Specifically, it introduces a padding of 24dp around the dialog
contents.
2016-01-02 13:42:57 +11:00
Daniel Martí
e29b6cbdaf Remove code that worked around #334 (now fixed) 2015-12-29 22:42:49 +01:00
Daniel Martí
3a8051898a checkstyle: be more strict with curly rules 2015-12-29 22:18:38 +01:00
Daniel Martí
c1d4248723 checkstyle: Check comment indentation too 2015-12-29 22:10:19 +01:00
Daniel Martí
9efe173380 checkstyle: Finally add proper indentation checks
Somewhat painful conversion, but should go much smoother from here
onward.
2015-12-29 22:00:23 +01:00
Daniel Martí
0f27374452 checkstyle: forbid inner assignments 2015-12-29 12:55:29 +01:00
Daniel Martí
6a0c230493 Add NonFreeAssets anti-feature 2015-12-29 12:36:15 +01:00
Daniel Martí
0a0dc0d596 AppDetails: don't hide unknown anti-features
This is thinking of the future, when new AFs are added and the installed
client doens't know about them yet. Showing the name is better than not
showing anything at all.
2015-12-29 12:32:21 +01:00
Daniel Martí
209ed1dc62 ACRA: use reports@f-droid.org 2015-12-29 12:10:51 +01:00
Daniel Martí
b22466ee66 Add opt-in crash reporting via ACRA
Fixes #398.
2015-12-26 23:35:48 +01:00
Peter Serwylo
c36529f445 Renaming id -> packageName in local variables/method args/comments/etc. 2015-12-26 15:12:58 +11:00
Peter Serwylo
038816e32a Renamed Apk.id to Apk.packageName 2015-12-25 08:04:52 +11:00
Peter Serwylo
5779736913 Renamed App.id to App.packageName 2015-12-25 08:04:48 +11:00
Peter Serwylo
756df4d635 Renamed Java constant APP_ID to PACKAGE_NAME
In both the ApkProvider and the AppProvider.

Left the underlying database name as 'id' for now because it is
not as important or visible.
2015-12-25 08:04:41 +11:00
Peter Serwylo
60a3804c5a Make sure to insert, rather than update apks when updating repo.
Fixes #517.

The problem was that again, only the `vercode`s of apks were being
compared to see if they were the same, rather than `vercode` and `id`.
The result is that some new apks will incorrectly be asked to execute
an `UPDATE` query rather than an `INSERT`. As such, they don't end
up in our database at all because the `UPDATE` will not run against
any row at all.
2015-12-24 09:59:33 +11:00
Peter Serwylo
b7eb30a69b Merge branch 'fix-517--repo-update-sadness' into 'master'
Correctly purge removed apks.

There were two bugs in this code that have been fixed. Both were
introduced while moving to a lower memory consumption version of
the repo updater for #324.

They were found while investigating #517, although I'm not confident
that they are to do with the specific problem in that issue. It is
possible, because it is part of the code to do with purging apks
from the database, but I'd like to do further investigations into
the code before declaring that this is actually related to that issue.

In the mean time, this includes important fixes, and should probably
go out in an alpha once merged.

The first is that for each app which is updated by a particular repo,
it was not correctly asking the question: "Which apks belonging to
this apk, and provided by this repo, are no longer provided by this
repo?". It was accidentally only comparing the version number of
existing apks in the DB and new apks from the index. This ensures
that the apks being checked to see if they need to be removed or
not are those with the same package name AND the same version code
(provided by the same repo).

The second bug is that when it was persisting a set of apps + apks
to the database, it would ask for existing apks already in the
database for these apps. In this case, there was a bug where of
the 50 apps being persisted, it would only retrieve the first of
these 50 apps from the database to decide if it needed to be
cleaned up or not. Now, it correctly retrieves data from the DB
belonging to all 50 apps.

See merge request !181
2015-12-22 20:34:44 +00:00
Peter Serwylo
70bf49c3ac Correctly purge removed apks.
There were two bugs in this code that have been fixed. Both were
introduced while moving to a lower memory consumption version of
the repo updater.

The first is that for each app which is updated by a particular repo,
it was not correctly asking the question: "Which apks belonging to
this apk, and provided by this repo, are no longer provided by this
repo?". It was accidentally only comparing the version number of
existing apks in the DB and new apks from the index. This ensures
that the apks being checked to see if they need to be removed or
not are those with the same package name AND the same version code
(provided by the same repo).

The second bug is that when it was persisting a set of apps + apks
to the database, it would ask for existing apks already in the
database for these apps. In this case, there was a bug where of
the 50 apps being persisted, it would only retrieve the first of
these 50 apps from the database to decide if it needed to be
cleaned up or not. Now, it correctly retrieves data from the DB
belonging to all 50 apps.
2015-12-22 22:53:01 +11:00
Peter Serwylo
07eb633f0f Merge branch 'master' into 'master'
Add HTTP Basic Authentication to ApkDownloader

In order to download protected files, the APKDownloader must be able to supply HTTP Basic Authentication headers to the server.

See merge request !178
2015-12-22 08:40:08 +00:00
Christian Morgner
25cbf98390 Fixed checkstyle errors. 2015-12-21 10:25:29 +01:00
Christian Morgner
a29bf3d9c8 Added HTTP Basic Authentication to ApkDownloader, added Credentials interface
and HttpBasicCredentials implementation to prepare HttpDownloader for other
authentication methods.
2015-12-20 22:49:15 +01:00
relan
8b89b52d2b Show appropriate message when search results are empty
Closes #512.
2015-12-19 15:35:15 +03:00
Peter Serwylo
1a5b60f654 Merge branch 'fix-323--improved-search' into 'master'
Search as the user types

Fixes #323.

This does away with the separate `SearchResult` and instead applies the search to the currently viewed tab on the main screen (Available, Installed, Updates). When filtering the Available list, it filters the currently selected category.

Note however that there are still times when the old style `SearchDialog` will be shown over the top of the action bar rather than the `SearchView` within the action bar. These times include:
 * When a user with a hardware keyboard starts typing from the main screen.
 * On older devices with a "search" hardware button.
 * Probably some other cases (I think when there is not enough screen real estate, but haven't seen that happen).

In cases where this dialog is shown, filtering the lists as you type does not seem to be an option. I tried to figure out how to do that, but failed. If someone else figures it out, that would be great. However, when the search is submitted, it will hide the `SearchDialog` and populate the `SearchView`, focus it, and apply the search appropriately.

There is a script in the `F-Droid/tools/` subdirectory which will consecutively send various intents to F-Droid relating to search. This includes Play, market, Amazon search links. For good measure, I also made it send intents to do with viewing app details. This should probably be made into a proper instrumented test at some point, but I didn't have the time to figure out how to do that. Maybe a project for future @pserwylo.

One unknown is the performance implications. There is no problems on my Nexus 4 with Android 5.0. My Chinese/ebay/$30/Android 2.3.4 device seems good enough too.

See merge request !177
2015-12-16 11:50:30 +00:00
Daniel Martí
00e832fbe3 Don't fetch language names from the system
The system's are sometimes wrong, e.g. unexpected names. This also helps
our support across different Android versions without having to worry as
much about the system's language support.

Fixes #503.
2015-12-16 12:03:32 +01:00
Peter Serwylo
35f73f3786 Also hide the coloured bar below the category spinner.
In addition, added a @Nullable constraint on the categorySpinner
and a null guard when resuming the fragment to handle possible
null cases (though I don't think there will be any).
2015-12-14 22:45:37 +11:00
Peter Serwylo
49ffe06576 Don't remove +'s from an fdroid.search intent.
As per CR comment. These don't really ressemble URIs very much, so I
don't think they will require sanitization like this at all.
2015-12-14 22:41:29 +11:00
Peter Serwylo
86fb652fc3 When searching "Available" tab, search all the things.
Removed the option to search the currently selected category, as suggested
by others on gitlab.
2015-12-14 22:41:29 +11:00
Peter Serwylo
cc759b17a4 Fixed typo in doc comments about % and sqlite.
% means wildcard, not case insensitive in sqlite3.
2015-12-14 22:41:29 +11:00
Peter Serwylo
59c6e36034 Minor formatting/lint fixes/cleanup before CR. 2015-12-14 22:41:29 +11:00
Peter Serwylo
cb0f252d74 Don't finish() activity after showing app details.
When calling `finish()` after handling an intent to show app details,
the ability to navigate "up" disappears.
2015-12-14 22:41:29 +11:00
Peter Serwylo
829e8f1058 Queue pending search until the SearchView is inflated. 2015-12-14 22:41:29 +11:00
Peter Serwylo
7b5160df47 Make the SearchView get shown when SearchDialog is submitted. 2015-12-14 22:41:29 +11:00