package org.pccpa;
import java.util.ArrayList;
import java.util.List;
import org.pccpa.api.Client;
import org.pccpa.api.Contact;
import android.R.string;
import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.OnNavigationListener;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.Window;
import com.kull.android.ContextHelper;
public class BaseFragmentActivity extends SherlockFragmentActivity implements OnNavigationListener {
protected ContextHelper contextHelper;
protected static int NAV_POSITION=0;
protected static boolean IS_POSTBACK=false;
@Override
protected void onCreate(Bundle arg0) {
// TODO Auto-generated method stub
CloseActivityClass.activityList.add(this);
IS_POSTBACK=false;
super.onCreate(arg0);
requestWindowFeature(Window.FEATURE_PROGRESS|Window.FEATURE_CONTEXT_MENU);
setTheme(R.style.Theme_Sherlock_Light);
ActionBar actionBar=getSupportActionBar();
//actionBar.setDisplayShowTitleEnabled(false);
Contact curContact=Client.CURR_CLIENT.getContact();
String title=curContact.getEUserName()
,subtitle=curContact.getAreaName()+" "+curContact.getDepartName();
actionBar.setTitle(title);
actionBar.setSubtitle(subtitle);
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setIcon(R.drawable.ic_pccpa);
initActionBar(this, actionBar);
contextHelper=new ContextHelper(this);
}
public static void initActionBar(OnNavigationListener c,ActionBar actionBar){
Context context = actionBar.getThemedContext();
ArrayAdapter<CharSequence> list = ArrayAdapter.createFromResource(context, R.array.menus, R.layout.sherlock_spinner_item);
//ActionBar actionBar=getSupportActionBar();
list.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
actionBar.setListNavigationCallbacks(list, c);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setSelectedNavigationItem(NAV_POSITION);
}
/*
* (non-Javadoc)
* @see com.actionbarsherlock.app.ActionBar.OnNavigationListener#onNavigationItemSelected(int, long)
<item>��ҳ</item>
<item>��������</item>
<item>ͨѶ¼</item>
<item>ϵͳ����</item>
<item>ע���û�</item>
<item>����</item>
*/
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
// TODO Auto-generated method stub
if(!IS_POSTBACK){
IS_POSTBACK=true;
return false;
}
NAV_POSITION=itemPosition;
switch (itemPosition) {
case 0:
//contextHelper.to(RemindActivity.class);
contextHelper.to(ContactActivity.class);
break;
case 1:
contextHelper.to(RemindActivity.class);
break;
case 2:
contextHelper.to(InnerMsgActivity.class);
break;
case 3:
contextHelper.to(SettingActivity.class);
break;
case 4:
contextHelper.to(AboutActivity.class);
break;
case 5:
Client.CURR_CLIENT=null;
contextHelper.to(LoginActivity.class);
break;
case 6:
contextHelper.to(AboutActivity.class);
break;
case 7:
//CloseActivityClass.exitClient(this);
//android.os.Process.killProcess(android.os.Process.myPid());
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startMain.putExtra("action", "quit");
startActivity(startMain);
System.exit(0);//�˳�����
break;
default:
break;
}
IS_POSTBACK=true;
return true;
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
SQLiteDatabase.releaseMemory();
}
public static class CloseActivityClass{
public static List<Activity> activityList = new ArrayList<Activity>();
/*
* @param context ������
*/
public static void exitClient(Context context){
// �ر�����Activity
for (int i = 0; i < activityList.size(); i++) {
if (null != activityList.get(i)){
activityList.get(i).finish();
}
}
ActivityManager activityMgr= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE );
activityMgr.restartPackage(context.getPackageName());
System.exit(0);
}
}
}