| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444 |
- package com.xzjmyk.pm.activity.ui;
- import android.Manifest;
- import android.app.Activity;
- import android.app.ActivityManager;
- import android.content.BroadcastReceiver;
- import android.content.ComponentName;
- import android.content.Context;
- import android.content.Intent;
- import android.content.IntentFilter;
- import android.content.ServiceConnection;
- import android.graphics.drawable.BitmapDrawable;
- import android.net.Uri;
- import android.os.Build;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.IBinder;
- import android.os.Message;
- import android.os.PersistableBundle;
- import android.support.v4.app.Fragment;
- import android.support.v4.app.FragmentManager;
- import android.support.v4.app.FragmentTransaction;
- import android.support.v7.widget.LinearLayoutManager;
- import android.support.v7.widget.RecyclerView;
- import android.text.TextUtils;
- import android.util.DisplayMetrics;
- import android.util.Log;
- import android.view.Gravity;
- import android.view.KeyEvent;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.WindowManager;
- import android.view.animation.Animation;
- import android.view.animation.LinearInterpolator;
- import android.view.animation.ScaleAnimation;
- import android.widget.LinearLayout;
- import android.widget.PopupWindow;
- import android.widget.RadioButton;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.android.volley.Response;
- import com.android.volley.VolleyError;
- import com.baidu.android.pushservice.PushConstants;
- import com.baidu.android.pushservice.PushManager;
- import com.baidu.autoupdatesdk.AppUpdateInfo;
- import com.baidu.autoupdatesdk.AppUpdateInfoForInstall;
- import com.baidu.autoupdatesdk.BDAutoUpdateSDK;
- import com.baidu.autoupdatesdk.CPCheckUpdateCallback;
- import com.common.LogUtil;
- import com.common.data.DateFormatUtil;
- import com.common.data.JSONUtil;
- import com.common.data.ListUtils;
- import com.common.data.StringUtil;
- import com.common.preferences.PreferenceUtils;
- import com.common.system.DisplayUtil;
- import com.core.api.wxapi.ApiConfig;
- import com.core.api.wxapi.ApiPlatform;
- import com.core.api.wxapi.ApiUtils;
- import com.core.app.AppConfig;
- import com.core.app.MyApplication;
- import com.core.base.BaseActivity;
- import com.core.broadcast.MsgBroadcast;
- import com.core.dao.SignAutoLogDao;
- import com.core.dao.UserDao;
- import com.core.dao.work.WorkModelDao;
- import com.core.model.CircleMessage;
- import com.core.model.NewFriendMessage;
- import com.core.model.OAConfig;
- import com.core.model.User;
- import com.core.model.WorkModel;
- import com.core.net.NetWorkObservable;
- import com.core.net.http.ViewUtil;
- import com.core.net.http.http.OAHttpHelper;
- import com.core.net.volley.ArrayResult;
- import com.core.net.volley.FastVolley;
- import com.core.net.volley.Result;
- import com.core.net.volley.StringJsonArrayRequest;
- import com.core.utils.CommonInterface;
- import com.core.utils.IntentUtils;
- import com.core.utils.helper.LoginHelper;
- import com.core.xmpp.CoreService;
- import com.core.xmpp.ListenerManager;
- import com.core.xmpp.dao.FriendDao;
- import com.core.xmpp.listener.AuthStateListener;
- import com.core.xmpp.model.SignAutoLogEntity;
- import com.me.network.app.base.HttpCallback;
- import com.me.network.app.base.HttpParams;
- import com.me.network.app.http.HttpRequest;
- import com.me.network.app.http.Method;
- import com.modular.appmessages.presenter.MessagePresenter;
- import com.modular.apptasks.presenter.AutoPresenter;
- import com.modular.apptasks.presenter.SchedulePresenter;
- import com.modular.apptasks.util.AlarmUtil;
- import com.modular.login.activity.LoginActivity;
- import com.uas.appcontact.listener.ImStatusListener;
- import com.uas.appcontact.ui.fragment.ContactsFragment;
- import com.uas.appcontact.ui.fragment.GroupChatFragment;
- import com.uas.appme.other.model.Master;
- import com.uas.appme.pedometer.service.StepService;
- import com.uas.appme.pedometer.utils.StepCountCheckUtil;
- import com.uas.appme.pedometer.utils.StepUtils;
- import com.uas.appme.settings.activity.FeedbackActivity;
- import com.uas.appme.settings.activity.SettingActivity;
- import com.uas.appworks.model.Schedule;
- import com.uas.appworks.model.bean.TimeHelperBean;
- import com.uas.appworks.utils.ScheduleUtils;
- import com.xzjmyk.pm.activity.R;
- import com.xzjmyk.pm.activity.adapter.MainScheduleAdapter;
- import com.xzjmyk.pm.activity.ui.circle.BusinessCircleFragment;
- import com.xzjmyk.pm.activity.ui.erp.fragment.WorkPlatFragment;
- import com.xzjmyk.pm.activity.ui.find.MyFriendFragment;
- import com.xzjmyk.pm.activity.ui.me.MeFragment;
- import com.xzjmyk.pm.activity.ui.me.ScreenListener;
- import com.xzjmyk.pm.activity.ui.message.MessageFragment;
- import com.xzjmyk.pm.activity.ui.tool.WebViewActivity;
- import com.xzjmyk.pm.activity.util.dialog.QSearchPpwindowUtils;
- import com.xzjmyk.pm.activity.util.im.Constants;
- import com.xzjmyk.pm.activity.util.oa.BadgeUtil;
- import com.xzjmyk.pm.activity.util.oa.CommonUtil;
- import com.xzjmyk.pm.activity.view.DivideRadioGroup;
- import java.util.ArrayList;
- import java.util.Calendar;
- import java.util.Collections;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.LinkedHashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.TimeZone;
- import java.util.Timer;
- import java.util.TimerTask;
- import static android.view.View.GONE;
- public class MainActivity extends BaseActivity implements ImStatusListener, NetWorkObservable.NetWorkObserver, MessagePresenter.UnReaderListener, AuthStateListener {
- private static final int LOG_SEND_REQUEST = 17519;
- public static String HASHCODE = "MainActivity";
- public static boolean isUnReadWork; //判断我的空间是否有新内容
- private static final String TAG_MESSAGE = "message";
- private static final String TAG_MY = "myfriend";
- private static final String TAG_NEARBY = "nearby";
- private static final String TAG_GROUP_CHAT = "group_chat";
- private static final String TAG_ME = "me";
- private static final String TAG_BusinessCircle = "my_BusinessCircle";
- /* UserCheck */
- private static final int MSG_USER_CHECK = 0x1;
- // 因为RadioGroup的check方法,会调用onCheckChange两次,用mLastFragment保存最后一次添加的fragment,防止重复add
- // fragment 出错
- private static final int RETRY_CHECK_DELAY_MAX = 30000;// 为成功的情况下,最长30s检测一次
- public static String SIP_DOMAIN = "120.24.211.24";
- public static String SIP_SERVER_HOST = "120.24.211.24";
- public String SIP_USERNAME = "10000072";
- private boolean mBind;
- private CoreService mXmppService;
- private FastVolley mFastVolley;
- //private BusinessCircleFragment mBusinessCircleFragment;
- private ActivityManager mActivityManager;
- // 界面组件
- private DivideRadioGroup mTabRadioGroup;
- /**
- * @注释:主界面Fragment
- */
- private Fragment mLastFragment;
- private MessageFragment mMessageFragment;
- private MyFriendFragment mMyFriendFragment;//我的朋友---相互关注,单项关注,房间
- private WorkPlatFragment mWorksFragment;//工作
- // private WorksFragment mWorksFragment;//工作
- private GroupChatFragment mGroupChatFragment;//群聊
- private MeFragment mMeFragment;//我
- private ContactsFragment mBusinessCircleFragment;
- public static String BAIDU_PUSH = "BAIDUPUSH";
- public static String UU_STEP = "UUSTEP";
- public static String Q_SEARCH = "Q_SEARCH";
- private boolean mXmppBind;
- private CoreService mCoreService;
- private boolean isPause = true;// 界面是否暂停
- private ScreenListener screenListener;//锁屏开屏监听
- private int mRetryCheckDelay = 0;
- public static int UPDATA_LIST = 101;
- public static String NEW_FUNCTION_NOTICE = "NEW_FUNCTION_NOTICE2017_09_26";
- public static String NEW_VERSION_RATING = "NEW_VERSION_RATING"; // 判断是否为新版本弹出评分标志
- private TextView main_tab_three_tv;
- private SignAutoLogDao signAutoLogDao = new SignAutoLogDao();
- private Handler mUserCheckHander = new Handler() {
- public void handleMessage(Message msg) {
- if (msg.what == MSG_USER_CHECK) {
- if (mRetryCheckDelay < RETRY_CHECK_DELAY_MAX) {
- mRetryCheckDelay += 5000;
- }
- mUserCheckHander.removeMessages(RETRY_CHECK_DELAY_MAX);
- doUserCheck();
- }
- if (msg.what == LOG_SEND_REQUEST) {
- String Log_Send_request = msg.getData().getString("result");
- Log.i("Log_Send_request", Log_Send_request + "");
- signAutoLogDao.cleanLocalData(); // 整理本地数据
- try {
- if (!StringUtil.isEmpty(Log_Send_request) &&
- JSON.parseObject(Log_Send_request).containsKey("result") &&
- JSON.parseObject(Log_Send_request).getBoolean("result")) {
- signAutoLogDao.updateCurData(isendEntity); // 将上传的日志状态标为1 ,是本地数据保留本次上传的和产生的
- Toast.makeText(ct, "日志上传成功", Toast.LENGTH_LONG);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- };
- private int mImStatus = AuthStateListener.AUTH_STATE_NOT;
- private List<SignAutoLogEntity> signAutoLogEntity;
- private List<SignAutoLogEntity> isendEntity;
- private Boolean platform;
- private RadioButton main_tab_one, main_tab_two, main_tab_five, main_tab_three;
- private PopupWindow mUpdatePopupWindow;
- private PopupWindow mSchedulePop;
- public int getmImStatus() {
- return mImStatus;
- }
- private ServiceConnection mXmppServiceConnection = new ServiceConnection() {
- @Override
- public void onServiceDisconnected(ComponentName name) {
- mCoreService = null;
- }
- @Override
- public void onServiceConnected(ComponentName name, IBinder service) {
- mCoreService = ((CoreService.CoreServiceBinder) service).getService();
- mImStatus = mCoreService.isAuthenticated() ? AuthStateListener.AUTH_STATE_SUCCESS : AuthStateListener.AUTH_STATE_NOT;
- }
- };
- @Override
- public boolean needCommonToolBar() {
- return false;
- }
- /**
- * 启动返回
- * by gongpm
- */
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if (UPDATA_LIST == requestCode) {
- //TODO 更新
- // if (mBusinessCircleFragment != null) {
- // mBusinessCircleFragment.onResult();
- // }
- } else if (requestCode == 0x11) {
- if (resultCode == 0x12) {
- mTabRadioGroup.check(R.id.main_tab_five);
- }
- }
- }
- int oldERPNum = 0;
- private void initPermission() {
- initPermission(0);
- }
- private void initPermission(int item) {
- Runnable runnable = new Runnable() {
- @Override
- public void run() {
- initPermission(item + 1);
- }
- };
- String permission = null;
- switch (item) {
- case 0:
- permission = Manifest.permission.ACCESS_FINE_LOCATION;
- break;
- case 1:
- permission = Manifest.permission.RECORD_AUDIO;
- break;
- case 2:
- permission = Manifest.permission.WRITE_EXTERNAL_STORAGE;
- break;
- }
- if (item <= 2) {
- requestPermission(permission, runnable, runnable);
- }
- }
- private Animation getImgAnimation(View view) {
- Object tag = view.getTag(R.id.tag_key);
- if (tag != null && tag instanceof ScaleAnimation) {
- ScaleAnimation animation = (ScaleAnimation) tag;
- return animation;
- }
- ScaleAnimation animation = new ScaleAnimation(
- 0.5f, 1.0f, 0.5f, 1.0f,
- Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
- LinearInterpolator lin = new LinearInterpolator();
- animation.setInterpolator(lin);
- animation.setDuration(300);//设置动画持续时间
- // animation.setRepeatCount(-1);//设置重复次数
- animation.setFillAfter(true);//动画执行完后是否停留在执行完的状态
- animation.setStartOffset(0);//执行前的等待时间
- view.setTag(R.id.tag_key, animation);
- return animation;
- }
- private Timer delayTimer;
- private Runnable uiRunnable = new Runnable() {
- @Override
- public void run() {
- if (main_tab_three != null) {
- main_tab_three.startAnimation(getImgAnimation(main_tab_three));
- }
- }
- };
- //进来时候登陆
- public void Login() {
- Master master = new Master();
- master.setMa_function(CommonUtil.getMaster());
- String url = com.core.utils.CommonUtil.getAppBaseUrl(ct) + "mobile/login.action";
- Map<String, Object> params = new HashMap<String, Object>();
- String accountToken = CommonUtil.getSharedPreferences(ct, com.core.app.Constants.CACHE.ACCOUNT_CENTER_TOKEN);
- params.put("token", accountToken);
- params.put("master", CommonUtil.getMaster());
- Message message = new Message();
- LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
- headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
- ViewUtil.httpSendRequest(ct, url, params, mUserCheckHander, headers, 0x12312, message, null, "get");
- }
- private void delay() {
- if (delayTimer == null) {
- delayTimer = new Timer();
- }
- delayTimer.schedule(new TimerTask() {
- @Override
- public void run() {
- OAHttpHelper.getInstance().post(uiRunnable);
- }
- }, 100);
- }
- private void startAnimator(View view) {
- // if (view != null && main_tab_three == view) {
- // delay();
- // } else {
- // view.startAnimation(getImgAnimation(view));
- //
- // }
- view.startAnimation(getImgAnimation(view));
- }
- /**
- * @desc:主页菜单入口
- * @author:Administrator on 2016/1/26 10:03
- */
- private DivideRadioGroup.OnCheckedChangeListener mTabRadioGroupChangeListener = new DivideRadioGroup.OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(DivideRadioGroup group, int checkedId) {
- if (checkedId == R.id.main_tab_one) {
- if (mMessageFragment == null) {
- mMessageFragment = new MessageFragment();
- }
- changeFragment(mMessageFragment, TAG_MESSAGE);//消息
- updateMessageTitle();
- startAnimator(main_tab_one);
- } else if (checkedId == R.id.main_tab_two) {
- if (mBusinessCircleFragment == null) {
- mBusinessCircleFragment = new ContactsFragment();
- }
- changeFragment(mBusinessCircleFragment, TAG_BusinessCircle);//发现
- setTitle(getString(R.string.contact_title));
- startAnimator(main_tab_two);
- } else if (checkedId == R.id.main_tab_three) { //点击工作选项
- if (mWorksFragment == null) {
- mWorksFragment = new WorkPlatFragment();
- }
- changeFragment(mWorksFragment, TAG_NEARBY);
- String role = com.core.utils.CommonUtil.getUserRole();
- if (role.equals("2")) {
- String master_ch = CommonUtil.getSharedPreferences(ct, "Master_ch");
- setTitle(TextUtils.isEmpty(master_ch) ? getString(R.string.work_title) : master_ch);
- } else {
- setTitle(getString(R.string.work_title));
- }
- main_tab_three_tv.setVisibility(View.INVISIBLE);
- PreferenceUtils.putInt(MainActivity.NEW_FUNCTION_NOTICE, 1);
- startAnimator(main_tab_three);
- } else if (checkedId == R.id.main_tab_five) {
- if (mMeFragment == null) {
- mMeFragment = new MeFragment();
- }
- CommonUtil.setSharedPreferences(ct, com.core.app.Constants.NEW_ME_TAG, true);
- changeFragment(mMeFragment, TAG_ME);//我
- setTitle(R.string.me);
- startAnimator(main_tab_five);
- }
- }
- };
- private AppConfig config;
- private String mLoginUserId;
- private void requestMyBusiness() {
- if (config == null) {
- config = MyApplication.getInstance().getConfig();
- }
- if (mLoginUserId == null || mLoginUserId.length() <= 0) {
- mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
- }
- HashMap<String, String> params = new HashMap<String, String>();
- params.put("access_token", MyApplication.getInstance().mAccessToken);
- params.put("pageSize", "1");
- StringJsonArrayRequest<CircleMessage> request = new StringJsonArrayRequest<CircleMessage>(
- config.MSG_LIST, new Response.ErrorListener() {
- @Override
- public void onErrorResponse(VolleyError arg0) {
- }
- }, new StringJsonArrayRequest.Listener<CircleMessage>() {
- @Override
- public void onResponse(ArrayResult<CircleMessage> result) {
- boolean success = Result.defaultParser(ct, result, false);
- if (success) {
- //获取到数据
- try {
- List<CircleMessage> datas = result.getData();
- if (ListUtils.isEmpty(datas)) return;
- long time = datas.get(0).getTime();
- String userId = datas.get(0).getUserId();
- Long oldTime = PreferenceUtils.getLong("TIMEMAIN", -1);
- if (!userId.equals(MyApplication.getInstance().mLoginUser.getUserId()) && oldTime < time) {
- setShowUnRead(true);
- } else {
- setShowUnRead(false);
- }
- } catch (Exception e) {
- }
- } else {
- setShowUnRead(false);
- }
- }
- }, CircleMessage.class, params);
- if (mFastVolley == null) {
- mFastVolley = MyApplication.getInstance().getFastVolley();
- }
- mFastVolley.addDefaultRequest(HASHCODE, request);
- }
- private void setShowUnRead(boolean isUnRead) {
- isUnReadWork = isUnRead;
- if (isUnRead) {
- unWorkReadTV.setVisibility(View.VISIBLE);
- } else if (CommonUtil.getSharedPreferencesBoolean(ct, com.core.app.Constants.NEW_ME_TAG, false)) {
- unWorkReadTV.setVisibility(GONE);
- }
- if (mMeFragment == null) return;
- mMeFragment.setChangerRemain(!isUnRead);
- }
- /***********************
- * 未读数量的更新功能
- *****************/
- private Handler mUnReadHandler = new Handler();
- private TextView mMsgUnReadTv;
- private TextView unWorkReadTV;
- private int mMsgUnReadNum = 0;
- private BroadcastReceiver mUserLogInOutReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
- if (action.equals(LoginHelper.ACTION_LOGIN)) {
- User user = MyApplication.getInstance().mLoginUser;
- Intent startIntent = CoreService.getIntent(MainActivity.this, user.getUserId(), user.getPassword(), user.getNickName());
- startService(startIntent);
- // ToastUtil.showNormalToast(MainActivity.this, "开始Xmpp登陆");
- checkUserDb(user.getUserId());
- mTabRadioGroup.clearCheck();
- mTabRadioGroup.check(R.id.main_tab_one);
- } else if (action.equals(LoginHelper.ACTION_LOGOUT)) {
- try {
- MyApplication.getInstance().mUserStatus = LoginHelper.STATUS_USER_SIMPLE_TELPHONE;
- if (mCoreService != null) {
- mCoreService.logout();
- }
- cancelUserCheckIfExist();
- AlarmUtil.cancelAlarm(AlarmUtil.ID_SCHEDULE, AlarmUtil.ACTION_SCHEDULE);
- startActivity(new Intent(MainActivity.this, LoginActivity.class));
- // mFindRb.setChecked(true);
- MainActivity.this.finish();
- removeNeedUserFragment(false);
- } catch (Exception e) {
- }
- } else if (action.equals(LoginHelper.ACTION_CONFLICT)) {
- // 改变用户状态
- MyApplication.getInstance().mUserStatus = LoginHelper.STATUS_USER_TOKEN_CHANGE;
- mCoreService.logout();
- removeNeedUserFragment(true);
- cancelUserCheckIfExist();
- // 弹出对话框---用户冲突LoginHelper.STATUS_USER_TOKEN_CHANGE
- startActivity(new Intent(MainActivity.this, UserCheckedActivity.class));
- if (Build.VERSION.SDK_INT == Build.VERSION_CODES.HONEYCOMB) {
- mActivityManager.moveTaskToFront(getTaskId(), ActivityManager.MOVE_TASK_WITH_HOME);
- } else if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
- mActivityManager.moveTaskToFront(getTaskId(), ActivityManager.MOVE_TASK_NO_USER_ACTION);
- }
- } else if (action.equals(LoginHelper.ACTION_TOKEN)) { //TOKEN异常
- // 改变用户状态
- MyApplication.getInstance().mUserStatus = LoginHelper.STATUS_USER_TOKEN_CHANGE;
- mCoreService.logout();
- removeNeedUserFragment(true);
- cancelUserCheckIfExist();
- // 弹出对话框---LoginHelper.STATUS_USER_TOKEN_CHANGE=4
- startActivity(new Intent(MainActivity.this, UserCheckedActivity.class));
- if (Build.VERSION.SDK_INT == Build.VERSION_CODES.HONEYCOMB) {
- mActivityManager.moveTaskToFront(getTaskId(), ActivityManager.MOVE_TASK_WITH_HOME);
- } else if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
- mActivityManager.moveTaskToFront(getTaskId(), ActivityManager.MOVE_TASK_NO_USER_ACTION);
- }
- } else if (action.equals(LoginHelper.ACTION_NEED_UPDATE)) {
- // mFindRb.setChecked(true);
- removeNeedUserFragment(true);
- cancelUserCheckIfExist();
- // 弹出对话框
- startActivity(new Intent(MainActivity.this, UserCheckedActivity.class));
- } else if (action.equals(LoginHelper.ACTION_LOGIN_GIVE_UP)) {
- cancelUserCheckIfExist();
- MyApplication.getInstance().mUserStatus = LoginHelper.STATUS_USER_NO_UPDATE;
- mCoreService.logout();
- }
- }
- };
- private boolean mMsgNumNeedUpdate = false;
- private BroadcastReceiver mUpdateUnReadReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- if (!AppConfig.COMPANY) return;
- String action = intent.getAction();
- if (action.equals(MsgBroadcast.ACTION_MSG_NUM_UPDATE)) {
- int operation = intent.getIntExtra(MsgBroadcast.EXTRA_NUM_OPERATION, MsgBroadcast.NUM_ADD);
- int count = intent.getIntExtra(MsgBroadcast.EXTRA_NUM_COUNT, 0);
- mMsgUnReadNum = (operation == MsgBroadcast.NUM_ADD) ? mMsgUnReadNum + count : mMsgUnReadNum - count;
- updateMsgUnReadTv();
- } else if (action.equals(MsgBroadcast.ACTION_MSG_NUM_RESET)) {
- if (isPause) {// 等待恢复的时候更新
- mMsgNumNeedUpdate = true;
- } else {// 立即更新
- initMsgUnReadTips(MyApplication.getInstance().mLoginUser.getUserId());
- }
- } else if (AlarmUtil.ACTION_SCHEDULE.equals(action)) {
- SchedulePresenter.getInstance().startSchedule();
- }
- }
- };
- private ServiceConnection mServiceConnection = new ServiceConnection() {
- @Override
- public void onServiceDisconnected(ComponentName name) {
- mXmppService = null;
- }
- @Override
- public void onServiceConnected(ComponentName name, IBinder service) {
- mXmppService = ((CoreService.CoreServiceBinder) service).getService();
- }
- };
- //TODO 尝试不再activity上处理toolbar
- // @Override
- // public boolean needNavigation() {
- // return false;
- // }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- SIP_USERNAME = MyApplication.getInstance().mLoginUser.getUserId();
- String host = mConfig.MeetingHost;
- SIP_DOMAIN = host == null ? "120.24.211.24" : host;
- SIP_SERVER_HOST = host == null ? "120.24.211.24" : host;
- PushManager.startWork(getApplicationContext(), PushConstants.LOGIN_TYPE_API_KEY,
- CommonUtil.getMetaValue(this, "api_key"));
- int isPush = PreferenceUtils.getInt(MyApplication.getInstance(), com.core.app.Constants.BAIDU_PUSH, 1);
- if (isPush == 0) {
- PushManager.stopWork(this);
- }
- mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
- if (savedInstanceState != null) {
- restoreState(savedInstanceState);
- }
- initView(savedInstanceState);//---
- // 注册网络改变回调
- MyApplication.getInstance().registerNetWorkObserver(this);
- //更新版本已升级到最新版本
- updateVersion();
- // 绑定监听
- ListenerManager.getInstance().addAuthStateChangeListener(this);
- // 注册消息更新广播
- IntentFilter msgIntentFilter = new IntentFilter();
- msgIntentFilter.addAction(MsgBroadcast.ACTION_MSG_NUM_UPDATE);
- msgIntentFilter.addAction(MsgBroadcast.ACTION_MSG_NUM_RESET);
- msgIntentFilter.addAction(AlarmUtil.ACTION_SCHEDULE);
- registerReceiver(mUpdateUnReadReceiver, msgIntentFilter);
- // 注册用户登录状态广播
- registerReceiver(mUserLogInOutReceiver, LoginHelper.getLogInOutActionFilter());
- // 绑定服务
- mXmppBind = bindService(CoreService.getIntent(), mXmppServiceConnection, BIND_AUTO_CREATE);
- // 检查用户的状态,做不同的初始化工作
- User loginUser = MyApplication.getInstance().mLoginUser;
- if (!LoginHelper.isUserValidation(loginUser)) {
- LoginHelper.prepareUser(this);
- }
- if (!MyApplication.getInstance().mUserStatusChecked) {// 用户状态没有检测,那么开始检测
- mUserCheckHander.sendEmptyMessageDelayed(MSG_USER_CHECK, mRetryCheckDelay);
- } else {
- if (MyApplication.getInstance().mUserStatus == LoginHelper.STATUS_USER_VALIDATION) {
- LoginHelper.broadcastLogin(this);
- } else {// 重新检测
- MyApplication.getInstance().mUserStatusChecked = false;
- mUserCheckHander.sendEmptyMessageDelayed(MSG_USER_CHECK, mRetryCheckDelay);
- }
- }
- getScheduleList();
- mBind = bindService(CoreService.getIntent(), mServiceConnection, BIND_AUTO_CREATE);
- screenListener = new ScreenListener(this);
- screenListener.begin(new ScreenListener.ScreenStateListener() {
- @Override
- public void onScreenOn() {
- Log.d("wang", "MainActivity....开屏");
- }
- @Override
- public void onScreenOff() {
- Log.d("wang", "MainActivity....锁屏");
- }
- @Override
- public void onUserPresent() {
- Log.d("wang", "MainActivity....解锁");
- }
- });
- //查询数据库,取出中文名:
- // DBManager dbManager = new DBManager(ct);
- // List<EmployeesEntity> db = dbManager.select_getEmployee(
- // new String[]{CommonUtil.getSharedPreferences(ct, "erp_master"),
- // CommonUtil.getSharedPreferences(ct, "erp_username")}
- // , "whichsys=? and em_code=? ");
- // if (!ListUtils.isEmpty(db)){
- // if (!StringUtil.isEmpty(db.get(0).getEM_NAME())){
- // CommonUtil.setSharedPreferences(ct,"erp_emname",db.get(0).getEM_NAME());
- // }
- // }
- // dbManager.closeDB();
- doHiTask();
- autoPresenter = AutoPresenter.onCreate();
- SchedulePresenter.getInstance().startSchedule();
- CommonInterface.getInstance().loadConfigs(null);
- // startService(new Intent(MainActivity.this, AutoErpService.class));
- LogUtil.d("OnCreate end:" + DateFormatUtil.long2Str(DateFormatUtil.YMD_HMS));
- //初始化面部识别
- com.baidu.aip.excep.utils.FaceConfig.initFace(activity);
- // Login();
- }
- private AutoPresenter autoPresenter;
- private Handler handler = new Handler();
- private Runnable runnable = new MyRunnable();
- private Boolean firstRed = true;
- private void doHiTask() {
- int isUUStep = PreferenceUtils.getInt(MyApplication.getInstance(), MainActivity.UU_STEP);
- if (isUUStep != 0 && StepCountCheckUtil.isSupportStepCountSensor(this)) { // 开启UU运动
- LogUtil.i("userid=" + MyApplication.getInstance().getLoginUserId());
- startService(new Intent(mContext, StepService.class)
- .putExtra("my_userid", MyApplication.getInstance().getLoginUserId())
- .putExtra("token", MyApplication.getInstance().mAccessToken));
- PreferenceUtils.putInt(MainActivity.UU_STEP, 1);
- PushManager.resumeWork(MyApplication.getInstance());
- }
- // doSendSignAutoLog(); // 获取数据库中监控日志上传至服务器操作
- //桌面红点显示逻辑
- if (OAConfig.canShowRed) {
- if (handler == null) {
- handler = new Handler();
- }
- if (runnable == null) {
- runnable = new MyRunnable();
- }
- handler.post(runnable);
- }
- //语音导航 ,目前还未正式开发
- // hiQuickSearch();
- //将本地的UU运动步数更新至服务器
- StepUtils.doSaveLocalStepsToJudgeHttps();
- }
- private void hiQuickSearch() {
- int qs = PreferenceUtils.getInt(MyApplication.getInstance(), MainActivity.Q_SEARCH);
- if (CommonUtil.isReleaseVersion() || MainActivity.class == null || qs == 1) return;
- handler.postDelayed(new Runnable() {
- @Override
- public void run() {
- QSearchPpwindowUtils.qSearchWindows(MainActivity.this);
- }
- }, 4000);
- }
- public class MyRunnable implements Runnable {
- @Override
- public void run() {
- handler.postDelayed(runnable, 5000);
- BadgeUtil.setBadgeCount(getApplicationContext(), mMsgUnReadNum, R.drawable.hongdian);//启动红点显示逻辑
- }
- }
- private PopupWindow mScorePopupWindow;
- private void initScoringWindows() {
- View contentView = LayoutInflater.from(ct).inflate(R.layout.layout_menu_scoring, null);
- DisplayMetrics dm = getResources().getDisplayMetrics();
- int w_screen = dm.widthPixels;
- int h_screen = dm.heightPixels;
- w_screen = DisplayUtil.dip2px(this, 250);
- h_screen = DisplayUtil.dip2px(this, 250);
- mScorePopupWindow = new PopupWindow(contentView, w_screen, h_screen, true);
- mScorePopupWindow.setTouchable(true);
- mScorePopupWindow.setOutsideTouchable(false);
- // 如果不设置PopupWindow的背景,无论是点击外部区域还是Back键都无法dismiss弹框
- mScorePopupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.pop_round_bg));
- // 设置好参数之后再show
- mScorePopupWindow.showAtLocation(contentView, Gravity.CENTER, 0, 0);
- setbg(0.4f);
- contentView.findViewById(R.id.scoring_now_tv).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- try {
- Uri uri = Uri.parse("market://details?id=" + getPackageName());
- Intent intent = new Intent(Intent.ACTION_VIEW, uri);
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- startActivity(intent);
- } catch (Exception e) {
- IntentUtils.webLinks(ct, "http://apk.91.com/Soft/Android/com.xzjmyk.pm.activity-54.html", "UU互联");
- }
- mScorePopupWindow.dismiss();
- }
- });
- contentView.findViewById(R.id.complaints_tv).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(mContext, FeedbackActivity.class);
- intent.putExtra("type", 1);
- intent.putExtra(WebViewActivity.EXTRA_URL, mConfig.help_url);
- intent.putExtra(WebViewActivity.EXTRA_TITLE, getString(R.string.Rated_suggest));
- startActivity(intent);
- mScorePopupWindow.dismiss();
- }
- });
- contentView.findViewById(R.id.no_thanking_tv).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- mScorePopupWindow.dismiss();
- }
- });
- PreferenceUtils.putInt(MainActivity.NEW_VERSION_RATING, 1);
- }
- private void setbg(float alpha) {
- setBackgroundAlpha(this, alpha);
- if (mScorePopupWindow == null) return;
- mScorePopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
- @Override
- public void onDismiss() {
- mScorePopupWindow.dismiss();
- clearBackgroundAlpha();
- }
- });
- }
- private void clearBackgroundAlpha() {
- if (mScorePopupWindow != null && mScorePopupWindow.isShowing()) {
- return;
- }
- if (mUpdatePopupWindow != null && mUpdatePopupWindow.isShowing()) {
- return;
- }
- if (mSchedulePop != null && mSchedulePop.isShowing()) {
- return;
- }
- setBackgroundAlpha(MainActivity.this, 1f);
- }
- /**
- * 获取日程列表
- */
- private void getScheduleList() {
- int cacheDate = CommonUtil.getSharedPreferencesInt(mContext, com.core.app.Constants.CACHE.OBTAIN_SCHEDULE_DATE, 0);
- String currentDate = DateFormatUtil.long2Str("yyyyMMdd");
- int dateInt = Integer.parseInt(currentDate);
- if ((dateInt - cacheDate) >= 1) {
- HttpRequest.getInstance().sendRequest("https://mobile.ubtob.com:8443/",
- new HttpParams.Builder()
- .url("schedule/schedule/getByDaySchedule")
- .method(Method.GET)
- .addParam("imid", MyApplication.getInstance().getLoginUserId())
- .addParam("day", DateFormatUtil.long2Str(System.currentTimeMillis(), DateFormatUtil.YMD))
- .addParam("uasUrl", com.core.utils.CommonUtil.getAppBaseUrl(this))
- .addParam("emcode", com.core.utils.CommonUtil.getEmcode())
- .addParam("master", com.core.utils.CommonUtil.getMaster())
- .addParam("sessionId", com.core.utils.CommonUtil.getSharedPreferences(ct, "sessionId"))
- .build(), new HttpCallback() {
- @Override
- public void onSuccess(int flag, Object o) throws Exception {
- String currentDate = DateFormatUtil.long2Str("yyyyMMdd");
- int dateInt = Integer.parseInt(currentDate);
- CommonUtil.putSharedPreferencesInt(mContext, com.core.app.Constants.CACHE.OBTAIN_SCHEDULE_DATE, dateInt);
- try {
- analysisSchedule(o.toString());
- } catch (Exception e) {
- clearBackgroundAlpha();
- CommonUtil.setSharedPreferences(mContext, com.core.app.Constants.CACHE.OBTAIN_SCHEDULE_DATE, 0);
- Log.e("mainschedule", e.toString());
- }
- }
- @Override
- public void onFail(int flag, String failStr) throws Exception {
- }
- });
- }
- }
- private void initSchedulePop(List<TimeHelperBean> timeHelperBeans) {
- View scheduelView = View.inflate(this, R.layout.pop_main_schedule, null);
- mSchedulePop = new PopupWindow(scheduelView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
- int screenHeigh = getResources().getDisplayMetrics().heightPixels;
- mSchedulePop.setHeight(Math.round(screenHeigh * 0.7f));
- LinearLayout mExitLayout = scheduelView.findViewById(R.id.pop_main_schedule_exit_ll);
- mExitLayout.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- if (mSchedulePop != null) {
- mSchedulePop.dismiss();
- }
- clearBackgroundAlpha();
- }
- });
- RecyclerView recyclerView = (RecyclerView) scheduelView.findViewById(R.id.pop_main_schedule_rv);
- recyclerView.setLayoutManager(new LinearLayoutManager(this));
- MainScheduleAdapter mainScheduleAdapter = new MainScheduleAdapter(timeHelperBeans);
- recyclerView.setAdapter(mainScheduleAdapter);
- mSchedulePop.setAnimationStyle(com.uas.appme.R.style.MenuAnimationFade);
- mSchedulePop.setBackgroundDrawable(new BitmapDrawable());
- mSchedulePop.setOnDismissListener(new PopupWindow.OnDismissListener() {
- @Override
- public void onDismiss() {
- if (mSchedulePop != null) {
- mSchedulePop.dismiss();
- }
- clearBackgroundAlpha();
- }
- });
- mSchedulePop.showAtLocation(getWindow().getDecorView().
- findViewById(android.R.id.content), Gravity.BOTTOM, 0, 0);
- DisplayUtil.backgroundAlpha(MainActivity.this, 0.5f);
- }
- private void analysisSchedule(String result) {
- LogUtil.prinlnLongMsg("mainschedule", result);
- if (JSONUtil.validate(result)) {
- List<TimeHelperBean> timeHelperBeans = new ArrayList<>();
- JSONObject resultObject = JSON.parseObject(result);
- JSONArray dataArray = resultObject.getJSONArray("data");
- if (dataArray != null && dataArray.size() > 0) {
- long currentTimeMillis = System.currentTimeMillis();
- Calendar cal = Calendar.getInstance();
- cal.setTimeZone(TimeZone.getTimeZone("UTC+8"));
- cal.setTime(new Date());
- cal.set(Calendar.HOUR, 0);
- cal.set(Calendar.SECOND, 1);
- cal.set(Calendar.MINUTE, 0);
- cal.set(Calendar.MILLISECOND, 0);
- long startcal = cal.getTimeInMillis();
- long endcal = cal.getTimeInMillis() + 24 * 60 * 60 * 1000;
- List<Schedule> systemSchedule = null;
- try {
- ScheduleUtils.getSystemCalendar(MyApplication.getInstance(), startcal, endcal);
- } catch (Exception e) {
- }
- for (int i = 0; i < dataArray.size(); i++) {
- JSONObject dataObject = dataArray.getJSONObject(i);
- if (dataObject != null) {
- TimeHelperBean timeHelperBean = new TimeHelperBean();
- Object scheduleId = dataObject.get("scheduleId");
- if (scheduleId == null) {
- timeHelperBean.setScheduleId(-1);
- } else {
- timeHelperBean.setScheduleId(JSONUtil.getInt(dataObject, "scheduleId"));
- }
- timeHelperBean.setImid(JSONUtil.getInt(dataObject, "imid"));
- timeHelperBean.setType(JSONUtil.getText(dataObject, "type"));
- timeHelperBean.setAllDay(JSONUtil.getInt(dataObject, "allDay"));
- timeHelperBean.setRepeat(JSONUtil.getText(dataObject, "repeat"));
- timeHelperBean.setTitle(JSONUtil.getText(dataObject, "title"));
- timeHelperBean.setTag(JSONUtil.getText(dataObject, "tag"));
- timeHelperBean.setRemarks(JSONUtil.getText(dataObject, "remarks"));
- String startTime = JSONUtil.getText(dataObject, "startTime");
- timeHelperBean.setStartTime(startTime);
- timeHelperBean.setEndTime(JSONUtil.getText(dataObject, "endTime"));
- timeHelperBean.setWarnTime(JSONUtil.getInt(dataObject, "warnTime"));
- timeHelperBean.setWarnRealTime(JSONUtil.getText(dataObject, "warnRealTime"));
- timeHelperBean.setAddress(JSONUtil.getText(dataObject, "address"));
- timeHelperBean.setStatus(JSONUtil.getInt(dataObject, "status"));
- timeHelperBean.setDetail(JSONUtil.getText(dataObject, "details"));
- int genre = JSONUtil.getInt(dataObject, "genre");
- timeHelperBean.setScheduleType(genre);
- if (genre == 1) {
- timeHelperBean.setFromWhere(Schedule.TYPE_BOOK);
- } else if (genre == 2) {
- timeHelperBean.setFromWhere(Schedule.TYPE_UU);
- }
- timeHelperBeans.add(timeHelperBean);
- if (!ListUtils.isEmpty(systemSchedule)) {
- for (Schedule e : systemSchedule) {
- if (e.getId() == timeHelperBean.getScheduleId()) {
- systemSchedule.remove(e);
- break;
- }
- }
- }
- }
- }
- if (systemSchedule != null) {
- for (int i = 0; i < systemSchedule.size(); i++) {
- Schedule schedule = systemSchedule.get(i);
- TimeHelperBean timeHelperBean = new TimeHelperBean();
- timeHelperBean.setScheduleId(schedule.getId());
- timeHelperBean.setImid(0);
- timeHelperBean.setType(schedule.getType());
- timeHelperBean.setAllDay(schedule.getAllDay());
- timeHelperBean.setRepeat(schedule.getRepeat());
- timeHelperBean.setTitle(schedule.getTitle());
- timeHelperBean.setTag(schedule.getTag());
- timeHelperBean.setRemarks(schedule.getRemarks());
- String startTime = DateFormatUtil.long2Str(schedule.getStartTime(), DateFormatUtil.YMD_HMS);
- timeHelperBean.setStartTime(startTime);
- timeHelperBean.setEndTime(DateFormatUtil.long2Str(schedule.getEndTime(), DateFormatUtil.YMD_HMS));
- timeHelperBean.setWarnTime(schedule.getWarnTime());
- timeHelperBean.setWarnRealTime(DateFormatUtil.long2Str(schedule.getWarnRealTime(), DateFormatUtil.YMD_HMS));
- timeHelperBean.setAddress(schedule.getAddress());
- timeHelperBean.setStatus(0);
- timeHelperBean.setDetail("");
- timeHelperBean.setScheduleType(2);
- timeHelperBean.setFromWhere(Schedule.TYPE_PHONE);
- timeHelperBeans.add(timeHelperBean);
- }
- }
- Collections.sort(timeHelperBeans);
- if (timeHelperBeans.size() != 0) {
- initSchedulePop(timeHelperBeans);
- }
- }
- }
- }
- /**
- * 设置页面的透明度
- * 兼容华为手机(在个别华为手机上 设置透明度会不成功)
- *
- * @param bgAlpha 透明度 1表示不透明
- */
- public void setBackgroundAlpha(Activity activity, float bgAlpha) {
- WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
- lp.alpha = bgAlpha;
- if (bgAlpha == 1) {
- activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//不移除该Flag的话,在有视频的页面上的视频会出现黑屏的bug
- } else {
- activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//此行代码主要是解决在华为手机上半透明效果无效的bug
- }
- activity.getWindow().setAttributes(lp);
- }
- public class MyCPCheckUpdateCallback implements CPCheckUpdateCallback {
- @Override
- public void onCheckUpdateCallback(final AppUpdateInfo info, AppUpdateInfoForInstall infoForInstall) {
- if (infoForInstall != null && !TextUtils.isEmpty(infoForInstall.getInstallPath())) {
- BDAutoUpdateSDK.cpUpdateInstall(getApplicationContext(), infoForInstall.getInstallPath());
- } else if (info != null) {
- mUpdatePopupWindow = SettingActivity.showUpdateVersionPopup(MainActivity.this, info);
- if (mUpdatePopupWindow != null) {
- mUpdatePopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
- @Override
- public void onDismiss() {
- if (mUpdatePopupWindow != null) {
- mUpdatePopupWindow.dismiss();
- }
- clearBackgroundAlpha();
- }
- });
- }
- }
- }
- }
- public void updateVersion() {
- BDAutoUpdateSDK.cpUpdateCheck(this, new MyCPCheckUpdateCallback());
- }
- private void doUserCheck() {
- if (!MyApplication.getInstance().isNetworkActive()) {
- return;
- }
- if (MyApplication.getInstance().mUserStatusChecked) {
- return;
- }
- LoginHelper.checkStatusForUpdate(this, new LoginHelper.OnCheckedFailedListener() {
- @Override
- public void onCheckFailed() {
- mUserCheckHander.sendEmptyMessageDelayed(MSG_USER_CHECK, mRetryCheckDelay);
- }
- });
- }
- private void cancelUserCheckIfExist() {
- mUserCheckHander.removeMessages(RETRY_CHECK_DELAY_MAX);
- cancelAll("checkStatus");
- }
- private void checkUserDb(final String userId) {
- // 检测用户基本数据库信息的完整性
- new Thread(new Runnable() {
- @Override
- public void run() {
- initMsgUnReadTips(userId);
- }
- }).start();
- }
- /* 当注销当前用户时,将那些需要当前用户的Fragment销毁,以后重新登陆后,重新加载为初始状态 */
- private void removeNeedUserFragment(boolean startAgain) {
- FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();// 开始事物
- if (mMessageFragment != null) {
- fragmentTransaction.remove(mMessageFragment);
- }
- if (mMyFriendFragment != null) {
- fragmentTransaction.remove(mMyFriendFragment);
- }
- if (mWorksFragment != null) {
- fragmentTransaction.remove(mWorksFragment);
- }
- if (mGroupChatFragment != null) {
- fragmentTransaction.remove(mGroupChatFragment);
- }
- if (mMeFragment != null) {
- fragmentTransaction.remove(mMeFragment);
- }
- if (mBusinessCircleFragment != null) {
- fragmentTransaction.remove(mBusinessCircleFragment);
- }
- fragmentTransaction.commitAllowingStateLoss();
- mMessageFragment = null;
- mMyFriendFragment = null;
- mWorksFragment = null;
- mGroupChatFragment = null;
- mMeFragment = null;
- mBusinessCircleFragment = null;
- mLastFragment = null;
- initMessageFragment();
- if (startAgain) {
- Intent intent = new Intent(this, MainActivity.class);
- startActivity(intent);
- }
- }
- private void doSendSignAutoLog() {
- signAutoLogEntity = new ArrayList<>();
- isendEntity = new ArrayList<>();
- signAutoLogEntity = signAutoLogDao.getAllDatas();
- if (ListUtils.isEmpty(signAutoLogEntity)) {
- Log.i("fang", "Logdatas为空");
- return;
- }
- LogUtil.prinlnLongMsg("signAutoLogEntity2", JSON.toJSONString(signAutoLogEntity));
- int size = signAutoLogEntity.size();
- for (int i = 0; i < size; i++) {
- if (signAutoLogEntity.get(i).getSendstatus() == 0) { // 状态为0则未发送过到服务器
- // signAutoLogEntity.remove(i);
- isendEntity.add(signAutoLogEntity.get(i));
- }
- if (i == (size - 1)) {
- LogSendToHttp(isendEntity); // 开始发送
- }
- }
- }
- private void LogSendToHttp(List<SignAutoLogEntity> isendEntity) {
- String url = com.core.app.Constants.IM_BASE_URL() + "user/appAutoLog";
- Map<String, Object> param = new HashMap<>();
- param.put("map", JSON.toJSONString(isendEntity));
- LogUtil.prinlnLongMsg("isendEntity", JSON.toJSONString(isendEntity));
- LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
- if (platform) {
- headers.put("Cookie", "JSESSIONID=" + ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().getCookie());
- } else {
- headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
- }
- ViewUtil.httpSendRequest(this, url, param, mUserCheckHander, headers, LOG_SEND_REQUEST, null, null, "post");
- }
- @Override
- protected void onStop() {
- super.onStop();
- }
- private void saveOfflineTime() {
- long time = System.currentTimeMillis() / 1000;//将现在的时间存起来,
- Log.d("wang", "time_destory::" + time + "");
- PreferenceUtils.putLong(this, Constants.OFFLINE_TIME, time);
- MyApplication.getInstance().mLoginUser.setOfflineTime(time);
- UserDao.getInstance().updateUnLineTime(MyApplication.getInstance().mLoginUser.getUserId(), time);
- }
- @Override
- protected void onDestroy() {
- saveOfflineTime();
- MyApplication.getInstance().unregisterNetWorkObserver(this);
- ListenerManager.getInstance().removeAuthStateChangeListener(this);
- if (mBind) {
- // unbindService(mXmppServiceConnection);
- unbindService(mServiceConnection);
- }
- unregisterReceiver(mUpdateUnReadReceiver);
- unregisterReceiver(mUserLogInOutReceiver);
- screenListener.unregisterListener();
- //移除广播接收
- if (autoPresenter != null) {
- autoPresenter.onDestroy();
- }
- super.onDestroy();
- }
- @Override
- public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
- super.onSaveInstanceState(outState, outPersistentState);
- saveOfflineTime();
- }
- private void restoreState(Bundle savedInstanceState) {
- mLastFragment = getSupportFragmentManager().findFragmentById(R.id.main_content);
- mMessageFragment = (MessageFragment) getSupportFragmentManager().findFragmentByTag(TAG_MESSAGE);
- mMyFriendFragment = (MyFriendFragment) getSupportFragmentManager().findFragmentByTag(TAG_MY);
- mWorksFragment = (WorkPlatFragment) getSupportFragmentManager().findFragmentByTag(TAG_NEARBY);
- mGroupChatFragment = (GroupChatFragment) getSupportFragmentManager().findFragmentByTag(TAG_GROUP_CHAT);
- mMeFragment = (MeFragment) getSupportFragmentManager().findFragmentByTag(TAG_ME);
- mBusinessCircleFragment = (ContactsFragment) getSupportFragmentManager().findFragmentByTag(TAG_BusinessCircle);
- }
- /**
- * @desc:RadioGroup设置监听
- * @author:Administrator on 2016/1/27 16:20
- */
- private void initView(Bundle savedInstanceState) {
- mTabRadioGroup = (DivideRadioGroup) findViewById(R.id.mDivideRadioGroup);
- main_tab_one = findViewById(R.id.main_tab_one);
- main_tab_two = findViewById(R.id.main_tab_two);
- main_tab_five = findViewById(R.id.main_tab_five);
- main_tab_three = findViewById(R.id.main_tab_three);
- mTabRadioGroup.setOnCheckedChangeListener(mTabRadioGroupChangeListener);
- if (savedInstanceState == null) {
- initMessageFragment();
- }
- mMsgUnReadTv = (TextView) findViewById(R.id.main_tab_one_tv);
- unWorkReadTV = (TextView) findViewById(R.id.main_tab_five_tv);
- main_tab_three_tv = (TextView) findViewById(R.id.main_tab_three_tv);
- PushManager.resumeWork(MyApplication.getInstance());
- int new_function_notice = PreferenceUtils.getInt(MyApplication.getInstance(), MainActivity.NEW_FUNCTION_NOTICE);
- if (new_function_notice == 1) {
- main_tab_three_tv.setVisibility(View.INVISIBLE);
- } else {
- main_tab_three_tv.setVisibility(View.VISIBLE);
- }
- unWorkReadTV.setVisibility(CommonUtil.getSharedPreferencesBoolean(ct, com.core.app.Constants.NEW_ME_TAG, false) ? View.GONE : View.VISIBLE);
- platform = ApiUtils.getApiModel() instanceof ApiPlatform;
- initPermission();
- }
- private void initMessageFragment() {
- mTabRadioGroup.check(R.id.main_tab_one);
- if (mMessageFragment == null) {
- mMessageFragment = new MessageFragment();
- changeFragment(mMessageFragment, TAG_MESSAGE);
- updateMessageTitle();
- startAnimator(main_tab_one);
- }
- }
- private void changeFragment(Fragment addFragment, String tag) {
- if (mLastFragment == addFragment) {
- return;
- }
- if (addFragment == null) {
- return;
- }
- FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();// 开始事物
- if (mLastFragment != null && mLastFragment != addFragment) {// 如果最后一次加载的不是现在要加载的Fragment,那么僵最后一次加载的移出
- fragmentTransaction.detach(mLastFragment);
- }
- if (!addFragment.isAdded())// 如果还没有添加,就加上
- fragmentTransaction.add(R.id.main_content, addFragment, tag);
- if (addFragment.isDetached())
- fragmentTransaction.attach(addFragment);
- mLastFragment = addFragment;
- //尝试不在activity上使用toolbar
- // if (addFragment == mWorksFragment) {
- // hideToolBar();
- // } else {
- // showToolBar();
- // Toolbar mToolBar = getCommonToolBar();
- // if (mToolBar != null) {
- // if (addFragment == mMessageFragment) {
- // mToolBar.setBackgroundResource(R.drawable.common_toolbar_message_bg);
- // } else {
- // mToolBar.setBackgroundResource(R.drawable.common_toolbar_bg);
- // }
- // }
- // }
- fragmentTransaction.commitAllowingStateLoss();
- }
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_BACK) {
- Intent intent = new Intent(Intent.ACTION_MAIN);
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.addCategory(Intent.CATEGORY_HOME);
- startActivity(intent);
- return true;
- }
- return super.onKeyDown(keyCode, event);
- }
- @Override
- public void onAuthStateChange(int authState) {
- mImStatus = authState;
- if (mTabRadioGroup.getCheckedRadioButtonId() == R.id.main_tab_one) {
- updateMessageTitle();
- }
- }
- /**
- * 更改消息在线不在线的状态
- * msg_online>消息(在线) msg_offline>消息(离线) msg_connect">消息(连接中)
- */
- private void updateMessageTitle() {
- int messageTitle = R.string.msg_online;
- /* if (mImStatus == AuthStateListener.AUTH_STATE_NOT) {
- messageTitle = R.string.msg_offline;
- // mMessageFragment.setNetNoticeVisiable(true);
- } else if (mImStatus == AuthStateListener.AUTH_STATE_ING) {
- messageTitle = R.string.msg_connect;
- } else if (mImStatus == AuthStateListener.AUTH_STATE_SUCCESS) {
- messageTitle = R.string.msg_online;
- // mMessageFragment.setNetNoticeVisiable(false);
- }*/
- if (mMessageFragment != null) {
- mMessageFragment.setTitle(messageTitle);
- }
- }
- @Override
- public void onNetWorkStatusChange(boolean connected) {
- // 当网络状态改变时,判断当前用户的状态,是否需要更新
- if (connected) {
- if (!MyApplication.getInstance().mUserStatusChecked) {
- mRetryCheckDelay = 0;
- mUserCheckHander.sendEmptyMessageDelayed(MSG_USER_CHECK, mRetryCheckDelay);
- }
- }
- }
- @Override
- protected void onResume() {
- super.onResume();
- LogUtil.d("onResume start:" + DateFormatUtil.long2Str(DateFormatUtil.YMD_HMS));
- if (!AppConfig.COMPANY) return;
- isPause = false;
- if (mMsgNumNeedUpdate) {
- initMsgUnReadTips(MyApplication.getInstance().mLoginUser.getUserId());
- }
- requestMyBusiness();
- Runtime.getRuntime().gc();
- int new_function_notice = PreferenceUtils.getInt(MyApplication.getInstance(), MainActivity.NEW_FUNCTION_NOTICE);
- if (new_function_notice == 1) {
- main_tab_three_tv.setVisibility(View.INVISIBLE);
- } else {
- main_tab_three_tv.setVisibility(View.VISIBLE);
- }
- LogUtil.d("onResume end:" + DateFormatUtil.long2Str(DateFormatUtil.YMD_HMS));
- int new_version_rating = PreferenceUtils.getInt(MyApplication.getInstance(), MainActivity.NEW_VERSION_RATING);
- if (new_version_rating != 1 && MyApplication.getInstance().isNetworkActive()) {
- showsScoreWindowJudge(); // 显示为UU评分对话框逻辑
- }
- }
- private void showsScoreWindowJudge() {
- List<WorkModel> models = WorkModelDao.getInstance().query(true);
- if (ListUtils.isEmpty(models)) return;
- String off_time = models.get(models.size() - 1).getOffTime();
- if (StringUtil.isEmpty(off_time)) return;
- String cur_time = DateFormatUtil.long2Str(System.currentTimeMillis(), "HH:mm");
- if (cur_time.compareTo(off_time) > 0) {
- new Handler().postDelayed(new Runnable() { // 下班时间
- @Override
- public void run() {
- initScoringWindows(); // 评价UU弹框
- }
- }, 1000);
- }
- Log.i("off_time,cur_time", off_time + "," + cur_time + ":" + cur_time.compareTo(off_time));
- }
- @Override
- protected void onPause() {
- super.onPause();
- isPause = true;
- }
- private void initMsgUnReadTips(String userId) {// 初始化未读条数
- // 消息未读条数累加
- mMsgUnReadNum = FriendDao.getInstance().getMsgUnReadNumTotal(userId);
- mUnReadHandler.post(new Runnable() {
- @Override
- public void run() {
- updateMsgUnReadTv();
- }
- });
- }
- private void updateMsgUnReadTv() {
- if (mMsgUnReadNum > 0) {
- mMsgUnReadTv.setVisibility(View.VISIBLE);
- String numStr = mMsgUnReadNum >= 99 ? "99+" : mMsgUnReadNum + "";
- mMsgUnReadTv.setText(numStr);
- } else {
- mMsgUnReadTv.setVisibility(View.INVISIBLE);
- }
- }
- public void exitMucChat(String toUserId) {
- if (mCoreService != null) {
- mCoreService.exitMucChat(toUserId);
- }
- }
- public void sendNewFriendMessage(String toUserId, NewFriendMessage message) {
- if (mBind && mXmppService != null) {
- mXmppService.sendNewFriendMessage(toUserId, message);
- }
- }
- /**
- * 获得fragment对象
- *
- * @return
- */
- public BusinessCircleFragment getBusinessCircleFragment() {
- FragmentManager sfmanager = getSupportFragmentManager();
- return (BusinessCircleFragment) sfmanager.findFragmentByTag(TAG_BusinessCircle);
- }
- public void setUnReader(int num) {
- mMsgUnReadNum = mMsgUnReadNum - oldERPNum > 0 ? (mMsgUnReadNum - oldERPNum) : 0;
- mMsgUnReadNum = mMsgUnReadNum + num;
- oldERPNum = num;
- updateMsgUnReadTv();
- }
- }
|