package com.partynetwork.iparty.flipmenu; import com.baidu.android.pushservice.PushConstants; import com.baidu.android.pushservice.PushManager; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; import com.openfire.manager.IMessageListener; import com.partynetwork.dataprovider.util.ApiKeyUtil; import com.partynetwork.dataprovider.util.T; import com.partynetwork.iparty.R; import com.partynetwork.iparty.app.AppConfig; import com.partynetwork.iparty.app.AppContext; import com.partynetwork.iparty.app.common.UIHelper; import com.partynetwork.iparty.app.common.UpdateManager; import com.partynetwork.iparty.app.entities.IMessage; import com.partynetwork.iparty.app.manager.MessageManager; import com.partynetwork.iparty.app.manager.NoticeManager; import com.partynetwork.iparty.app.ui.BaseActivity; import com.partynetwork.iparty.app.ui.GuideActivity; import com.partynetwork.iparty.homepage.HomePage; import com.partynetwork.iparty.imessage.OpenfireConstant; import com.partynetwork.iparty.login.OpenfireLoginTask; import eu.inmite.android.lib.dialogs.ISimpleDialogListener; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.Fragment; /** * 项目的入口类 */ public class Main extends BaseActivity implements ISimpleDialogListener { private Fragment mContent; /* 消息接收监听 */ private IMessageListener messageListener; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); beforeInitMenu(); initSlidingMenu(savedInstanceState); } private void initSlidingMenu(Bundle savedInstanceState) { if (savedInstanceState != null) { mContent = getSupportFragmentManager().getFragment( savedInstanceState, "mContent"); } if (mContent == null) { BaseSlidingPage baseSlidingPage = new HomePage(getSlidingMenu()); messageListener = baseSlidingPage; mContent = baseSlidingPage; } // 内容主体 setContentView(R.layout.menu_content_frame); getSupportFragmentManager().beginTransaction() .replace(R.id.content_frame, mContent).commit(); // 菜单 setBehindContentView(R.layout.menu_menu_frame); getSupportFragmentManager().beginTransaction() .replace(R.id.menu_frame, new FlipMenuPage(getSlidingMenu())) .commit(); getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE); /* // 在任何地方滑动都不会出现菜单 getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE); getSlidingMenu().setShadowWidth(15); getSlidingMenu().setBackgroundColor(Color.WHITE); getSlidingMenu().setShadowDrawable(R.drawable.shadow); getSlidingMenu().setBehindOffset(60); getSlidingMenu().setFadeDegree(0.35f); */ } public void switchContent(BaseSlidingPage fragment) { this.messageListener = fragment; mContent = fragment; getSupportFragmentManager().beginTransaction() .replace(R.id.content_frame, fragment).commit(); getSlidingMenu().showContent(); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); getSupportFragmentManager().putFragment(outState, "mContent", mContent); } /** * 前期准备 */ private void beforeInitMenu() { AppContext appContext = (AppContext) getApplicationContext(); MessageManager.getInstance(appContext).cleanManager(); NoticeManager.getInstance(appContext).cleanManager(); if (appContext.isFirstLogin()) { // 第一次启动 Intent intent = new Intent(this, GuideActivity.class); startActivity(intent); } else if (!appContext.isLogin()) { // 检查是否登陆 UIHelper.showLoginPage(this); } else { // 登陆聊天服务器 System.out.println("刚刚登陆 main.java===="+AppConfig.DB_NAME); OpenfireLoginTask task = new OpenfireLoginTask(this, appContext.getLoginUid() + "", appContext.getLoginInfo() .getPwd()); task.execute(); } // 网络连接判断 if (!appContext.isNetworkConnected()) { T.showLong(this, R.string.network_not_connected); } // 开启百度推送服务 // 以apikey的方式登录,一般放在主Activity的onCreate中 PushManager.startWork(getApplicationContext(), PushConstants.LOGIN_TYPE_API_KEY, ApiKeyUtil.getMetaValue(this, "api_key")); // 检查新版本 if (appContext.isCheckUp()) { UpdateManager.getUpdateManager().checkAppUpdate(this, false); } // 注册消息接收广播 IntentFilter filter = new IntentFilter(); filter.addAction(OpenfireConstant.NEW_MESSAGE_ACTION); registerReceiver(receiver, filter); } public void setMessageListener(IMessageListener messageListener) { this.messageListener = messageListener; } /** * 消息的接收广播 */ private BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (OpenfireConstant.NEW_MESSAGE_ACTION.equals(action)) { IMessage message = intent .getParcelableExtra(IMessage.IMMESSAGE_KEY); if (messageListener != null) { messageListener.msgReceive(message); } } } }; @Override protected void onDestroy() { unregisterReceiver(receiver); super.onDestroy(); } @Override protected void onResume() { super.onResume(); } }