package com.swifty.fillcolor.controller.main;
import android.app.SearchManager;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.support.design.widget.AppBarLayout;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
import com.swifty.fillcolor.MyApplication;
import com.swifty.fillcolor.R;
import com.swifty.fillcolor.broadcast.LoginSuccessBroadcast;
import com.swifty.fillcolor.controller.AppCompatBaseAcitivity;
import com.swifty.fillcolor.factory.MyDialogFactory;
import com.swifty.fillcolor.factory.SharedPreferencesFactory;
import com.swifty.fillcolor.listener.OnLoginSuccessListener;
import com.swifty.fillcolor.model.bean.UserBean;
import com.swifty.fillcolor.receiver.UserLoginReceiver;
import com.swifty.fillcolor.util.CommentUtil;
import com.swifty.fillcolor.util.L;
import com.swifty.fillcolor.util.SNSUtil;
import com.swifty.fillcolor.util.UmengLoginUtil;
import com.swifty.fillcolor.util.UmengUtil;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Swifty.Wang on 2015/7/31.
*/
public class MainActivity extends AppCompatBaseAcitivity {
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
private SectionsPagerAdapter sectionsPagerAdapter;
private long exitTime;
UserLoginReceiver receiver;
IntentFilter filter;
public static MenuItem logout;
MyDialogFactory myDialogFactory;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle(R.string.app_name);
UmengUtil.pushNotification(this);
//autoLogin();
initViews();
showMarketCommentDialog();
receiver = new UserLoginReceiver();
filter = new IntentFilter();
filter.addAction("userLoginAction");
}
private void autoLogin() {
MyApplication.userToken = SharedPreferencesFactory.grabString(this, SharedPreferencesFactory.USERSESSION);
L.e(MyApplication.userToken);
if (MyApplication.userToken != null && !MyApplication.userToken.isEmpty()) {
Toast.makeText(this, getString(R.string.loginbg), Toast.LENGTH_SHORT).show();
UmengLoginUtil.getInstance().serverBackgroundLogin(new OnLoginSuccessListener() {
@Override
public void onLoginSuccess(UserBean userBean) {
if (userBean != null && userBean.getUsers() != null)
LoginSuccessBroadcast.getInstance().sendBroadcast(MainActivity.this);
}
});
}
}
private void showMarketCommentDialog() {
if (Math.random() < 0.15 && SharedPreferencesFactory.getBoolean(this, SharedPreferencesFactory.CommentEnableKey)) {
myDialogFactory.showCommentDialog();
} else if (Math.random() > 0.15 && Math.random() < 0.25 && SharedPreferencesFactory.getBoolean(this, SharedPreferencesFactory.AddQQGroupEnable)) {
myDialogFactory.showAddQQgroup();
}
}
private void initViews() {
setContentView(R.layout.activity_main);
myDialogFactory = new MyDialogFactory(this);
appBarLayout = (AppBarLayout) findViewById(R.id.appBarLayout);
tabLayout = (TabLayout) findViewById(R.id.tabs);
viewPager = (ViewPager) findViewById(R.id.viewpager);
toolbar = (Toolbar) findViewById(R.id.toolbar);
List<String> tabs = new ArrayList<String>();
tabs.add(getString(R.string.themelist));
// tabs.add(getString(R.string.imagewall));
tabs.add(getString(R.string.userlogin));
sectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager(), tabs);
//initial all fragment
sectionsPagerAdapter.destroyAllFragment();
viewPager.setAdapter(sectionsPagerAdapter);
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if (position == 1) {
//showFirstTimeLoginDialog();
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
tabLayout.setupWithViewPager(viewPager);
tabLayout.getTabAt(0).setIcon(R.drawable.ic_collections_white_24dp);
// tabLayout.getTabAt(1).setIcon(R.drawable.ic_wallpaper_white_24dp);
tabLayout.getTabAt(1).setIcon(R.drawable.ic_face_white_24dp);
toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
setSupportActionBar(toolbar);
}
}
private void showFirstTimeLoginDialog() {
if (MyApplication.user == null && SharedPreferencesFactory.getBoolean(this, SharedPreferencesFactory.IsFirstTimeShowLoginDialog, true)) {
myDialogFactory.showFirstTimeLoginDialog(new OnLoginSuccessListener() {
@Override
public void onLoginSuccess(UserBean userBean) {
UmengLoginUtil.getInstance().loginSuccessEvent(MainActivity.this, userBean, myDialogFactory);
}
});
SharedPreferencesFactory.saveBoolean(this, SharedPreferencesFactory.IsFirstTimeShowLoginDialog, false);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
// Associate searchable configuration with the SearchView
SearchManager searchManager =
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView;
searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchView.setQueryHint(getString(R.string.action_search));
searchView.setSearchableInfo(
searchManager.getSearchableInfo(getComponentName()));
searchView.setOnSearchClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewPager.setCurrentItem(0);
}
});
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
ThemeListFragment.getInstance().filterData(newText);
return true;
}
});
logout = menu.findItem(R.id.action_logout);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_share) {
SNSUtil.shareApp(this);
} else if (id == R.id.action_comment) {
CommentUtil.commentApp(this);
} else if (id == R.id.about) {
myDialogFactory.showAboutDialog();
} else if (id == R.id.action_setting) {
myDialogFactory.showSettingDialog();
} else if (id == R.id.action_logout) {
UmengLoginUtil.getInstance().logout(this);
}
return super.onOptionsItemSelected(item);
}
@Override
public void onBackPressed() {
if ((System.currentTimeMillis() - exitTime) > 2000) {
Toast.makeText(this, getString(R.string.pleasepressexit), Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
finish();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UmengLoginUtil.getInstance().onActivityResult(requestCode, resultCode, data);
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
registerReceiver(receiver, filter);
}
@Override
protected void onPause() {
super.onPause();
//unregisterReceiver(receiver);
}
}