package org.openlmis.core.view.activity; import android.content.Intent; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import org.openlmis.core.R; import org.openlmis.core.googleAnalytics.ScreenName; import org.openlmis.core.presenter.RapidTestReportsPresenter; import org.openlmis.core.utils.Constants; import org.openlmis.core.utils.InjectPresenter; import org.openlmis.core.view.adapter.RapidTestReportAdapter; import org.openlmis.core.view.viewmodel.RapidTestReportViewModel; import java.util.List; import roboguice.inject.ContentView; import roboguice.inject.InjectView; import rx.Subscription; import rx.functions.Action1; @ContentView(R.layout.activity_rapid_test_reports) public class RapidTestReportsActivity extends BaseReportListActivity { @InjectView(R.id.rv_rapid_test_list) RecyclerView rapidTestListView; @InjectPresenter(RapidTestReportsPresenter.class) RapidTestReportsPresenter presenter; private RapidTestReportAdapter rapidTestReportAdapter; @Override protected ScreenName getScreenName() { return ScreenName.RapidTestScreen; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); loading(); setupReportsList(); loadForms(); } protected void loadForms() { Subscription subscription = presenter.loadViewModels().subscribe(getRefreshReportListSubscriber()); subscriptions.add(subscription); } @Override protected int getThemeRes() { return R.style.AppTheme_BlueGray; } private Action1<? super List<RapidTestReportViewModel>> getRefreshReportListSubscriber() { return new Action1<List<RapidTestReportViewModel>>() { @Override public void call(List<RapidTestReportViewModel> viewModels) { loaded(); rapidTestReportAdapter.notifyDataSetChanged(); } }; } private void setupReportsList() { rapidTestListView.setLayoutManager(new LinearLayoutManager(this)); rapidTestReportAdapter = new RapidTestReportAdapter(this, presenter.getViewModelList()); rapidTestListView.setAdapter(rapidTestReportAdapter); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == Constants.REQUEST_CREATE_OR_MODIFY_RAPID_TEST_FORM) { loadForms(); } } }