package ua.kpi.ecampus.ui.activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.animation.Animation; import android.view.animation.ScaleAnimation; import android.widget.GridView; import ua.kpi.ecampus.di.UIModule; import ua.kpi.ecampus.model.Subsystem; import ua.kpi.ecampus.ui.adapter.GridSubsystemAdapter; import ua.kpi.ecampus.ui.presenter.MainPresenter; import java.util.LinkedList; import java.util.List; import javax.inject.Inject; import butterknife.Bind; /** * Main activity for application. */ public class MainActivity extends BaseActivity implements MainPresenter.IView { @Bind(ua.kpi.ecampus.R.id.toolbar) Toolbar mToolbar; @Bind(ua.kpi.ecampus.R.id.grid_view_subsystem) GridView mGridSubsystem; @Inject MainPresenter mPresenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(ua.kpi.ecampus.R.layout.activity_main); bindViews(); mPresenter.setView(this); mPresenter.initializeViewComponent(); } @Override protected void onResume() { super.onResume(); mPresenter.checkUserIsLogged(); } @Override protected List<Object> getModules() { LinkedList<Object> modules = new LinkedList<>(); modules.add(new UIModule()); return modules; } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(ua.kpi.ecampus.R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case ua.kpi.ecampus.R.id.action_logout: showLogoutDialog(); case ua.kpi.ecampus.R.id.action_settings: break; } return super.onOptionsItemSelected(item); } private void showLogoutDialog() { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); alertDialogBuilder.setMessage(ua.kpi.ecampus.R.string.logout_confirmation); alertDialogBuilder.setPositiveButton(ua.kpi.ecampus.R.string.yes, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { mPresenter.logout(); } }); alertDialogBuilder.setNegativeButton(ua.kpi.ecampus.R.string.no, new DialogInterface .OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // Do nothing } }); AlertDialog alertDialog = alertDialogBuilder.create(); alertDialog.show(); } @Override public void setViewComponent() { setToolbar(); setGridView(); } private void setGridView() { List<Subsystem> data = mPresenter.getData(); mGridSubsystem.setAdapter(new GridSubsystemAdapter(this, data)); mGridSubsystem.setOnItemClickListener((adapterView, view, position, l) -> { ScaleAnimation sc = new ScaleAnimation(1.0f, 1.1f, 1.0f, 1.1f, 1, 0.5f, 1, 0.5f); sc.setDuration(100); sc.setRepeatCount(1); sc.setRepeatMode(2); sc.setAnimationListener(new Animation.AnimationListener() { public void onAnimationStart(Animation animation) { } public void onAnimationEnd(Animation animation) { mPresenter.startActivityBasedOn(position); } public void onAnimationRepeat(Animation animation) { } }); view.startAnimation(sc); }); } private void setToolbar() { setSupportActionBar(mToolbar); //getSupportActionBar().setHomeButtonEnabled(true); //getSupportActionBar().setDisplayShowHomeEnabled(true); //mToolbar.setNavigationIcon(R.mipmap.ic_action_menu); getSupportActionBar().setTitle(ua.kpi.ecampus.R.string.activity_name_main); } }