Skip to content

Commit 870b4ab

Browse files
authored
Merge branch 'develop' into feature-36059
2 parents a78333a + 4c31298 commit 870b4ab

24 files changed

Lines changed: 719 additions & 25 deletions

claimManagement/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ android {
2222
namespace 'org.openimis.imisclaims'
2323
compileSdkVersion 32
2424
buildToolsVersion '33.0.0'
25+
namespace 'org.openimis.imisclaims'
2526

2627
defaultConfig {
2728
applicationId "org.openimis.imisclaims"
@@ -203,6 +204,9 @@ apollo {
203204
}
204205

205206
tasks.withType(Test).configureEach {
207+
maxHeapSize = "1536m"
208+
maxParallelForks = 1
209+
forkEvery = 50
206210
testLogging {
207211
events "passed", "skipped", "failed"
208212
exceptionFormat "full"

claimManagement/src/main/graphql/org.openimis.imisclaim/GetClaims.graphql

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
query GetClaims($claim_administrator_code: String, $status_claim: Int, $visit_date_from: Date, $visit_date_to: Date, $processed_date_from: Date, $processed_date_to: Date) {
1+
query GetClaims($status_claim: Int, $visit_date_from: Date, $visit_date_to: Date, $processed_date_from: Date, $processed_date_to: Date) {
22
claims(
3-
admin_Code: $claim_administrator_code
43
status: $status_claim
54
dateClaimed_Gte: $visit_date_from
65
dateClaimed_Lte: $visit_date_to

claimManagement/src/main/java/org/openimis/imisclaims/ClaimActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ private void confirmDelete() {
311311
} else {
312312
Log.e(LOG_TAG, "Delete claim invoked, but no claim UUID");
313313
}
314-
});
314+
}, (dialog, which) -> dialog.dismiss());
315315
}
316316

317317
private void confirmArchive() {

claimManagement/src/main/java/org/openimis/imisclaims/Global.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
import static org.openimis.imisclaims.BuildConfig.RAR_PASSWORD;
6161

6262
import org.openimis.imisclaims.tools.Log;
63+
import org.openimis.imisclaims.network.util.PersistentCookieJar;
6364

6465
public class Global extends Application {
6566
private static final String SHPREF_NAME = "SHPref";
@@ -76,6 +77,7 @@ public class Global extends Application {
7677
private static final String _DefaultRarPassword = RAR_PASSWORD;
7778
private Token JWTToken;
7879
private String[] permissions;
80+
private PersistentCookieJar cookieJar;
7981

8082
public static boolean isRunningTest() {
8183
try {
@@ -129,6 +131,14 @@ public void setUserId(int userId) {
129131
UserId = userId;
130132
}
131133

134+
public void setCookieJar(PersistentCookieJar jar) {
135+
this.cookieJar = jar;
136+
}
137+
138+
public PersistentCookieJar getCookieJar() {
139+
return cookieJar;
140+
}
141+
132142
public void setOfficerName(String officerName) {
133143
OfficerName = officerName;
134144
}
@@ -153,10 +163,20 @@ public String getCsrfToken(){
153163
}
154164

155165
public boolean isLoggedIn() {
156-
boolean isLoggedIn = getJWTToken().isTokenValidJWT();
166+
long expiry = getDefaultSharedPreferences()
167+
.getLong("session_expiry", 0);
168+
169+
boolean isLoggedIn = getJWTToken().isTokenValidJWT()
170+
&& expiry > System.currentTimeMillis();
171+
157172
if (!isLoggedIn) {
158173
getJWTToken().clearToken();
174+
175+
if (cookieJar != null) {
176+
cookieJar.clear();
177+
}
159178
}
179+
160180
return isLoggedIn;
161181
}
162182

claimManagement/src/main/java/org/openimis/imisclaims/ImisActivity.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.openimis.imisclaims.usecase.Login;
2222

2323
import java.util.ArrayList;
24+
import java.util.Locale;
2425

2526
public abstract class ImisActivity extends AppCompatActivity {
2627

@@ -48,7 +49,9 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
4849
super.onCreate(savedInstanceState);
4950

5051
global = (Global) getApplicationContext();
51-
global.setLanguage(this, global.getSavedLanguage());
52+
String systemLanguage = resolveStartupLanguage();
53+
global.setSavedLanguage(systemLanguage);
54+
global.setLanguage(this, systemLanguage);
5255

5356
actionBar = getSupportActionBar();
5457
if (actionBar != null) {
@@ -65,6 +68,15 @@ public void onReceive(Context context, Intent intent) {
6568
sqlHandler = new SQLHandler(this);
6669
}
6770

71+
private String resolveStartupLanguage() {
72+
Locale systemLocale = getResources().getConfiguration().locale;
73+
String language = systemLocale != null ? systemLocale.getLanguage() : "";
74+
if ("fr".equalsIgnoreCase(language)) {
75+
return "fr";
76+
}
77+
return "en";
78+
}
79+
6880
@Override
6981
protected void onDestroy() {
7082
super.onDestroy();

claimManagement/src/main/java/org/openimis/imisclaims/Report.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import androidx.appcompat.widget.Toolbar;
66
import android.widget.TextView;
77

8+
import org.json.JSONObject;
9+
810
import java.io.File;
911

1012
public class Report extends ImisActivity {
@@ -38,6 +40,8 @@ protected void onCreate(Bundle savedInstanceState) {
3840
File pendingFolder = new File(PendingFolder);
3941
File trashFolder = new File(TrashFolder);
4042

43+
JSONObject counts = sqlHandler.getClaimCounts();
44+
4145
int countAccepted = 0;
4246
int countRejected = 0;
4347
if (acceptedClaims.listFiles().length > 0) {
@@ -54,7 +58,7 @@ protected void onCreate(Bundle savedInstanceState) {
5458
}
5559
}
5660
} else {
57-
countAccepted = 0;
61+
countAccepted = counts.optInt(SQLHandler.CLAIM_UPLOAD_STATUS_ACCEPTED, 0);;
5862
}
5963

6064
if (rejectedClaims.listFiles().length > 0) {
@@ -71,7 +75,7 @@ protected void onCreate(Bundle savedInstanceState) {
7175
}
7276
}
7377
} else {
74-
countRejected = 0;
78+
countRejected = counts.optInt(SQLHandler.CLAIM_UPLOAD_STATUS_REJECTED, 0);;
7579
}
7680
//Pending & Trash
7781
int count_pending = 0;
@@ -90,7 +94,7 @@ protected void onCreate(Bundle savedInstanceState) {
9094
}
9195
}
9296
} else {
93-
count_pending = 0;
97+
count_pending = counts.optInt(SQLHandler.CLAIM_UPLOAD_STATUS_ENTERED, 0);;
9498
}
9599

96100
if (trashFolder.listFiles().length > 0) {

claimManagement/src/main/java/org/openimis/imisclaims/SearchClaimsActivity.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,7 @@ protected void getClaims(
158158
new Thread(() -> {
159159

160160
try {
161-
List<Claim> claims = fetchClaims.execute(
162-
claimAdministratorCode, status, visitDateFrom,
161+
List<Claim> claims = new FetchClaims().execute( status, visitDateFrom,
163162
visitDateTo, processedDateFrom, processedDateTo
164163
);
165164
pd.dismiss();

claimManagement/src/main/java/org/openimis/imisclaims/domain/entity/Claim.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ protected Claim(Parcel in) {
177177
if (in.readByte() == 0) {
178178
status = null;
179179
} else {
180-
status = Claim.Status.valueOf(in.readString());
180+
status = Status.valueOf(in.readString());
181181
}
182182
}
183183

claimManagement/src/main/java/org/openimis/imisclaims/network/okhttp/AuthorizationInterceptor.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import okhttp3.Interceptor;
1515
import okhttp3.Request;
1616
import okhttp3.Response;
17+
import okhttp3.ResponseBody;
1718

1819
public class AuthorizationInterceptor implements Interceptor {
1920

@@ -34,10 +35,21 @@ public Response intercept(@NonNull Chain chain) throws IOException {
3435
Request.Builder builder = chain.request().newBuilder();
3536
builder.addHeader("Authorization", "bearer " + token.getTokenText().trim());
3637
builder.addHeader("User-Agent", USER_AGENT);
38+
if (csrfToken != null && !csrfToken.trim().isEmpty()) {
39+
builder.addHeader("X-CSRFToken", csrfToken);
40+
}
3741
Response response = chain.proceed(builder.build());
38-
if (response.code() == HttpURLConnection.HTTP_UNAUTHORIZED) {
42+
ResponseBody body = response.peekBody(Long.MAX_VALUE);
43+
String bodyString = body.string();
44+
45+
if (bodyString.contains("'csrftoken'") || response.code() == HttpURLConnection.HTTP_UNAUTHORIZED) {
46+
3947
global.getJWTToken().clearToken();
40-
}
48+
49+
if (global.getCookieJar() != null) {
50+
global.getCookieJar().clear();
51+
}
52+
response = chain.proceed(chain.request());}
4153
return response;
4254
}
4355
return chain.proceed(chain.request());

claimManagement/src/main/java/org/openimis/imisclaims/network/request/GetClaimsGraphQLRequest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,13 @@ public class GetClaimsGraphQLRequest extends BaseGraphQLRequest {
1515
@NonNull
1616
@WorkerThread
1717
public GetClaimsQuery.Claims get(
18-
@Nullable String claimAdministratorCode,
1918
@Nullable Integer status,
2019
@Nullable Date visitDateFrom,
2120
@Nullable Date visitDateTo,
2221
@Nullable Date processedDateFrom,
2322
@Nullable Date processedDateTo
2423
) throws Exception {
2524
return makeSynchronous(new GetClaimsQuery(
26-
Input.fromNullable(claimAdministratorCode),
2725
Input.fromNullable(status),
2826
Input.fromNullable(visitDateFrom),
2927
Input.fromNullable(visitDateTo),

0 commit comments

Comments
 (0)