package com.laowch.githubtrends.ui; import android.content.Intent; import android.os.Bundle; import android.support.v4.content.LocalBroadcastManager; import android.support.v7.app.ActionBar; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import com.laowch.githubtrends.Constants; import com.laowch.githubtrends.R; import com.laowch.githubtrends.model.Language; import com.laowch.githubtrends.utils.AnalyticsHelper; import com.laowch.githubtrends.utils.LanguageHelper; import java.util.List; /** * Created by lao on 15/9/28. */ public class AddLanguagesActivity extends BaseActivity { AddLanguageAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_simple_recycler_view); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); adapter = new AddLanguageAdapter(getContext()); RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view); recyclerView.setLayoutManager(new GridLayoutManager(getContext(), 2)); recyclerView.setAdapter(adapter); adapter.setItems(LanguageHelper.getInstance().getUnselectedLanguages()); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_add_language, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_done: AnalyticsHelper.sendEvent("AddLangs", "Menu", "Done", 0l); List<Language> selectedItems = adapter.getSelectedItems(); if (selectedItems.size() > 0) { LanguageHelper.getInstance().addSelectedLanguages(selectedItems); } LocalBroadcastManager.getInstance(getContext()).sendBroadcast(new Intent(Constants.ACTION_SELECTED_LANGUAGES_CHANGE)); finish(); return true; } return super.onOptionsItemSelected(item); } @Override public void onBackPressed() { final List<Language> selectedItems = adapter.getSelectedItems(); if (selectedItems.size() > 0) { ConfirmDialog confirmDialog = ConfirmDialog.newInstance("Confirm Exit", "Do you want to save your changes before exiting?", R.string.save, R.string.not_save); confirmDialog.setConfirmDialogListener(new ConfirmDialog.IConfirmDialogListener() { @Override public void onConfirm() { AnalyticsHelper.sendEvent("AddLangs", "ExitDialog", "Save", 0l); LanguageHelper.getInstance().addSelectedLanguages(selectedItems); LocalBroadcastManager.getInstance(getContext()).sendBroadcast(new Intent(Constants.ACTION_SELECTED_LANGUAGES_CHANGE)); finish(); } }); confirmDialog.setNegativeClickListener(new ConfirmDialog.INegativeClickListener() { @Override public void onNegativeButtonClick() { AnalyticsHelper.sendEvent("AddLangs", "ExitDialog", "GiveUp", 0l); finish(); } }); confirmDialog.show(getSupportFragmentManager(), "confirm"); } else { super.onBackPressed(); } } }