package com.tencent.hq.qq.ui; import java.util.List; import com.tencent.hq.qq.CustomApplcation; import com.tencent.hq.qq.R; import com.tencent.hq.qq.entity.User; import com.tencent.hq.qq.util.CollectionUtils; import com.tencent.hq.qq.widget.HeaderLayout; import com.tencent.hq.qq.widget.HeaderLayout.HeaderStyle; import com.tencent.hq.qq.widget.HeaderLayout.onLeftImageButtonClickListener; import com.tencent.hq.qq.widget.HeaderLayout.onRightImageButtonClickListener; import com.tencent.hq.qq.widget.dialog.DialogTips; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.Log; import android.widget.Toast; import cn.bmob.im.BmobChatManager; import cn.bmob.im.BmobUserManager; import cn.bmob.im.bean.BmobChatUser; import cn.bmob.im.config.BmobConfig; import cn.bmob.v3.listener.FindListener; import cn.bmob.v3.listener.UpdateListener; /** ���� * @ClassName: BaseActivity * @Description: TODO * @author smile * @date 2014-6-13 ����5:05:38 */ public class BaseActivity extends FragmentActivity { BmobUserManager userManager; BmobChatManager manager; CustomApplcation mApplication; protected HeaderLayout mHeaderLayout; protected int mScreenWidth; protected int mScreenHeight; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); userManager = BmobUserManager.getInstance(this); manager = BmobChatManager.getInstance(this); mApplication = CustomApplcation.getInstance(); DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); mScreenWidth = metric.widthPixels; mScreenHeight = metric.heightPixels; } Toast mToast; public void ShowToast(final String text) { if (!TextUtils.isEmpty(text)) { runOnUiThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub if (mToast == null) { mToast = Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG); } else { mToast.setText(text); } mToast.show(); } }); } } public void ShowToast(final int resId) { runOnUiThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub if (mToast == null) { mToast = Toast.makeText(BaseActivity.this.getApplicationContext(), resId, Toast.LENGTH_LONG); } else { mToast.setText(resId); } mToast.show(); } }); } /** ��Log * ShowLog * @return void * @throws */ public void ShowLog(String msg){ Log.i("life",msg); } /** * ֻ��title initTopBarLayoutByTitle * @Title: initTopBarLayoutByTitle * @throws */ public void initTopBarForOnlyTitle(String titleName) { mHeaderLayout = (HeaderLayout)findViewById(R.id.common_actionbar); mHeaderLayout.init(HeaderStyle.DEFAULT_TITLE); mHeaderLayout.setDefaultTitle(titleName); } /** * ��ʼ��������-�����Ұ�ť * @return void * @throws */ public void initTopBarForBoth(String titleName, int rightDrawableId,String text, onRightImageButtonClickListener listener) { mHeaderLayout = (HeaderLayout)findViewById(R.id.common_actionbar); mHeaderLayout.init(HeaderStyle.TITLE_DOUBLE_IMAGEBUTTON); mHeaderLayout.setTitleAndLeftImageButton(titleName, R.drawable.base_action_bar_back_bg_selector, new OnLeftButtonClickListener()); mHeaderLayout.setTitleAndRightButton(titleName, rightDrawableId,text, listener); } public void initTopBarForBoth(String titleName, int rightDrawableId, onRightImageButtonClickListener listener) { mHeaderLayout = (HeaderLayout)findViewById(R.id.common_actionbar); mHeaderLayout.init(HeaderStyle.TITLE_DOUBLE_IMAGEBUTTON); mHeaderLayout.setTitleAndLeftImageButton(titleName, R.drawable.base_action_bar_back_bg_selector, new OnLeftButtonClickListener()); mHeaderLayout.setTitleAndRightImageButton(titleName, rightDrawableId, listener); } /** * ֻ����߰�ť��Title initTopBarLayout * * @throws */ public void initTopBarForLeft(String titleName) { mHeaderLayout = (HeaderLayout)findViewById(R.id.common_actionbar); mHeaderLayout.init(HeaderStyle.TITLE_DOUBLE_IMAGEBUTTON); mHeaderLayout.setTitleAndLeftImageButton(titleName, R.drawable.base_action_bar_back_bg_selector, new OnLeftButtonClickListener()); } /** ��ʾ���ߵĶԻ��� * showOfflineDialog * @return void * @throws */ public void showOfflineDialog(final Context context) { DialogTips dialog = new DialogTips(this,"您的账号已在其他设备上登陆!", "请重新登陆"); dialog.SetOnSuccessListener(new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialogInterface, int userId) { CustomApplcation.getInstance().logout(); startActivity(new Intent(context, LoginActivity.class)); finish(); dialogInterface.dismiss(); } }); // ��ʾȷ�϶Ի��� dialog.show(); dialog = null; } // ��߰�ť�ĵ���¼� public class OnLeftButtonClickListener implements onLeftImageButtonClickListener { @Override public void onClick() { finish(); } } public void startAnimActivity(Class<?> cla) { this.startActivity(new Intent(this, cla)); } public void startAnimActivity(Intent intent) { this.startActivity(intent); } /** ���ڵ�½�����Զ���½����µ��û����ϼ��������ϵļ����� * @Title: updateUserInfos * @Description: TODO * @param * @return void * @throws */ public void updateUserInfos(){ //���µ���λ����Ϣ updateUserLocation(); //��ѯ���û��ĺ����б�(��������б���ȥ������û���Ŷ),Ŀǰ֧�ֵIJ�ѯ���Ѹ���Ϊ100�������޸����ڵ����������ǰ����BmobConfig.LIMIT_CONTACTS���ɡ� //����Ĭ�ϲ�ȡ���ǵ�½�ɹ�֮�󼴽������б�洢����ݿ��У������µ���ǰ�ڴ���, userManager.queryCurrentContactList(new FindListener<BmobChatUser>() { @Override public void onError(int arg0, String arg1) { // TODO Auto-generated method stub if(arg0==BmobConfig.CODE_COMMON_NONE){ ShowLog(arg1); }else{ ShowLog("查询好友列表失败"+arg1); } } @Override public void onSuccess(List<BmobChatUser> arg0) { // TODO Auto-generated method stub // ���浽application�з���Ƚ� CustomApplcation.getInstance().setContactList(CollectionUtils.list2map(arg0)); } }); } /** �����û��ľ�γ����Ϣ * @Title: uploadLocation * @Description: TODO * @param * @return void * @throws */ public void updateUserLocation(){ if(CustomApplcation.lastPoint!=null){ String saveLatitude = mApplication.getLatitude(); String saveLongtitude = mApplication.getLongtitude(); String newLat = String.valueOf(CustomApplcation.lastPoint.getLatitude()); String newLong = String.valueOf(CustomApplcation.lastPoint.getLongitude()); // ShowLog("saveLatitude ="+saveLatitude+",saveLongtitude = "+saveLongtitude); // ShowLog("newLat ="+newLat+",newLong = "+newLong); if(!saveLatitude.equals(newLat)|| !saveLongtitude.equals(newLong)){//ֻ��λ���б仯�͸��µ�ǰλ�ã��ﵽʵʱ���µ�Ŀ�� User u = (User) userManager.getCurrentUser(User.class); final User user = new User(); user.setLocation(CustomApplcation.lastPoint); user.setObjectId(u.getObjectId()); user.update(this,new UpdateListener() { @Override public void onSuccess() { // TODO Auto-generated method stub CustomApplcation.getInstance().setLatitude(String.valueOf(user.getLocation().getLatitude())); CustomApplcation.getInstance().setLongtitude(String.valueOf(user.getLocation().getLongitude())); // ShowLog("��γ�ȸ��³ɹ�"); } @Override public void onFailure(int code, String msg) { // TODO Auto-generated method stub // ShowLog("��γ�ȸ��� ʧ��:"+msg); } }); }else{ // ShowLog("�û�λ��δ�����仯"); } } } }