package com.bestapp.yikuair.fragments; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.os.Handler; import android.support.v4.app.Fragment; import android.util.Log; import android.view.View; import android.widget.Toast; import com.actionbarsherlock.view.MenuItem; import com.bestapp.yikuair.R; import com.bestapp.yikuair.utils.MessageInfo; import com.bestapp.yikuair.utils.SharedPreferencesUtil; import com.bestapp.yikuair.utils.StringWidthWeightRandom; import com.bestapp.yikuair.utils.UserInfo; import com.slidingmenu.lib.SlidingMenu; import com.slidingmenu.lib.app.SlidingFragmentActivity; public class ResponsiveUIActivity extends SlidingFragmentActivity { public static ResponsiveUIActivity instance = null; private Fragment mContent; private HomeKeyEventBroadCastReceiver receiver = null; private boolean isHomePressed = false; private int backPressedNum = 0; private SharedPreferencesUtil shared; private final static String YIKUAIR_GROUP = "yikuair_group"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e("test", "responsiveUIActivity on create..........."); instance = this; setContentView(R.layout.responsive_content_frame); if (getSupportActionBar() != null) getSupportActionBar().hide(); ClientSocket client = new ClientSocket(this); if (client.socket != null) Log.e("test", "client.socket != null..................."); else Log.e("test", "client.socket == null..................."); // check if the content frame contains the menu frame if (findViewById(R.id.menu_frame) == null) { setBehindContentView(R.layout.menu_frame); getSlidingMenu().setSlidingEnabled(true); getSlidingMenu() .setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE/* TOUCHMODE_FULLSCREEN */); // show home as up so we can toggle if (getSupportActionBar() != null) getSupportActionBar().setDisplayHomeAsUpEnabled(true); } else { // add a dummy view View v = new View(this); setBehindContentView(v); getSlidingMenu().setSlidingEnabled(false); getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE); } // set the Above View Fragment if (savedInstanceState != null) mContent = getSupportFragmentManager().getFragment( savedInstanceState, "mContent"); if (mContent == null) mContent = new MessageFragment()/* BirdGridFragment(0) */; getSupportFragmentManager().beginTransaction() .replace(R.id.content_frame, mContent).commit(); // set the Behind View Fragment getSupportFragmentManager().beginTransaction() .replace(R.id.menu_frame, new MenuFragment()).commit(); // customize the SlidingMenu SlidingMenu sm = getSlidingMenu(); sm.setBehindOffsetRes(R.dimen.slidingmenu_offset); sm.setShadowWidthRes(R.dimen.shadow_width); sm.setShadowDrawable(R.drawable.shadow); sm.setBehindScrollScale(0.25f); sm.setFadeDegree(0.25f); shared = new SharedPreferencesUtil(this); Log.e("test", "userinfo.dbid ::" + UserInfo.db_id); MessageInfo.groupMap = shared.readGroupMapFromShared(UserInfo.db_id + "_" + YIKUAIR_GROUP); } @Override public void onBackPressed() { // super.onBackPressed(); boolean isDel = false; for (int i = 0; i < MessageFragment.messageList.size(); i++) { if (MessageFragment.messageList.get(i).getIsDelShow() == View.VISIBLE) { MessageFragment.messageList.get(i).setIsDelShow(View.GONE); isDel = true; } } MessageFragment.lstAdapter.notifyDataSetChanged(); if (isDel == true) { return; } if (backPressedNum == 0) { backPressedNum++; Toast.makeText(getApplication(), getApplication().getString(R.string.back_press_hint), Toast.LENGTH_SHORT).show(); } else { /* * backPressedNum = 0; Intent intent = new Intent(); * intent.setClass(ResponsiveUIActivity.this, ExitActivity.class); * startActivity(intent); */ UserInfo.isHomePressed = true; ClientSocket client = new ClientSocket(this); client.sendMessage(null, 102, StringWidthWeightRandom.getNextString(), null, null, null, null, null, null, null, null, false); Intent i = new Intent(Intent.ACTION_MAIN); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.addCategory(Intent.CATEGORY_HOME); startActivity(i); } /* * Intent i = new Intent(Intent.ACTION_MAIN); * i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); * i.addCategory(Intent.CATEGORY_HOME); startActivity(i); */} @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: toggle(); } return super.onOptionsItemSelected(item); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); getSupportFragmentManager().putFragment(outState, "mContent", mContent); } public void switchContent(final Fragment fragment) { mContent = fragment; getSupportFragmentManager().beginTransaction() .replace(R.id.content_frame, fragment).commit(); Handler h = new Handler(); h.postDelayed(new Runnable() { public void run() { getSlidingMenu().showContent(); } }, 100); } public void openMainMenu(View v) { toggle(); } @Override public void onStart() { super.onStart(); boolean isFromPush = getIntent().getBooleanExtra("isFromPush", false); if (!isFromPush) isHomePressed = false; if (isHomePressed) { mContent = new MessageFragment() /* BirdGridFragment(0) */; getSupportFragmentManager().beginTransaction() .replace(R.id.content_frame, mContent).commit(); isHomePressed = false; } // 监听home键广播 if (receiver == null) { receiver = new HomeKeyEventBroadCastReceiver(); registerReceiver(receiver, new IntentFilter( Intent.ACTION_CLOSE_SYSTEM_DIALOGS)); } Log.i("test", "ResponsiveUIActivity onStart"); } @Override public void onResume() { super.onResume(); Log.i("test", "ResponsiveUIActivity onResume"); // if (UserInfo.isHomePressed) { // ClientSocket client = new ClientSocket( // ResponsiveUIActivity.this); // client.sendMessage(null, 0, // StringWidthWeightRandom.getNextString(), null, // null, null, null, null, null, null, null, false); // isHomePressed = true; // } } @Override public void onPause() { super.onPause(); Log.i("test", "ResponsiveUIActivity onPause"); } @Override public void onStop() { super.onStop(); SharedPreferencesUtil shared = new SharedPreferencesUtil(this); shared.saveUserInfo(); Log.i("test", "ResponsiveUIActivity onStop"); } @Override protected void onDestroy() { super.onDestroy(); Log.i("test", "ResponsiveUIActivity ondestroy"); if (receiver != null) { unregisterReceiver(receiver); receiver = null; } if (shared == null) shared = new SharedPreferencesUtil(this); shared.saveGroupMaptoShared(MessageInfo.groupMap, UserInfo.db_id + "_" + YIKUAIR_GROUP); } class HomeKeyEventBroadCastReceiver extends BroadcastReceiver { static final String SYSTEM_REASON = "reason"; static final String SYSTEM_HOME_KEY = "homekey";// home key static final String SYSTEM_RECENT_APPS = "recentapps";// long home key @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) { String reason = intent.getStringExtra(SYSTEM_REASON); if (reason != null) { if (reason.equals(SYSTEM_HOME_KEY)) { UserInfo.isHomePressed = true; ClientSocket client = new ClientSocket( ResponsiveUIActivity.this); client.sendMessage(null, 102, StringWidthWeightRandom.getNextString(), null, null, null, null, null, null, null, null, false); isHomePressed = true; Log.e("test", "home键被点击"); SharedPreferencesUtil shared = new SharedPreferencesUtil( ResponsiveUIActivity.this); shared.saveLoginInfo(UserInfo.id, UserInfo.cipher_password); shared.saveUserInfo(); } } } } } public void onBirdPressed(int pos) { /* * Intent intent = BirdActivity.newInstance(this, pos); * startActivity(intent); */ } }