package de.lukasniemeier.mensa.ui; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.GridView; import android.widget.Toast; import de.lukasniemeier.mensa.R; import de.lukasniemeier.mensa.model.Mensa; import de.lukasniemeier.mensa.ui.adapter.CardState; import de.lukasniemeier.mensa.ui.adapter.MensaAdapter; import de.lukasniemeier.mensa.utils.DefaultMensaManager; public class MensaActivity extends BaseActivity { public static final String EXTRA_NO_DEFAULT_REDIRECT = "EXTRA_NO_DEFAULT_REDIRECT"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); redirectOnDefaultMensa(); setContentView(R.layout.activity_mensa); boolean isFirstStart = savedInstanceState == null; setupGridView(isFirstStart); } private void setupGridView(boolean firstStart) { MensaAdapter adapter = new MensaAdapter(this); GridView mensaList = (GridView) findViewById(R.id.mensa_list_view); mensaList.setAdapter(adapter); adapter.addAll(Mensa.getMensas(), firstStart); mensaList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { @SuppressWarnings("unchecked") CardState<Mensa> selectedMensa = (CardState<Mensa>) adapterView.getItemAtPosition(i); selectMensa(selectedMensa.getValue()); } }); mensaList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { return true; } }); } private boolean redirectOnDefaultMensa() { Intent startIntent = getIntent(); if (startIntent.hasExtra(EXTRA_NO_DEFAULT_REDIRECT)) { return false; } startIntent.removeExtra(EXTRA_NO_DEFAULT_REDIRECT); DefaultMensaManager defaultManager = new DefaultMensaManager(this); if (defaultManager.hasDefault()) { Mensa defaultMensa = Mensa.getMensa(defaultManager.getDefaultMensaShortName()); if (defaultMensa != null) { selectMensa(defaultMensa); return true; } } return false; } private void selectMensa(Mensa selectedMensa) { startActivity(MenuActivity.createIntent(this, selectedMensa)); overridePendingTransition(R.anim.fade_in, R.anim.fade_out); } }