package com.socks.jiandan.ui; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.res.Configuration; import android.graphics.Color; import android.net.ConnectivityManager; import android.os.Bundle; import android.provider.Settings; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.widget.Toolbar; import android.view.KeyEvent; import android.view.MenuItem; import android.view.View; import com.afollestad.materialdialogs.MaterialDialog; import com.socks.jiandan.R; import com.socks.jiandan.base.BaseActivity; import com.socks.jiandan.base.JDApplication; import com.socks.jiandan.model.NetWorkEvent; import com.socks.jiandan.ui.fragment.FreshNewsFragment; import com.socks.jiandan.ui.fragment.MainMenuFragment; import com.socks.jiandan.utils.NetWorkUtil; import com.socks.jiandan.utils.ShowToast; import butterknife.ButterKnife; import butterknife.InjectView; import de.greenrobot.event.EventBus; public class MainActivity extends BaseActivity { @InjectView(R.id.toolbar) Toolbar mToolbar; @InjectView(R.id.drawer_layout) DrawerLayout mDrawerLayout; private ActionBarDrawerToggle mActionBarDrawerToggle; private BroadcastReceiver netStateReceiver; private MaterialDialog noNetWorkDialog; private long exitTime; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initData(); } @Override protected void initView() { ButterKnife.inject(this); mToolbar.setTitleTextColor(Color.WHITE); setSupportActionBar(mToolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); mActionBarDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, mToolbar, R.string.app_name, R.string.app_name) { @Override public void onDrawerClosed(View drawerView) { invalidateOptionsMenu(); } @Override public void onDrawerOpened(View drawerView) { invalidateOptionsMenu(); } }; mActionBarDrawerToggle.syncState(); mDrawerLayout.setDrawerListener(mActionBarDrawerToggle); replaceFragment(R.id.frame_container, new FreshNewsFragment()); replaceFragment(R.id.drawer_container, new MainMenuFragment()); } @Override protected void initData() { netStateReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals( ConnectivityManager.CONNECTIVITY_ACTION)) { if (NetWorkUtil.isNetWorkConnected(MainActivity.this)) { EventBus.getDefault().post(new NetWorkEvent(NetWorkEvent.AVAILABLE)); } else { EventBus.getDefault().post(new NetWorkEvent(NetWorkEvent.UNAVAILABLE)); } } } }; registerReceiver(netStateReceiver, new IntentFilter( ConnectivityManager.CONNECTIVITY_ACTION)); } @Override protected void onStart() { super.onStart(); EventBus.getDefault().register(this); } @Override protected void onStop() { super.onStop(); EventBus.getDefault().unregister(this); } public void onEvent(NetWorkEvent event) { if (event.getType() == NetWorkEvent.UNAVAILABLE) { if (noNetWorkDialog == null) { noNetWorkDialog = new MaterialDialog.Builder(MainActivity.this) .title("无网络连接") .content("去开启网络?") .positiveText("是") .backgroundColor(getResources().getColor(JDApplication.COLOR_OF_DIALOG)) .contentColor(JDApplication.COLOR_OF_DIALOG_CONTENT) .positiveColor(JDApplication.COLOR_OF_DIALOG_CONTENT) .negativeColor(JDApplication.COLOR_OF_DIALOG_CONTENT) .titleColor(JDApplication.COLOR_OF_DIALOG_CONTENT) .negativeText("否") .callback(new MaterialDialog.ButtonCallback() { @Override public void onPositive(MaterialDialog dialog) { Intent intent = new Intent( Settings.ACTION_WIRELESS_SETTINGS); startActivity(intent); } @Override public void onNegative(MaterialDialog dialog) { } }) .cancelable(false) .build(); } if (!noNetWorkDialog.isShowing()) { noNetWorkDialog.show(); } } } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(netStateReceiver); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) { if ((System.currentTimeMillis() - exitTime) > 2000) { ShowToast.Short("再按一次退出程序"); exitTime = System.currentTimeMillis(); } else { finish(); } return true; } return super.onKeyDown(keyCode, event); } /////////////////////////////////////////////////////////////////////////// // Drawer Method /////////////////////////////////////////////////////////////////////////// @Override public boolean onOptionsItemSelected(MenuItem item) { if (mActionBarDrawerToggle.onOptionsItemSelected(item)) { return true; } return super.onOptionsItemSelected(item); } @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); mActionBarDrawerToggle.syncState(); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); mActionBarDrawerToggle.onConfigurationChanged(newConfig); } public void closeDrawer() { mDrawerLayout.closeDrawers(); } }