4284 Commits

Author SHA1 Message Date
Peter Serwylo
6ad1f0faef More concise management of the main recycler view.
No longer bind the views as they become visible. This resulted in
the same view being bound multiple times, but that was unneccesary.
Given that there is only five types of view, and each view type only
ever gets used once, the binding can happen when the view holder is
created, rather than each time it is shown. This fixed a few bugs to
do with views being inflated multiple times.
2017-03-08 09:42:32 +11:00
Peter Serwylo
952024768a Initial work to support inline Download+Install button in app lists
Shows progress and download complete now, but left a few TODOs
lying around. These are mainly around the ability to then deal with
installing an app once download is complete.
2017-03-08 09:42:32 +11:00
Peter Serwylo
405279c0ff Added drawables for various states of downloading an app. 2017-03-08 09:42:32 +11:00
Peter Serwylo
2164a2662a Update repository on first run of F-Droid. 2017-03-08 09:42:32 +11:00
Peter Serwylo
09af5402e8 Reference MainActivity instead of FDroid where appropriate.
Left old references to FDroid from within classes that are only part
of the old UI. These are to be removed once the new UI is done.
2017-03-08 09:42:32 +11:00
Peter Serwylo
f9a860e00c Show search button on keyboard when searching. 2017-03-08 09:42:32 +11:00
Peter Serwylo
908d5f3a05 Added search floating action button to Overview and Categories screen.
Both times it launches the AppListActivity with an empty search box
focussed.
2017-03-08 09:42:32 +11:00
Peter Serwylo
7209ab87f5 Tweak some button styles with those added in !419.
The styles used by the app details showed good padding on either
side of the buttons text. This was because they had a certain amount
of screen space to fill up which resulted in nice empty space on either
side of the text. Other buttons do not have this type of layout, so
need to have a minimum amount of padding thrust upon them.

Required breaking out into values-v17 too, so refactored common styles
into base style to make this easier.
2017-03-08 09:42:10 +11:00
Peter Serwylo
ffa3a8dbf3 Until feature images are properly supported, use abstract art instead.
As per the main screens feature image behind the "Recently added"
items, also use the same abstract artwork as a placeholder for the
feature image in app details.
2017-03-07 22:16:32 +11:00
Peter Serwylo
b2d11091a7 Added funky artwork to feature image when not present
Draws two rows of triangles, each coloured randomly according to
the dominant colour in the apps icon.

Given that the colour is probably assigned to the FeatureImage in response to
a network request finally downloading an image, there is a period of no feature
image. After the colour is provided, then if it is set instantly it tends to
look jerky. This eases in the colouring of the feature image.
2017-03-07 22:16:32 +11:00
Peter Serwylo
d67f23b60c Merge branch 'new-ui--main-screens--v1' into 'master'
Initial UI for new main screens

See merge request !433
2017-03-07 08:59:29 +00:00
Peter Serwylo
a954b1cd76 Switch CI image to one hosted on GitLab. 2017-03-07 18:21:18 +11:00
mvp76
258064d495 Use item decorator in preference to inline ImageView.
This eliminates the need to include the drawable in the
app_list_item layout.
2017-03-07 18:21:18 +11:00
mvp76
6e613ad952 Don't use deprecated method 2017-03-07 18:21:18 +11:00
mvp76
fd22ee01e0 Let the adapter handle the decorator
This should remove the hackiness of decorator being added several times.
2017-03-07 18:21:18 +11:00
mvp76
48b21626e4 Remove static mapping arrays
@pserwylo Not sure if you like this change. I think it's slightly more
elegant, but don't have a strong opinion.
2017-03-07 18:21:17 +11:00
mvp76
89fa83c8c7 Set BottomNavigationView background
Otherwise we'll have white "padding" on large screens, e.g. Nexus 7.
2017-03-07 18:21:17 +11:00
mvp76
083339f60e No need for custom attribute
From what I know, actionBarTheme and actionBarPopupTheme will do the
job.
2017-03-07 18:21:17 +11:00
mvp76
a814792594 Break out library version for easier updates in the future 2017-03-07 18:21:17 +11:00
mvp76
bfd5c525b0 Remove unused import 2017-03-07 18:21:17 +11:00
Peter Serwylo
34e176539b Add swipe-down-to-refresh-repos on main overview screen.
Happy to discuss whether this is a good idea or not, but right now
there is no way to update repositories so often you are left with
an empty first screen.

This doesn't worry about state management (e.g. remembering
whether we are refreshing or not and showing this when we resume the
activity). Instead, it listens for the refresh listener, and when
triggered it will set the refreshing state to not refreshing. For now
the notification can act as the feedback that something is happening.
2017-03-07 18:21:17 +11:00
Peter Serwylo
26b9e09f2f Launch AppDetails2 instead of AppDetails in most places. 2017-03-07 18:21:17 +11:00
Peter Serwylo
55824a491b Settings: Added preference fragment to the last tab in the main view.
This is a little bit flakey at this point, because the weird asynchronous nature of
adding fragments. If swiping to the second-to-last entry on the bottom navigation view,
it will populate the settings fragment in the UI and then it will dissapear. Need to
fix this.
2017-03-07 18:21:17 +11:00
Peter Serwylo
fff7999aac App List: Category "chip" and free text searching of apps
Show a "Chip" in the search box whcih indicates the user is viewing
a particular category. This chip:
 * Gets remtoved when the user presses backspace from in front of it.
 * Can be re-added by typing the name of a category and then a colon.
 * Follows the material design guidelines.
 * Has an accessibility hint that tells screen readers it is a category name.
2017-03-07 18:21:17 +11:00
Peter Serwylo
9bc72ff102 App list: Show a list of apps matching a particular category.
This populates a search box with the category name and shows a
clear button to the right and a back button to the left of the
text input.
2017-03-07 18:21:17 +11:00
Peter Serwylo
f5e6d73999 Categories: Show list of all categories in the main view.
This is different to the old categories drop down, because that also
included meta-categories of "Whats New" and "Recently Updated". Given
we now show them on the first page, this categories screen can do away
with them.

Each category entry loads a few apps to show to the user.

Note: The "View all" button next to each category doesn't currently
go anywhere. It will soon be hooked up to an app list that is filtered
to the selected category.
2017-03-07 18:21:17 +11:00
Peter Serwylo
53df5473f5 My Apps: Added the list of updateable apps to the main view.
Not fully featured yet, because it doesn't listen for broadcasts
from the installers, but it is shows the correct list of apps and
allows users to queue up downloads of all updateable apps.
2017-03-07 18:21:12 +11:00
Peter Serwylo
69b58c7646 Whats New: Added list of recently updated apps to the main view.
Smooshes the recently updated and recently added lists into one,
and adds a status line under each app saying which of the two it
is (i.e. "Recnelty Updated" or "Whats New".
2017-03-03 13:14:05 +11:00
Peter Serwylo
517301194b Swap: Added splash screen to "Nearby" tab on main screen.
It doesn't load up the entire swap activity at this point. Instead it
is an entry point to direct the user to that activity.

Also added stubs for the remaining screens which need to be implemented
to the MainAdapter and MainController.
2017-03-03 13:14:05 +11:00
Peter Serwylo
b151374a6c Introduce new main activity, currently mostly empty.
This activity so far has a bottom navigation bar with 5 tabs.
The tabs can be changed, but no content is shown.
2017-03-03 13:14:05 +11:00
Peter Serwylo
f0d4f8f01a Make autoDownloadUpdatesUpdateService part of the public API of UpdateService.
This will be a requirement for an 'Update All' button in the UI.
2017-03-03 13:14:05 +11:00
Peter Serwylo
226554c026 Toolbar instead of ActionBar in RepoDetailsActivity. 2017-03-03 13:14:05 +11:00
Peter Serwylo
d8dc1698d6 Toolbar instead of ActionBar in ManageReposActivity. Remove need for Fragment in manage repos.
The fragment was quite straightforward to roll into the activity. Most
of the code moved across almost exactly as is.

Also added a theme for the toolbar so that in the future it will be
easier to support dark/night themes as well.
2017-03-03 13:14:05 +11:00
Peter Serwylo
30701ff9ac Change theme to not have an action bar.
This will temporarily break activities which depend on the action bar until
the following commits replace their dependencies with a Toolbar instead.
2017-03-03 13:14:04 +11:00
Peter Serwylo
1bb82fa077 No longer limit VectorDrawables to AppDetails2.
It was recently added to FDroidApp, so no longer neccesary in
AppDetails2.
2017-03-03 13:14:04 +11:00
Peter Serwylo
ba82cfcfc5 Bumped support lib versions. Added dependencies for new UI.
The following official Android support libraries were added:
 * recyclerview-v7
 * cardview-v7
 * design
 * support-vector-drawable
 * constraint-layout
 * palette
2017-03-03 13:14:01 +11:00
Peter Serwylo
04182b64aa Merge branch 'mvp76--notifications_742' into 'master'
Notification improvements from mvp76

See merge request !443
2017-03-01 03:42:39 +00:00
Peter Serwylo
eb3c6e6e0b Fix lint warnings.
Removed unused translations from values-* folders.
Used `app:srcCompat` instead of android:src for some `ImageView`s
2017-03-01 13:41:48 +11:00
mvp76
d43b31a701 Fix checkstyle errors 2017-02-28 23:43:23 +01:00
mvp76
0b53f69427 Remove static from appMapping 2017-02-28 23:15:31 +01:00
mvp76
238dff5c10 Update download progress for OBB files 2017-02-28 22:45:41 +01:00
mvp76
1418a419ea Remove "InstallError" entries when clearing notification
I.e. either the user "swiped" the notification away or clicked on it to
view the error message (and thus the notification was auto canceled)
2017-02-28 22:24:26 +01:00
mvp76
a8509ae833 Added a comment about the key being the downloadUrl 2017-02-28 22:07:40 +01:00
mvp76
7b446daf3f Make AppUpdateStatusManager a singleton 2017-02-28 21:57:51 +01:00
mvp76
a4c187f3e1 Add strings for first time installs 2017-02-28 20:56:35 +01:00
mvp76
04d2d004a3 Add logic to show/hide notifications based on appdetails screen
Also, add code to AppDetails2 to match AppDetails, keeping track of
currently viewed app. Moved the nulling of this info to onStop instead
of onPause, since alerts may be shown on top of the details page, while
still visible.
2017-02-28 20:56:35 +01:00
mvp76
d2cc4fcb05 Set blue color on notifications 2017-02-28 20:56:35 +01:00
mvp76
40a061ae73 Fix for old devices
They can't use vector drawables in notifications. Also, groups can not
be used, see http://stackoverflow.com/a/34953411.
2017-02-28 20:56:35 +01:00
Peter Serwylo
583ea96816 Clarify that the pendingIntent arg can be null. 2017-02-28 20:56:35 +01:00
Peter Serwylo
2ad61a4eb7 Replace setApkInternal with more specific functions.
The `setApkInternal` method had to infer the intent of the caller
based on the arguments which were passed on, and then do specific
things depending on the input. Instead, this change has three
distinct actions which can happen (add/remove/update). Each of
these methods does only one thing, and doesn't have to guess
the intent of the caller. The only exception may be "add", which
will (for convenience) delegate to "update" if it already knows
about the apk in question.
2017-02-28 20:56:35 +01:00