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);