package ua.kpi.ecampus.ui.activity;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import ua.kpi.ecampus.Config;
import ua.kpi.ecampus.R;
import ua.kpi.ecampus.di.UIModule;
import ua.kpi.ecampus.model.Recipient;
import ua.kpi.ecampus.model.pojo.Bulletin;
import ua.kpi.ecampus.model.pojo.User;
import ua.kpi.ecampus.ui.presenter.SaveBulletinPresenter;
import ua.kpi.ecampus.util.ToastUtil;
import java.util.ArrayList;
import java.util.List;
/**
* Activity for edition of a Bulletin.
* Created by Administrator on 22.04.2016.
*/
public class EditBulletinActivity extends SaveBulletinActivity implements
SaveBulletinPresenter.IView {
private Bulletin mCurrentBulletin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bulletin_markup);
bindViews();
mCurrentBulletin = getIntent().getParcelableExtra(Config.KEY_BULLETIN);
mPresenter.setView(this);
mPresenter.initializeViewComponent();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_edit_bulletin, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
case R.id.action_delete:
mPresenter.onStartRequest(() -> mPresenter.deleteBulletin());
break;
case R.id.action_clear:
clearValues();
break;
case R.id.action_done:
if (isValidInput())
mPresenter.onStartRequest(() -> mPresenter.editBulletin());
break;
}
return super.onOptionsItemSelected(item);
}
@Override
protected List<Object> getModules() {
List<Object> modules = new ArrayList<>();
modules.add(new UIModule());
return modules;
}
@Override
public void setViewComponent() {
setToolbar();
setRadioGroup();
setAdapter();
setDateListener();
setInitialViewValues();
}
@Override
public void showResponse(int code, String msg) {
switch (code) {
case 0:
ToastUtil.showShortMessage(msg, this);
break;
case 200:
ToastUtil.showShortMessage(getString(R.string
.bulletin_is_modified), this);
break;
case 400:
ToastUtil.showShortMessage(getString(R.string.bad_bulletin),
this);
break;
case 401:
ToastUtil.showShortMessage(getString(R.string.unauthorized),
this);
break;
case 500:
ToastUtil.showShortMessage(getString(R.string.server_error),
this);
break;
default:
break;
}
finish();
}
@Override
public void setRecipientsList(List<Recipient> list) {
mAdapter.setItems(list);
}
@Override
public Bulletin formBulletin() {
mCurrentBulletin.setCreatorId(User.getInstance().id);
mCurrentBulletin.setSubject(mSubject.getText().toString());
mCurrentBulletin.setText(mText.getText().toString());
mCurrentBulletin.setDateStart(mStartDate.getText().toString());
mCurrentBulletin.setDateStop(mEndDate.getText().toString());
mCurrentBulletin.setRecipientList(mAdapter.getItems());
return mCurrentBulletin;
}
@Override
public String getBulletinId() {
return mCurrentBulletin.getId();
}
private void setInitialViewValues() {
if (mCurrentBulletin == null)
return;
mSubject.setText(mCurrentBulletin.getSubject());
mText.setText(mCurrentBulletin.getText());
mStartDate.setText(mCurrentBulletin.getDateStart());
mEndDate.setText(mCurrentBulletin.getDateStop());
mCreateDate.setText(mCurrentBulletin.getDateCreate());
TextView tv = (TextView) findViewById(R.id.text_view_actuality_value);
if (mCurrentBulletin.getActuality())
tv.setText(R.string.yes);
else
tv.setText(R.string.no);
tv = (TextView) findViewById(R.id
.text_view_change_actuality_date_value);
tv.setText(mCurrentBulletin.getDateCreate());
tv = (TextView) findViewById(R.id.text_view_author_name);
tv.setText(User.getInstance().name);
mPresenter.loadRecipients();
}
private void setToolbar() {
setSupportActionBar(mToolbar);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
mToolbar.setNavigationIcon(R.mipmap.ic_action_navigation_arrow_back);
getSupportActionBar().setTitle(R.string.edit_bulletin);
}
}