akvo / akvo-flow-mobile

Akvo Flow app
GNU General Public License v3.0
18 stars 16 forks source link

Update play services #508

Closed valllllll2000 closed 7 years ago

valllllll2000 commented 7 years ago

We are using a very old version of play services from like over 2 years ago (using 4.0.30 but latest is 9.8)

In a more recent version was introduced a nice tool called GcmTaskService which I think will be ideal for a task I am working on updating the apk (#499).

Also in a more recent version than the one we are using it was introduced granular play services which means if you only need maps, you just add maps and not the whole play services. This makes the apk smaller.

The issue is: the old devices may not have the latest version. We would need to test the changes before merging on some kind of old device and see what happens.

Test plan:

Test capturing geoshapes survey Test if location works Test showing map when no surveys Test showing map when multiple data points -> should be shown on the map Test selecting a datapoint and showing it on the map -> should load the map and display the datapoint.

Important to test especially with some old device.

If you see some message over the map to update play services, please make a screenshot.

janagombitova commented 7 years ago

Test 1

I could not open the Map tab nor capture a geoshape until I updated Play Services. I could not do that due to insufficient storage on the device. See below the message shown to the user:

img_3708

(Sorry for the photo, getting a screen shot out of the old timer was too much of a hassle)

@valllllll2000 let me know if you need more information.

Test 2

The maps, geoshapes and capturing location all worked fine. The app did not request an update.

Test 3

The maps, geoshapes and capturing location all worked fine. The app did not request an update.

valllllll2000 commented 7 years ago

@janagombitova thanks. Android version 3 it was only tablets so I do not think there are any left with that version. Do you know if any users use it?

stellanl commented 7 years ago

There are currently no Android 3 users of RSR Up. To find any in Flow we'd have to query all the device tables in all the instances, one by one. Takes a while. There is one in akvoflow-12, last heard from in 2014. It is also in akvoflow-dev2.

muloem commented 7 years ago

@valllllll2000 Is there a way to have this as optional? i.e. if the play services version is there use it otherwise don't request the update? Especially for areas where the internet connection is poor or when the data costs are still relatively high, users won't appreciate that we force them to update the Playstore.

valllllll2000 commented 7 years ago

@muloem the play services is a library from google that allows you to view maps and also use other google services which we do not use yet. If the version that the device has is older than the one we require, the map will not be shown and there will be a button displayed instead saying they should update. All the functionalities that do not require maps will still work.

Jana told me on her old device has play services version 7.5 so I could use that one (instead of the 9.4 I initially tested). I bought a device yesterday and it did not even have the play services installed at all and in that case you get a button to download the app (this also happens with the flow version currently in production). Here is a screenshot:

play_services

My idea: Update to 7.5 (latest is 9.8). For me 7.5 is good enough for the tools I need at this moment.

Optional: 1) We could also add a check right after install/update to check for play services version and suggest the user to update. We may consider that at that moment, most people are connected to the internet since they updated. 2) We could also add an entry in the settings of the app so user can update when he wants.

Any thoughts @janagombitova @muloem @stellanl ?

janagombitova commented 7 years ago

@valllllll2000 I have tested the latests changes on the two "old timer" devices we have here:

stellanl commented 7 years ago

I can test it with my two Android 2 devices, too. Otherwise it sounds like a good plan.

valllllll2000 commented 7 years ago

@stellanl if you can, please do, thanks a lot

stellanl commented 7 years ago

Alas, my (3) devices are all running Android 2.2 and none of them can open the APK from akvoflow-dev2.

janagombitova commented 7 years ago

@stellanl that is a good confirmation of the fact that we only support Android 2.3 and higher 👍

muloem commented 7 years ago

@valllllll2000 comments...

Update to 7.5 (latest is 9.8). For me 7.5 is good enough for the tools I need at this moment

Go for it! 👍

1) We could also add a check right after install/update to check for play services version and suggest the user to update. We may consider that at that moment, most people are connected to the internet since they updated.

Sure we can add such a check but always give the user the option to not update before going on.

2) We could also add an entry in the settings of the app so user can update when he wants.

Yep that would be good! 👍

Is it also possible to change the notification text to say the maps or something else more specific won't work without the update.. right now it seems to suggest the whole app won't work if not updated.

valllllll2000 commented 7 years ago

Is it also possible to change the notification text to say the maps or something else more specific won't work without the update.. right now it seems to suggest the whole app won't work if not updated.

Do you mean the text displayed over the map? I cannot change that since google do it themselves, I do not display that message, they do. It will only show over the map if play services are outdated or not installed but I do not have control over that.

muloem commented 7 years ago

Ah in that case forget it. I thought it was one of ours when I saw it in English and Spanish.

janagombitova commented 7 years ago

The Play services update works fine on both very old dinosaurs as well as on new phones. However, I did notice that the design and feel of the app is different from previous versions.

@valllllll2000 Is this due to the Play services change? If yes, can we align on the design changes? Do we need a new issue for this?

Below you can find some differences that I noticed during testing.

Before moving forward I would like @loicsans and @Kiarii to agree on the design changes and give their "go ahead".

screen shot 2016-12-12 at 12 30 57 screen shot 2016-12-12 at 12 31 08 screen shot 2016-12-12 at 12 31 17 screen shot 2016-12-12 at 12 31 25

Kiarii commented 7 years ago

It is a good improvement,

A couple of points that could be refined further:

  1. the settings options look disabled - the list header ought to have a darker shade than their descriptions (https://material.google.com/components/lists.html#lists-usage)

  2. the dropdown (picker) could use an 'underline' else it also qualifies as a signifier for an expandable-collapsible element (https://material.google.com/patterns/errors.html#errors-user-input-errors)

n. any specific reason the questions are coded twice: with bold and italic? (https://material.google.com/components/text-fields.html#text-fields-style)

@loicsans maybe you can look into the color usage even if not for this iteration..

valllllll2000 commented 7 years ago

@janagombitova @Kiarii @loicsans the design diferences are not due to play services update but I had to update the android support library for the notifications issue, I think we should create a separate issue for all these diferences, thanks Jana for catching them!

here is the new issue for tackle these design problems https://github.com/akvo/akvo-flow-mobile/issues/559

janagombitova commented 7 years ago

Considering we will deal with the design issues in a new issue, we can consider this implementation passing the test plan and now lets hope no user has a very old version of Play Services on their device. If so, at least we can help them update <- silver lining.

Implementation ready for release 👍