Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
4c092d6
upgrade home and families summary activity and interfaces
vaneck237 Mar 9, 2026
6d17a1f
finish family form
vaneck237 Mar 10, 2026
74cc477
finish insuree form
vaneck237 Mar 11, 2026
3478e3d
enrol family process
vaneck237 Mar 16, 2026
1ab3f68
fix user interface
vaneck237 Mar 18, 2026
c020a78
finish enrolment process
vaneck237 Mar 19, 2026
c5110e4
fix edit insurance number
vaneck237 Mar 24, 2026
728e372
fix select picture
vaneck237 Mar 25, 2026
df930b7
fix capture image
vaneck237 Mar 25, 2026
406b286
fix conflicts
vaneck237 Mar 25, 2026
694c282
last changes
vaneck237 Mar 25, 2026
e54c999
upgrade policies list
vaneck237 Mar 26, 2026
98719b5
add and delete policy process
vaneck237 Mar 29, 2026
cc3ae90
end add and delete process
vaneck237 Mar 29, 2026
f1617dd
finish edit policy
vaneck237 Mar 29, 2026
3ed01dd
fix all interface
vaneck237 Mar 30, 2026
4d9c2fe
fix bug pages
vaneck237 Mar 30, 2026
ee1e0c2
upgrade setting activity
vaneck237 Apr 6, 2026
ddf0d43
fix modify family
vaneck237 Apr 7, 2026
a47c82d
fix delete online family
vaneck237 Apr 7, 2026
16cd6d8
upgrade list UI
vaneck237 Apr 8, 2026
34e2b33
add premium activity
vaneck237 Apr 9, 2026
8efb3f3
fix crash app
vaneck237 Apr 10, 2026
c68f6d6
fix release url
vaneck237 Apr 10, 2026
9d62b85
migrate contributions management process
vaneck237 Apr 13, 2026
c4871ed
fix download family
vaneck237 Apr 27, 2026
f78968a
adjust PR
vaneck237 Apr 27, 2026
7e0fbf4
Merge branch 'develop' into feature-35779
vaneck237 Apr 27, 2026
0045b67
add progress dialog when downloading family
vaneck237 Apr 27, 2026
611261c
Merge branch 'feature-35779' of https://github.com/mngoe/policies_and…
vaneck237 Apr 27, 2026
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: 3 additions & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ dependencies {
implementation 'com.embarkmobile:zxing-android-minimal:1.2.1@aar'
implementation 'androidx.annotation:annotation:1.7.0'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.10.0'
implementation 'com.google.android.material:material:1.13.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
//noinspection GradleDependency
implementation 'com.squareup.picasso:picasso:2.8'
Expand All @@ -256,6 +256,8 @@ dependencies {
implementation 'androidx.recyclerview:recyclerview:1.3.2'
implementation 'org.apache.commons:commons-lang3:3.12.0'
implementation 'cz.msebera.android:httpclient:4.5.8'
implementation 'androidx.activity:activity:1.8.0'
implementation "androidx.viewpager2:viewpager2:1.0.0"
implementation 'androidx.test:core:1.7.0'

androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', {
Expand Down
14 changes: 7 additions & 7 deletions app/src/localeBepha/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -205,10 +205,10 @@
<string name="Version">Version</string>
<string name="Name">Name</string>
<string name="ReleaseDate">Release Date</string>
<string name="TotalFamily">Total Households</string>
<string name="TotalInsuree">Total Adherents</string>
<string name="TotalPolicy">Total Policies</string>
<string name="TotalPremium">Total Contributions</string>
<string name="TotalFamily">Total Households:</string>
<string name="TotalInsuree">Total Adherents:</string>
<string name="TotalPolicy">Total Policies:</string>
<string name="TotalPremium">Total Contributions:</string>
<string name="UploadEnrollment">Upload Enrolments</string>
<string name="EnrollmentXML">Create Enrolments XML</string>
<string name="UploadRenewals">Upload Renewals</string>
Expand Down Expand Up @@ -259,9 +259,9 @@
<string name="Search">Search </string>
<string name="ModifyFamily">Modify household</string>
<string name="DownloadFamily">Downloading household</string>
<string name="TotalFamilyOnline">Edited Households </string>
<string name="TotalInsureeOnline">Edited Adherents</string>
<string name="TotalPolicyOnline">Edited Policies</string>
<string name="TotalFamilyOnline">Edited Households: </string>
<string name="TotalInsureeOnline">Edited Adherents:</string>
<string name="TotalPolicyOnline">Edited Policies:</string>
<string name="TotalPremiumOnline">Edited Contributions</string>
<string name="InsuranceNumberNotFound">Adherent number not found</string>
<string name="InsuranceNumberRequired">Adherent number required</string>
Expand Down
12 changes: 10 additions & 2 deletions app/src/localeMv/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@
<string name="SelectMonth">Sél. Mois</string>
<string name="EnrolmentDate">Date d\'adhésion</string>
<string name="Product">Paquet de bénéfice</string>
<string name="EffectiveDate">Date d\'entrée en vigueur</string>
<string name="EffectiveDate">Date d\'entrée en vigueur:</string>
<string name="StartDate">Date de début</string>
<string name="ExpireDate">Date d\'expiration</string>
<string name="Officer">Agent</string>
Expand Down Expand Up @@ -120,7 +120,7 @@
<string name="Suspended">Suspendu</string>
<string name="ReceiptNotUnique">Le numéro de reçu doit être unique.</string>
<string name="PleaseDeletePremium">Le contrat a une contribution. Veuillez d\'abord supprimer les contributions</string>
<string name="PolicyDeleted">Contrat avec succès</string>
<string name="PolicyDeleted">Contrat supprimé avec succès</string>
<string name="PremiumDeleted">Contribution supprimée avec succès</string>
<string name="InsureeDeleted">Assuré supprimé avec succès</string>
<string name="IsHeadDelete">Vous ne pouvez pas supprimer le chef de famille.</string>
Expand Down Expand Up @@ -482,5 +482,13 @@
<string name="pay_type_cash">Cash</string>
<string name="pay_type_mobile_phone">Téléphone portable</string>
<string name="pay_type_bank_transfer">Virement banquaire</string>
<string name="tapToUpload">Cliquez pour changer la photo</string>
<string name="SelectBirthDate">Choisir votre date de naissance</string>
<string name="DeleteInsuree">Êtes-vous sûre de vouloir supprimer cet assuré ?</string>
<string name="DeletePolicy">Êtes-vous sûre de vouloir supprimer cette police ?</string>
<string name="Close">Fermer</string>
<string name="ChangeRarPassword">Changer le mot de passe RAR</string>
<string name="PasswordChanged">Mot de passe changé avec succès</string>
<string name="ResetRarPwd">Le mot de passe RAR par défaut a été défini</string>
<string name="ConfirmDeletePremium">Êtes-vous sure de vouloir supprimer cette contribution?</string>
</resources>
2 changes: 2 additions & 0 deletions app/src/localeMv/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -477,5 +477,7 @@
<string name="CurrentResourceLanguage">Current resource language: %1$s</string>
<string name="SystemLanguageNotSupported">Current system language is not supported. The app will use the default language.</string>
<string name="SupportedLanguages">Supported languages:\n%1$s</string>
<string name="DeleteInsuree">Are you sure you want to delete this insuree?</string>
<string name="DeletePolicy">Are you sure you want to delete this policy?</string>
<string name="Close">Close</string>
</resources>
56 changes: 46 additions & 10 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,7 @@
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

<!-- These statements prevent these permissions to be included in merged manifest -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- These statements prevent these permissions to be included in merged manifest -->
<uses-permission
android:name="android.permission.READ_CALL_LOG"
tools:node="remove" />
Expand All @@ -28,7 +26,8 @@
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:node="remove" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
tools:node="remove" />

<uses-feature
Expand All @@ -49,6 +48,43 @@
android:theme="@style/AppTheme"
tools:ignore="GoogleAppIndexingWarning"
tools:replace="android:icon,android:label">
<activity
android:name=".PremiumActivity"
android:exported="false" />
<activity
android:name=".PolicyPremiumsActivity"
android:exported="false" />
<activity
android:name=".SettingsActivity"
android:exported="false" />
<activity
android:name=".SearchActivity"
android:exported="false" />
<activity
android:name=".AboutActivity"
android:exported="false" />
<activity
android:name=".SyncActivity"
android:exported="false" />
<activity
android:name=".LoginActivity"
android:exported="false" />
<activity
android:name=".PolicyActivity"
android:exported="false" />
<activity
android:name=".FamilyInsurees"
android:exported="false" />
<activity
android:name=".InsureeActivity"
android:exported="false" />
<activity
android:name=".FamilyActivity"
android:exported="false" />
<activity
android:name=".Enrolment"
android:exported="false" />

<service
android:name=".ControlNumberService"
android:exported="false" />
Expand All @@ -63,7 +99,9 @@
android:resource="@xml/paths" />
</provider>

<meta-data android:name="io.sentry.dsn" android:value="@string/sentry_dsn" />
<meta-data
android:name="io.sentry.dsn"
android:value="@string/sentry_dsn" />

<activity
android:name=".MainActivity"
Expand All @@ -73,6 +111,7 @@
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Expand Down Expand Up @@ -134,9 +173,7 @@
<activity android:name=".CheckCommission" />
<activity android:name=".SearchNotEnrolledPolicies" />
<activity android:name=".NotEnrolledPoliciesOverview" />
<activity android:name=".BulkControlNumbersActivity" />

<!-- Override missing configuration for library -->
<activity android:name=".BulkControlNumbersActivity" /> <!-- Override missing configuration for library -->
<activity
android:name="com.google.zxing.client.android.CaptureActivity"
android:exported="false"
Expand All @@ -152,7 +189,6 @@
android:exported="false"
tools:node="merge"
tools:overrideLibrary="com.google.zxing.client" />

</application>

</manifest>
</manifest>
41 changes: 41 additions & 0 deletions app/src/main/java/org/openimis/imispolicies/AboutActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package org.openimis.imispolicies;

import android.os.Bundle;
import android.view.MenuItem;
import android.widget.TextView;

import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

public class AboutActivity extends AppCompatActivity {

TextView appVersion, releaseDate;
ClientAndroidInterface ca;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
setTitle(R.string.About);
if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
ca = new ClientAndroidInterface(this);
appVersion = findViewById(R.id.VersionValue);
releaseDate = findViewById(R.id.ReleaseDateValue);
appVersion.setText(ca.getVersion());
releaseDate.setText(getResources().getString(R.string.ReleaseDateValue));
}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -680,17 +680,12 @@ public String getHF(int DistrictId, String HFLevel) {
protected HashMap<String, String> jsonToTable(String jsonString) {
HashMap<String, String> data = new HashMap<>();
try {
JSONArray array = new JSONArray(jsonString);
for (int i = 0; i < array.length(); i++) {
JSONObject object = array.getJSONObject(i);
String ControlName = object.getString("id");
String ControlValue;
if (!"null".equals(object.getString("value"))) {
ControlValue = object.getString("value");
} else {
ControlValue = null;
}
data.put(ControlName, ControlValue);
JSONObject object = new JSONObject(jsonString);
Iterator<String> keys = object.keys();
while (keys.hasNext()) {
String key = keys.next();
String value = object.getString(key);
data.put(key, value);
}
} catch (JSONException e) {
e.printStackTrace();
Expand Down Expand Up @@ -1078,7 +1073,7 @@ protected String copyImageFromGalleryToApplication(String selectedPath, String I
FileOutputStream outputStream = new FileOutputStream(outputFile);
Target imageTarget = new OutputStreamImageTarget(outputStream, global.getIntKey("image_jpeg_quality", 40), deleteOldFiles);
try {
activity.runOnUiThread(() -> picassoInstance.load(selectedPath)
activity.runOnUiThread(() -> picassoInstance.load(tempPhotoUri)
.resize(global.getIntKey("image_width_limit", 400),
global.getIntKey("image_height_limit", 400))
.centerInside()
Expand Down Expand Up @@ -1262,9 +1257,17 @@ private Date addDay(Date date, int number) {
@JavascriptInterface
@SuppressWarnings("unused")
public String getPolicyPeriod(int ProdId, String EnrollDate) throws ParseException, JSONException {
Date dEnrollDate;

SimpleDateFormat format = AppInformation.DateTimeInfo.getDefaultDateFormatter();
Date dEnrollDate = format.parse(EnrollDate);
try {
SimpleDateFormat format = AppInformation.DateTimeInfo.getDefaultDateFormatter();
dEnrollDate = format.parse(EnrollDate);
} catch (ParseException e) {
SimpleDateFormat fallbackFormat = new SimpleDateFormat(
"EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH
);
dEnrollDate = fallbackFormat.parse(EnrollDate);
}

@Language("SQL")
String sSQL = "SELECT IFNULL(AdministrationPeriod, 0) AdministrationPeriod, StartCycle1, StartCycle2, StartCycle3, StartCycle4, InsurancePeriod, IFNULL(GracePeriod, 0)GracePeriod\n" +
Expand Down Expand Up @@ -1347,6 +1350,10 @@ else if (dateWithGracePeriod4 != null && (dEnrollDate.compareTo(dateWithGracePer
return period.toString();
}

public void setTempPhotoUri(Uri uri){
tempPhotoUri = uri;
}

@JavascriptInterface
@SuppressWarnings("unused")
public void selectPicture() {
Expand All @@ -1368,7 +1375,7 @@ public void selectPicture() {

@JavascriptInterface
@SuppressWarnings("unused")
public double getPolicyValue(String enrollDate, int ProductId, int FamilyId, String startDate, boolean HasCycle, int PolicyId, String PolicyStage, int IsOffline) throws JSONException {
public double getPolicyValue(String enrollDate, int ProductId, int FamilyId, String startDate, boolean HasCycle, int PolicyId, String PolicyStage, String IsOffline) throws JSONException {
Date ExpiryDate = null;
String expiryDate = null;
int PreviousPolicyId = 0;
Expand All @@ -1384,7 +1391,7 @@ public double getPolicyValue(String enrollDate, int ProductId, int FamilyId, Str
enrollDate = object.getString("EnrollDate");
PolicyStage = object.getString("PolicyStage");
expiryDate = object.getString("ExpiryDate");
IsOffline = Integer.parseInt(object.getString("isOffline"));
IsOffline = object.getString("isOffline");
}


Expand Down Expand Up @@ -1693,6 +1700,7 @@ public int SavePolicy(String PolicyData, int FamilyId, int PolicyId) throws Exce
if (IsBulkCNUsed()) {
sqlHandler.assignCnToPolicy(rtPolicyId, controlNumber);
}
Log.e("familyId", String.valueOf(FamilyId));
InsertRecordedPolicies("new", String.valueOf(FamilyId), data.get("ddlProduct"), data.get("hfPolicyValue"), MaxPolicyId);
} else {
int Online = 2;
Expand Down Expand Up @@ -1735,7 +1743,7 @@ public String getFamilyPolicies(int FamilyId) throws ParseException {
boolean HasCycle = false;
int PolicyId;
String PolicyStage;
int IsOffline;
String IsOffline;
String getCycle;
String PolicyValue = null;
Double NewPolicyValue = null;
Expand All @@ -1749,7 +1757,7 @@ public String getFamilyPolicies(int FamilyId) throws ParseException {
PolicyId = ValueObject.getInt("PolicyId");
PolicyStage = ValueObject.getString("StartDate");
startDate = ValueObject.getString("PolicyStage");
IsOffline = ValueObject.getInt("isOffline");
IsOffline = ValueObject.getString("isOffline");
PolicyValue = ValueObject.getString("PolicyValue");

getCycle = getPolicyPeriod(ProductId, enrollDate);
Expand Down Expand Up @@ -4808,7 +4816,7 @@ private JSONArray toJSONArray(@NonNull Family family) throws JSONException {
jsonObject.put("insureeUUID", family.getHead().getUuid());
jsonObject.put("locationId", family.getLocationId());
jsonObject.put("poverty", family.isPoor());
jsonObject.put("isOffline", family.isOffline());
jsonObject.put("isOffline", family.isOffline() ? 1 : 0);
jsonObject.put("familyType", family.getType());
jsonObject.put("familyAddress", family.getAddress());
jsonObject.put("ethnicity", family.getEthnicity());
Expand Down Expand Up @@ -4886,9 +4894,12 @@ private JSONObject toPolicyJSONObject (Family.Policy policy) throws JSONExceptio
policyObject.put("PolicyId",policy.getId());
policyObject.put("FamilyId",policy.getFamilyId());
policyObject.put("EnrollDate",policy.getEnrollDate());
policyObject.put("StartDate",DateUtils.toDateString(Objects.requireNonNull(policy.getStartDate())));
policyObject.put("EffectiveDate", DateUtils.toDateString(Objects.requireNonNull(policy.getEffectiveDate())));
policyObject.put("ExpiryDate", DateUtils.toDateString(Objects.requireNonNull(policy.getExpiryDate())));
policyObject.put("StartDate",
policy.getStartDate() != null ? DateUtils.toDateString(policy.getStartDate()) : JSONObject.NULL);
policyObject.put("EffectiveDate",
policy.getEffectiveDate() != null ? DateUtils.toDateString(policy.getEffectiveDate()) : JSONObject.NULL);
policyObject.put("ExpiryDate",
policy.getExpiryDate() != null ? DateUtils.toDateString(policy.getExpiryDate()) : JSONObject.NULL);
policyObject.put("PolicyStatus",policy.getStatus());
policyObject.put("PolicyValue",policy.getValue());
policyObject.put("ProdId",policy.getProductId());
Expand Down Expand Up @@ -4981,7 +4992,7 @@ public int getCountPremiums(String id) {
return TotalPremiums;
}

@RequiresApi(api = Build.VERSION_CODES.N)
//@RequiresApi(api = Build.VERSION_CODES.N)
@JavascriptInterface
@SuppressWarnings("unused")
public String getSumPremium() {
Expand Down
Loading
Loading