package com.android.yzd.memo.mvp.presenter.impl; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.NavigationView; import android.support.v4.view.GravityCompat; import android.view.MenuItem; import android.view.View; import com.android.yzd.memo.R; import com.android.yzd.memo.databinding.ActivityIndexBinding; import com.android.yzd.memo.mvp.presenter.ActivityPresenter; import com.android.yzd.memo.mvp.ui.activity.EditActivity; import com.android.yzd.memo.mvp.ui.view.IndexAView; import com.jakewharton.rxbinding.view.RxView; import java.util.concurrent.TimeUnit; import rx.functions.Action1; /** * Created by Clearlove on 16/1/13. */ public class IndexPreImpl implements ActivityPresenter, NavigationView.OnNavigationItemSelectedListener { private final Context mContext; private final ActivityIndexBinding mDataBinding; private final IndexAView mIndexView; private int currentSelectedItem = 0; private static long DOUBLE_CLICK_TIME = 0L; public IndexPreImpl(Context context, IndexAView view, ActivityIndexBinding dataBinding) { this.mContext = context; mIndexView = view; mDataBinding = dataBinding; } @Override public void onCreate(Bundle savedInstanceState) { mIndexView.initDrawerToggle(); mIndexView.initXViewPager(); FloatingActionButton fab = mDataBinding.fab; RxView.clicks(fab).throttleFirst(500, TimeUnit.MILLISECONDS).subscribe((aVoid) ->mIndexView.readyGoForResult(EditActivity.class)); mDataBinding.navigationView.setCheckedItem(R.id.nav_login_type); mDataBinding.navigationView.setNavigationItemSelectedListener(this); } @Override public void getIntent(Intent intent) { } @Override public void onResume() { } @Override public void onStart() { } @Override public void onPause() { } @Override public void onStop() { } @Override public void onDestroy() { } @Override public boolean onNavigationItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.nav_login_type: currentSelectedItem = 0; mDataBinding.drawerLayout.closeDrawer(GravityCompat.START); mDataBinding.content.setCurrentItem(currentSelectedItem, false); break; case R.id.nav_mail_type: currentSelectedItem = 1; mDataBinding.drawerLayout.closeDrawer(GravityCompat.START); mDataBinding.content.setCurrentItem(currentSelectedItem, false); break; case R.id.nav_note_type: currentSelectedItem = 2; mDataBinding.drawerLayout.closeDrawer(GravityCompat.START); mDataBinding.content.setCurrentItem(currentSelectedItem, false); break; case R.id.nav_setting: mIndexView.go2Setting(); break; default:break; } return true; } public boolean onBackPress() { if (mDataBinding.drawerLayout.isDrawerOpen(GravityCompat.START)) { mDataBinding.drawerLayout.closeDrawer(GravityCompat.START); return false; } if (System.currentTimeMillis() - DOUBLE_CLICK_TIME > 2000) { DOUBLE_CLICK_TIME = System.currentTimeMillis(); mIndexView.showSnackBar("再按一次退出~~"); return false; } else { return true; } } }