diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..fba6d5e
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,34 @@
+# This workflow will build a Java project with Gradle
+# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
+
+name: Android CI with Gradle
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+
+jobs:
+ unit_tests:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up JDK 1.8
+ uses: actions/setup-java@v1
+ with:
+ java-version: 1.8
+ - name: Install NDK
+ run: echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;21.0.6113669" --sdk_root=${ANDROID_SDK_ROOT}
+ - name: Grant execute permission for gradlew
+ run: chmod +x gradlew
+ - name: Run unit tests with Gradle
+ run: ./gradlew :opensrp-chw-malaria:jacocoTestReport --stacktrace
+ - name: Generate Javadoc with Gradle
+ run: ./gradlew javadoc
+ - name: Upload coverage to Coveralls with Gradle
+ run: ./gradlew :opensrp-chw-malaria:coveralls --stacktrace
+ env:
+ COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_TOKEN }}
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 114adff..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-language: android
-# sudo set to required because of an issue with how TravisCI handles builds in Docker containers https://github.com/travis-ci/travis-ci/issues/3695.
-# Setting sudo to required prevents Travis from testing the project in a Docker container.
-sudo: required
-jdk: oraclejdk8
-dist: precise
-
-before_cache:
- -rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- -rm -fr $HOME/.gradle/caches/*/plugin-resolution/
-
-cache:
- directories:
- - $HOME/.gradle/caches/
- - $HOME/.gradle/wrapper/
-
-android:
- components:
- # tools required
- - tools
- # The BuildTools version used by your project
- - build-tools-28.0.3
- # The SDK version used to compile your projects
- - android-22
- - android-28
- # Additional components
- - extra-google-m2repository
- - extra-android-m2repository
-
-script:
- - echo "Travis branch is $TRAVIS_BRANCH"
- - echo "Travis branch is in pull request $TRAVIS_PULL+REQUEST"
- - chmod 755 gradlew
- - ls -la
- #Run jacocoTestReport -> Runs all unit tests & instrumentation tests
- - travis_wait ./gradlew :opensrp-chw-malaria:clean :opensrp-chw-malaria:jacocoTestReport coveralls --stacktrace
-
-notifications:
- slack:
- secure: fAiZ4yA7DM6nUKh7nqsCTqZBb03VEAvi5NcRu5mNh5coNn/50XNeZl+qpv7Dw70Ef85Y/k68uc6KwTGVqPXEmVq9Hk3e7lqpBNN8rufvgCYDDGPmywBmU5BhSeykKo0Ee7llM3mRR/EipjIWw1+YvMcS3hCoygf/UlMDDhG0Jo0=
diff --git a/build.gradle b/build.gradle
index 5975934..931a67f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -2,11 +2,13 @@
buildscript {
repositories {
google()
+ jcenter()
mavenCentral()
}
dependencies {
classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.11.0"
+ classpath 'com.android.tools.build:gradle:3.5.3'
}
}
@@ -55,7 +57,7 @@ subprojects {
// Improve build server performance by allowing disabling of pre-dexing
// (see http://tools.android.com/tech-docs/new-build-system/tips#TOC-Improving-Build-Server-performance.)
project.plugins.whenPluginAdded { plugin ->
- if("com.android.build.gradle.AppPlugin".equals(plugin.class.name)) {
+ if ("com.android.build.gradle.AppPlugin".equals(plugin.class.name)) {
project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
} else if ("com.android.build.gradle.LibraryPlugin".equals(plugin.class.name)) {
project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
diff --git a/gradle.properties b/gradle.properties
index 8b6736b..c760904 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,4 +1,4 @@
-VERSION_NAME=1.2.18-SNAPSHOT
+VERSION_NAME=1.2.19-SNAPSHOT
VERSION_CODE=1
GROUP=org.smartregister
POM_SETTING_DESCRIPTION=OpenSRP Client CHW Malaria Library
diff --git a/opensrp-chw-malaria/build.gradle b/opensrp-chw-malaria/build.gradle
index b3125dc..5f625fd 100644
--- a/opensrp-chw-malaria/build.gradle
+++ b/opensrp-chw-malaria/build.gradle
@@ -1,4 +1,3 @@
-description = 'OpenSRP chw malaria client library'
buildscript {
repositories {
@@ -7,13 +6,16 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.3'
- classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.8.2'
}
}
-apply plugin: 'jacoco'
-apply plugin: 'com.github.kt3k.coveralls'
-apply plugin: 'com.android.library'
+plugins {
+ id 'jacoco'
+ id 'com.github.kt3k.coveralls' version '2.10.2'
+ id 'com.android.library'
+}
+
+description = 'OpenSRP chw malaria client library'
jacoco {
toolVersion = "0.8.0"
@@ -148,7 +150,7 @@ task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest']) {
getReports().getHtml().setDestination(file("${buildDir}/reports/jacoco/jacocoRootReport/html"))
def fileFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', '**/*Test*.*', 'android/**/*.*', '**/*$ViewBinder*.*']
- def debugTree = fileTree(dir: "$project.buildDir/intermediates/classes/debug", excludes: fileFilter)
+ def debugTree = fileTree(dir: "$project.buildDir/intermediates/javac/debug/classes", excludes: fileFilter)
def mainSrc = "$project.projectDir/src/main/java"
sourceDirectories = files([mainSrc])
diff --git a/opensrp-chw-malaria/src/main/java/org/smartregister/chw/malaria/activity/BaseMalariaProfileActivity.java b/opensrp-chw-malaria/src/main/java/org/smartregister/chw/malaria/activity/BaseMalariaProfileActivity.java
index 643c94b..1de0c34 100644
--- a/opensrp-chw-malaria/src/main/java/org/smartregister/chw/malaria/activity/BaseMalariaProfileActivity.java
+++ b/opensrp-chw-malaria/src/main/java/org/smartregister/chw/malaria/activity/BaseMalariaProfileActivity.java
@@ -209,7 +209,7 @@ public void setProfileViewWithData() {
int age = new Period(new DateTime(memberObject.getAge()), new DateTime()).getYears();
textViewName.setText(String.format("%s %s %s, %d", memberObject.getFirstName(),
memberObject.getMiddleName(), memberObject.getLastName(), age));
- textViewGender.setText(memberObject.getGender());
+ textViewGender.setText(MalariaUtil.getGenderTranslated(this, memberObject.getGender()));
textViewLocation.setText(memberObject.getAddress());
textViewUniqueID.setText(memberObject.getUniqueId());
diff --git a/opensrp-chw-malaria/src/main/java/org/smartregister/chw/malaria/util/MalariaUtil.java b/opensrp-chw-malaria/src/main/java/org/smartregister/chw/malaria/util/MalariaUtil.java
index ee9e8bc..e221178 100644
--- a/opensrp-chw-malaria/src/main/java/org/smartregister/chw/malaria/util/MalariaUtil.java
+++ b/opensrp-chw-malaria/src/main/java/org/smartregister/chw/malaria/util/MalariaUtil.java
@@ -20,6 +20,7 @@
import android.widget.Toast;
import org.json.JSONObject;
+import org.opensrp.api.constants.Gender;
import org.smartregister.chw.malaria.MalariaLibrary;
import org.smartregister.chw.malaria.contract.BaseMalariaCallDialogContract;
import org.smartregister.chw.malaria.dao.MalariaDao;
@@ -137,4 +138,13 @@ protected Void doInBackground(Void... voids) {
}
}
+
+ public static String getGenderTranslated(Context context, String gender) {
+ if (gender.equalsIgnoreCase(Gender.MALE.toString())) {
+ return context.getResources().getString(R.string.male);
+ } else if (gender.equalsIgnoreCase(Gender.FEMALE.toString())) {
+ return context.getResources().getString(R.string.female);
+ }
+ return "";
+ }
}
diff --git a/opensrp-chw-malaria/src/main/java/org/smartregister/provider/MalariaRegisterProvider.java b/opensrp-chw-malaria/src/main/java/org/smartregister/provider/MalariaRegisterProvider.java
index 0e6757e..f0f410c 100644
--- a/opensrp-chw-malaria/src/main/java/org/smartregister/provider/MalariaRegisterProvider.java
+++ b/opensrp-chw-malaria/src/main/java/org/smartregister/provider/MalariaRegisterProvider.java
@@ -13,6 +13,7 @@
import org.joda.time.Period;
import org.smartregister.chw.malaria.fragment.BaseMalariaRegisterFragment;
import org.smartregister.chw.malaria.util.DBConstants;
+import org.smartregister.chw.malaria.util.MalariaUtil;
import org.smartregister.commonregistry.CommonPersonObjectClient;
import org.smartregister.cursoradapter.RecyclerViewProvider;
import org.smartregister.malaria.R;
@@ -62,8 +63,10 @@ private String updateMemberGender(CommonPersonObjectClient commonPersonObjectCli
return context.getResources().getString(R.string.anc_string);
} else if ("0".equals(Utils.getValue(commonPersonObjectClient.getColumnmaps(), DBConstants.KEY.IS_PNC_CLOSED, false))) {
return context.getResources().getString(R.string.pnc_string);
- } else
- return Utils.getValue(commonPersonObjectClient.getColumnmaps(), DBConstants.KEY.GENDER, true);
+ } else {
+ String gender = Utils.getValue(commonPersonObjectClient.getColumnmaps(), DBConstants.KEY.GENDER, true);
+ return MalariaUtil.getGenderTranslated(context, gender);
+ }
}
private void populatePatientColumn(CommonPersonObjectClient pc, final RegisterViewHolder viewHolder) {
diff --git a/opensrp-chw-malaria/src/main/res/values-sw/strings.xml b/opensrp-chw-malaria/src/main/res/values-sw/strings.xml
index 6101750..0cca6b8 100644
--- a/opensrp-chw-malaria/src/main/res/values-sw/strings.xml
+++ b/opensrp-chw-malaria/src/main/res/values-sw/strings.xml
@@ -46,5 +46,7 @@
Baada ya kujifungua
Tembeleo limekamilika
HARIRI
+ Me
+ Ke
diff --git a/opensrp-chw-malaria/src/main/res/values/strings.xml b/opensrp-chw-malaria/src/main/res/values/strings.xml
index 9d0d8b6..7e0b10b 100644
--- a/opensrp-chw-malaria/src/main/res/values/strings.xml
+++ b/opensrp-chw-malaria/src/main/res/values/strings.xml
@@ -48,5 +48,7 @@
PNC
Visit Done
EDIT
+ Male
+ Female
diff --git a/opensrp-chw-malaria/src/test/java/org/smartregister/provider/MalariaRegisterProviderTest.java b/opensrp-chw-malaria/src/test/java/org/smartregister/provider/MalariaRegisterProviderTest.java
index b58d5eb..2a2b4f4 100644
--- a/opensrp-chw-malaria/src/test/java/org/smartregister/provider/MalariaRegisterProviderTest.java
+++ b/opensrp-chw-malaria/src/test/java/org/smartregister/provider/MalariaRegisterProviderTest.java
@@ -100,12 +100,14 @@ public void isPncClosed() throws Exception {
@Test
public void updateMemberGender() throws Exception {
Activity activity = Mockito.mock(Activity.class);
+ Resources resources = Mockito.mock(Resources.class);
MalariaRegisterProvider provider = new MalariaRegisterProvider(activity, listener, listener, null);
Map map = new HashMap<>();
map.put(DBConstants.KEY.GENDER, "Male");
+ Mockito.when(activity.getResources()).thenReturn(resources);
Mockito.when(commonPersonObjectClient.getColumnmaps()).thenReturn(map);
- Assert.assertEquals("Male", Whitebox.invokeMethod(provider, "updateMemberGender", commonPersonObjectClient));
+ Assert.assertEquals(resources.getString(R.string.male), Whitebox.invokeMethod(provider, "updateMemberGender", commonPersonObjectClient));
}