Skip to content

Commit 2becf5d

Browse files
committed
Fetching of location done
1 parent a58b633 commit 2becf5d

3 files changed

Lines changed: 67 additions & 10 deletions

File tree

openmrs-client/src/main/java/org/openmrs/mobile/activities/formadmission/FormAdmissionContract.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,26 @@
1818

1919
import org.openmrs.mobile.activities.BasePresenterContract;
2020
import org.openmrs.mobile.activities.BaseView;
21+
import org.openmrs.mobile.models.Location;
2122
import org.openmrs.mobile.models.Provider;
2223

2324
public interface FormAdmissionContract {
2425

2526
interface View extends BaseView<Presenter> {
2627

27-
void updateAdapter(List<Provider> providerList);
28+
void updateProviderAdapter(List<Provider> providerList);
2829

2930
void showToast(String error);
31+
32+
void updateLocationAdapter(List<Location> results);
3033
}
3134

3235
interface Presenter extends BasePresenterContract {
3336

3437
void getProviders(FormAdmissionFragment formAdmissionFragment);
3538

3639
void updateViews(List<Provider> providerList);
40+
41+
void getLocation(String url);
3742
}
3843
}

openmrs-client/src/main/java/org/openmrs/mobile/activities/formadmission/FormAdmissionFragment.java

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121

2222
import android.annotation.SuppressLint;
2323
import android.os.Bundle;
24-
import android.util.Log;
2524
import android.view.LayoutInflater;
2625
import android.view.View;
2726
import android.view.ViewGroup;
@@ -35,6 +34,8 @@
3534
import androidx.annotation.Nullable;
3635
import org.openmrs.mobile.R;
3736
import org.openmrs.mobile.activities.ACBaseFragment;
37+
import org.openmrs.mobile.application.OpenMRS;
38+
import org.openmrs.mobile.models.Location;
3839
import org.openmrs.mobile.models.Provider;
3940

4041
public class FormAdmissionFragment extends ACBaseFragment<FormAdmissionContract.Presenter> implements FormAdmissionContract.View {
@@ -47,6 +48,11 @@ public class FormAdmissionFragment extends ACBaseFragment<FormAdmissionContract.
4748
private Button submitButton;
4849

4950
private String admittedByPerson;
51+
private String admittedToPerson;
52+
53+
public static FormAdmissionFragment newInstance() {
54+
return new FormAdmissionFragment();
55+
}
5056

5157
@Nullable
5258
@Override
@@ -57,6 +63,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c
5763
if (root != null) {
5864
initFragmentFields(root);
5965
mPresenter.getProviders(this);
66+
mPresenter.getLocation(OpenMRS.getInstance().getServerUrl());
6067
}
6168

6269
return root;
@@ -76,14 +83,13 @@ private void initFragmentFields(View root) {
7683
}
7784

7885
@Override
79-
public void updateAdapter(List<Provider> providerList) {
80-
String[] providers = new String[providerList.size()];
86+
public void updateProviderAdapter(List<Provider> providerList) {
87+
String[] providers = new String[providerList.size()];
8188
for (int i = 0; i < providerList.size(); i++) {
82-
Log.i("AdmissionActivity", providerList.get(i).getDisplay());
8389
providers[i] = providerList.get(i).getDisplay();
8490
}
8591

86-
ArrayAdapter<String> adapterAdmittedBy = new ArrayAdapter<>(getActivity(),android.R.layout.simple_list_item_1, providers);
92+
ArrayAdapter<String> adapterAdmittedBy = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, providers);
8793
admittedBySpinner.setAdapter(adapterAdmittedBy);
8894
admittedBySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
8995
@Override
@@ -103,8 +109,25 @@ public void showToast(String error) {
103109
Toast.makeText(getContext(), "error", Toast.LENGTH_SHORT).show();
104110
}
105111

106-
public static FormAdmissionFragment newInstance() {
107-
return new FormAdmissionFragment();
112+
@Override
113+
public void updateLocationAdapter(List<Location> results) {
114+
String[] locations = new String[results.size()];
115+
for (int i = 0; i < results.size(); i++) {
116+
locations[i] = results.get(i).getDisplay();
117+
}
118+
ArrayAdapter<String> adapterAdmittedTo = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, locations);
119+
admittedToSpinner.setAdapter(adapterAdmittedTo);
120+
admittedToSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
121+
@Override
122+
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
123+
admittedToPerson = admittedToSpinner.getSelectedItem().toString();
124+
}
125+
126+
@Override
127+
public void onNothingSelected(AdapterView<?> parent) {
128+
129+
}
130+
});
108131
}
109132

110133
}

openmrs-client/src/main/java/org/openmrs/mobile/activities/formadmission/FormAdmissionPresenter.java

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,15 @@
1616

1717
import java.util.List;
1818

19-
import org.jetbrains.annotations.NotNull;
2019
import org.openmrs.mobile.activities.BasePresenter;
2120
import org.openmrs.mobile.api.RestApi;
2221
import org.openmrs.mobile.api.RestServiceBuilder;
2322
import org.openmrs.mobile.api.retrofit.ProviderRepository;
23+
import org.openmrs.mobile.models.Location;
2424
import org.openmrs.mobile.models.Provider;
2525
import org.openmrs.mobile.models.Results;
26+
import org.openmrs.mobile.utilities.ApplicationConstants;
27+
import org.openmrs.mobile.utilities.NetworkUtils;
2628
import retrofit2.Call;
2729
import retrofit2.Callback;
2830
import retrofit2.Response;
@@ -54,9 +56,36 @@ public void getProviders(FormAdmissionFragment fragment) {
5456
@Override
5557
public void updateViews(List<Provider> providerList) {
5658
if (providerList != null && providerList.size() != 0) {
57-
view.updateAdapter(providerList);
59+
view.updateProviderAdapter(prov
60+
iderList);
5861
} else {
5962
view.showToast("Error");
6063
}
6164
}
65+
66+
@Override
67+
public void getLocation(String url) {
68+
if (NetworkUtils.hasNetwork()) {
69+
String locationEndPoint = url + ApplicationConstants.API.REST_ENDPOINT + "location";
70+
Call<Results<Location>> call =
71+
restApi.getLocations(locationEndPoint, "Admission Location", "full");
72+
call.enqueue(new Callback<Results<Location>>() {
73+
@Override
74+
public void onResponse(Call<Results<Location>> call, Response<Results<Location>> response) {
75+
if (response.isSuccessful()) {
76+
view.updateLocationAdapter(response.body().getResults());
77+
} else {
78+
view.showToast("An error Occurred, Try Again Later !!!");
79+
}
80+
}
81+
82+
@Override
83+
public void onFailure(Call<Results<Location>> call, Throwable t) {
84+
view.showToast(t.getMessage());
85+
}
86+
});
87+
} else {
88+
view.showToast("You are currently offline, Try again when connected !!!");
89+
}
90+
}
6291
}

0 commit comments

Comments
 (0)