Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 11 additions & 5 deletions claimManagement/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ android {
buildConfigField "String", "REST_API_PREFIX", '"rest"'
buildConfigField "String", "RAR_PASSWORD", '")(#$1HsD"'
buildConfigField "String", "API_VERSION", '"3"'
buildConfigField "boolean", "DISABLE_PRICE_EDITION", 'false'
buildConfigField "boolean", "GENERATE_CLAIM_NUMBER", 'false'
}

productFlavors {
Expand Down Expand Up @@ -107,7 +109,7 @@ android {
niger {
applicationIdSuffix ".niger"
resValue "string", "app_name_claims", "Claims Niger"
buildConfigField "String", "API_BASE_URL", '"http://oiniger.bluesquare.org/"'
buildConfigField "String", "API_BASE_URL", '"https://niger23.bluesquare.org/"'
}
tchadDev {
applicationIdSuffix ".tchadDev"
Expand All @@ -133,7 +135,14 @@ android {
resValue "string", "app_name_claims", "Claims CNASS TRAIN"
dimension = 'std'
}

gambia {
applicationIdSuffix ".gambia"
buildConfigField "String", "API_BASE_URL", '"https://gambiatest.bluesquare.org/"'
resValue "string", "app_name_claims", "Claims Gambia"
dimension = 'std'
buildConfigField "boolean", "DISABLE_PRICE_EDITION", 'true'
buildConfigField "boolean", "GENERATE_CLAIM_NUMBER", 'true'
}
}

sourceSets {
Expand Down Expand Up @@ -213,9 +222,6 @@ dependencies {
implementation ('com.apollographql.apollo:apollo-android-support:2.5.14'){
because("Apollo 3+ only works with Kotlin coroutines")
}
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
implementation group: 'com.squareup.picasso', name: 'picasso', version: '2.71828'
implementation group: 'net.lingala.zip4j', name: 'zip4j', version: '1.2.7'

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package org.openimis.imisclaims;

public class Escape {
public boolean CheckCHFID(String InsureeNumber) {
return InsureeNumber != null && InsureeNumber.length() != 0;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public void onCreate(Bundle savedInstanceState) {
lvItems = findViewById(R.id.lvItems);
etQuantity = findViewById(R.id.etQuantity);
etAmount = findViewById(R.id.etAmount);
disableView(etAmount);
etItems = findViewById(R.id.etItems);
btnAdd = findViewById(R.id.btnAdd);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ public void onCreate(Bundle savedInstanceState) {
lvServices = findViewById(R.id.lvServices);
etSQuantity = findViewById(R.id.etSQuantity);
etSAmount = findViewById(R.id.etSAmount);
disableView(etSAmount);
etServices = findViewById(R.id.etService);
btnAdd = findViewById(R.id.btnAdd);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.InputFilter;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
Expand All @@ -32,13 +35,20 @@
import org.openimis.imisclaims.util.DateUtils;
import org.openimis.imisclaims.util.TextViewUtils;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Locale;
import java.util.TimeZone;
import java.util.UUID;

public class ClaimActivity extends ImisActivity {
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss", Locale.ENGLISH);
static {
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
}
private static final String LOG_TAG = "CLAIM";
private static final int REQUEST_SCAN_QR_CODE = 1;
static final int StartDate_Dialog_ID = 0;
Expand Down Expand Up @@ -184,6 +194,33 @@ protected void onCreate(Bundle savedInstanceState) {
// hfCode and adminCode not editable
disableView(etHealthFacility);
disableView(etClaimAdmin);
if (BuildConfig.GENERATE_CLAIM_NUMBER) {
disableView(etClaimCode);
etClaimCode.setFilters(new InputFilter[0]);
TextWatcher watcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
//
}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//
}

@Override
public void afterTextChanged(Editable s) {
String hfCode = etHealthFacility.getText().toString();
String insureeNumber = etInsureeNumber.getText().toString();
if (hfCode.isEmpty() || insureeNumber.isEmpty()) {
return;
}
etClaimCode.setText(generateClaimNumber(hfCode, insureeNumber));
}
};
etHealthFacility.addTextChangedListener(watcher);
etInsureeNumber.addTextChangedListener(watcher);
}

Intent intent = getIntent();

Expand Down Expand Up @@ -374,7 +411,11 @@ private void ClearForm() {
etDiagnosis3.setText("");
etDiagnosis4.setText("");
rgVisitType.clearCheck();
etClaimCode.requestFocus();
if (!BuildConfig.GENERATE_CLAIM_NUMBER) {
etClaimCode.requestFocus();
} else {
etGuaranteeNo.requestFocus();
}
}

private void disableForm() {
Expand All @@ -389,7 +430,6 @@ private void disableForm() {
disableView(etDiagnosis3);
disableView(etDiagnosis4);
disableView(rgVisitType);
disableView(etClaimCode);
disableView(btnPost);
disableView(rbEmergency);
disableView(rbReferral);
Expand Down Expand Up @@ -589,7 +629,7 @@ private boolean isValidData() {
return false;
}

if (etClaimCode.getText().length() == 0) {
if (getClaimCode().isEmpty()) {
showValidationDialog(etClaimCode, getResources().getString(R.string.MissingClaimCode));
return false;
}
Expand Down Expand Up @@ -694,7 +734,7 @@ private boolean saveClaim() {
claimCV.put("ClaimDate", claimDate);
claimCV.put("HFCode", etHealthFacility.getText().toString());
claimCV.put("ClaimAdmin", etClaimAdmin.getText().toString());
claimCV.put("ClaimCode", etClaimCode.getText().toString());
claimCV.put("ClaimCode", getClaimCode());
claimCV.put("GuaranteeNumber", etGuaranteeNo.getText().toString());
claimCV.put("InsureeNumber", etInsureeNumber.getText().toString());
claimCV.put("StartDate", etStartDate.getText().toString());
Expand Down Expand Up @@ -735,4 +775,26 @@ private boolean saveClaim() {
sqlHandler.saveClaim(claimCV, claimItemCVs, claimServiceCVs);
return true;
}

@NonNull
private String getClaimCode() {
String input = etClaimCode.getText().toString();
if (!input.isEmpty()) {
return input;
}
if (BuildConfig.GENERATE_CLAIM_NUMBER) {
String hfCode = etHealthFacility.getText().toString() ;
String insureeNumber = etInsureeNumber.getText().toString();
return generateClaimNumber(hfCode, insureeNumber);
}
return "";
}

private String generateClaimNumber(@NonNull String hfCode, @NonNull String insureeNumber) {
return String.format(
Locale.ENGLISH,
"%1$s-%2$s-%3$s",
hfCode, insureeNumber, dateFormat.format(new Date())
);
}
}
49 changes: 32 additions & 17 deletions claimManagement/src/main/java/org/openimis/imisclaims/Global.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@

package org.openimis.imisclaims;

import static org.openimis.imisclaims.BuildConfig.RAR_PASSWORD;

import android.Manifest;
import android.app.Application;
import android.content.Context;
Expand All @@ -40,6 +42,11 @@
import android.util.Base64;
import android.util.DisplayMetrics;

import androidx.annotation.NonNull;

import org.openimis.imisclaims.repository.LoginRepository;
import org.openimis.imisclaims.tools.Log;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
Expand All @@ -57,11 +64,20 @@
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

import static org.openimis.imisclaims.BuildConfig.RAR_PASSWORD;

import org.openimis.imisclaims.tools.Log;

public class Global extends Application {
private static final String[] PERMISSIONS = new String[]{
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.VIBRATE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.INTERNET,
Manifest.permission.CAMERA,
Manifest.permission.ACCESS_NETWORK_STATE,
Manifest.permission.ACCESS_WIFI_STATE,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.CHANGE_WIFI_STATE
};

private static final String SHPREF_NAME = "SHPref";
private static final String SHPREF_LANGUAGE = "language";
private static final String DEFAULT_LANGUAGE_CODE = "en";
Expand All @@ -73,14 +89,12 @@ public class Global extends Application {
private String AppDirectory;
private final Map<String, String> SubDirectories = new HashMap<>();
private static final String _DefaultRarPassword = RAR_PASSWORD;
private Token JWTToken;
private String[] permissions;
private volatile LoginRepository loginRepository;

@Override
public void onCreate() {
super.onCreate();
instance = this;
permissions = new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.VIBRATE, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.INTERNET, Manifest.permission.CAMERA, Manifest.permission.ACCESS_NETWORK_STATE, Manifest.permission.ACCESS_WIFI_STATE, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CHANGE_WIFI_STATE};
}

public static Global getGlobal() {
Expand Down Expand Up @@ -128,21 +142,22 @@ public String getOfficeName() {
}

public String[] getPermissions() {
return permissions;
return PERMISSIONS;
}

public Token getJWTToken() {
if (JWTToken == null)
JWTToken = new Token();
return JWTToken;
@NonNull
public LoginRepository getLoginRepository() {
if (loginRepository == null)
synchronized (this) {
if (loginRepository == null) {
loginRepository = new LoginRepository(this);
}
}
return loginRepository;
}

public boolean isLoggedIn() {
boolean isLoggedIn = getJWTToken().isTokenValidJWT();
if (!isLoggedIn) {
getJWTToken().clearToken();
}
return isLoggedIn;
return getLoginRepository().getToken() != null;
}

private String createOrCheckDirectory(String path) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ public void changeLoginState() {
if (global.isLoggedIn()) {
progressDialog = ProgressDialog.show(this, getResources().getString(R.string.Logout), getResources().getString(R.string.InProgress));
loginText.setText(R.string.Login);
runOnNewThread(() -> global.getJWTToken().clearToken(),
runOnNewThread(() -> global.getLoginRepository().saveToken(null, null),
() -> progressDialog.dismiss(),
500);
} else {
Expand All @@ -347,7 +347,6 @@ private void initializeDb3File(SQLHandler sql) {
ClaimAdminDialogBox();
}
}

}
}

Expand Down Expand Up @@ -514,7 +513,10 @@ public void getClaimAdmins() {
});
} catch (Exception e) {
e.printStackTrace();
runOnUiThread(() -> progressDialog.dismiss());
runOnUiThread(() -> {
ErrorDialogBox(e.getMessage());
progressDialog.dismiss();
});
}
});
thread.start();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@
import android.content.DialogInterface;
import android.database.Cursor;
import android.os.Bundle;

import androidx.appcompat.view.menu.MenuBuilder;

import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
Expand Down Expand Up @@ -329,18 +331,16 @@ protected FilterResults performFiltering(CharSequence constraint) {
constraint = constraint.toString().toLowerCase();
FilterResults results = new FilterResults();
ArrayList<HashMap<String, Object>> FilteredItems = new ArrayList<HashMap<String, Object>>();
;

if (constraint != null && constraint.toString().length() > 0) {

if (!constraint.toString().isEmpty()) {
for (int i = 0; i < OriginalList.size(); i++) {
HashMap<String, Object> oItem = OriginalList.get(i);
if (oItem.get("Code").toString().toLowerCase().contains(constraint) || oItem.get("Name").toString().toLowerCase().contains(constraint)) {
FilteredItems.add(oItem);
}
results.count = FilteredItems.size();
results.values = FilteredItems;
}
results.count = FilteredItems.size();
results.values = FilteredItems;
} else {
synchronized (this) {
results.values = OriginalList;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@

public class MapServices extends ImisActivity {
ListView lvMapServices;
CheckBox chkAll, chk;
CheckBox chkAll;
EditText etSearchServices;

ArrayList<HashMap<String, Object>> ServiceList = new ArrayList<>();
Expand All @@ -53,7 +53,6 @@ protected void onCreate(Bundle savedInstanceState) {

lvMapServices = (ListView) findViewById(R.id.lvMapServices);
chkAll = (CheckBox) findViewById(R.id.chkAllServices);
chk = (CheckBox) findViewById(R.id.chkMap);
etSearchServices = (EditText) findViewById(R.id.etSearchServices);

etSearchServices.addTextChangedListener(new TextWatcher() {
Expand Down Expand Up @@ -322,18 +321,16 @@ protected FilterResults performFiltering(CharSequence constraint) {
constraint = constraint.toString().toLowerCase();
FilterResults results = new FilterResults();
ArrayList<HashMap<String, Object>> FilteredItems = new ArrayList<HashMap<String, Object>>();
;

if (constraint != null && constraint.toString().length() > 0) {

if (!constraint.toString().isEmpty()) {
for (int i = 0; i < OriginalList.size(); i++) {
HashMap<String, Object> oItem = OriginalList.get(i);
if (oItem.get("Code").toString().toLowerCase().contains(constraint) || oItem.get("Name").toString().toLowerCase().contains(constraint)) {
FilteredItems.add(oItem);
}
results.count = FilteredItems.size();
results.values = FilteredItems;
}
results.count = FilteredItems.size();
results.values = FilteredItems;
} else {
synchronized (this) {
results.values = OriginalList;
Expand Down
Loading