package org.openlmis.core.view.activity;
import android.content.Context;
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.model.StockCard;
import org.openlmis.core.presenter.StockCardPresenter;
import org.openlmis.core.utils.InjectPresenter;
import org.openlmis.core.view.adapter.ArchivedListAdapter;
import org.openlmis.core.view.viewmodel.InventoryViewModel;
import java.util.ArrayList;
import java.util.List;
import roboguice.inject.ContentView;
import roboguice.inject.InjectView;
import static org.openlmis.core.presenter.StockCardPresenter.ArchiveStatus.Archived;
import static org.openlmis.core.view.holder.ArchivedDrugsViewHolder.ArchiveStockCardListener;
@ContentView(R.layout.activity_archived_drugs)
public class ArchivedDrugsListActivity extends SearchBarActivity implements StockCardPresenter.StockCardListView {
@InjectView(R.id.archived_list)
protected RecyclerView archivedList;
@InjectPresenter(StockCardPresenter.class)
StockCardPresenter presenter;
private ArchivedListAdapter mAdapter;
public static Intent getIntentToMe(Context context) {
return new Intent(context, ArchivedDrugsListActivity.class);
}
@Override
protected ScreenName getScreenName() {
return ScreenName.ArchivedDrugsListScreen;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initUI();
}
private void initUI() {
archivedList.setLayoutManager(new LinearLayoutManager(this));
mAdapter = new ArchivedListAdapter(new ArrayList<InventoryViewModel>(), archiveStockCardListener);
archivedList.setAdapter(mAdapter);
presenter.loadStockCards(Archived);
}
@Override
public boolean onSearchStart(String query) {
mAdapter.filter(query);
return false;
}
protected ArchiveStockCardListener archiveStockCardListener = new ArchiveStockCardListener() {
@Override
public void viewMovementHistory(StockCard stockCard) {
startActivity(StockMovementHistoryActivity.getIntentToMe(ArchivedDrugsListActivity.this,
stockCard.getId(),
stockCard.getProduct().getFormattedProductName(),
true,
false));
}
@Override
public void archiveStockCardBack(StockCard stockCard) {
presenter.archiveBackStockCard(stockCard);
presenter.loadStockCards(Archived);
setResult(RESULT_OK);
}
};
@Override
public void refresh(List<InventoryViewModel> data) {
mAdapter.refreshList(data);
}
}