Skip to content

Commit e54c999

Browse files
committed
upgrade policies list
1 parent 694c282 commit e54c999

10 files changed

Lines changed: 174 additions & 5 deletions

File tree

app/src/main/AndroidManifest.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@
4848
android:theme="@style/AppTheme"
4949
tools:ignore="GoogleAppIndexingWarning"
5050
tools:replace="android:icon,android:label">
51+
<activity
52+
android:name=".PolicyActivity"
53+
android:exported="false" />
5154
<activity
5255
android:name=".FamilyInsurees"
5356
android:exported="false" />
@@ -75,7 +78,9 @@
7578
android:resource="@xml/paths" />
7679
</provider>
7780

78-
<meta-data android:name="io.sentry.dsn" android:value="@string/sentry_dsn" />
81+
<meta-data
82+
android:name="io.sentry.dsn"
83+
android:value="@string/sentry_dsn" />
7984

8085
<activity
8186
android:name=".MainActivity"

app/src/main/java/org/openimis/imispolicies/InsureesFragment.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
3939
btnAddInsuree.setOnClickListener(v -> {
4040
Intent intent = new Intent(getActivity(), InsureeActivity.class);
4141
intent.putExtra("FamilyId", familyId);
42-
//intent.putExtra("InsureeId", insureeId);
4342
startActivity(intent);
4443
});
4544

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,68 @@
11
package org.openimis.imispolicies;
22

3+
import android.content.Intent;
34
import android.os.Bundle;
45
import android.view.LayoutInflater;
56
import android.view.View;
67
import android.view.ViewGroup;
78

89
import androidx.fragment.app.Fragment;
10+
import androidx.recyclerview.widget.LinearLayoutManager;
11+
import androidx.recyclerview.widget.RecyclerView;
12+
13+
import com.google.android.material.floatingactionbutton.FloatingActionButton;
14+
15+
import org.json.JSONArray;
16+
import org.json.JSONException;
17+
18+
import java.text.ParseException;
919

1020
public class PoliciesFragment extends Fragment {
1121

22+
FloatingActionButton btnAddPolicy;
23+
private int familyId = 0;
24+
RecyclerView recyclerPolicies;
25+
private ClientAndroidInterface ca;
26+
1227
public PoliciesFragment() {}
1328

1429
@Override
1530
public View onCreateView(LayoutInflater inflater, ViewGroup container,
1631
Bundle savedInstanceState) {
17-
return inflater.inflate(R.layout.policies_fragment, container, false);
32+
View view = inflater.inflate(R.layout.policies_fragment, container, false);
33+
btnAddPolicy = view.findViewById(R.id.btnNewPolicy);
34+
recyclerPolicies = view.findViewById(R.id.recyclerPolicies);
35+
ca = new ClientAndroidInterface(getActivity());
36+
recyclerPolicies.setLayoutManager(new LinearLayoutManager(getContext()));
37+
loadPolicies();
38+
39+
btnAddPolicy.setOnClickListener(v -> {
40+
Intent intent = new Intent(getActivity(), PolicyActivity.class);
41+
intent.putExtra("FamilyId", familyId);
42+
startActivity(intent);
43+
});
44+
45+
return view;
46+
47+
48+
}
49+
50+
@Override
51+
public void onResume() {
52+
super.onResume();
53+
loadPolicies();
54+
}
55+
56+
private void loadPolicies(){
57+
try {
58+
String policies = ca.getFamilyPolicies(familyId);
59+
JSONArray policiesArray = new JSONArray(policies);
60+
InsureeAdapter adapter = new PolicyAdapter(getContext(),policiesArray, familyId);
61+
recyclerPolicies.setAdapter(adapter);
62+
} catch (JSONException e) {
63+
throw new RuntimeException(e);
64+
} catch (ParseException e) {
65+
throw new RuntimeException(e);
66+
}
1867
}
1968
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package org.openimis.imispolicies;
2+
3+
import android.os.Bundle;
4+
5+
import androidx.activity.EdgeToEdge;
6+
import androidx.appcompat.app.AppCompatActivity;
7+
import androidx.core.graphics.Insets;
8+
import androidx.core.view.ViewCompat;
9+
import androidx.core.view.WindowInsetsCompat;
10+
11+
public class PolicyActivity extends AppCompatActivity {
12+
13+
@Override
14+
protected void onCreate(Bundle savedInstanceState) {
15+
super.onCreate(savedInstanceState);
16+
EdgeToEdge.enable(this);
17+
setContentView(R.layout.activity_policy);
18+
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
19+
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
20+
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
21+
return insets;
22+
});
23+
}
24+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package org.openimis.imispolicies;
2+
3+
import android.app.ProgressDialog;
4+
import android.content.Context;
5+
import android.view.ViewGroup;
6+
7+
import androidx.annotation.NonNull;
8+
import androidx.recyclerview.widget.RecyclerView;
9+
10+
import org.json.JSONArray;
11+
12+
public class PolicyAdapter extends RecyclerView.Adapter<PolicyAdapter.ViewHolder> {
13+
14+
private Context context;
15+
private JSONArray policies;
16+
private int familyId;
17+
private ProgressDialog progressDialog;
18+
19+
public PolicyAdapter(Context context, JSONArray policies, int familyId) {
20+
this.context = context;
21+
this.policies = policies;
22+
this.familyId = familyId;
23+
}
24+
25+
@NonNull
26+
@Override
27+
public PolicyAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
28+
return null;
29+
}
30+
31+
@Override
32+
public void onBindViewHolder(@NonNull PolicyAdapter.ViewHolder holder, int position) {
33+
34+
}
35+
36+
@Override
37+
public int getItemCount() {
38+
return 0;
39+
}
40+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto"
4+
xmlns:tools="http://schemas.android.com/tools"
5+
android:id="@+id/main"
6+
android:layout_width="match_parent"
7+
android:layout_height="match_parent"
8+
tools:context=".PolicyActivity">
9+
10+
</androidx.constraintlayout.widget.ConstraintLayout>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:layout_width="match_parent"
4+
android:layout_height="wrap_content"
5+
xmlns:app="http://schemas.android.com/apk/res-auto"
6+
android:layout_marginBottom="8dp"
7+
app:cardCornerRadius="3dp"
8+
app:cardElevation="4dp"
9+
app:strokeColor="@color/silver"
10+
app:strokeWidth="1dp"
11+
android:id="@+id/family_insurees_card">
12+
13+
<LinearLayout
14+
android:layout_width="match_parent"
15+
android:layout_height="wrap_content"
16+
android:orientation="horizontal">
17+
18+
</LinearLayout>
19+
20+
21+
22+
</com.google.android.material.card.MaterialCardView>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,27 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto"
34
android:orientation="vertical"
45
android:layout_width="match_parent"
56
android:layout_height="match_parent">
67

8+
<androidx.recyclerview.widget.RecyclerView
9+
android:id="@+id/recyclerPolicies"
10+
android:layout_width="match_parent"
11+
android:layout_marginHorizontal="16dp"
12+
android:layout_marginTop="8dp"
13+
android:layout_height="0dp"
14+
android:layout_weight="1"
15+
android:dividerHeight="3dp"/>
16+
17+
<com.google.android.material.floatingactionbutton.FloatingActionButton
18+
android:id="@+id/btnNewPolicy"
19+
android:layout_width="wrap_content"
20+
android:layout_height="wrap_content"
21+
android:contentDescription="Add new policy"
22+
android:src="@drawable/ic_add_24"
23+
android:layout_margin="16dp"
24+
app:backgroundTint="@color/colorPrimaryDark"
25+
android:layout_gravity="bottom|end" />
26+
727
</LinearLayout>

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ buildscript {
88
}
99
}
1010
dependencies {
11-
classpath 'com.android.tools.build:gradle:8.1.4'
11+
classpath 'com.android.tools.build:gradle:8.13.0'
1212
classpath "org.ajoberstar.grgit:grgit-gradle:4.1.1"
1313
classpath 'com.apollographql.apollo:apollo-gradle-plugin:2.5.14'
1414
}

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-all.zip

0 commit comments

Comments
 (0)