431 Commits

Author SHA1 Message Date
Peter Serwylo
c24ccae02c Use 3rd party bottom nav library which isn't based on support lib one.
The previous dependency extended the support library bottom nav. It did
this at the expense of lots of reflection. This is pretty brittle and
likely to break in future releases as the support lib gets updated. In
the mean time we need to have a fully working bottom nav, so this commit
includes a different dependency.

Most 3rd party bottom navigation panes look great. All that I found
require at least API 11, mostly API 14 (due to animations I suspect).
I've forked one of the most popular ones on GitHub and made it support
back down to API 10. My fork is added as a dependency until upstream
accepts the PR.

If they don't ever, then we can reconsider what our options are.

The two times I've swapped the bottom nav implementation have both been
trivial. The code generally only touches the MainActivity and its
layout.
2017-03-22 08:55:27 +11:00
Peter Serwylo
df25606a29 Correct button padding for category header 2017-03-22 08:55:27 +11:00
Peter Serwylo
d4dc0a1f90 Show the number of apps to update in the bottom nav.
Shows a red badge over the "Updates" menu item.

The updates badge is a bit hacky. There are indeed libraries which
implement a bottom nav which have support for badges built into
them. However they target API 14. There are also other badge
libraries which just deal with rendering, but for the cost of
another dependency, it is not particularly difficult to create a
`TextView` with a background and position it ourselves.
2017-03-22 08:55:27 +11:00
Peter Serwylo
d9cb2fc5da Show text on each bottom nav item, and tone down animations.
Fixes issue #892.
2017-03-22 08:55:27 +11:00
Peter Serwylo
d527b26814 Specify the last time an app was updated when showing update button 2017-03-22 08:55:27 +11:00
Peter Serwylo
60a2ebe9fa Make back behaviour work better for manage repos/installed apps/search. 2017-03-22 08:55:27 +11:00
Peter Serwylo
77f3a5feff Tweaks to UI of updates tab.
* Show selectable background behind "Show/Hide apps" button.
 * Scroll to the relevant place in the list when showing/hiding apps.
 * Only show one line (ellipsized) of the apps to update in header.
2017-03-22 08:55:27 +11:00
Peter Serwylo
0826533d40 Describe the status of an update, rather than showing the app summary. 2017-03-22 08:55:26 +11:00
Peter Serwylo
c275fae9b7 Switch to rounded buttons. 2017-03-22 08:55:26 +11:00
Peter Serwylo
4f73b10230 Prefer start/end over left/right
Even though it doesn't matter here because it is going from one side of
the parent all the way to the other. I hope it makes it easier if we
completely avoid right/left and only ever use start/end. Then searching
for RTL problems will be easier.
2017-03-22 08:55:26 +11:00
Peter Serwylo
ce2ac71206 Add support for linear progress bar to installed app layout. 2017-03-22 08:55:26 +11:00
Peter Serwylo
40cc328e98 Updates: Implemented new UI for "Updates" screen.
Alows for more flexibility in what we are able to display, including:
 * Prompting users to donate to frequently updated apps
 * Showing messages from package maintainers to users
 * Marking apps for later installation when offline

Most of these are not yet implemented, but will be able to when
required, whereas they were not able to in the previous UI.
2017-03-22 08:55:26 +11:00
Peter Serwylo
7659c3a33f Renaming 'My Apps' to 'Updates'.
This doesn't change the `MyAppsAdapter` and friends, because they will
be gutted in a subsequent commit.
2017-03-22 08:55:26 +11:00
Peter Serwylo
9e2f7edff4 Updated icons in bottom nav to newest versions.
Fixes issue #838.
2017-03-22 08:55:26 +11:00
Peter Serwylo
bc1ff7d8c8 Show abstract art behind categories without predefined images.
In the process refactored the FeatureImage class to not be dependant on
an instance of Palette for its colours.
2017-03-22 08:00:20 +11:00
Peter Serwylo
1776b1e2c3 Make 'view all' category button have ripple background. 2017-03-22 08:00:20 +11:00
Peter Serwylo
7796a3f374 Category images and colours added.
Note that the category images are not scaled for each drawable
directory (would like to move to vectors).
2017-03-22 07:51:07 +11:00
mvp76
a3de43ff7a Adjust width of toolbar 2017-03-13 11:10:29 +01:00
Peter Serwylo
13362aad2e Redo litecoin icon to prevent crash
Fixes #882.

Couldn't figure out the exact cause of going from Inkscape .svg to
Android VectorDrawable, so redrew it in inkscape and this time it works.
*shrug*.
2017-03-08 10:34:23 +11:00
Peter Serwylo
045dd7a94c Fix constraint on search box.
The layout width should be 0dp if you want it to be set to whatever the
constraint layout wants to calculate.
2017-03-08 10:34:23 +11:00
Peter Serwylo
2eab1d0e6d Replace "Recently updated" and "Whats new" with "New" tag.
As per the newer design iteration.

Also re-order the items on the main page so new items always come before
recently updated ones from the same day.
2017-03-08 10:34:23 +11:00
Peter Serwylo
a1a7427cd2 Added "Installed Apps" activity to top of settings.
This is as per the mockup in issue #840, and does the following:

 * Adds a new `PreferencesCategory` of "My Apps" at the top of the
   preferences screen.
 * Adds a "Manage Installed Apps" preference, and moves the
   "Repositories" preference into this category.
 * Repeals an existing change which prevented "updateable" apps from
   appearing in the list of "installed" apps. This is because the two
   lists of apps are no longer displayed alongside eachother.
 * Enhances the `AppListItemController` to also be able to display
   whether or not the currently installed version is the recommended
   version or not.
 * Also adds option to display whether the user has asked to ignore any
   updates for any specific apps.
2017-03-08 10:34:22 +11:00
Peter Serwylo
9acc34c9ba Tweak accessibility so that visually impaird people can use F-Droid well.
Things that are still not right:

 * BottomNavigationView doesn't read out the title of items when selected.
   Created this issue: https://code.google.com/p/android/issues/detail?id=230595&thanks=230595&ts=1482125499
 * TTS reader combines the app name and summary without a pause which is jarring.
 * Touching the background of the recycler view in the categories view reads all category names.
 * Likely other problems too.
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
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
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
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
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
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
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
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
a4c187f3e1 Add strings for first time installs 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
mvp76
f7e12b4f25 Icon fixes and general tweaks 2017-02-28 20:56:35 +01:00
mvp76
7efa62891d Use strings, async image loading, "unknown" status added. 2017-02-28 20:56:35 +01:00