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 java.util.ArrayList; import java.util.List; 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.DateUtil; import ua.kpi.ecampus.util.ToastUtil; /** * Activity for addition of a Bulletin. */ public class AddBulletinActivity extends SaveBulletinActivity implements SaveBulletinPresenter.IView { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(ua.kpi.ecampus.R.layout.activity_bulletin_markup); bindViews(); mPresenter.setView(this); mPresenter.initializeViewComponent(); } @Override protected void onSaveInstanceState(Bundle savedInstanceState) { savedInstanceState.putString(START_DATE, mStartDate.getText() .toString()); savedInstanceState.putString(END_DATE, mEndDate.getText().toString()); super.onSaveInstanceState(savedInstanceState); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); mStartDate.setText(savedInstanceState.getString(START_DATE)); mEndDate.setText(savedInstanceState.getString(END_DATE)); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(ua.kpi.ecampus.R.menu.menu_add_bulletin, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: NavUtils.navigateUpFromSameTask(this); return true; case ua.kpi.ecampus.R.id.action_clear: clearValues(); ToastUtil.showShortMessage(getString(ua.kpi.ecampus.R.string .clear), this); break; case ua.kpi.ecampus.R.id.action_done: if (isValidInput()) mPresenter.onStartRequest(() -> mPresenter.addBulletin()); 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(); setDateListener(); setAdapter(); setRadioGroup(); setInitialViewValues(); } @Override public void showResponse(int code, String msg) { switch (code) { case 0: ToastUtil.showShortMessage(msg, this); break; case 200: ToastUtil.showShortMessage(getString(ua.kpi.ecampus.R.string .bulletin_is_added), this); break; case 400: ToastUtil.showShortMessage(getString(ua.kpi.ecampus.R.string.bad_bulletin), this); break; case 401: ToastUtil.showShortMessage(getString(ua.kpi.ecampus.R.string.unauthorized), this); break; case 500: ToastUtil.showShortMessage(getString(ua.kpi.ecampus.R.string.server_error), this); break; default: break; } } @Override public Bulletin formBulletin() { String userId; userId = User.getInstance().id; List<Recipient> r = mAdapter.getItems(); Bulletin bulletin = new Bulletin(userId, mSubject.getText().toString (), mText.getText().toString(), mCreateDate.getText() .toString(), mStartDate.getText().toString(), mEndDate .getText().toString(), true, r); return bulletin; } @Override public String getBulletinId() { return null; } @Override public void setRecipientsList(List<Recipient> list) { // N / A } private void setToolbar() { setSupportActionBar(mToolbar); getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); mToolbar.setNavigationIcon(ua.kpi.ecampus.R.mipmap.ic_action_navigation_arrow_back); getSupportActionBar().setTitle(ua.kpi.ecampus.R.string.add_bulletin); } private void setInitialViewValues() { User user = User.getInstance(); TextView tv = (TextView) findViewById(ua.kpi.ecampus.R.id.text_view_author_name); tv.setText(user.name); tv = (TextView) findViewById(ua.kpi.ecampus.R.id.text_view_actuality_value); tv.setText(ua.kpi.ecampus.R.string.yes); String currentDate = DateUtil.getCurrentDate(DateUtil.FORMAT); mCreateDate.setText(currentDate); tv = (TextView) findViewById(ua.kpi.ecampus.R.id .text_view_change_actuality_date_value); tv.setText(currentDate); } }