Android App 2.0.0 Release is available for Beta testing!

Dear community,

DHIS2 Android Capture App 2.0.0 has been publish in Github for Beta testing prior to the production release in December. This version is compatible with 2.33 comes with a lot of bug fixes (list here) and many new features! You can find an overview of New features with screenshots at the end of this message, and the detailed list in Jira here.

We open in Beta to allow you to test all the fixes and new features. It is very important to give us your Feedback!

Report your issues in Jira before Friday, November 30th

  • Project: Android App for DHIS2 | Component: AndroidApp
  • Fix Version: 2.0.0-Beta

The APK is available in Github
You can find the updated documentation here.

Remember that is also a good moment to work on translations for 2.0.0!

2.0.0 Overview

Aggregate data model - Datasets in Table view

Integrated SMS Sync

Grannular Sync - Per dataset, program, event or TEI

Exteded filtering

Profile TEI Picture (value type image)

Map view and capture and display of polygons

15 Likes

Hi @marta, This is great! I installed it on my phone but for some reason I keep getting a login error “No user has been previously authenticated. Cannot login offline.” I only get this when pointing in my instance but not the dhis2 play instances.

Thanks,

John

3 Likes

Dear John,
Check the url on http and see if you need to add ‘s’ or omit it

If you have not configured ssl then it should be http://…

I hope this will resolve your issue

Best,

Advo

3 Likes

Dear Advo,

Thanks for the tip. Unfortunately I am still getting the same error. I am not sure if it’s an issue but I am using aws ec2 IPv4 Public IP with the port 8080 after it. Could this be the issue?

Thank you,

John

2 Likes

Dear John,
If you still get same error message, then try to add a new user and assign the Tracker app roles and then try to log in with the newly created usei

Best,

Advo

2 Likes

Dear Advo,

I don’t have a tracker program. Is it mandatory to have a tracker program and users assigned to that program? Also, now I am getting a different error:
“Login Error: Something went wrong. Please check that server url, username and password are correct and try again.”

Thanks,

John

2 Likes

Dear John,

  1. This error message is straight forward, Please check closely for any of the three

url, username or password

2 Likes

Hello @jesplana,

please try to write the URL as you write it to access through the browser and include the folder where you have dhis2 deployed if is not root. In web you are usually redirected but not in Android.

2 Likes

Hello and thank you for this release!
i understand it is only available with 2.33, Is there a way to test it with 2.31?
Best,
Bernard

2 Likes

Hi @marta,

I have tried the following different URL setup and the errors I receive:

URL: http://x.xxx.x.xxx:8080/dhis-web-commons/security/login.action#/
Error: No user has been previously authenticated. Cannot login offline.

URL: http://x.xxx.x.xxx:8080/
Error: Something went wrong. Please check that server url, username and password are correct and try again.

URL: http://x.xxx.x.xxx:8080
Error: Something went wrong. Please check that server url, username and password are correct and try again.

I have it deployed in ROOT. I know the username works because I type the same one in the web and it works.

Thanks,

John

1 Like

Hello @SDKAAA!

I’ve been testing this Android Beta Version for different instances with different DHIS2 versions (2.29 - 2.33).

It works well for whichever version you happen to have. Check out the version on the instance you want to use on Android!

Not only 2.33 but also others (2.31 inclusive)!

Good luck,
@Josue

5 Likes

Hi @jesplana. Are you sure you don’t need to include the “s” after the http as a secure connection? Would you mind creating a user in your server and sharing the details via private message so we can try to access?

Best.

2 Likes

Dear @jesplana,

To fix that first, check your IP address (http://x.xxx.x.xxx:8080/). Is it http://127.0.0.1:8080/ or http://localhost:8080/ on your computer?

If on your computer one of the two URLs are working fine, it means the server you’re trying to reach is locally hosted on your computer which makes it inaccessible when out of your computer! (No other device can access that link unless you host it online)

Just check out that IP address in Xs!
Note: If credentials (username & password) are okay in your computer browser!

Good luck,
Josue

2 Likes

Hi @jesplana,

This is the api call the app uses when login:
http://XXX.XXX.XXX.XXX:8080/api/me?fields=id,code,name,displayName,created,lastUpdated,birthday,education,gender,jobTitle,surname,firstName,introduction,employer,interests,languages,email,phoneNumber,nationality,deleted,userCredentials[id,code,name,displayName,created,lastUpdated,deleted,username,userRoles[id,code,name,displayName,created,lastUpdated,deleted]]

And this is what the api is answering:

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

I would say you need to check your config to support these characters.

3 Likes

That’s true!
Maybe it might be the cause!

2 Likes

Hi @Pablo,

Thanks for the feedback. How do I exactly check and what I look for?

Thank you,

John

2 Likes

I think you have to edit your server.xml file and add relaxedQueryChars="[,]". Should be something like:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" 
           relaxedQueryChars="[,]"/>
2 Likes

Yes, it is the above regarding relaxedQueryChars

3 Likes

Hello Marta,

Thanks for the update. However, am running 2.30 version for my project.

But when i try using the APP it says “No user has been previously authenticated. Cannot login offline”

Advice please

2 Likes

That means the app can’t reach the server. Make sure the server url is correct and that it uses http or https as needed.

2 Likes