package com.jasonchen.microlang.activitys;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.support.v4.app.Fragment;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.Toolbar;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.Window;
import android.view.WindowManager;
import android.widget.LinearLayout;
import android.widget.PopupMenu;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;
import com.jasonchen.microlang.R;
import com.jasonchen.microlang.beans.AccountBean;
import com.jasonchen.microlang.beans.CommentListBean;
import com.jasonchen.microlang.beans.GroupBean;
import com.jasonchen.microlang.beans.GroupListBean;
import com.jasonchen.microlang.beans.MessageListBean;
import com.jasonchen.microlang.beans.UnreadBean;
import com.jasonchen.microlang.beans.UserBean;
import com.jasonchen.microlang.dao.FriendGroupDao;
import com.jasonchen.microlang.dao.GroupListDao;
import com.jasonchen.microlang.database.AccountDBTask;
import com.jasonchen.microlang.database.FriendsTimeLineDBTask;
import com.jasonchen.microlang.database.GroupDBTask;
import com.jasonchen.microlang.database.NotificationDBTask;
import com.jasonchen.microlang.exception.WeiboException;
import com.jasonchen.microlang.fragments.CommentFragment;
import com.jasonchen.microlang.fragments.FavFragment;
import com.jasonchen.microlang.fragments.MentionFragment;
import com.jasonchen.microlang.fragments.TimeLineBaseFragment;
import com.jasonchen.microlang.fragments.TimeLineFragment;
import com.jasonchen.microlang.settings.SettingUtility;
import com.jasonchen.microlang.tasks.MyAsyncTask;
import com.jasonchen.microlang.utils.BundleArgsConstants;
import com.jasonchen.microlang.utils.GlobalContext;
import com.jasonchen.microlang.utils.MythouCrashHandler;
import com.jasonchen.microlang.utils.ThemeUtility;
import com.jasonchen.microlang.utils.UnreadTabIndex;
import com.jasonchen.microlang.utils.Utility;
import com.jasonchen.microlang.utils.ViewUtility;
import com.jasonchen.microlang.utils.file.FileLocationMethod;
import com.jasonchen.microlang.view.AvatarBigImageView;
import com.jasonchen.microlang.view.CircleImageView;
import com.jasonchen.microlang.workers.TimeLineBitmapDownloader;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
/**
* jasonchen
* 2015/04/10
*/
public class MainActivity extends ActionBarActivity implements ActionBar.OnNavigationListener, View.OnClickListener {
private DrawerLayout mDrawer;
private int mDrawerGravity;
private ActionBarDrawerToggle mToggle;
private AccountBean accountBean;
private UserBean userBean;
private String token;
private GroupListBean groupListBean;
// Drawer content
private View mDrawerWrapper;
private ScrollView mDrawerScroll;
private TextView mName;
private AvatarBigImageView mAvatar;
private TextView mExchange;
private TextView mNightTheme;
private Toolbar mToolbar;
private List<AccountBean> accountBeanList;
private LoadAccountTask loadAccountTask;
private PopupMenu popupMenu;
private CircleImageView mentionFlag;
private CircleImageView commentFlag;
private int theme = 0;
private boolean canExit = false;
// Fragments
private android.support.v4.app.Fragment currentFragemnt = null;
public static Intent newIntent(AccountBean accountBean) {
Intent intent = new Intent(GlobalContext.getInstance(), MainActivity.class);
intent.putExtra("account", accountBean);
return intent;
}
/*
* notification bar
*/
public static Intent newIntent(AccountBean accountBean,
MessageListBean mentionsWeiboData,
CommentListBean mentionsCommentData,
CommentListBean commentsToMeData, UnreadBean unreadBean) {
Intent intent = new Intent(GlobalContext.getInstance(), MainActivity.class);
intent.putExtra(BundleArgsConstants.ACCOUNT_EXTRA, accountBean);
intent.putExtra(BundleArgsConstants.MENTIONS_WEIBO_EXTRA,
mentionsWeiboData);
intent.putExtra(BundleArgsConstants.MENTIONS_COMMENT_EXTRA,
mentionsCommentData);
intent.putExtra(BundleArgsConstants.COMMENTS_TO_ME_EXTRA,
commentsToMeData);
intent.putExtra(BundleArgsConstants.UNREAD_EXTRA, unreadBean);
return intent;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
if (savedInstanceState == null) {
theme = SettingUtility.getTheme();
} else {
theme = savedInstanceState.getInt("theme");
}
configTheme();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GlobalContext.getInstance().setActivity(this);
GlobalContext.getInstance().setCurrentRunningActivity(MainActivity.this);
Thread.setDefaultUncaughtExceptionHandler(new MythouCrashHandler());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window window = getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
LinearLayout contentLayout = (LinearLayout) findViewById(R.id.layout);
View view = new View(this);
LinearLayout.LayoutParams lParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, Utility.getStatusBarHeight());
int color = SettingUtility.getThemeColor();
if(SettingUtility.getIsNightTheme()){
view.setBackgroundColor(getResources().getColor(R.color.listview_pic_background_dark));
}else {
view.setBackgroundColor(getResources().getColor(color));
}
view.setLayoutParams(lParams);
contentLayout.addView(view, 0);
}
// Initialize views
mToolbar = (Toolbar) findViewById(R.id.toolbar);
if (mToolbar != null) {
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
if (Build.VERSION.SDK_INT >= 21) {
mToolbar.setElevation(getToolbarElevation());
}
mDrawer = ViewUtility.findViewById(this, R.id.drawer);
mDrawerWrapper = ViewUtility.findViewById(this, R.id.drawer_wrapper);
mDrawerScroll = ViewUtility.findViewById(this, R.id.drawer_scroll);
mName = ViewUtility.findViewById(this, R.id.my_name);
mAvatar = ViewUtility.findViewById(this, R.id.my_avatar);
mExchange = ViewUtility.findViewById(this, R.id.exchange);
mNightTheme = ViewUtility.findViewById(this, R.id.theme);
mentionFlag = ViewUtility.findViewById(this, R.id.mention_flag);
commentFlag = ViewUtility.findViewById(this, R.id.comment_flag);
View me = ViewUtility.findViewById(this, R.id.my_account);
View home = ViewUtility.findViewById(this, R.id.drawer_home);
View at = ViewUtility.findViewById(this, R.id.drawer_at);
View comment = ViewUtility.findViewById(this, R.id.drawer_comment);
View fav = ViewUtility.findViewById(this, R.id.drawer_fav);
View search = ViewUtility.findViewById(this, R.id.drawer_search);
View set = ViewUtility.findViewById(this, R.id.drawer_set);
if (Utility.isTaskStopped(loadAccountTask)) {
loadAccountTask = new LoadAccountTask();
loadAccountTask.executeOnExecutor(MyAsyncTask.THREAD_POOL_EXECUTOR);
}
boolean value = SettingUtility.getIsNightTheme();
if (value) {
mNightTheme.setText("白天模式");
} else {
mNightTheme.setText("夜间模式");
}
me.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = UserActivity.newIntent(MainActivity.this, GlobalContext.getInstance().getAccountBean().getInfo());
startActivity(intent);
overridePendingTransition(R.anim.push_left_in, R.anim.stay);
}
});
mAvatar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = UserActivity.newIntent(MainActivity.this, GlobalContext.getInstance().getAccountBean().getInfo());
startActivity(intent);
overridePendingTransition(R.anim.push_left_in, R.anim.stay);
}
});
mToolbar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (currentFragemnt instanceof TimeLineBaseFragment) {
Utility.stopListViewScrollingAndScrollToTop(((TimeLineBaseFragment) currentFragemnt).getListView());
}
}
});
mNightTheme.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ThemeUtility.switchNightTheme();
reload();
}
});
mExchange.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
popupMenu = new PopupMenu(MainActivity.this, mExchange);
Menu menu = popupMenu.getMenu();
int i = 0;
final List<AccountBean> list = new ArrayList<AccountBean>();
for (AccountBean bean : accountBeanList) {
if (!accountBean.getUid().equals(bean.getUid())) {
menu.add(Menu.NONE, Menu.FIRST + i, i, bean.getUsernick());
list.add(bean);
i++;
}
}
final int finalNumber = i;
menu.add(Menu.NONE, Menu.FIRST + i, i, "添加新账号");
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
if (item.getItemId() == (Menu.FIRST + finalNumber)) {
Intent intent = AccountActivity.newIntent();
startActivity(intent);
finish();
overridePendingTransition(R.anim.push_left_in, R.anim.stay);
return true;
} else {
for (int i = 0; i < finalNumber; i++) {
if (item.getItemId() == (Menu.FIRST + i)) {
Intent intent = MainActivity.newIntent(list.get(i));
SettingUtility.setDefaultAccountId(list.get(i).getUid());
GlobalContext.getInstance().setAccountBean(list.get(i));
finish();
startActivity(intent);
return true;
}
}
}
return true;
}
});
popupMenu.show();
}
});
home.setOnClickListener(this);
at.setOnClickListener(this);
comment.setOnClickListener(this);
fav.setOnClickListener(this);
search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = SearchActivity.newIntent(GlobalContext.getInstance(), GlobalContext.getInstance().getSpecialToken());
startActivity(intent);
overridePendingTransition(R.anim.push_left_in, R.anim.stay);
mDrawer.postDelayed(new Runnable() {
@Override
public void run() {
mDrawer.closeDrawers();
}
}, 300);
}
});
set.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SettingActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.push_left_in, R.anim.stay);
}
});
accountBean = getIntent().getParcelableExtra("account");
userBean = accountBean.getInfo();
token = accountBean.getAccess_token();
TimeLineBitmapDownloader.getInstance().display(
mAvatar.getImageView(),
mAvatar.getImageView().getWidth(),
mAvatar.getImageView().getHeight(),
userBean.getAvatar_large(),
FileLocationMethod.avatar_large, false);
mName.setText(userBean.getScreen_name());
// Detect if the user chose to use right-handed mode
boolean rightHanded = SettingUtility.isRightHand();
mDrawerGravity = rightHanded ? Gravity.RIGHT : Gravity.LEFT;
// Set gravity
View nav = findViewById(R.id.nav);
DrawerLayout.LayoutParams p = (DrawerLayout.LayoutParams) nav.getLayoutParams();
p.gravity = mDrawerGravity;
nav.setLayoutParams(p);
// Initialize naviagtion drawer
mToggle = new ActionBarDrawerToggle(this, mDrawer, mToolbar, 0, 0) {
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
invalidateOptionsMenu();
hideFab();
}
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
invalidateOptionsMenu();
showFab();
}
};
mToggle.setDrawerIndicatorEnabled(true);
mDrawer.setDrawerListener(mToggle);
// Use system shadow for Lollipop but fall back for pre-L
if (Build.VERSION.SDK_INT >= 21) {
nav.setElevation(10.0f);
} else if (mDrawerGravity == Gravity.LEFT) {
mDrawer.setDrawerShadow(R.drawable.main_drawer_shadow, Gravity.LEFT);
}
// Initialize ActionBar Style
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayUseLogoEnabled(false);
initGroupList();
// Fragments
TimeLineFragment homeFragment = (TimeLineFragment) getTimeLineFragment();
if (homeFragment.isAdded()) {
getSupportFragmentManager().beginTransaction().show(homeFragment).commit();
} else {
getSupportFragmentManager().beginTransaction().add(R.id.container, homeFragment).show(homeFragment).commit();
getSupportFragmentManager().beginTransaction().add(homeFragment, TimeLineBaseFragment.class.getName());
}
getMentionFragment();
getCommentFragment();
getSupportActionBar().setTitle(accountBean.getUsernick());
currentFragemnt = homeFragment;
if (getIntent().getSerializableExtra(BundleArgsConstants.OPEN_NAVIGATION_INDEX_EXTRA) != null) {
UnreadTabIndex unreadTabIndex = (UnreadTabIndex) getIntent().getSerializableExtra(BundleArgsConstants.OPEN_NAVIGATION_INDEX_EXTRA);
switch (unreadTabIndex) {
case MENTION_WEIBO:
Fragment fragment = getMentionFragment();
if (fragment.isAdded()) {
getSupportFragmentManager().beginTransaction().show(fragment).hide(currentFragemnt).commit();
} else {
getSupportFragmentManager().beginTransaction().add(R.id.container, fragment).show(fragment).hide(currentFragemnt).commit();
}
getSupportActionBar().setTitle(getString(R.string.mention));
currentFragemnt = fragment;
break;
case MENTION_COMMENT:
Fragment newFragment = getMentionFragment();
if (newFragment.isAdded()) {
getSupportFragmentManager().beginTransaction().show(newFragment).hide(currentFragemnt).commit();
} else {
getSupportFragmentManager().beginTransaction().add(R.id.container, newFragment).show(newFragment).hide(currentFragemnt).commit();
}
getSupportActionBar().setTitle(getString(R.string.mention));
currentFragemnt = newFragment;
break;
case COMMENT_TO_ME:
Fragment commentFragment = getCommentFragment();
if (commentFragment.isAdded()) {
getSupportFragmentManager().beginTransaction().show(commentFragment).hide(currentFragemnt).commit();
} else {
getSupportFragmentManager().beginTransaction().add(R.id.container, commentFragment).show(commentFragment).hide(currentFragemnt).commit();
}
getIntent().putExtra(BundleArgsConstants.OPEN_NAVIGATION_INDEX_EXTRA,
UnreadTabIndex.NONE);
getSupportActionBar().setTitle(getString(R.string.comment_me));
currentFragemnt = commentFragment;
break;
}
}
// Adjust drawer layout params
mDrawerWrapper.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
if (mDrawerScroll.getMeasuredHeight() > mDrawerWrapper.getMeasuredHeight()) {
// On poor screens, we add a scroll over the drawer content
ViewGroup.LayoutParams lp = mDrawerScroll.getLayoutParams();
lp.height = ViewGroup.LayoutParams.MATCH_PARENT;
mDrawerScroll.setLayoutParams(lp);
}
}
});
}
private void showFab() {
TimeLineFragment homeFragment = (TimeLineFragment) getTimeLineFragment();
homeFragment.showFab();
}
private void hideFab() {
TimeLineFragment homeFragment = (TimeLineFragment) getTimeLineFragment();
homeFragment.hideFab();
}
private void configTheme() {
if (theme == SettingUtility.getTheme()) {
setTheme(theme);
} else {
reload();
return;
}
}
private void reload() {
Intent intent = getIntent();
overridePendingTransition(0, 0);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
finish();
overridePendingTransition(0, 0);
startActivity(intent);
}
private void initGroupList() {
groupListBean = GroupDBTask.get(GlobalContext.getInstance().getCurrentAccountId());
}
private void asyncGetGroupInfo() {
new Thread() {
@Override
public void run() {
super.run();
FriendGroupDao dao = new FriendGroupDao(GlobalContext.getInstance().getSpecialToken());
try {
GroupListBean list = dao.getGroup();
GroupDBTask.update(list, GlobalContext.getInstance().getCurrentAccountId());
} catch (WeiboException e) {
e.printStackTrace();
}
}
}.start();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mToggle.onConfigurationChanged(newConfig);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
mToggle.syncState();
// Override the click event of ActionBarDrawerToggle to avoid crash in right handed mode
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openOrCloseDrawer();
}
});
}
@Override
protected void onResume() {
super.onResume();
// Dirty fix strange focus
findViewById(R.id.container).requestFocus();
if (!Utility.isTokenValid(GlobalContext.getInstance().getAccountBean()) || !Utility.isHacyTokenValid(GlobalContext.getInstance().getAccountBean())) {
Utility.showExpiredTokenDialogOrNotification();
}
configTheme();
}
private class LoadAccountTask extends MyAsyncTask<Void, Void, List<AccountBean>> {
private LoadAccountTask() {
}
@Override
protected List<AccountBean> doInBackground(Void... params) {
List<AccountBean> list = null;
list = AccountDBTask.getAccountList();
return list;
}
@Override
protected void onCancelled(List<AccountBean> list) {
super.onCancelled(list);
}
@Override
protected void onPostExecute(List<AccountBean> list) {
super.onPostExecute(list);
if (list != null) {
accountBeanList = list;
}
}
}
@Override
protected void onNewIntent(Intent i) {
setIntent(i);
}
@Override
protected void onSaveInstanceState(Bundle bundle) {
super.onSaveInstanceState(bundle);
bundle.putInt("theme", theme);
}
public void openOrCloseDrawer() {
if (NotificationDBTask.getUnreadFlag(GlobalContext.getInstance().getCurrentAccountId(), NotificationDBTask.UnreadDBType.mentionsComment) == 1 || NotificationDBTask.getUnreadFlag(GlobalContext.getInstance().getCurrentAccountId(), NotificationDBTask.UnreadDBType.mentionsWeibo) == 1) {
mentionFlag.setVisibility(View.VISIBLE);
} else {
mentionFlag.setVisibility(View.GONE);
}
if (NotificationDBTask.getUnreadFlag(GlobalContext.getInstance().getCurrentAccountId(), NotificationDBTask.UnreadDBType.commentsToMe) == 1) {
commentFlag.setVisibility(View.VISIBLE);
} else {
commentFlag.setVisibility(View.GONE);
}
if (mDrawer.isDrawerOpen(mDrawerGravity)) {
mDrawer.closeDrawer(mDrawerGravity);
} else {
mDrawer.openDrawer(mDrawerGravity);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
@Override
public void onBackPressed() {
super.onBackPressed();
}
@Override
public boolean onNavigationItemSelected(int id, long itemId) {
return true;
}
private void setShowTitle(boolean show) {
getSupportActionBar().setDisplayShowTitleEnabled(show);
}
@Override
public void onClick(View v) {
android.support.v4.app.Fragment newFragment = null;
switch (v.getId()) {
case R.id.drawer_home:
newFragment = getTimeLineFragment();
String currentGroupId = FriendsTimeLineDBTask.getRecentGroupId(GlobalContext.getInstance().getCurrentAccountId());
if ("0".equals(currentGroupId)) {
mToolbar.setTitle(accountBean.getUsernick());
} else if ("1".equals(currentGroupId)) {
mToolbar.setTitle("好友圈");
} else {
GroupListBean groupListBean = GroupDBTask.get(GlobalContext.getInstance().getCurrentAccountId());
for (GroupBean bean : groupListBean.getLists()) {
if (currentGroupId.equals(bean.getIdstr())) {
mToolbar.setTitle(bean.getName());
}
}
}
if (Build.VERSION.SDK_INT >= 21) {
mToolbar.setElevation(getToolbarElevation());
}
break;
case R.id.drawer_at:
newFragment = getMentionFragment();
mToolbar.setTitle(getString(R.string.mention));
if (Build.VERSION.SDK_INT >= 21) {
mToolbar.setElevation(0f);
}
break;
case R.id.drawer_comment:
newFragment = getCommentFragment();
mToolbar.setTitle(getString(R.string.comment_me));
if (Build.VERSION.SDK_INT >= 21) {
mToolbar.setElevation(getToolbarElevation());
}
break;
case R.id.drawer_fav:
newFragment = getFavFragment();
mToolbar.setTitle(getString(R.string.fav));
if (Build.VERSION.SDK_INT >= 21) {
mToolbar.setElevation(getToolbarElevation());
}
break;
}
if (currentFragemnt != newFragment) {
if (newFragment.isAdded()) {
getSupportFragmentManager().beginTransaction().show(newFragment).hide(currentFragemnt).commit();
} else {
getSupportFragmentManager().beginTransaction().add(R.id.container, newFragment).show(newFragment).hide(currentFragemnt).commit();
}
currentFragemnt = newFragment;
}
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
mDrawer.closeDrawers();
}
}, 250);
}
public android.support.v4.app.Fragment getCurrentFragment() {
return currentFragemnt;
}
public android.support.v4.app.Fragment getTimeLineFragment() {
TimeLineBaseFragment fragment = ((TimeLineBaseFragment) getSupportFragmentManager()
.findFragmentByTag(TimeLineBaseFragment.class.getName()));
if (fragment == null) {
fragment = TimeLineFragment.newInstance(accountBean, userBean, token);
getSupportFragmentManager().beginTransaction().add(fragment, TimeLineBaseFragment.class.getName());
}
return fragment;
}
public android.support.v4.app.Fragment getMentionFragment() {
MentionFragment fragment = (MentionFragment) getSupportFragmentManager().findFragmentByTag(MentionFragment.class.getName());
if (fragment == null) {
fragment = MentionFragment.newInstance(accountBean, userBean, token);
getSupportFragmentManager().beginTransaction().add(fragment, MentionFragment.class.getName());
}
return fragment;
}
public android.support.v4.app.Fragment getCommentFragment() {
CommentFragment fragment = (CommentFragment) getSupportFragmentManager().findFragmentByTag(CommentFragment.class.getName());
if (fragment == null) {
fragment = CommentFragment.newInstance(accountBean, userBean, token);
getSupportFragmentManager().beginTransaction().add(fragment, CommentFragment.class.getName());
}
return fragment;
}
private android.support.v4.app.Fragment getFavFragment() {
FavFragment fragment = (FavFragment) getSupportFragmentManager().findFragmentByTag(FavFragment.class.getName());
if (fragment == null) {
fragment = FavFragment.newInstance(accountBean, userBean, token);
getSupportFragmentManager().beginTransaction().add(fragment, FavFragment.class.getName());
}
return fragment;
}
/*private android.support.v4.app.Fragment getSearchFragment() {
SearchFragment fragment = (SearchFragment) getSupportFragmentManager().findFragmentByTag(SearchFragment.class.getName());
if (fragment == null) {
fragment = SearchFragment.newInstance(accountBean, userBean, token);
getSupportFragmentManager().beginTransaction().add(fragment, SearchFragment.class.getName());
}
return fragment;
}*/
public float getToolbarElevation() {
if (Build.VERSION.SDK_INT >= 21) {
return 12.8f;
} else {
return -1;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (mDrawer.isDrawerOpen(mDrawerGravity)) {
mDrawer.closeDrawers();
return false;
} else {
if (!canExit) {
Toast.makeText(GlobalContext.getInstance(), "再按返回键退出", Toast.LENGTH_SHORT).show();
canExit = true;
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
canExit = false;
}
}, 3000);
return false;
} else {
finish();
}
}
}
return super.onKeyDown(keyCode, event);
}
}