Skip to content

Commit

Permalink
AC-622: Add, Edit and Delete Providers (#611)
Browse files Browse the repository at this point in the history
  • Loading branch information
deepak140596 authored and f4ww4z committed Jul 3, 2019
1 parent 5ab7c0d commit 544c0c4
Show file tree
Hide file tree
Showing 29 changed files with 1,069 additions and 199 deletions.
2 changes: 2 additions & 0 deletions openmrs-client/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,8 @@ dependencies {
// Room components
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
// Swipe reveal layout
implementation 'com.chauthai.swipereveallayout:swipe-reveal-layout:1.4.1'
}

play {
Expand Down
8 changes: 7 additions & 1 deletion openmrs-client/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -235,12 +235,18 @@
android:authorities="org.openmrs.mobile"
android:exported="false" />

<activity android:name=".activities.providermanager.ProviderManagementActivity"
<activity android:name=".activities.providermanagerdashboard.ProviderManagerDashboardActivity"
android:configChanges="keyboardHidden|screenSize"
android:label="@string/provider_manager"
android:launchMode="singleTop"
android:theme="@style/AppThemeOrig"/>

<activity android:name=".activities.providermanagerdashboard.addprovider.AddProviderActivity"
android:parentActivityName=".activities.providermanagerdashboard.ProviderManagerDashboardActivity"
android:windowSoftInputMode="adjustResize"
android:label="@string/title_provider_info"
android:theme="@style/AppThemeOrig"/>

</application>

</manifest>
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
import org.openmrs.mobile.activities.activevisits.ActiveVisitsActivity;
import org.openmrs.mobile.activities.addeditpatient.AddEditPatientActivity;
import org.openmrs.mobile.activities.formentrypatientlist.FormEntryPatientListActivity;
import org.openmrs.mobile.activities.providermanager.ProviderManagementActivity;
import org.openmrs.mobile.activities.providermanagerdashboard.ProviderManagerDashboardActivity;
import org.openmrs.mobile.activities.syncedpatients.SyncedPatientsActivity;
import org.openmrs.mobile.utilities.FontsUtil;
import org.openmrs.mobile.utilities.ImageUtils;
Expand Down Expand Up @@ -326,7 +326,7 @@ public void onClick(View v) {
startNewActivity(ActiveVisitsActivity.class);
break;
case R.id.dashboardProviderManagementView:
startNewActivity(ProviderManagementActivity.class);
startNewActivity(ProviderManagerDashboardActivity.class);
break;
default:
// Do nothing
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* Copyright (C) OpenMRS, LLC. All Rights Reserved.
*/

package org.openmrs.mobile.activities.providermanager;
package org.openmrs.mobile.activities.providermanagerdashboard;

import android.os.Bundle;
import android.view.Menu;
Expand All @@ -25,9 +25,9 @@
import org.openmrs.mobile.activities.ACBaseActivity;
import org.openmrs.mobile.utilities.StringUtils;

public class ProviderManagementActivity extends ACBaseActivity {
private ProviderManagementPresenter mPresenter;
ProviderManagementFragment providerManagementFragment;
public class ProviderManagerDashboardActivity extends ACBaseActivity {
private ProviderManagerDashboardPresenter mPresenter;
ProviderManagerDashboardFragment providerManagerDashboardFragment;

private SearchView searchView;
private String query;
Expand All @@ -43,21 +43,21 @@ protected void onCreate(Bundle savedInstanceState) {
}

// Create fragment
providerManagementFragment =
(ProviderManagementFragment) getSupportFragmentManager().findFragmentById(R.id.providerManagementContentFrame);
if (providerManagementFragment == null) {
providerManagementFragment = ProviderManagementFragment.newInstance();
providerManagerDashboardFragment =
(ProviderManagerDashboardFragment) getSupportFragmentManager().findFragmentById(R.id.providerManagementContentFrame);
if (providerManagerDashboardFragment == null) {
providerManagerDashboardFragment = ProviderManagerDashboardFragment.newInstance();
}
if (!providerManagementFragment.isActive()) {
if (!providerManagerDashboardFragment.isActive()) {
addFragmentToActivity(getSupportFragmentManager(),
providerManagementFragment, R.id.providerManagementContentFrame);
providerManagerDashboardFragment, R.id.providerManagementContentFrame);
}

if (savedInstanceState != null) {

mPresenter = new ProviderManagementPresenter(providerManagementFragment);
mPresenter = new ProviderManagerDashboardPresenter(providerManagerDashboardFragment);
} else {
mPresenter = new ProviderManagementPresenter(providerManagementFragment);
mPresenter = new ProviderManagerDashboardPresenter(providerManagerDashboardFragment);
}

}
Expand Down Expand Up @@ -100,7 +100,7 @@ public boolean onQueryTextSubmit(String query) {

@Override
public boolean onQueryTextChange(String query) {
providerManagementFragment.filterProviders(query);
providerManagerDashboardFragment.filterProviders(query);
return true;
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,21 @@
* Copyright (C) OpenMRS, LLC. All Rights Reserved.
*/

package org.openmrs.mobile.activities.providermanager;
package org.openmrs.mobile.activities.providermanagerdashboard;

import androidx.fragment.app.Fragment;

import org.openmrs.mobile.activities.BasePresenterContract;
import org.openmrs.mobile.activities.BaseView;
import org.openmrs.mobile.api.RestApi;
import org.openmrs.mobile.models.Provider;

import java.util.List;

public interface ProviderManagerContract {
public interface ProviderManagerDashboardContract {

interface View extends BaseView<ProviderManagerContract.Presenter> {
interface View extends BaseView<ProviderManagerDashboardContract.Presenter> {

void refreshUI();

void updateAdapter(List<Provider> providerList);

Expand All @@ -34,6 +35,13 @@ interface View extends BaseView<ProviderManagerContract.Presenter> {

interface Presenter extends BasePresenterContract {
void getProviders(Fragment fragment);

void updateViews(List<Provider> providerList);

void deleteProvider(String uuid);

void addProvider(Provider provider);

void editProvider(Provider provider);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@
* Copyright (C) OpenMRS, LLC. All Rights Reserved.
*/

package org.openmrs.mobile.activities.providermanager;
package org.openmrs.mobile.activities.providermanagerdashboard;

import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
Expand All @@ -26,32 +27,41 @@
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.google.android.material.floatingactionbutton.FloatingActionButton;

import org.openmrs.mobile.R;
import org.openmrs.mobile.activities.ACBaseFragment;
import org.openmrs.mobile.activities.providermanagerdashboard.addprovider.AddProviderActivity;
import org.openmrs.mobile.models.Provider;
import org.openmrs.mobile.utilities.ApplicationConstants;
import org.openmrs.mobile.utilities.FontsUtil;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

public class ProviderManagementFragment extends ACBaseFragment<ProviderManagerContract.Presenter>
implements ProviderManagerContract.View {
import static android.app.Activity.RESULT_OK;
import static org.openmrs.mobile.utilities.ApplicationConstants.RequestCodes.ADD_PROVIDER_REQ_CODE;
import static org.openmrs.mobile.utilities.ApplicationConstants.RequestCodes.EDIT_PROVIDER_REQ_CODE;

public class ProviderManagerDashboardFragment extends ACBaseFragment<ProviderManagerDashboardContract.Presenter>
implements ProviderManagerDashboardContract.View {
// Fragment components
private TextView mEmptyList;
private RecyclerView mProviderManagementRecyclerView;
private ProviderManagementRecyclerViewAdapter providersAdapter;
private ProviderManagerDashboardRecyclerViewAdapter providersAdapter;
private FloatingActionButton addProviderFab;

//Initialization Progress bar
private ProgressBar mProgressBar;

private List<Provider> providerList;

/**
* @return New instance of ProviderManagementFragment
* @return New instance of ProviderManagerDashboardFragment
*/
public static ProviderManagementFragment newInstance() {
return new ProviderManagementFragment();
public static ProviderManagerDashboardFragment newInstance() {
return new ProviderManagerDashboardFragment();
}

@Nullable
Expand All @@ -60,26 +70,37 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c
View root = inflater.inflate(R.layout.fragment_provider_management, container, false);
providerList = new ArrayList<>();

mPresenter.getProviders(this);

providersAdapter = new ProviderManagementRecyclerViewAdapter(getContext(), providerList);
providersAdapter = new ProviderManagerDashboardRecyclerViewAdapter(this, mPresenter, providerList);

mProviderManagementRecyclerView = root.findViewById(R.id.providerManagementRecyclerView);
mProviderManagementRecyclerView.setHasFixedSize(true);
mProviderManagementRecyclerView.setAdapter(providersAdapter);
mProviderManagementRecyclerView.setVisibility(View.GONE);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(root.getContext());
mProviderManagementRecyclerView.setLayoutManager(linearLayoutManager);

mEmptyList = root.findViewById(R.id.emptyProviderManagementList);
mProgressBar = root.findViewById(R.id.providerManagementInitialProgressBar);
addProviderFab = root.findViewById(R.id.providerManagementFragAddFAB);

refreshUI();

addProviderFab.setOnClickListener(v -> {
startActivityForResult(new Intent(getActivity(), AddProviderActivity.class), ADD_PROVIDER_REQ_CODE);
});

// Font config
FontsUtil.setFont(Objects.requireNonNull(this.getActivity()).findViewById(android.R.id.content));

return root;
}

@Override
public void refreshUI() {
mProviderManagementRecyclerView.setVisibility(View.GONE);
mProgressBar.setVisibility(View.VISIBLE);

mPresenter.getProviders(this);
}

@Override
public void updateAdapter(List<Provider> providerList) {
Expand Down Expand Up @@ -118,4 +139,19 @@ public void filterProviders(String searchString) {
providersAdapter.setItems(filteredProviders);
providersAdapter.notifyDataSetChanged();
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == ADD_PROVIDER_REQ_CODE) {
if (resultCode == RESULT_OK) {
Provider provider = (Provider) data.getSerializableExtra(ApplicationConstants.BundleKeys.PROVIDER_ID_BUNDLE);
mPresenter.addProvider(provider);
}
} else if (requestCode == EDIT_PROVIDER_REQ_CODE) {
if (resultCode == RESULT_OK) {
Provider provider = (Provider) data.getSerializableExtra(ApplicationConstants.BundleKeys.PROVIDER_ID_BUNDLE);
mPresenter.editProvider(provider);
}
}
}
}
Loading

0 comments on commit 544c0c4

Please sign in to comment.