diff --git a/.gitignore b/.gitignore
index 6681c737..73ce5d1f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -76,9 +76,15 @@ fastlane/readme.md
# Visual Studio Code
.vscode/
+./.DS_Store
+./.git/.DS_Store
+*.DS_Store
# Custom product flavours
*custom-flavours.gradle
+.DS_Store
+*.properties
+./gradle
*.DS_Store
diff --git a/README.md b/README.md
index 59fe99a3..fb239696 100644
--- a/README.md
+++ b/README.md
@@ -39,7 +39,10 @@ private String _Domain = "http://132.148.151.32/";
```
For demo purposes, the default Web Services domain is set to the openIMIS
-demo server: demo.openimis.org (IP: 132.148.151.32).
+demo server: demo.openimis.org (IP: 132.148.151.32).
+
+If you want to receive error and exception events in sentry
+you can set `sentry_dsn` in build.gradle file
### Running the app
diff --git a/claimManagement/build.gradle b/claimManagement/build.gradle
index c3a245d7..20814539 100644
--- a/claimManagement/build.gradle
+++ b/claimManagement/build.gradle
@@ -62,6 +62,7 @@ android {
buildConfigField "String", "RAR_PASSWORD", '")(#$1HsD"'
buildConfigField "String", "API_VERSION", '"3"'
resValue "string", "release_tag", "release/25.04"
+ resValue "string", "sentry_dsn", ""
}
productFlavors {
@@ -220,5 +221,6 @@ dependencies {
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
implementation group: 'com.squareup.picasso', name: 'picasso', version: '2.71828'
implementation group: 'net.lingala.zip4j', name: 'zip4j', version: '1.2.7'
+ implementation 'io.sentry:sentry-android:8.25.0'
}
diff --git a/claimManagement/src/main/AndroidManifest.xml b/claimManagement/src/main/AndroidManifest.xml
index db8ddd0b..62201dbb 100644
--- a/claimManagement/src/main/AndroidManifest.xml
+++ b/claimManagement/src/main/AndroidManifest.xml
@@ -57,6 +57,10 @@
android:resource="@xml/paths" />
+
+
finish());
}
} catch (Exception e) {
+ Sentry.captureException(e);
Log.e(LOG_TAG, "Error while copying master data.", e);
}
}
@@ -303,6 +307,7 @@ public void PickMasterDataFileDialog() {
try {
startActivityForResult(intent, REQUEST_PICK_MD_FILE);
} catch (ActivityNotFoundException e) {
+ Sentry.captureException(e);
Toast.makeText(getApplicationContext(), getResources().getString(R.string.NoFileExporerInstalled), Toast.LENGTH_SHORT).show();
}
}).setNegativeButton(getResources().getString(R.string.No),
@@ -319,6 +324,7 @@ public AlertDialog confirmRefreshMap() {
try {
doLoggedIn(() -> DownLoadDiagnosesServicesItems(global.getOfficerCode()));
} catch (Exception e) {
+ Sentry.captureException(e);
e.printStackTrace();
}
},
@@ -409,6 +415,7 @@ public AlertDialog DownloadMasterDialog() {
}
} catch (Exception e) {
e.printStackTrace();
+ Sentry.captureException(e);
DownloadMasterDialog();
}
} else {
@@ -442,6 +449,7 @@ private void checkForUpdates() {
try {
mNotificationManager.notify(SIMPLE_NOTIFICATION_ID, builder.build());
} catch (Exception e) {
+ Sentry.captureException(e);
e.printStackTrace();
}
@@ -479,6 +487,7 @@ public void run() {
});
} catch (Exception e) {
e.printStackTrace();
+ Sentry.captureException(e);
runOnUiThread(() -> {
progressDialog.dismiss();
ErrorDialogBox(e.getMessage());
@@ -519,6 +528,7 @@ public void getClaimAdmins() {
});
} catch (Exception e) {
e.printStackTrace();
+ Sentry.captureException(e);
runOnUiThread(() -> progressDialog.dismiss());
}
});
@@ -554,6 +564,7 @@ public void validateClaimAdminCode(final String claimAdminCode) {
progressDialog.dismiss();
doLoggedIn(() -> DownLoadDiagnosesServicesItems(claimAdminCode));
} catch (Exception e) {
+ Sentry.captureException(e);
e.printStackTrace();
}
}
@@ -637,6 +648,7 @@ public void run() {
});
} catch (Exception e) {
e.printStackTrace();
+ Sentry.captureException(e);
runOnUiThread(() -> {
progressDialog.dismiss();
Toast.makeText(MainActivity.this, e.getMessage() + "-" + getResources().getString(R.string.SomethingWentWrongServer), Toast.LENGTH_LONG).show();
@@ -681,6 +693,7 @@ public void run() {
});
} catch (Exception e) {
e.printStackTrace();
+ Sentry.captureException(e);
runOnUiThread(() -> {
progressDialog.dismiss();
Toast.makeText(MainActivity.this, e.getMessage() + "-" + getResources().getString(R.string.AccessDenied), Toast.LENGTH_LONG).show();
diff --git a/claimManagement/src/main/java/org/openimis/imisclaims/SynchronizeActivity.java b/claimManagement/src/main/java/org/openimis/imisclaims/SynchronizeActivity.java
index 4bd8590e..d945b75f 100644
--- a/claimManagement/src/main/java/org/openimis/imisclaims/SynchronizeActivity.java
+++ b/claimManagement/src/main/java/org/openimis/imisclaims/SynchronizeActivity.java
@@ -36,6 +36,8 @@
import java.net.URL;
import java.util.ArrayList;
+import io.sentry.Sentry;
+
public class SynchronizeActivity extends ImisActivity {
private static final String LOG_TAG = "SYNCACTIVITY";
private static final int PICK_FILE_REQUEST_CODE = 1;
@@ -129,6 +131,7 @@ protected void onBroadcastReceived(Context context, Intent intent) {
showDialog(getResources().getString(R.string.BulkUpload));
}
} catch (JSONException e) {
+ Sentry.captureException(e);
Log.e(LOG_TAG, "Error while processing claim response", e);
}
break;
@@ -296,6 +299,7 @@ public void CheckUpdate(){
Toast.LENGTH_SHORT).show();
});
} catch (Exception e) {
+ Sentry.captureException(e);
runOnUiThread(() -> {
pd.dismiss();
Toast.makeText(this,
@@ -327,6 +331,7 @@ public void downloadUpdate(String lastVersion, String tagName) {
} catch (Exception e) {
Toast.makeText(this, getResources().getString(R.string.downloadUpdateFail), Toast.LENGTH_SHORT).show();
+ Sentry.captureException(e);
Log.e("DownloadUpdate", "Erreur: ", e);
}
}
diff --git a/claimManagement/src/main/java/org/openimis/imisclaims/SynchronizeService.java b/claimManagement/src/main/java/org/openimis/imisclaims/SynchronizeService.java
index f7593030..cfb906d0 100644
--- a/claimManagement/src/main/java/org/openimis/imisclaims/SynchronizeService.java
+++ b/claimManagement/src/main/java/org/openimis/imisclaims/SynchronizeService.java
@@ -31,6 +31,8 @@
import java.util.List;
import java.util.Locale;
+import io.sentry.Sentry;
+
public class SynchronizeService extends JobIntentService {
private static final int JOB_ID = 6541259; //Random unique Job id
private static final String LOG_TAG = "SYNCSERVICE";
@@ -114,6 +116,7 @@ private void handleUploadClaims() {
broadcastSyncSuccess(claimStatus);
} catch (Exception e) {
e.printStackTrace();
+ Sentry.captureException(e);
broadcastError(getResources().getString(R.string.ErrorOccurred) + ": " + e.getMessage(), ACTION_UPLOAD_CLAIMS);
}
}
@@ -195,6 +198,7 @@ private void handleExportClaims() {
AppInformation.DateTimeInfo.getDefaultIsoDatetimeFormatter().format(new Date()),
SQLHandler.CLAIM_UPLOAD_STATUS_EXPORTED, null);
} catch (JSONException e) {
+ Sentry.captureException(e);
Log.e(LOG_TAG, "Exception while exporting claims", e);
}
}
@@ -219,6 +223,7 @@ private File createClaimFile(JSONObject details) {
String filename = "Claim_" + details.getString("HFCode") + "_" + details.getString("ClaimCode") + "_" + d + ".xml";
return storageManager.createTempFile("exports/claim/" + filename);
} catch (JSONException e) {
+ Sentry.captureException(e);
Log.e(LOG_TAG, "Parsing claim JSON failed", e);
}
return null;
diff --git a/claimManagement/src/main/java/org/openimis/imisclaims/domain/entity/Claim.java b/claimManagement/src/main/java/org/openimis/imisclaims/domain/entity/Claim.java
index 85f85803..edc14f24 100644
--- a/claimManagement/src/main/java/org/openimis/imisclaims/domain/entity/Claim.java
+++ b/claimManagement/src/main/java/org/openimis/imisclaims/domain/entity/Claim.java
@@ -392,7 +392,7 @@ public List getMedications() {
return medications;
}
- public static final Creator CREATOR = new Creator() {
+ public static final Creator CREATOR = new Creator<>() {
@Override
public Claim createFromParcel(Parcel in) {
return new Claim(in);