Browse Source

去掉订阅号为空的线

Bitlikr 9 years ago
parent
commit
d6c206b029
19 changed files with 377 additions and 196 deletions
  1. 86 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/ErrorMagDao.java
  2. 7 9
      WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/MissionDao.java
  3. 2 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/TableConstantDao.java
  4. 6 58
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AlarmaActivity.java
  5. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MissionPlanActivity.java
  6. 83 70
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/TestActivity.java
  7. 4 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBOpenHelper.java
  8. 7 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/Constants.java
  9. 2 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/SigninUtil.java
  10. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/alarm/AlarmManage.java
  11. 4 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/alarm/AlarmService.java
  12. 16 8
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/alarm/IAlarmManage.java
  13. 6 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/Subscription2Activity.java
  14. 77 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/view/EmptyRecyclerView.java
  15. 11 7
      WeiChat/src/main/res/layout/activity_subscription2.xml
  16. 20 24
      WeiChat/src/main/res/layout/activity_test.xml
  17. 1 2
      WeiChat/src/main/res/layout/fragment_me.xml
  18. 36 0
      WeiChat/src/main/res/layout/item_error_mag.xml
  19. 7 4
      WeiChat/src/main/res/layout/recycler_empty_view.xml

+ 86 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/ErrorMagDao.java

@@ -0,0 +1,86 @@
+package com.xzjmyk.pm.activity.db.dao;
+
+import android.content.ContentValues;
+import android.database.Cursor;
+import android.database.SQLException;
+import android.database.sqlite.SQLiteDatabase;
+import android.util.Log;
+
+import com.xzjmyk.pm.activity.MyApplication;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.TestActivity;
+import com.xzjmyk.pm.activity.ui.erp.db.DBOpenHelper;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by Bitliker on 2016/12/1.
+ */
+
+public class ErrorMagDao {
+
+    private DBOpenHelper helper = null;
+    private String tibleName = "error_mag";
+
+    public ErrorMagDao() {
+        helper = new DBOpenHelper(MyApplication.getInstance());
+    }
+
+    //获取当天全部数据
+    public List<TestActivity.Bean> queryAll() {
+        SQLiteDatabase db = null;
+        Cursor cursor = null;
+        List<TestActivity.Bean> missions = null;
+        try {
+            db = helper.getReadableDatabase();
+            String[] columns = {"id", "time", "title", "msg"};
+            String selection = null;
+            String[] selecttionArg = null;
+            cursor = db.query(tibleName, columns, selection, selecttionArg, null, null, null);
+            TestActivity.Bean mission = null;
+            missions = new ArrayList<>();
+            while (cursor.moveToNext()) {
+                mission = new TestActivity.Bean();
+                mission.id = cursor.getInt(0);
+                mission.time = cursor.getString(1);
+                mission.title = cursor.getString(2);
+                mission.msg = cursor.getString(3);
+                missions.add(mission);
+            }
+            Log.i("gongpengming", "missions==" + missions.size());
+        } catch (SQLException e) {
+            Log.i("gongpengming", "SQLException=" + e.getMessage());
+        } catch (Exception e) {
+            Log.i("gongpengming", "Exception=" + e.getMessage());
+        } finally {
+            if (db != null)
+                db.close();
+            if (cursor != null)
+                cursor.close();
+            return missions;
+        }
+    }
+
+    //插入一个数据
+    public boolean insert(TestActivity.Bean mission) {
+        SQLiteDatabase db = null;
+        long i = 0;
+        try {
+            db = helper.getWritableDatabase();
+            ContentValues values = new ContentValues();
+            values.put("time", mission.time);
+            values.put("title", mission.title);
+            values.put("msg", mission.msg);
+            i = db.insert(tibleName, null, values);
+            Log.i("gongpengming", "i==" + i);
+        } catch (SQLException e) {
+            Log.i("gongpengming", "SQLException=" + e.getMessage());
+        } catch (Exception e) {
+            Log.i("gongpengming", "Exception=" + e.getMessage());
+        } finally {
+            if (db != null)
+                db.close();
+            return i > 0;
+        }
+    }
+}

+ 7 - 9
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/MissionDao.java → WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/MissionDao.java

@@ -1,8 +1,7 @@
-package com.xzjmyk.pm.activity.ui.erp.adapter;
+package com.xzjmyk.pm.activity.db.dao;
 
 import android.content.ContentValues;
 import android.database.Cursor;
-import android.database.SQLException;
 import android.database.sqlite.SQLiteDatabase;
 import android.util.Log;
 
@@ -29,7 +28,6 @@ public class MissionDao {
 
     public MissionDao() {
         helper = new DBOpenHelper(MyApplication.getInstance());
-
     }
 
     //获取当天全部数据
@@ -65,7 +63,7 @@ public class MissionDao {
                 mission.setStatus(cursor.getInt(8));
                 missions.add(mission);
             }
-        } catch (SQLException e) {
+        } catch (android.database.SQLException e) {
             show("SQLException=" + e.getMessage());
         } catch (Exception e) {
             show("Exception=" + e.getMessage());
@@ -130,7 +128,7 @@ public class MissionDao {
                 show("i====" + i);
             }
             db.setTransactionSuccessful();
-        } catch (SQLException e) {
+        } catch (android.database.SQLException e) {
             show("SQLException=" + e.getMessage());
         } catch (Exception e) {
             show("Exception=" + e.getMessage());
@@ -159,7 +157,7 @@ public class MissionDao {
                 i = db.delete(tibleName, where, whereArg);
             }
             db.setTransactionSuccessful();
-        } catch (SQLException e) {
+        } catch (android.database.SQLException e) {
             show("SQLException=" + e.getMessage());
         } catch (Exception e) {
             show("Exception=" + e.getMessage());
@@ -191,7 +189,7 @@ public class MissionDao {
             String where = "master=? and emcode=? and id=? ";
             String[] whereArgs = {master, emcode, String.valueOf(mission.getId())};
             i = db.update(tibleName, values, where, whereArgs);
-        } catch (SQLException e) {
+        } catch (android.database.SQLException e) {
             show("SQLException=" + e.getMessage());
         } catch (Exception e) {
             show("Exception=" + e.getMessage());
@@ -227,7 +225,7 @@ public class MissionDao {
             values.put("status", 0);
             values.put("date", getDateByString(mission.getVisitTime()));//拜访日期
             i = db.insert(tibleName, null, values);
-        } catch (SQLException e) {
+        } catch (android.database.SQLException e) {
             show("SQLException=" + e.getMessage());
         } catch (Exception e) {
             show("Exception=" + e.getMessage());
@@ -250,4 +248,4 @@ public class MissionDao {
         return TimeUtils.s_long_2_str(TimeUtils.f_str_2_long(date));
     }
 
-}
+}

+ 2 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/TableConstantDao.java

@@ -76,5 +76,6 @@ public class TableConstantDao {
 		return null;
 	}
 
-	
+
+
 }

+ 6 - 58
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AlarmaActivity.java

@@ -4,28 +4,20 @@ import android.annotation.TargetApi;
 import android.content.Intent;
 import android.os.Build;
 import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
 import android.view.View;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
-import com.alibaba.fastjson.JSON;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.oa.SelectBean;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.view.SwitchView;
-import com.xzjmyk.pm.activity.view.crouton.Crouton;
 
 import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -48,26 +40,7 @@ public class AlarmaActivity extends BaseActivity implements View.OnClickListener
     private RelativeLayout ualar_rl;//下班时间
     @ViewInject(R.id.alar_rl)
     private RelativeLayout alar_rl;
-    private boolean isAlarm;//判断是否为提醒
-    private boolean isAuto;//判断是否为自动
-    private String macAddress;
-    private boolean isMe = false;
-
-    private Handler handler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            if (msg.what == 0x10) {
-                String message = msg.getData().getString("result");
-                if (JSON.parseObject(message).containsKey("success") && JSON.parseObject(message).getBoolean("success")) {
-                    isMe = true;
-                }
-            } else {
-                auto_signin_sw.setChecked(false);
-                auto_signin_sw.setIsClickAble(false);
-                CommonUtil.setSharedPreferences(ct, AUTO_SIGNIN, false);
-            }
-        }
-    };
+
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -78,12 +51,8 @@ public class AlarmaActivity extends BaseActivity implements View.OnClickListener
     }
 
     private void initView() {
-        if (getIntent() != null) {
-            macAddress = getIntent().getStringExtra("macAddress");
-        }
-        validatorMac();
-        isAlarm = CommonUtil.getSharedPreferencesBoolean(ct, ALARMA_CLICK, false);
-        isAuto = CommonUtil.getSharedPreferencesBoolean(ct, AUTO_SIGNIN, false);
+        boolean isAlarm = CommonUtil.getSharedPreferencesBoolean(ct, ALARMA_CLICK, false);
+        boolean isAuto = CommonUtil.getSharedPreferencesBoolean(ct, AUTO_SIGNIN, true);
         isalarma_sw.setChecked(isAlarm);
         auto_signin_sw.setChecked(isAuto);
         setTextColor(isAlarm);
@@ -98,24 +67,8 @@ public class AlarmaActivity extends BaseActivity implements View.OnClickListener
 
     }
 
-    private void validatorMac() {
-        if (StringUtils.isEmpty(macAddress)) return;
-        Map<String, Object> param = new HashMap<>();
-        param.put("macAddress", macAddress);
-        String url = CommonUtil.getSharedPreferences(ct, "erp_baseurl") + "mobile/addMobileMac.action";
-        param.put("emcode", CommonUtil.getSharedPreferences(ct, "erp_username"));
-        param.put("master", CommonUtil.getSharedPreferences(ct, "erp_master"));
-        param.put("sessionUser", CommonUtil.getSharedPreferences(ct, "erp_username"));
-        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
-        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
-        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
-        ViewUtil.httpSendRequest(ct, url, param, handler, headers, 0x10, null, null, "get");
-    }
-
-
     @Override
     public void onClick(View view) {
-        if (!isAlarm) return;
         String pre = null;
         String[] time = getResources().getStringArray(R.array.alarm_time);
         int requestCode = 0;
@@ -152,16 +105,11 @@ public class AlarmaActivity extends BaseActivity implements View.OnClickListener
     public void onCheckedChanged(View view, boolean isChecked) {
         switch (view.getId()) {
             case R.id.isalarma_sw:
-                isAlarm = isChecked;
                 CommonUtil.setSharedPreferences(ct, ALARMA_CLICK, isChecked);
                 setTextColor(isChecked);
                 break;
             case R.id.auto_signin_sw:
-                if (isChecked && !isMe) {//不是我的手机
-                    Crouton.makeText(ct, "该设备不是考勤打卡常用设备");
-                    auto_signin_sw.setChecked(false);
-                } else
-                    CommonUtil.setSharedPreferences(ct, AUTO_SIGNIN, isChecked);
+                CommonUtil.setSharedPreferences(ct, AUTO_SIGNIN, isChecked);
                 break;
         }
     }
@@ -198,8 +146,8 @@ public class AlarmaActivity extends BaseActivity implements View.OnClickListener
 
     @TargetApi(Build.VERSION_CODES.HONEYCOMB)
     public void setTextColor(boolean clicked) {
-        tv_alar.setFocusable(clicked);
-        tv_ualar.setFocusable(clicked);
+        alar_rl.setClickable(clicked);
+        ualar_rl.setClickable(clicked);
         if (Build.VERSION.SDK_INT >= 9) {
             if (clicked) {
                 alar_rl.setAlpha(1f);

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MissionPlanActivity.java

@@ -23,8 +23,8 @@ import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.db.dao.MissionDao;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.xzjmyk.pm.activity.ui.erp.adapter.MissionDao;
 import com.xzjmyk.pm.activity.ui.erp.entity.MissionPlanEntity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CodeUtil;

+ 83 - 70
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/TestActivity.java

@@ -1,100 +1,113 @@
 package com.xzjmyk.pm.activity.ui.erp.activity.oa;
 
-import android.content.Intent;
 import android.os.Bundle;
-import android.text.TextUtils;
-import android.util.Log;
+import android.view.LayoutInflater;
 import android.view.View;
-import android.widget.Button;
-import android.widget.EditText;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ListView;
+import android.widget.TextView;
 
-import com.baidu.mapapi.search.core.PoiInfo;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.db.dao.ErrorMagDao;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.xzjmyk.pm.activity.ui.erp.adapter.MissionDao;
-import com.xzjmyk.pm.activity.ui.erp.entity.MissionPlanEntity;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
-import com.xzjmyk.pm.activity.ui.erp.util.SigninUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
-import com.xzjmyk.pm.activity.util.BaiduMapUtil;
 
+import java.util.ArrayList;
 import java.util.List;
 
-public class TestActivity extends BaseActivity {
-    @ViewInject(R.id.seach)
-    EditText seach;
-    @ViewInject(R.id.btn)
-    Button btn;
-    @ViewInject(R.id.btn2)
-    Button btn2;
+public class TestActivity extends BaseActivity implements View.OnClickListener {
+    @ViewInject(R.id.listView)
+    private ListView listView;
+
+    private List<Bean> beans;
+    private ErrorAdaptr adaptr;
+    private Object data;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_test);
         ViewUtils.inject(this);
-        InitView();
+        initEvent();
     }
 
-    private void InitView() {
-        btn.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                if (TextUtils.isEmpty(seach.getText())) return;
-                String str = seach.getText().toString();
-                if (StringUtils.isEmpty(str)) return;
-                Intent intent = new Intent(ct, LocationSearchActivity.class);
-                intent.putExtra("type", 2);
-                intent.putExtra("keyWork", str);
-                intent.putExtra("title", "选择地址");
-                intent.putExtra("single", true);
-                intent.putExtra("resultcode", 0x20);
-                intent.putExtra("resultName", "resultName");
-                startActivityForResult(intent, 0x20);
-            }
-        });
-        btn2.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                MissionDao dao = new MissionDao();
-                List<MissionPlanEntity> list = dao.queryByEnCode();
-                if (ListUtils.isEmpty(list)) {
-                    Log.i("gongpengming", "这个是空的数据表");
-                } else {
-                    for (MissionPlanEntity e : list) {
-                        Log.i("gongpengming", "e=" + e.getCompanyName());
-                    }
-                }
-            }
-        });
-        findViewById(R.id.btn3).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View view) {
-                MissionDao dao = new MissionDao();
-                List<MissionPlanEntity> list = dao.queryByEnCode();
-                if (ListUtils.isEmpty(list)) {
-                    Log.i("gongpengming", "列表是空的");
-                    return;
-                }
-                SigninUtil util = new SigninUtil(list.get(0));
-                util.missionSignin();
-            }
-        });
+    private void initEvent() {
+        adaptr = new ErrorAdaptr();
+        beans = new ArrayList<>();
+        findViewById(R.id.error_list).setOnClickListener(this);
+        findViewById(R.id.test_btn).setOnClickListener(this);
     }
 
     @Override
-    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (data == null) return;
-        if (requestCode == 0x20 && resultCode == 0x20) {
-            PoiInfo info = data.getParcelableExtra("resultName");
+    public void onClick(View view) {
+        switch (view.getId()) {
+            case R.id.error_list:
+                getData();
+                listView.setAdapter(adaptr);
+                adaptr.notifyDataSetChanged();
+                break;
+            case R.id.test_btn:
+                break;
         }
     }
 
-    @Override
-    protected void onDestroy() {
-        BaiduMapUtil.getInstence().onDestroy();
-        super.onDestroy();
+    public void getData() {
+        ErrorMagDao dao = new ErrorMagDao();
+        beans = dao.queryAll();
+    }
+    class ErrorAdaptr extends BaseAdapter {
+        @Override
+        public int getCount() {
+            return ListUtils.isEmpty(beans) ? 0 : beans.size();
+        }
+
+        @Override
+        public Object getItem(int i) {
+            return beans.get(i);
+        }
+
+        @Override
+        public long getItemId(int i) {
+            return i;
+        }
+
+        @Override
+        public View getView(int i, View view, ViewGroup viewGroup) {
+            ViewHoler holer = null;
+            if (view == null) {
+                holer = new ViewHoler();
+                view = LayoutInflater.from(ct).inflate(R.layout.item_error_mag, null);
+                holer.time_tv = (TextView) view.findViewById(R.id.time_tv);
+                holer.title_tv = (TextView) view.findViewById(R.id.title_tv);
+                holer.msg_tv = (TextView) view.findViewById(R.id.msg_tv);
+                view.setTag(holer);
+            } else {
+                holer = (ViewHoler) view.getTag();
+            }
+            holer.time_tv.setText(getNull(beans.get(i).time));
+            holer.title_tv.setText(getNull(beans.get(i).title));
+            holer.msg_tv.setText(getNull(beans.get(i).msg));
+            return view;
+        }
+
+        class ViewHoler {
+            TextView time_tv, title_tv, msg_tv;
+        }
+    }
+
+    public static class Bean {
+        public int id;
+        public String time;
+        public String title;
+        public String msg;
+    }
+
+    private String getNull(String str) {
+        if (StringUtils.isEmpty(str)) return "";
+        return str;
     }
 }

+ 4 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBOpenHelper.java

@@ -13,7 +13,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.Constants;
  */
 public class DBOpenHelper extends SQLiteOpenHelper {
 
-    private static final int DATABASE_VERSION = 60;//数据库版本号(每添加一个表要增加版本号)
+    private static final int DATABASE_VERSION = 61;//数据库版本号(每添加一个表要增加版本号)
     public static String dataBaseName = "erp.db";//数据库名称
     public Context context;
 
@@ -38,6 +38,7 @@ public class DBOpenHelper extends SQLiteOpenHelper {
         db.execSQL(Constants.TABLE_ALL_SUBSCRIPTION);//未订阅列表
         db.execSQL(Constants.TABLE_MY_SUBSCRIPTION);//已订阅列表
         db.execSQL(Constants.TABLE_MISSION);//外勤计划
+        db.execSQL(Constants.ERROR_MESSAGE);//错误信息列表
     }
 
     @Override
@@ -48,9 +49,11 @@ public class DBOpenHelper extends SQLiteOpenHelper {
         db.execSQL("DROP TABLE IF EXISTS B2BMSG");
         db.execSQL("DROP TABLE IF EXISTS Signin");
         db.execSQL("DROP TABLE IF EXISTS SubscriptionMessage");
+        db.execSQL("DROP TABLE IF EXISTS submessage");
         db.execSQL("DROP TABLE IF EXISTS AllSubs");
         db.execSQL("DROP TABLE IF EXISTS MySubs");
         db.execSQL("DROP TABLE IF EXISTS mission");
+        db.execSQL("DROP TABLE IF EXISTS error_mag");
         onCreate(db);
     }
 

+ 7 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/Constants.java

@@ -131,6 +131,13 @@ public class Constants {
             + ")";
 
 
+    //打印错误信息表
+    public static final String ERROR_MESSAGE = "CREATE TABLE error_mag ("
+            + "id integer primary key autoincrement,"
+            + "time varchar(20),"//时间
+            + "title  varchar(20)," //出错位置
+            + "msg  varchar(100)" //出错信息
+            + ")";
     //外勤计划表
     public static final String TABLE_MISSION = "CREATE TABLE mission ("
             + "id integer UNIQUE,"

+ 2 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/SigninUtil.java

@@ -14,11 +14,11 @@ import com.xzjmyk.pm.activity.BdLocationHelper;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.oa.SigninBean;
+import com.xzjmyk.pm.activity.db.dao.MissionDao;
 import com.xzjmyk.pm.activity.db.dao.SigninDao;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.MissionPlanActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.OutSigninOKActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.SigninActivity;
-import com.xzjmyk.pm.activity.ui.erp.adapter.MissionDao;
 import com.xzjmyk.pm.activity.ui.erp.entity.MissionPlanEntity;
 import com.xzjmyk.pm.activity.ui.erp.util.alarm.NotificationManage;
 import com.xzjmyk.pm.activity.util.BaiduMapUtil;
@@ -151,7 +151,7 @@ public class SigninUtil {
         {//TODO 如果是结束该外勤,请求接口判断是否还有外勤计划,如果没有,计算并提示是否会公司进行签到
         } else
             mission.setStatus(1);//打上卡了,进行中
-        MissionDao dao = new MissionDao();
+        MissionDao dao = new  MissionDao();
         boolean saveOk = dao.updataOrCreate(mission);
         if (saveOk)
             getManage().sendNotification(ct, "外勤签到成功", MissionPlanActivity.class);

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/alarm/AlarmManage.java

@@ -77,7 +77,7 @@ public class AlarmManage extends IAlarmManage {
 //            return;
 //        }
         boolean isAlarm = CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), "ALARMA_CLICK", false);//是否自动打卡
-        boolean isAuto = CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), "AUTO_SIGNIN", false);//是否提醒
+        boolean isAuto = CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), "AUTO_SIGNIN", true);//是否提醒
         if (!isAlarm && !isAuto) return -1;
         long time = 0;
         bean = getNextBean();

+ 4 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/alarm/AlarmService.java

@@ -17,8 +17,8 @@ import com.alibaba.fastjson.JSONObject;
 import com.baidu.mapapi.model.LatLng;
 import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.MyApplication;
+import com.xzjmyk.pm.activity.db.dao.MissionDao;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.SigninActivity;
-import com.xzjmyk.pm.activity.ui.erp.adapter.MissionDao;
 import com.xzjmyk.pm.activity.ui.erp.entity.MissionPlanEntity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
@@ -166,6 +166,7 @@ public class AlarmService extends Service {
                         if (isAuto) {
                             MissionPlanEntity mission = getiManage().reckonMission();
                             if (mission != null) {//如果返回不为空,打卡
+                                Log.i("gongpengming", "符合打卡");
                                 map.clear();
                                 map.put("type", 4);
                                 map.put("data", mission);
@@ -216,11 +217,11 @@ public class AlarmService extends Service {
                         break;
                     case 4://自动外勤
                         MissionPlanEntity bean = (MissionPlanEntity) map.get("data");
+                        if (bean!=null)Log.i("gongpengming","不为空");
                         util = new SigninUtil(bean);
                         util.missionSignin();
                         break;
                     case 5://外勤提醒
-
                         break;
                     default:
                         break;
@@ -284,7 +285,7 @@ public class AlarmService extends Service {
 
     //保存到数据库
     private void save2DB(List<MissionPlanEntity> entities) {
-        MissionDao dao = new MissionDao();
+        MissionDao dao = new  MissionDao();
         dao.updataOrCreate(entities);
     }
 

+ 16 - 8
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/alarm/IAlarmManage.java

@@ -5,8 +5,10 @@ import android.util.Log;
 import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.bean.oa.SigninBean;
+import com.xzjmyk.pm.activity.db.dao.ErrorMagDao;
+import com.xzjmyk.pm.activity.db.dao.MissionDao;
 import com.xzjmyk.pm.activity.db.dao.SigninDao;
-import com.xzjmyk.pm.activity.ui.erp.adapter.MissionDao;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.TestActivity;
 import com.xzjmyk.pm.activity.ui.erp.entity.MissionPlanEntity;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
@@ -16,15 +18,12 @@ import com.xzjmyk.pm.activity.util.TimeUtils;
 
 import java.util.List;
 
-import static com.xzjmyk.pm.activity.ui.erp.net.ViewUtil.ct;
-
 /**
  * 关于提醒管理器(1.上班时间内离开办公地点  2.考勤提醒  3.自动签到外勤)
  * <p>
  * Created by Bitliker on 2016/11/18.
  */
 public class IAlarmManage {
-
     /**
      * 计算是否符合自动外勤,返回外勤列表中距离最小的对象,如果不符合,返回空
      * 1.判断进行中的外勤计划,如果离开了签到最后一次,结束该计划
@@ -34,8 +33,8 @@ public class IAlarmManage {
      * @throws ClassCastException
      */
     public MissionPlanEntity reckonMission() throws ClassCastException {
-        int companyDistance = CommonUtil.getSharedPreferencesInt(ct, AppConfig.ALARM_MISSION_DISTANCE, 500);
-        MissionDao dao = new MissionDao();
+        int companyDistance = CommonUtil.getSharedPreferencesInt(MyApplication.getInstance(), AppConfig.ALARM_MISSION_DISTANCE, 500);
+         MissionDao dao = new  MissionDao();
         List<MissionPlanEntity> list = dao.queryByEnCode();
         MissionPlanEntity minBean = null;
         float minDistance = 0;
@@ -47,10 +46,12 @@ public class IAlarmManage {
             //获取当前与目的地的距离
             float distance = Float.valueOf(BaiduMapUtil.getInstence().getDistance(e.getLatLng()));
             if (e.getStatus() == 1 && distance > companyDistance) {//1.判断进行中的外勤计划,如果离开了签到最后一次,结束该计划
+                Log.i("gongpengming", "符合外勤签退");
                 minBean = e;
                 minBean.setStatus(2);//结束该外勤
                 break;
             } else if (distance < companyDistance) { //判断符合自动外勤
+                Log.i("gongpengming", "符合外勤签到");
                 if (minDistance <= 0 || minDistance > distance) {//2.如果第一个不存在,判断获取最近的位置
                     minDistance = distance;
                     minBean = e;
@@ -62,7 +63,7 @@ public class IAlarmManage {
 
     //自动外勤提醒
     public boolean alarmMission() throws ClassCastException {
-        MissionDao dao = new MissionDao();
+       MissionDao dao = new  MissionDao();
         //获取当天外勤计划
         List<MissionPlanEntity> list = dao.queryByEnCode();
         if (ListUtils.isEmpty(list)) {
@@ -86,14 +87,21 @@ public class IAlarmManage {
 //            getManage().sendNotification(MyApplication.getInstance(), R.string.outoff_work, SigninActivity.class);
 //            return;
 //        }
+
         boolean isAlarm = CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), "ALARMA_CLICK", false);//是否自动打卡
-        boolean isAuto = CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), "AUTO_SIGNIN", false);//是否提醒
+        boolean isAuto = CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), "AUTO_SIGNIN", true);//是否提醒
         if (!isAlarm && !isAuto) return -1;
         long time = 0;
         SigninBean bean = getNextBean();
         if (bean == null) return -1;
         if (isAuto) {
             time = getNextWorkAuto(bean);//获取下一次自动上班打卡
+            TestActivity.Bean b = new TestActivity.Bean();
+            b.time = TimeUtils.f_long_2_str(System.currentTimeMillis());
+            b.title = "IAlarmManage";
+            b.msg = "获取下一次自动上班打卡时间为=" + TimeUtils.f_long_2_str(time);
+            ErrorMagDao dao = new ErrorMagDao();
+            dao.insert(b);
             Log.i("gongpengming", "获取下一次自动上班打卡时间为=" + TimeUtils.f_long_2_str(time));
             if (time != 0 && Math.abs(System.currentTimeMillis() - time) <= 60000) {
                 //TODO 符合自动上班打卡

+ 6 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/Subscription2Activity.java

@@ -61,6 +61,8 @@ public class Subscription2Activity extends BaseActivity {
     private String baseUrl;//网址
     private ArrayList<SubMessage> messages;
     private SubscriptionAdapter adapter;
+    private RecycleViewDivider viewDivider;
+    private RecycleViewDivider emptyDivider;
 
     private Handler handler = new Handler() {
         @Override
@@ -99,7 +101,6 @@ public class Subscription2Activity extends BaseActivity {
             }
         }
     };
-    private LinearLayoutManager layoutManager;
 
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
@@ -140,10 +141,11 @@ public class Subscription2Activity extends BaseActivity {
                 loadData(true);
             }
         });
-        layoutManager = new LinearLayoutManager(ct);
+        LinearLayoutManager layoutManager = new LinearLayoutManager(ct);
         recycler.setLayoutManager(layoutManager);
-        recycler.addItemDecoration(new RecycleViewDivider(this, LinearLayout.HORIZONTAL,
-                1,getResources().getColor(R.color.gray_light)));
+        viewDivider = new RecycleViewDivider(this, LinearLayout.HORIZONTAL, 1, getResources().getColor(R.color.gray_light));
+        emptyDivider = new RecycleViewDivider(this, LinearLayout.HORIZONTAL, 0, getResources().getColor(R.color.item_line));
+        recycler.addItemDecoration(emptyDivider);
         adapter = new SubscriptionAdapter();
         DefaultItemAnimator itemAnimator = new DefaultItemAnimator();
         recycler.setItemAnimator(itemAnimator);
@@ -173,7 +175,6 @@ public class Subscription2Activity extends BaseActivity {
             public void click(View view, SubMessage bean, int position) {
                 if (bean == null) bean = (SubMessage) view.getTag();
                 if (bean == null) return;
-                Log.i("gongpengming", "position=" + position);
                 clickItem(bean, position);
             }
         });

+ 77 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/EmptyRecyclerView.java

@@ -0,0 +1,77 @@
+package com.xzjmyk.pm.activity.view;
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.View;
+
+/**
+ * Created by Bitlier
+ */
+public class EmptyRecyclerView extends RecyclerView {
+
+    private View emptyView;
+    private static final String TAG = "hiwhitley";
+
+    final private AdapterDataObserver observer = new AdapterDataObserver() {
+        @Override
+        public void onChanged() {
+            checkIfEmpty();
+        }
+
+        @Override
+        public void onItemRangeInserted(int positionStart, int itemCount) {
+            Log.i(TAG, "onItemRangeInserted" + itemCount);
+            checkIfEmpty();
+        }
+
+        @Override
+        public void onItemRangeRemoved(int positionStart, int itemCount) {
+            checkIfEmpty();
+        }
+    };
+
+    public EmptyRecyclerView(Context context) {
+        super(context);
+    }
+
+    public EmptyRecyclerView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public EmptyRecyclerView(Context context, AttributeSet attrs,
+                             int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    private void checkIfEmpty() {
+        if (emptyView != null && getAdapter() != null) {
+            final boolean emptyViewVisible =
+                    getAdapter().getItemCount() == 0;
+            emptyView.setVisibility(emptyViewVisible ? VISIBLE : GONE);
+            setVisibility(emptyViewVisible ? GONE : VISIBLE);
+        }
+    }
+
+    @Override
+    public void setAdapter(Adapter adapter) {
+        final Adapter oldAdapter = getAdapter();
+        if (oldAdapter != null) {
+            oldAdapter.unregisterAdapterDataObserver(observer);
+        }
+        super.setAdapter(adapter);
+        if (adapter != null) {
+            adapter.registerAdapterDataObserver(observer);
+        }
+
+        checkIfEmpty();
+    }
+
+    public void setEmptyView(View emptyView) {
+        this.emptyView = emptyView;
+        checkIfEmpty();
+    }
+
+
+}

+ 11 - 7
WeiChat/src/main/res/layout/activity_subscription2.xml

@@ -21,13 +21,17 @@
         android:layout_height="match_parent"
         android:layout_above="@id/loading_tv">
 
-        <android.support.v7.widget.RecyclerView
-            android:id="@+id/recycler"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:paddingLeft="@dimen/sub_padding"
-            android:paddingRight="@dimen/sub_padding"
-            />
     </android.support.v4.widget.SwipeRefreshLayout>
 
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/recycler"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentStart="true"
+        android:layout_alignParentTop="true"
+        android:paddingLeft="@dimen/sub_padding"
+        android:paddingRight="@dimen/sub_padding" />
+
+
 </RelativeLayout>

+ 20 - 24
WeiChat/src/main/res/layout/activity_test.xml

@@ -1,39 +1,35 @@
 <?xml version="1.0" encoding="utf-8"?>
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:paddingBottom="@dimen/activity_vertical_margin"
-    android:paddingLeft="@dimen/activity_horizontal_margin"
-    android:paddingRight="@dimen/activity_horizontal_margin"
-    android:paddingTop="@dimen/activity_vertical_margin"
     tools:context="com.xzjmyk.pm.activity.ui.erp.activity.oa.TestActivity">
 
     <LinearLayout
+        android:id="@+id/bottom"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="vertical">
-
-        <EditText
-            android:id="@+id/seach"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:hint="搜索条件" />
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:orientation="horizontal">
 
         <Button
-            android:id="@+id/btn"
-            android:layout_width="wrap_content"
+            android:id="@+id/error_list"
+            android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:text="开始" />
+            android:layout_weight="1"
+            android:text="获取错误列表" />
+
         <Button
-            android:id="@+id/btn2"
-            android:layout_width="wrap_content"
+            android:id="@+id/test_btn"
+            android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:text="开始2" />        <Button
-            android:id="@+id/btn3"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="开始2" />
+            android:layout_weight="1"
+            android:text="测试按钮" />
     </LinearLayout>
 
-</ScrollView>
+    <ListView
+        android:id="@+id/listView"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_above="@id/bottom" />
+</RelativeLayout>

+ 1 - 2
WeiChat/src/main/res/layout/fragment_me.xml

@@ -493,8 +493,7 @@
             android:id="@+id/test_rl"
             style="@style/IMTbleLine_UP_Me"
             android:layout_marginTop="7dp"
-            android:background="@drawable/selector_me_menu_item_bg"
-            android:visibility="gone">
+            android:background="@drawable/selector_me_menu_item_bg">
 
             <TextView
                 android:layout_width="wrap_content"

+ 36 - 0
WeiChat/src/main/res/layout/item_error_mag.xml

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:padding="10dp">
+
+    <TextView
+        android:id="@+id/time_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center"
+        android:text="sssss"
+        android:textColor="@color/text_main"
+        android:textSize="@dimen/text_main" />
+
+    <TextView
+        android:id="@+id/title_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/time_tv"
+        android:gravity="center"
+        android:text="sssss"
+        android:textColor="@color/text_hine"
+        android:textSize="@dimen/text_hine" />
+
+    <TextView
+        android:id="@+id/msg_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/title_tv"
+        android:gravity="center"
+        android:text="sssss"
+        android:textColor="@color/text_hine"
+        android:textSize="@dimen/text_hine" />
+
+</RelativeLayout>

+ 7 - 4
WeiChat/src/main/res/layout/recycler_empty_view.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
+    android:orientation="vertical"
     android:layout_height="match_parent">
 
     <View
@@ -9,6 +10,7 @@
         android:layout_height="200dp" />
 
     <TextView
+        android:id="@+id/tv"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_below="@id/top"
@@ -17,13 +19,14 @@
         android:drawableTop="@drawable/ic_empty"
         android:gravity="center"
         android:text="@string/empty_message"
-        android:textAppearance="?android:attr/textAppearanceMedium"
         android:textColor="@color/gray_light" />
 
 
     <View
         android:layout_width="match_parent"
         android:layout_height="0dp"
-        android:layout_weight="1" />
+        android:layout_weight="1"
+        android:minHeight="200dp"
+      />
 
-</RelativeLayout>
+</LinearLayout>