Browse Source

自动打卡界面

FANGLH 9 years ago
parent
commit
ed0c08a23b

+ 1 - 1
WeiChat/build.gradle

@@ -1,6 +1,6 @@
 apply plugin: 'com.android.application'
 apply plugin: 'com.getkeepsafe.dexcount'
-
+compile project(':leakcanary')
 android {
 
     lintOptions {

+ 6 - 0
WeiChat/src/main/AndroidManifest.xml

@@ -360,6 +360,7 @@
         </receiver>
         <!-- oA模块提醒功能本地推送 -->
         <receiver android:name=".ui.erp.activity.oa.AlarmReceiver" />
+
         <!-- Push服务接收客户端发送的各种请求 -->
         <receiver
             android:name="com.baidu.android.pushservice.RegistrationReceiver"
@@ -575,6 +576,11 @@
             android:name=".ui.erp.activity.oa.AlarmaActivity"
             android:label="签到提醒"
             android:theme="@style/OAThemeSignin" />
+
+        <activity
+            android:name=".ui.erp.activity.oa.Sign_remindActivity"
+            android:label="签到提醒"
+            android:theme="@style/OAThemeSignin" />
         <activity
             android:name=".ui.erp.activity.oa.MeetingActivity"
             android:label="会议管理"

+ 1 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/MyApplication.java

@@ -68,6 +68,7 @@ public class MyApplication extends Application {
         super.onCreate();
         //Stetho调试工具初始化
         Stetho.initializeWithDefaults(this);
+
         INSTANCE = this;
         ZXingLibrary.initDisplayOpinion(this);
         mRequestQueue = Volley.newRequestQueue(this);

+ 10 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/DbfindList2Activity.java

@@ -18,7 +18,7 @@ import android.widget.CheckBox;
 import android.widget.ImageView;
 import android.widget.ListView;
 import android.widget.TextView;
-import android.widget.Toast;
+
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -28,6 +28,7 @@ import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.helper.AvatarHelper;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.model.Employee;
 import com.xzjmyk.pm.activity.ui.erp.model.Employees;
@@ -295,7 +296,7 @@ public class DbfindList2Activity extends BaseActivity{
             ViewHolder holder = null;
             if (view == null) {
                 holder = new ViewHolder();
-                view = LayoutInflater.from(ct).inflate(R.layout.meet_select_item, null);
+                view = LayoutInflater.from(ct).inflate(R.layout.business_distribution_item, null);
                 holder.select_scb = (CheckBox) view.findViewById(R.id.select_scb);
                 holder.id_tv = (TextView) view.findViewById(R.id.id_tv);
                 holder.name_tv = (TextView) view.findViewById(R.id.name_tv);
@@ -309,7 +310,12 @@ public class DbfindList2Activity extends BaseActivity{
             holder.select_scb.setClickable(false);
             String str = (StringUtils.isEmpty(users.get(i).getEm_position()) ? "" : (" | " + users.get(i).getEm_position()));
             holder.id_tv.setText(users.get(i).getEm_depart() + str);
-            holder.name_tv.setText( users.get(i).getEm_name());
+            holder.name_tv.setText(users.get(i).getEm_name());
+            if (users.get(i).getEm_id() == 0){
+                holder.head_img.setImageResource(com.xzjmyk.pm.activity.R.drawable.avatar_normal);
+            }else {
+                AvatarHelper.getInstance().display(users.get(i).getEm_id() + "", holder.head_img, true, true);
+            }
             return view;
         }
 
@@ -352,7 +358,7 @@ public class DbfindList2Activity extends BaseActivity{
             DbfindList2Activity.this.finish();
             finish();
         }else {
-            ToastMessage("请选择分配对象");
+            ToastMessage("请选择分配人员");
         }
 
     }

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

@@ -28,7 +28,7 @@ import java.util.regex.Pattern;
  * AlarmReceiver
  */
 public class AlarmReceiver extends BroadcastReceiver {
-    private long newTime = System.currentTimeMillis();//当前时间(先取网络时间取本地时间)
+    private long newTime = System.currentTimeMillis();//当前时间(先取网络时间取本地时间)
     private Context ct;
 
     @Override
@@ -160,4 +160,5 @@ public class AlarmReceiver extends BroadcastReceiver {
         calendar.setTimeInMillis(time);
         alarm.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), PendingIntent.getBroadcast(ct, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
     }
+
 }

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

@@ -8,6 +8,7 @@ import android.os.Bundle;
 import android.support.v7.app.AlertDialog;
 import android.view.View;
 import android.widget.EditText;
+import android.widget.Switch;
 import android.widget.TextView;
 
 import com.lidroid.xutils.ViewUtils;
@@ -32,6 +33,8 @@ import java.util.regex.Pattern;
 public class AlarmaActivity extends BaseActivity implements View.OnClickListener {
     @ViewInject(R.id.isalarma_sw)
     private SwitchView isalarma_sw;
+    @ViewInject(R.id.autopunch_sw)
+    private Switch autopunch_sw;
     @ViewInject(R.id.editText)
     private EditText editText;
     @ViewInject(R.id.editText2)
@@ -67,6 +70,7 @@ public class AlarmaActivity extends BaseActivity implements View.OnClickListener
         isalarma_sw.setChecked(isClick);
         String uDateTime = CommonUtil.getSharedPreferences(ct, KEY_ALAR_TIME);
         String dDateTime = CommonUtil.getSharedPreferences(ct, KEY_UALAR_TIME);
+
         if (uDateTime == null) {
             uDateTime = "提前5分钟";
             CommonUtil.setSharedPreferences(ct, KEY_ALAR_TIME, uDateTime);
@@ -80,6 +84,8 @@ public class AlarmaActivity extends BaseActivity implements View.OnClickListener
         if (isClick) {
             startThread(isClick);
         }
+        //isalarma_sw.setOnCheckedChangeListener(listener);
+       // autopunch_sw.setOnCheckedChangeListener(listener);
         isalarma_sw.setOnCheckedChangeListener(new SwitchView.OnCheckedChangeListener() {
             @Override
             public void onCheckedChanged(View view, boolean isChecked) {
@@ -89,7 +95,25 @@ public class AlarmaActivity extends BaseActivity implements View.OnClickListener
             }
         });
     }
+/*SwitchView.OnCheckedChangeListener listener =
+        new SwitchView.OnCheckedChangeListener(){
+    @Override
+    public void onCheckedChanged(View view, boolean isChecked) {
+        switch (view.getId()){
+            case isalarma_sw:
+                CommonUtil.putSharedPreferencesBoolean(ct, ALARMA_CLICK, isChecked);
+                isClick = isChecked;
+                startThread(isChecked);
 
+                break;
+            case autopunch_sw:
+
+                break;
+            default:
+
+        }
+    }
+};*/
     private void startThread(final boolean isChecked) {
         if (isChecked) {
             unArmmanager();

+ 275 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/Sign_remindActivity.java

@@ -0,0 +1,275 @@
+package com.xzjmyk.pm.activity.ui.erp.activity.oa;
+
+import android.app.AlarmManager;
+import android.app.PendingIntent;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v7.app.AlertDialog;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.Switch;
+import android.widget.TextView;
+
+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.SigninBean;
+import com.xzjmyk.pm.activity.db.dao.SigninDao;
+import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
+import com.xzjmyk.pm.activity.ui.erp.view.SwitchView;
+import com.xzjmyk.pm.activity.util.TimeUtils;
+import com.xzjmyk.pm.activity.view.crouton.Crouton;
+
+import java.util.Calendar;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+//签到提醒
+public class Sign_remindActivity extends BaseActivity implements View.OnClickListener {
+    @ViewInject(R.id.isalarma_sw)
+    private SwitchView isalarma_sw;
+    @ViewInject(R.id.autopunch_sw)
+    private SwitchView autopunch_sw;
+    @ViewInject(R.id.editText)
+    private EditText editText;
+    @ViewInject(R.id.editText2)
+    private EditText editText2;
+    @ViewInject(R.id.tv_alar)
+    private TextView tv_alar;//上班时间
+    @ViewInject(R.id.tv_ualar)
+    private TextView tv_ualar;//下班时间
+    private boolean isClick;//判断是否为提醒
+    private boolean isAutoClick;//判断是否自动打卡
+    private Sign_remindActivity ct;
+    private static String ALARMA_CLICK = "ALARMA_CLICK";//判断是否选中
+    private static String AUTO_PUNCH = "AUTO_PUNCH";//是否开启自动打卡//
+    public static String KEY_ALAR_TIME = "KEY_ALAR_TIME";
+    public static String KEY_UALAR_TIME = "KEY_UALAR_TIME";
+    private long newTime = System.currentTimeMillis();//当前时间(先取网络时间再取本地时间)
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_oa__alarma);
+        ViewUtils.inject(this);
+        ct = this;
+        initView();
+    }
+
+    private void initView() {
+        //测试使用
+        editText.setVisibility(View.GONE);
+        editText2.setVisibility(View.GONE);
+        //初始化界面显示时间
+        tv_alar.setOnClickListener(this);
+        tv_ualar.setOnClickListener(this);
+        isClick = CommonUtil.getSharedPreferencesBoolean(ct, ALARMA_CLICK, true);
+        isAutoClick = CommonUtil.getSharedPreferencesBoolean(ct, AUTO_PUNCH, true);//
+        isalarma_sw.setChecked(isClick);
+        autopunch_sw.setChecked(isAutoClick);//
+        String uDateTime = CommonUtil.getSharedPreferences(ct, KEY_ALAR_TIME);
+        String dDateTime = CommonUtil.getSharedPreferences(ct, KEY_UALAR_TIME);
+
+        if (uDateTime == null) {
+            uDateTime = "提前5分钟";
+            CommonUtil.setSharedPreferences(ct, KEY_ALAR_TIME, uDateTime);
+        }
+        if (dDateTime == null) {
+            dDateTime = "延后5分钟";
+            CommonUtil.setSharedPreferences(ct, KEY_ALAR_TIME, dDateTime);
+        }
+        tv_alar.setText(uDateTime);
+        tv_ualar.setText(dDateTime);
+        if (isClick) {
+            startThread(isClick);
+        }
+
+        isalarma_sw.setOnCheckedChangeListener(new SwitchView.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(View view, boolean isChecked) {
+                CommonUtil.putSharedPreferencesBoolean(ct, ALARMA_CLICK, isChecked);
+                isClick = isChecked;
+                if(isalarma_sw.isChecked()){
+                    ToastMessage("你已关闭打卡提醒功能,请自行注意打卡时间");
+                }else{
+                    startThread(isChecked);
+                }
+
+            }
+        });
+
+        autopunch_sw.setOnCheckedChangeListener(new SwitchView.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(View view, boolean isChecked) {
+                CommonUtil.putSharedPreferencesBoolean(ct, AUTO_PUNCH, isChecked);
+                isAutoClick = isChecked;
+                if(autopunch_sw.isChecked()){
+                    ToastMessage("你已关闭自动打卡功能,请自行注意打卡时间");
+                }else{
+                    ToastMessage("你已开启自动打卡功能,在打卡有效范围内,系统将自动为你打卡");
+                    startAutoThread(isChecked);
+                }
+
+            }
+        });
+    }
+
+    private void startThread(final boolean isChecked) {
+        if (isChecked) {
+            unArmmanager();
+            initArmmanager();
+        } else {
+            unArmmanager();
+        }
+    }
+    private  void startAutoThread(final  boolean isChecked ){
+         if(isChecked){
+
+         }else{
+
+         }
+    }
+    //初始化提醒
+    private void initArmmanager() {
+        //1.获取打卡时间
+        List<SigninBean> beans = SigninDao.getInstance(ct).queryByEmcode();
+        if (ListUtils.isEmpty(beans)) return;
+        //判断最近的时间是哪个
+        //获取提前和往后提醒时间
+        int uTime = getMin(CommonUtil.getSharedPreferences(ct, KEY_ALAR_TIME));
+        int dTime = getMin(CommonUtil.getSharedPreferences(ct, KEY_UALAR_TIME));
+        long utime = (uTime * 60 * 1000);//与上班时间提前的时间
+        long dtime = (dTime * 60 * 1000);//与下班时间延后的时间
+        long chche = 0;//时间毫秒数
+        long chchelong = 0;
+        boolean isOk = false;
+        for (SigninBean e : beans) {
+            //获取与当前时间最近的时间
+            if (!StringUtils.isEmpty(e.getWorkTime())) {
+                chche = TimeUtils.f_str_2_long(TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + e.getWorkTime() + ":00") - utime;
+                if (chchelong == 0)
+                    chchelong = chche;
+                if (chche > System.currentTimeMillis()) {//在允许范围
+                    isOk = true;
+                    break;
+                }
+                if (!StringUtils.isEmpty(e.getOffTime())) {
+                    chche = TimeUtils.f_str_2_long(TimeUtils.s_long_2_str(System.currentTimeMillis()) + " " + e.getOffTime() + ":00") + dtime;
+                    if (chche > System.currentTimeMillis()) {//在允许范围
+                        isOk = true;
+                        break;
+                    }
+                }
+            }
+        }
+        if (isOk) {//在当天允许提醒范围内
+            setArmmanager(chche);
+        } else {
+            if (chchelong != 0) {
+                chchelong += 24 * 60 * 60 * 1000;
+                setArmmanager(chchelong);
+            }
+        }
+    }
+
+    private void setArmmanager(long time) {
+        if (time <= 0) return;
+        //操作:发送一个广播,广播接收后Toast提示定时操作完成
+        Intent intent = new Intent(Sign_remindActivity.this, AlarmReceiver.class);
+        intent.setAction("ALARMA_ACTION");
+        AlarmManager alarm = (AlarmManager) getSystemService(ALARM_SERVICE);
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTimeInMillis(time);
+        Crouton.makeText(ct, "将在" + TimeUtils.long2str(time, "yyyy-MM-dd HH:mm") + "为您提醒");
+        alarm.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), getPendingIntent(intent));
+    }
+
+
+    private int getMin(String chche) {
+        if (StringUtils.isEmpty(chche)) return 5;
+        Pattern p = Pattern.compile("(\\d+)");
+        Matcher m = p.matcher(chche);
+        if (m.find()) {
+            return Integer.parseInt(m.group(0));
+        }
+        return -1;
+    }
+
+    private PendingIntent getPendingIntent(Intent intent) {
+        return PendingIntent.getBroadcast(Sign_remindActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
+    }
+
+    //清空提醒
+    private void unArmmanager() {
+        Intent intent = new Intent(Sign_remindActivity.this, AlarmReceiver.class);
+        intent.setAction("ALARMA_ACTION");
+        PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
+        AlarmManager alarm = (AlarmManager) getSystemService(ALARM_SERVICE);
+        alarm.cancel(pi);
+    }
+
+    private void showSelectDalog(final TextView tv, final boolean isU) {
+        /*
+         *上班时间设置,弹出框:提前1分钟,提前2分钟,提前5分钟,提前10分钟,提前20分钟,提前30分钟
+         *下班时间设置,弹出款:延迟1分钟,延迟2分钟,延迟5分钟,延迟10分钟,延迟20分钟,延迟30分钟
+         */
+        final String[] str = new String[6];
+        if (isU) {
+            str[0] = "提前1分钟";
+            str[1] = "提前2分钟";
+            str[2] = "提前5分钟";
+            str[3] = "提前10分钟";
+            str[4] = "提前20分钟";
+            str[5] = "提前30分钟";
+        } else {
+            str[0] = "延迟1分钟";
+            str[1] = "延迟2分钟";
+            str[2] = "延迟5分钟";
+            str[3] = "延迟10分钟";
+            str[4] = "延迟20分钟";
+            str[5] = "延迟30分钟";
+        }
+        AlertDialog.Builder builder = new AlertDialog.Builder(ct);
+        builder.setTitle("选择时间");
+        builder.setItems(str, new DialogInterface.OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialogInterface, int i) {
+                tv.setText(str[i]);
+                if (isU) {
+                    CommonUtil.setSharedPreferences(ct, KEY_ALAR_TIME, str[i]);//保存上班签到的
+                } else {
+                    CommonUtil.setSharedPreferences(ct, KEY_UALAR_TIME, str[i]);//保存下班班签到的
+                }
+                if (isClick) {
+                    startThread(isClick);
+                }
+            }
+        });
+        builder.show();
+    }
+
+    @Override
+    public void onClick(View view) {
+        switch (view.getId()) {
+            case R.id.tv_ualar:
+                showSelectDalog(tv_ualar, false);
+                break;
+            case R.id.tv_alar:
+                showSelectDalog(tv_alar, true);
+                break;
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        //退出时候保存时间到本地
+        CommonUtil.setSharedPreferences(ct, KEY_ALAR_TIME, tv_alar.getText().toString().trim());//保存上班签到的
+        CommonUtil.setSharedPreferences(ct, KEY_UALAR_TIME, tv_ualar.getText().toString().trim());//保存下班签到的时间
+    }
+}

+ 2 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/OutofficeFragment.java

@@ -232,7 +232,9 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
                 " " + TimeUtils.long2str(System.currentTimeMillis(), "HH:mm"));
         num_tv.setText("" + sigNum);
         String loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
+
         AvatarHelper.getInstance().displayAvatar(loginUserId, name_img, true);
+
         name_tv.setText(MyApplication.getInstance().mLoginUser.getNickName());
         com_tv.setText(CommonUtil.getSharedPreferences(ct, "erp_commpany"));
         setLocation();

+ 2 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninFragment.java

@@ -32,6 +32,7 @@ import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.base.EasyFragment;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.AlarmaActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.LocationMapActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.Sign_remindActivity;
 import com.xzjmyk.pm.activity.ui.erp.adapter.SigninAdapter;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CodeUtil;
@@ -201,7 +202,7 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
         Intent intent = null;
         switch (view.getId()) {
             case R.id.seting:
-                intent = new Intent(ct, AlarmaActivity.class);
+                intent = new Intent(ct, Sign_remindActivity.class);
                 startActivity(intent);
                 break;
             case R.id.back:

+ 29 - 2
WeiChat/src/main/res/layout/activity_oa__alarma.xml

@@ -5,7 +5,32 @@
     android:layout_height="match_parent"
     android:orientation="vertical"
     tools:context=".ui.erp.activity.oa.AlarmaActivity">
+<TextView
+    android:layout_width="match_parent"
+    android:layout_height="20dp"/>
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/item_height"
+        android:layout_margin="2dp"
+        android:background="@drawable/oa_signin_tv_bg"
+        android:visibility="gone"
+        android:padding="8dp">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:text="自动打卡"
+            android:textSize="@dimen/text_main" />
 
+        <com.xzjmyk.pm.activity.ui.erp.view.SwitchView
+            android:id="@+id/autopunch_sw"
+            android:layout_width="50dp"
+            android:layout_height="35dp"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true" />
+    </RelativeLayout>
     <RelativeLayout
         android:layout_width="match_parent"
         android:layout_height="@dimen/item_height"
@@ -101,7 +126,8 @@
         android:layout_height="wrap_content"
         android:layout_gravity="center_horizontal"
         android:ems="10"
-        android:inputType="number" />
+        android:inputType="number"
+        android:visibility="gone"/>
 
     <EditText
         android:id="@+id/editText2"
@@ -109,7 +135,8 @@
         android:layout_height="wrap_content"
         android:layout_gravity="center_horizontal"
         android:ems="10"
-        android:inputType="number" />
+        android:inputType="number"
+        android:visibility="gone"/>
 
 
 </LinearLayout>

+ 44 - 0
WeiChat/src/main/res/layout/business_distribution_item.xml

@@ -0,0 +1,44 @@
+<?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="@dimen/item_height"
+    android:background="@color/bg_main"
+    android:padding="8dp">
+
+    <CheckBox
+        android:id="@+id/select_scb"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:button="@null"
+        android:checked="false"
+        android:drawableLeft="@drawable/oa_rb_button_bg"
+        android:padding="10dp" />
+
+    <ImageView
+        android:id="@+id/head_img"
+        android:layout_width="38dp"
+        android:layout_height="38dp"
+        android:layout_centerVertical="true"
+        android:layout_toRightOf="@id/select_scb"
+        android:src="@drawable/friend_u"
+        android:visibility="visible" />
+
+    <TextView
+        android:id="@+id/name_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="10dp"
+        android:layout_toRightOf="@+id/head_img"
+        android:textColor="@color/text_main"
+        android:textSize="@dimen/text_main" />
+
+    <TextView
+        android:id="@+id/id_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignLeft="@+id/name_tv"
+        android:layout_below="@+id/name_tv"
+        android:layout_marginTop="8dp"
+        android:textColor="@color/text_hine"
+        android:textSize="@dimen/text_hine" />
+</RelativeLayout>

+ 2 - 2
WeiChat/src/main/res/layout/fragment_outoffice.xml

@@ -90,7 +90,7 @@
         <View
             android:layout_width="match_parent"
             android:layout_height="2px"
-            android:layout_marginTop="30dp"
+            android:layout_marginTop="5dp"
             android:background="@color/item_line" />
 
         <RelativeLayout
@@ -153,7 +153,7 @@
                 android:layout_alignLeft="@id/date_tv"
                 android:layout_below="@+id/location_tv"
                 android:layout_marginTop="5dp"
-                android:maxLines="2"
+                android:maxLines="3"
                 android:textColor="@color/text_hine"
                 android:textSize="@dimen/text_hine" />