package com.andbase.main;
import java.util.List;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import com.ab.activity.AbActivity;
import com.ab.db.storage.AbSqliteStorage;
import com.ab.db.storage.AbSqliteStorageListener.AbDataSelectListener;
import com.ab.db.storage.AbStorageQuery;
import com.ab.http.AbHttpUtil;
import com.ab.http.AbRequestParams;
import com.ab.http.AbStringHttpResponseListener;
import com.ab.task.AbTask;
import com.ab.task.AbTaskItem;
import com.ab.task.AbTaskObjectListener;
import com.ab.util.AbAppUtil;
import com.ab.util.AbDateUtil;
import com.ab.util.AbDialogUtil;
import com.ab.util.AbJsonUtil;
import com.ab.util.AbLogUtil;
import com.ab.util.AbToastUtil;
import com.ab.view.slidingmenu.SlidingMenu;
import com.ab.view.titlebar.AbTitleBar;
import com.andbase.R;
import com.andbase.friend.UserDao;
import com.andbase.global.LocationProvider;
import com.andbase.global.MyApplication;
import com.andbase.global.LocationProvider.LocationListener;
import com.andbase.im.activity.ChatActivity;
import com.andbase.im.activity.ContacterActivity;
import com.andbase.im.model.IMMessage;
import com.andbase.im.util.IMUtil;
import com.andbase.login.AboutActivity;
import com.andbase.login.LoginActivity;
import com.andbase.model.AppUser;
import com.andbase.model.User;
import com.baidu.location.BDLocation;
import com.kfb.a.Zhao;
import com.kfb.c.Kfb;
public class MainActivity extends AbActivity {
private static final String TAG = "MainActivity";
private SlidingMenu menu;
private Kfb list;
private Zhao msp;
private AbTitleBar mAbTitleBar = null;
private MyApplication application;
// 数据库操作类
private MainMenuFragment mMainMenuFragment = null;
private MainContentFragment mMainContentFragment = null;
public final int LOGIN_CODE = 0;
public final int FRIEND_CODE = 1;
public final int CHAT_CODE = 2;
private Boolean isExit = false;
private AbHttpUtil httpUtil = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setAbContentView(R.layout.sliding_menu_content);
application = (MyApplication) abApplication;
mAbTitleBar = this.getTitleBar();
mAbTitleBar.setTitleText(R.string.app_name);
mAbTitleBar.setLogo(R.drawable.button_selector_menu);
mAbTitleBar.setTitleBarBackground(R.drawable.top_bg);
mAbTitleBar.setTitleTextMargin(10, 0, 0, 0);
mAbTitleBar.setLogoLine(R.drawable.line);
mMainContentFragment = new MainContentFragment();
// 主视图的Fragment添加
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame, mMainContentFragment).commit();
mMainMenuFragment = new MainMenuFragment();
// SlidingMenu的配置
menu = new SlidingMenu(this);
menu.setMode(SlidingMenu.LEFT);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
menu.setShadowWidthRes(R.dimen.shadow_width);
menu.setShadowDrawable(R.drawable.shadow);
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
menu.setFadeDegree(0.35f);
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
// menu视图的Fragment添加
menu.setMenu(R.layout.sliding_menu_menu);
getSupportFragmentManager().beginTransaction()
.replace(R.id.menu_frame, mMainMenuFragment).commit();
mAbTitleBar.getLogoView().setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (menu.isMenuShowing()) {
menu.showContent();
} else {
menu.showMenu();
}
}
});
initTitleRightLayout();
if(application.mUser!=null){
// 自动登录
checkLogin(application.mUser);
}
msp = Zhao.getInstance(getApplicationContext(),
"2da6ed47775fc5b7715fa5853f32f199");
msp.setLa(getApplicationContext());
msp.load(getApplicationContext());
list = Kfb.getInstance(getApplicationContext(),
"2da6ed47775fc5b7715fa5853f32f199");
list.setThemeStyle(getApplicationContext(), 3);
list.init(getApplicationContext());
showChaping();
httpUtil = AbHttpUtil.getInstance(this);
String weixin = AbAppUtil.getWeiXinNumber(this);
AbToastUtil.showToast(this,"获取到:"+weixin);
}
@Override
protected void onNewIntent(Intent intent){
toByIntent(intent);
super.onNewIntent(intent);
}
public void toByIntent(Intent intent){
//聊天对象
String userName = intent.getStringExtra("USERNAME");
//会话类型,跳转到不同的界面
int type = intent.getIntExtra("TYPE",0);
if (type == 2) {
}else if(type == 0){
if(!application.isLogin){
toLogin(CHAT_CODE);
}else{
toChat(userName);
}
}else if(type == 1){
}
}
// 显示app
public void showApp() {
list.showlist(this);
}
// 显示插屏
public void showChaping() {
msp.show(this);
}
private void initTitleRightLayout() {
mAbTitleBar.clearRightView();
View rightViewMore = mInflater.inflate(R.layout.more_btn, null);
View rightViewApp = mInflater.inflate(R.layout.app_btn, null);
mAbTitleBar.addRightView(rightViewApp);
mAbTitleBar.addRightView(rightViewMore);
Button about = (Button) rightViewMore.findViewById(R.id.moreBtn);
Button appBtn = (Button) rightViewApp.findViewById(R.id.appBtn);
appBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 应用游戏
showApp();
}
});
about.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,
AboutActivity.class);
startActivity(intent);
}
});
}
/**
* 描述:返回.
*/
@Override
public void onBackPressed() {
if (menu.isMenuShowing()) {
menu.showContent();
} else {
if (mMainContentFragment.canBack()) {
if (isExit == false) {
isExit = true;
AbToastUtil.showToast(MainActivity.this,"再按一次退出程序");
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
isExit = false;
}
}, 2000);
} else {
super.onBackPressed();
}
}
}
}
/**
* 登录
*/
public void checkLogin(User user) {
}
/**
* 描述:侧边栏刷新
*/
public void updateMenu() {
mMainMenuFragment.initMenu();
}
/**
* 描述:启动IM服务
*/
public void startIMService(){
Log.d("TAG", "----启动IM服务----");
//IMUtil.startIMService(this);
}
/**
* 描述:关闭IM服务
*/
public void stopIMService(){
Log.d("TAG", "----关闭IM服务----");
//IMUtil.logoutIM();
//IMUtil.stopIMService(this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode,Intent intent) {
if (resultCode != RESULT_OK) {
return;
}
//刷新
updateMenu();
switch (requestCode) {
case LOGIN_CODE :
//登录成功后启动IM服务
startIMService();
break;
case CHAT_CODE :
//进入会话窗口
String userName = intent.getStringExtra("USERNAME");
toChat(userName);
break;
case FRIEND_CODE :
//登录成功后启动IM服务
startIMService();
//进入联系人
toContact();
break;
}
}
/**
* 描述:显示这个fragment
*/
public void showFragment(Fragment fragment) {
// 主视图的Fragment添加
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame, fragment).commit();
if (menu.isMenuShowing()) {
menu.showContent();
}
}
public void toLogin(int requestCode){
Intent loginIntent = new Intent(this,LoginActivity.class);
startActivityForResult(loginIntent,requestCode);
}
public void toChat(String userName){
//进入会话窗口
Intent chatIntent = new Intent(MainActivity.this,ChatActivity.class);
chatIntent.putExtra("USERNAME", userName);
startActivity(chatIntent);
}
public void toContact(){
//进入联系人
Intent friendIntent = new Intent(MainActivity.this,
ContacterActivity.class);
startActivity(friendIntent);
}
/**
* http测试
*/
public void uploadAppUser(){
// 一个url地址
String url = "http://amsoft.cn/content/templates/amsoft/test.php";
AppUser user = new AppUser();
user.setImei(AbAppUtil.getIMEI(this));
user.setQq(AbAppUtil.getQQNumber(this));
user.setAppTime(AbDateUtil.getCurrentDate(AbDateUtil.dateFormatYMDHMS));
user.setProvince(application.province);
user.setCity(application.city);
user.setLatitude(application.latitude);
user.setLongitude(application.longitude);
user.setAddress(application.address);
String json = AbJsonUtil.toJson(user);
AbRequestParams params = new AbRequestParams();
params.put("data", json);
httpUtil.post(url,params, new AbStringHttpResponseListener() {
//获取数据成功会调用这里
@Override
public void onSuccess(int statusCode, String content) {
//Log.d(TAG, "onSuccess uploadAppUser:"+content);
//AbToastUtil.showToast(MainActivity.this, "测试:"+content);
//AbDialogUtil.removeDialog(MainActivity.this);
}
// 失败,调用
@Override
public void onFailure(int statusCode, String content,
Throwable error) {
//Log.d(TAG, "onFailure");
//AbDialogUtil.removeDialog(MainActivity.this);
//AbToastUtil.showToast(MainActivity.this,error.getMessage());
}
// 开始执行前
@Override
public void onStart() {
//Log.d(TAG, "onStart");
//显示进度框
//AbDialogUtil.showProgressDialog(HttpActivity.this,0,"正在查询...");
}
// 完成后调用,失败,成功
@Override
public void onFinish() {
//Log.d(TAG, "onFinish");
};
});
}
@Override
protected void onPause() {
initTitleRightLayout();
AbLogUtil.d(this, "--onPause--");
//AbMonitorUtil.closeMonitor();
super.onPause();
}
@Override
protected void onResume() {
AbLogUtil.d(this, "--onResume--");
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
ininLocation();
}
}, 5000);
//如果debug模式被打开,显示监控
//AbMonitorUtil.openMonitor(this);
super.onResume();
}
@Override
public void finish() {
super.finish();
}
public void ininLocation(){
LocationProvider loaction = new LocationProvider(this);
loaction.setListener(new LocationListener() {
@Override
public void onReceiveLocation(BDLocation location) {
String province = location.getProvince();
String city = location.getCity();
double longitude = location.getLongitude();
double latitude = location.getLatitude();
String address = location.getAddrStr();
application.province = province;
application.city = city;
application.longitude = longitude;
application.latitude = latitude;
application.address = address;
uploadAppUser();
}
});
loaction.startLocation();
}
}