Skip to content
Merged
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
4 changes: 2 additions & 2 deletions claimManagement/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ android {
minSdkVersion 26
targetSdkVersion 32
versionCode 4
versionName System.getenv("APP_VERSION") ?: "2.4.0"
versionName System.getenv("APP_VERSION") ?: "2.4.1"
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
}
buildTypes {
Expand Down Expand Up @@ -59,7 +59,7 @@ android {
resValue "string", "ReleaseDateValue", getDate()
buildConfigField "String", "API_BASE_URL", '"http://demo.openimis.org/"'
buildConfigField "String", "REST_API_PREFIX", '"rest"'
buildConfigField "String", "RAR_PASSWORD", '")(#$1HsD"'
buildConfigField "String", "ZIP_PASSWORD", '")(#$1HsD"'
buildConfigField "String", "API_VERSION", '"3"'
}

Expand Down
2 changes: 1 addition & 1 deletion claimManagement/custom-flavours.gradle.dist
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ android {
buildConfigField "String", "API_BASE_URL", [API_BASE_URL]
buildConfigField "String", "APP_DIR", [APP_DIR_NAME]
buildConfigField "String", "API_VERSION", [API_VERSION]
buildConfigField "String", "RAR_PASSWORD", [RAR_PASSWORD]
buildConfigField "String", "ZIP_PASSWORD", [ZIP_PASSWORD]
resValue "string", "app_name_claims", [APP_NAME]
}
}
Expand Down
6 changes: 3 additions & 3 deletions claimManagement/src/bepha/res/values/strings.xml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="settings">Settings</string>
<string name="RarPassword">RAR Password</string>
<string name="DefaultRarPassword">Set the default RAR password</string>
<string name="SaveRarPassword">Save</string>
<string name="ZipPassword">ZIP Password</string>
<string name="DefaultZipPassword">Set the default ZIP password</string>
<string name="SaveZipPassword">Save</string>
<string name="InsuranceNumber">Insuree number</string>
<string name="ErrorOccurred">Error occurred while processing data</string>
<string name="SomethingWrongServer">Something went wrong on the server.</string>
Expand Down
6 changes: 3 additions & 3 deletions claimManagement/src/chf/res/values-sw/strings.xml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="settings">Mipangilio</string>
<string name="RarPassword">Nenosiri la RAR</string>
<string name="DefaultRarPassword">Weka nambari ya default ya RAR</string>
<string name="SaveRarPassword">Hifadhi</string>
<string name="ZipPassword">Nenosiri la ZIP</string>
<string name="DefaultZipPassword">Weka nambari ya default ya ZIP</string>
<string name="SaveZipPassword">Hifadhi</string>
<string name="InsuranceNumber">CHFID</string>
<string name="ErrorOccurred">Tatizo limetokea wakati wa kuchakata taarifa.</string>
<string name="SomethingWrongServer">Kuna kitu hakijakaa sawa kwenye kompuyta kuu.</string>
Expand Down
6 changes: 3 additions & 3 deletions claimManagement/src/chf/res/values/strings.xml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="settings">Settings</string>
<string name="RarPassword">RAR Password</string>
<string name="DefaultRarPassword">Set the default RAR password</string>
<string name="SaveRarPassword">Save</string>
<string name="ZipPassword">ZIP Password</string>
<string name="DefaultZipPassword">Set the default ZIP password</string>
<string name="SaveZipPassword">Save</string>
<string name="InsuranceNumber">CHF number</string>
<string name="ErrorOccurred">Error occurred while processing data</string>
<string name="SomethingWrongServer">Something went wrong on the server.</string>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import java.util.Locale;

import static org.openimis.imisclaims.BuildConfig.API_BASE_URL;
import static org.openimis.imisclaims.BuildConfig.RAR_PASSWORD;
import static org.openimis.imisclaims.BuildConfig.ZIP_PASSWORD;
import static org.openimis.imisclaims.BuildConfig.API_VERSION;

public final class AppInformation {
Expand All @@ -13,8 +13,8 @@ public static String getDomain() {
return API_BASE_URL;
}

public static String getDefaultRarPassword() {
return RAR_PASSWORD;
public static String getDefaultZipPassword() {
return ZIP_PASSWORD;
}

public static String getApiVersion() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@ public void onItemClick(AdapterView<?> adapterView, View view, int position, lon
btnPost.setOnClickListener(v -> {
progressDialog = ProgressDialog.show(this, "", getResources().getString(R.string.Processing));
runOnNewThread(
() -> isValidData() && saveClaim(),
() -> isValidData() && isValidDiagnosis() && saveClaim(),
() -> runOnUiThread(() -> {
ClearForm();
progressDialog.dismiss();
Expand Down Expand Up @@ -832,6 +832,11 @@ private boolean isValidData() {
return false;
}

if(!isValidProgram()){
showValidationDialog(etProgram, getResources().getString(R.string.InvalidProgram));
return false;
}

if(etClaimPrefix.getText().length() == 0){
showValidationDialog(etClaimPrefix, getResources().getString(R.string.MissingChequeNumber));
return false;
Expand Down Expand Up @@ -875,6 +880,31 @@ private boolean isValidInsureeNumber() {
return escape.CheckCHFID(etInsureeNumber.getText().toString());
}

private boolean isValidDiagnosis(){
List<AutoCompleteTextView> diagnosisList = new ArrayList<>();
diagnosisList.add(etDiagnosis);
diagnosisList.add(etDiagnosis1);
diagnosisList.add(etDiagnosis2);
diagnosisList.add(etDiagnosis3);
diagnosisList.add(etDiagnosis4);

for(AutoCompleteTextView diagnosis : diagnosisList){
if(!diagnosis.getText().toString().isEmpty()){
int diagnosisId = sqlHandler.getDiagnosisId(diagnosis.getText().toString());
if(diagnosisId == 0){
showValidationDialog(diagnosis, getResources().getString(R.string.invalidDisease));
return false;
}
}
}
return true;
}

private boolean isValidProgram(){
int programId = sqlHandler.getProgamId(etProgram.getText().toString());
return programId != 0;
}

protected void showValidationDialog(View view, String msg) {
runOnUiThread(() -> showDialog(msg, (dialog, which) -> {
if (view instanceof EditText) {
Expand Down
22 changes: 11 additions & 11 deletions claimManagement/src/main/java/org/openimis/imisclaims/Global.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

package org.openimis.imisclaims;

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

import android.Manifest;
import android.app.Application;
Expand Down Expand Up @@ -72,7 +72,7 @@ public class Global extends Application {
private int UserId;
private String AppDirectory;
private final Map<String, String> SubDirectories = new HashMap<>();
private static final String _DefaultRarPassword = RAR_PASSWORD;
private static final String _DefaultZipPassword = ZIP_PASSWORD;
private Token JWTToken;
private String[] permissions;

Expand All @@ -91,8 +91,8 @@ public static Context getContext() {
return instance.getApplicationContext();
}

public String getDefaultRarPassword() {
return _DefaultRarPassword;
public String getDefaultZipPassword() {
return _DefaultZipPassword;
}

public String getOfficerCode() {
Expand Down Expand Up @@ -276,26 +276,26 @@ public String getSDCardStatus() {
return Environment.getExternalStorageState();
}

public String getRarPwd() {
public String getZipPwd() {
String password = "";
SharedPreferences sharedPreferences = getDefaultSharedPreferences();
if (!sharedPreferences.contains("rarPwd")) {
password = getDefaultRarPassword();
if (!sharedPreferences.contains("zipPwd")) {
password = getDefaultZipPassword();
} else {
String encryptedRarPassword = sharedPreferences.getString("rarPwd", getDefaultRarPassword());
String trimEncryptedPassword = encryptedRarPassword.trim();
String encryptedZipPassword = sharedPreferences.getString("zipPwd", getDefaultZipPassword());
String trimEncryptedPassword = encryptedZipPassword.trim();
String salt = sharedPreferences.getString("salt", null);
String trimSalt = salt.trim();
try {
password = decryptRarPwd(trimEncryptedPassword, trimSalt);
password = decryptZipPwd(trimEncryptedPassword, trimSalt);
} catch (Exception e) {
e.printStackTrace();
}
}
return password;
}

private String decryptRarPwd(String dataToDecrypt, String decPassword) throws Exception {
private String decryptZipPwd(String dataToDecrypt, String decPassword) throws Exception {
SecretKeySpec key = generateKey(decPassword);
Cipher c = Cipher.getInstance("AES");
c.init(Cipher.DECRYPT_MODE, key);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -255,9 +255,9 @@ public boolean onNavigationItemSelected(MenuItem item) {
Intent intent = new Intent(this, SearchClaimsActivity.class);
startActivity(intent);
});
} else if (id == R.id.nav_settings) {
Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);
// } else if (id == R.id.nav_settings) {
// Intent intent = new Intent(this, SettingsActivity.class);
// startActivity(intent);
}

drawer.closeDrawer(GravityCompat.START);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,10 @@

public class SettingsActivity extends ImisActivity {

Button btnSaveRarPwd, btnDefaultRarPassword;
EditText etRarPassword;
Button btnSaveZipPwd, btnDefaultZipPassword;
EditText etZipPassword;
private String salt, password;
public static String generatedSalt;
Global global;

@Override
protected void onCreate(Bundle savedInstanceState) {
Expand All @@ -29,27 +28,27 @@ protected void onCreate(Bundle savedInstanceState) {

actionBar.setTitle("Settings");

btnSaveRarPwd = (Button)findViewById(R.id.btnSaveRarPwd);
etRarPassword = (EditText)findViewById(R.id.rarPassword);
btnDefaultRarPassword = (Button) findViewById(R.id.btnDefaultRarPassword);
btnSaveZipPwd = (Button)findViewById(R.id.btnSaveZipPwd);
etZipPassword = (EditText)findViewById(R.id.zipPassword);
btnDefaultZipPassword = (Button) findViewById(R.id.btnDefaultZipPassword);

btnSaveRarPwd.setOnClickListener(view -> {
if(etRarPassword.getText().length() == 0){
ShowDialog("Rar password required");
btnSaveZipPwd.setOnClickListener(view -> {
if(etZipPassword.getText().length() == 0){
ShowDialog("Zip password required");
}
else {
password = etRarPassword.getText().toString();
saveRarPassword(password);
password = etZipPassword.getText().toString();
saveZipPassword(password);
ShowDialog("Password has been changed");
etRarPassword.setText("");
etZipPassword.setText("");
}

});

btnDefaultRarPassword.setOnClickListener(view -> {
password = global.getDefaultRarPassword();
saveRarPassword(password);
ShowDialog("Password has been changed to the default rar password");
btnDefaultZipPassword.setOnClickListener(view -> {
password = global.getDefaultZipPassword();
saveZipPassword(password);
ShowDialog("Password has been changed to the default zip password");
});

}
Expand All @@ -67,7 +66,7 @@ private SecretKeySpec generateKey(String encPassword) throws Exception {
return secretKeySpec;
}

public String encryptRarPwd(String dataToEncrypt, String encPassword) throws Exception{
public String encryptZipPwd(String dataToEncrypt, String encPassword) throws Exception{
SecretKeySpec key = generateKey(encPassword);
Cipher c = Cipher.getInstance("AES");
c.init(Cipher.ENCRYPT_MODE, key);
Expand All @@ -76,7 +75,7 @@ public String encryptRarPwd(String dataToEncrypt, String encPassword) throws Exc
return encryptedValue;
}

public String decryptRarPwd(String dataToDecrypt, String decPassword) throws Exception {
public String decryptZipPwd(String dataToDecrypt, String decPassword) throws Exception {
SecretKeySpec key = generateKey(decPassword);
Cipher c = Cipher.getInstance("AES");
c.init(Cipher.DECRYPT_MODE, key);
Expand All @@ -96,15 +95,15 @@ public String generateSalt(){
return encodedSalt;
}

public void saveRarPassword(String password){
public void saveZipPassword(String password){
try {
SharedPreferences sharedPreferences = global.getDefaultSharedPreferences();
SharedPreferences.Editor editor = sharedPreferences.edit();
salt = generateSalt();
String trimSalt = salt.trim();
String encryptedPassword = encryptRarPwd(password, trimSalt);
String encryptedPassword = encryptZipPwd(password, trimSalt);
String trimEncryptedPassword = encryptedPassword.trim();
editor.putString("rarPwd", trimEncryptedPassword);
editor.putString("zipPwd", trimEncryptedPassword);
editor.putString("salt", trimSalt);
editor.apply();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -483,7 +483,7 @@ private Uri createClaimExportZip(ArrayList<File> exportedClaims) {
String zipFilename = "Claims" + "_" + global.getOfficerCode() + "_" + d + ".zip";
File zipFile = storageManager.createTempFile("exports/claim/" + zipFilename, true);

String password = global.getRarPwd();
String password = global.getZipPwd();
ZipUtils.zipFiles(exportedClaims, zipFile, password);
FileUtils.deleteFiles(exportedClaims.toArray(new File[0]));

Expand Down
36 changes: 21 additions & 15 deletions claimManagement/src/main/res/layout/settings.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
Expand All @@ -12,29 +13,34 @@
android:textColor="@color/Black"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:text="@string/RarPassword" />
android:text="@string/ZipPassword" />

<EditText
android:id="@+id/rarPassword"
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:paddingLeft="10dp"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:inputType="textPassword">
</EditText>
app:endIconMode="password_toggle">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/zipPassword"
android:layout_width="match_parent"
android:layout_height="50dp"
android:paddingLeft="10dp"
android:inputType="textPassword|textNoSuggestions" />
</com.google.android.material.textfield.TextInputLayout>

<LinearLayout android:id="@+id/llSaveRarButton"
<LinearLayout android:id="@+id/llSaveZipButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<Button
android:id="@+id/btnSaveRarPwd"
android:id="@+id/btnSaveZipPwd"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/SaveRarPassword"
android:text="@string/SaveZipPassword"
android:layout_marginBottom="10dp"/>
</LinearLayout>

Expand All @@ -46,19 +52,19 @@
android:textColor="@color/Black"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:text="@string/DefaultRarPassword" />
android:text="@string/DefaultZipPassword" />

<LinearLayout android:id="@+id/llDefaultRarPassword"
<LinearLayout android:id="@+id/llDefaultZipPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<Button
android:id="@+id/btnDefaultRarPassword"
android:id="@+id/btnDefaultZipPassword"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/SaveRarPassword" />
android:text="@string/SaveZipPassword" />
</LinearLayout>

</LinearLayout>
</LinearLayout>
Loading
Loading