Browse Source

地址设置,高级设置界面基本完成

FANGLH 9 years ago
parent
commit
3dd3873eb6

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

@@ -1371,4 +1371,20 @@ public class CommonUtil {
         com.xzjmyk.pm.activity.ui.erp.net.ViewUtil.ToastMessage(context, "图片已保存至:sdcard/uu/myqzonepic");
     }
 
+
+    /**
+     * @param :取String[]中首个字符串中的数字 number
+     * @author: FANGlh 2016-12-6
+     */
+    public static  int getNumByString(String chche) {
+        if (StringUtils.isEmpty(chche)) return -1;
+        Pattern p = Pattern.compile("(\\d+)");
+        Matcher m = p.matcher(chche);
+        if (m.find()) {
+            return Integer.parseInt(m.group(0));
+        }
+        return -1;
+    }
+
+
 }

+ 170 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/OfficeAddressSettingsActivity.java

@@ -1,24 +1,48 @@
 package com.xzjmyk.pm.activity.ui.me;
 
+import android.content.DialogInterface;
+import android.content.Intent;
 import android.os.Bundle;
+import android.support.v7.app.AlertDialog;
 import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
 import android.widget.Button;
-import android.widget.ListView;
+import android.widget.ImageView;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
+import com.baidu.mapapi.search.core.PoiInfo;
 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.activity.oa.LocationSearchActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.SelectActivity;
+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.view.MyListView;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Created by FANGlh on 2017/1/16.
  * function: 办公地址设置
  */
 public class OfficeAddressSettingsActivity extends BaseActivity{
+    private static final int EFFECTIVE_DISTANCE = 0x117;
     private TextView range_value;  //范围
-    private ListView address_lv;  //地址列表
+    private MyListView address_lv;  //地址列表
     private RelativeLayout add_address;  // + 添加办公地址
     private Button save_btn;   // 保存
+    private OfficeAddressAdapter myadapter;
+    private int search_rangge = 0;
+    private final int ADDRESS_CHANGE = 0x14;
+    private List<String> address_names;
+    private List<String> address_latitud; //经度
+    private List<String> address_longitude; //纬度
+    private int address_size;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -29,23 +53,48 @@ public class OfficeAddressSettingsActivity extends BaseActivity{
     }
     private void initView() {
         range_value = (TextView) findViewById(R.id.of_add_set_range_value);
-        address_lv = (ListView) findViewById(R.id.of_add_set_address_lv);
+        address_lv = (MyListView) findViewById(R.id.of_add_set_address_lv);
         add_address = (RelativeLayout) findViewById(R.id.of_add_set_addaddress_rl);
         save_btn = (Button) findViewById(R.id.of_add_set_save_bt);
+
+        address_names = new ArrayList<>();
+        address_latitud = new ArrayList<>();
+        address_longitude = new ArrayList<>();
+        myadapter = new OfficeAddressAdapter();
+        address_lv.setAdapter(myadapter);
     }
 
     private void clickEvent(){
+
         range_value.setOnClickListener(new View.OnClickListener() {
+            int requestCode = 0;
+            String[] distance = null;
+
             @Override
             public void onClick(View v) {
+                requestCode = EFFECTIVE_DISTANCE;
+                distance = getResources().getStringArray(R.array.effective_distance);
 
+                ArrayList<SelectBean> beans = new ArrayList<>();
+                SelectBean bean = null;
+                for (String e : distance) {
+                    bean = new SelectBean();
+                    bean.setName(e);
+                    bean.setClick(false);
+                    beans.add(bean);
+                }
+                Intent intent = new Intent(ct, SelectActivity.class);
+                intent.putExtra("type", 2);
+                intent.putParcelableArrayListExtra("data", beans);
+                intent.putExtra("title", "选择时间");
+                startActivityForResult(intent, requestCode);
             }
         });
 
         add_address.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                address_lv.setVisibility(View.VISIBLE);
+                searchAddress();
             }
         });
 
@@ -57,4 +106,121 @@ public class OfficeAddressSettingsActivity extends BaseActivity{
         });
     }
 
+    private void searchAddress() {
+        search_rangge = CommonUtil.getNumByString(range_value.getText().toString());
+
+        Intent intent = new Intent(ct, LocationSearchActivity.class);
+        intent.putExtra("type", 1);
+        intent.putExtra("title", "添加办公地址");
+        intent.putExtra("single", true);
+        intent.putExtra("radius", search_rangge);
+//        intent.putExtra("latlng", new LatLng(companyLongitude, companyLatitude));
+        intent.putExtra("resultCode", ADDRESS_CHANGE);
+        intent.putExtra("resultName", "resultName");
+        startActivityForResult(intent, ADDRESS_CHANGE);
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        myadapter.notifyDataSetChanged();
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (data == null) return;
+        if (resultCode == 0x20) {
+            SelectBean b = data.getParcelableExtra("data");
+            if (b == null) return;
+            String selected_distance = StringUtils.isEmpty(b.getName()) ? "" : b.getName();
+            if (requestCode == EFFECTIVE_DISTANCE) {
+                range_value.setText(selected_distance);
+            }
+        }
+        if (requestCode == ADDRESS_CHANGE && resultCode == ADDRESS_CHANGE) {//地址微调
+            PoiInfo poi = data.getParcelableExtra("resultName");
+            if (poi == null) return;
+            //TODO 将每次点击地址返回的值add到自定义列表中,
+            address_lv.setVisibility(View.VISIBLE);
+            address_names.add(poi.name);
+//            address_latitud.add(String.valueOf(poi.location.latitude));
+//            address_longitude.add(String.valueOf(poi.location.longitude));
+        }
+        myadapter.setAddress_names(address_names);
+        address_size = address_names.size();
+        myadapter.notifyDataSetChanged();
+    }
+    public class OfficeAddressAdapter extends BaseAdapter{
+        private List<String> address_names;
+        private int mPosition;
+
+        public List<String> getAddress_names() {
+            return address_names;
+        }
+
+        public void setAddress_names(List<String> address_names) {
+            this.address_names = address_names;
+        }
+        @Override
+        public int getCount() {
+            return address_size;
+        }
+
+        @Override
+        public Object getItem(int position) {
+            return address_names.get(position);
+        }
+
+        @Override
+        public long getItemId(int position) {
+            return position;
+        }
+
+        @Override
+        public View getView(final int position, View convertView, ViewGroup parent) {
+            ViewHolder viewHolder = null;
+            if (convertView == null){
+                convertView = View.inflate(mContext, R.layout.office_address_item,null);
+                viewHolder = new ViewHolder();
+                viewHolder.item_address_tv = (TextView) convertView.findViewById(R.id.item_address_tv);
+                viewHolder.office_address_delete_im = (ImageView) convertView.findViewById(R.id.item_address_delete_im);
+                convertView.setTag(viewHolder);
+            }else {
+                viewHolder = (ViewHolder) convertView.getTag();
+            }
+            //ToDo 带回地址的显示
+            if (!ListUtils.isEmpty(address_names)){
+                viewHolder.item_address_tv.setText(address_names.get(position));
+            }
+            //TODo 地址的删除操作
+            viewHolder.office_address_delete_im.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    new AlertDialog.Builder(mContext)
+                            .setTitle("温馨提示")
+                            .setMessage("确认删除该条已选办公地址?")
+                            .setNegativeButton("取消",null)
+                            .setPositiveButton("确认", new DialogInterface.OnClickListener() {
+                                @Override
+                                public void onClick(DialogInterface dialog, int which) {
+                                    mPosition = position;
+                                    doDeleteAddress();
+                                }
+                            }).show();
+                }
+            });
+            return convertView;
+        }
+
+        private void doDeleteAddress() {
+            address_names.remove(mPosition);
+            notifyDataSetChanged();
+        }
+
+        class ViewHolder{
+            TextView item_address_tv;
+            ImageView office_address_delete_im;
+        }
+    }
 }

+ 14 - 11
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/SignSeniorSettingActivity.java

@@ -66,7 +66,7 @@ public class SignSeniorSettingActivity extends BaseActivity implements View.OnCl
         save_btn.setOnClickListener(this);
     }
     private void initData() {
-        late_time_tv.setText(default_late_time );
+        late_time_tv.setText(default_late_time);
         serious_late_time_tv.setText(default_serious_late_time);
         leave_early_tv.setText(default_leave_early_time);
         absenteeism_time_tv.setText(default_absenteeism_time);
@@ -98,17 +98,20 @@ public class SignSeniorSettingActivity extends BaseActivity implements View.OnCl
         }
         ArrayList<SelectBean> beans = new ArrayList<>();
         SelectBean bean = null;
-        for (String e : time) {
-            bean = new SelectBean();
-            bean.setName(e);
-            bean.setClick(false);
-            beans.add(bean);
+        if (time != null){
+            for (String e : time) {
+                bean = new SelectBean();
+                bean.setName(e);
+                bean.setClick(false);
+                beans.add(bean);
+            }
+            Intent intent = new Intent(ct, SelectActivity.class);
+            intent.putExtra("type", 2);
+            intent.putParcelableArrayListExtra("data", beans);
+            intent.putExtra("title", "选择时间");
+            startActivityForResult(intent, requestCode);
         }
-        Intent intent = new Intent(ct, SelectActivity.class);
-        intent.putExtra("type", 2);
-        intent.putParcelableArrayListExtra("data", beans);
-        intent.putExtra("title", "选择时间");
-        startActivityForResult(intent, requestCode);
+
 
         save_btn.setOnClickListener(new View.OnClickListener() {
             @Override

+ 3 - 2
WeiChat/src/main/java/com/xzjmyk/pm/basepedo/service/StepService.java

@@ -29,6 +29,7 @@ import android.util.Log;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.MainActivity;
+import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.util.PreferenceUtils;
 import com.xzjmyk.pm.basepedo.pojo.StepData;
 import com.xzjmyk.pm.basepedo.ui.MyPedometerActivity;
@@ -126,7 +127,7 @@ public class StepService extends Service implements SensorEventListener {
         com.xzjmyk.pm.basepedo.utils.DbUtils.createDb(this, DB_NAME);
         //获取当天的数据,用于展示
         List<com.xzjmyk.pm.basepedo.pojo.StepData> list = com.xzjmyk.pm.basepedo.utils.DbUtils.getQueryByWhere(com.xzjmyk.pm.basepedo.pojo.StepData.class, "today", new String[]{CURRENTDATE});
-        if (list.size() == 0 || list.isEmpty()) {
+        if (ListUtils.isEmpty(list)) {
             com.xzjmyk.pm.basepedo.service.StepDcretor.CURRENT_SETP = 0;
         } else if (list.size() == 1) {
             com.xzjmyk.pm.basepedo.service.StepDcretor.CURRENT_SETP = Integer.parseInt(list.get(0).getStep());
@@ -317,7 +318,7 @@ public class StepService extends Service implements SensorEventListener {
     private void save() {
         int tempStep = StepDcretor.CURRENT_SETP;
         List<StepData> list = DbUtils.getQueryByWhere(StepData.class, "today", new String[]{CURRENTDATE});
-        if (list.size() == 0 || list.isEmpty()) {
+        if (ListUtils.isEmpty(list)) {
             StepData data = new StepData();
             data.setToday(CURRENTDATE);
             data.setStep(tempStep + "");

+ 4 - 5
WeiChat/src/main/java/com/xzjmyk/pm/basepedo/utils/DbUtils.java

@@ -5,7 +5,6 @@ import android.content.Context;
 import com.litesuits.orm.LiteOrm;
 import com.litesuits.orm.db.assit.QueryBuilder;
 import com.litesuits.orm.db.model.ConflictAlgorithm;
-import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 
 import java.util.List;
 
@@ -66,11 +65,11 @@ public class DbUtils {
      * @return
      */
     public static <T> List<T> getQueryByWhere(Class<T> cla, String field, String[] value) {
-        if (!ListUtils.isEmpty(liteOrm.<T>query(new QueryBuilder(cla).where(field + "=?", value)))){
+//        if (!ListUtils.isEmpty(liteOrm.<T>query(new QueryBuilder(cla).where(field + "=?", value)))){
             return liteOrm.<T>query(new QueryBuilder(cla).where(field + "=?", value));
-        }else {
-            return null;
-        }
+//        }else {
+//            return null;
+//        }
 
     }
 

BIN
WeiChat/src/main/res/drawable-xxhdpi/office_address_delete.png


+ 38 - 0
WeiChat/src/main/res/layout/office_address_item.xml

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <RelativeLayout
+        android:id="@+id/of_add_set_range_rl"
+        style="@style/IMTbleLine2"
+        android:layout_height="50dp"
+        android:background="@color/white"
+        >
+
+        <TextView
+            android:id="@+id/item_address_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:text="英唐大厦"
+            android:textSize="14sp"
+            />
+
+        <ImageView
+            android:id="@+id/item_address_delete_im"
+            android:layout_width="20dp"
+            android:layout_height="20dp"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:background="@drawable/office_address_delete"
+            android:contentDescription="@string/app_name"
+            />
+    </RelativeLayout>
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="2px"
+        android:background="@color/item_line" />
+
+</LinearLayout>

+ 15 - 10
WeiChat/src/main/res/layout/office_address_settings.xml

@@ -12,13 +12,14 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:orientation="vertical"
-            android:layout_marginLeft="10dp"
-            android:layout_marginRight="10dp">
+           >
             <RelativeLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="10dp"
-                android:layout_marginBottom="10dp">
+                android:layout_marginBottom="10dp"
+                android:layout_marginLeft="10dp"
+                android:layout_marginRight="10dp">
 
                 <ImageView
                     android:id="@+id/of_add_set_address_im"
@@ -53,9 +54,10 @@
 
             <RelativeLayout
                 android:id="@+id/of_add_set_range_rl"
-                style="@style/IMTbleLine"
+                style="@style/IMTbleLine2"
                 android:layout_height="50dp"
-                android:background="@color/white">
+                android:background="@color/white"
+                >
 
                 <TextView
                     android:id="@+id/of_add_set_range_text"
@@ -73,6 +75,7 @@
                     android:layout_toRightOf="@+id/of_add_set_range_text"
                     android:textColor="@color/dark_dark_grey"
                     android:text="300"
+                    android:padding="10dp"
                     />
                 <ImageView
                     android:id="@+id/of_add_set_range_img"
@@ -81,26 +84,27 @@
                     android:layout_alignParentRight="true"
                     android:layout_centerVertical="true"
                     android:background="@drawable/oa_next"
-                    android:contentDescription="@string/app_name" />
+                    android:contentDescription="@string/app_name"
+                    />
             </RelativeLayout>
             <View
                 android:layout_width="match_parent"
                 android:layout_height="2px"
                 android:background="@color/item_line" />
 
-            <ListView
+            <com.xzjmyk.pm.activity.view.MyListView
                 android:id="@+id/of_add_set_address_lv"
                 android:layout_width="match_parent"
                 android:layout_height="50dp"
                 android:visibility="gone"
                 android:background="@color/white">
-            </ListView>
+            </com.xzjmyk.pm.activity.view.MyListView>
 
 
             <RelativeLayout
                 android:id="@+id/of_add_set_addaddress_rl"
                 android:layout_width="match_parent"
-                style="@style/IMTbleLine"
+                style="@style/IMTbleLine2"
                 android:layout_height="50dp"
                 android:background="@color/white"
                 >
@@ -109,7 +113,8 @@
                     android:text="+ 添加办公地址"
                     android:textColor="#2F95DD"
                     android:layout_height="wrap_content"
-                    android:layout_centerVertical="true"/>
+                    android:layout_centerVertical="true"
+                   />
 
             </RelativeLayout>
             <View

+ 4 - 0
WeiChat/src/main/res/layout/sign_senior_setting.xml

@@ -96,6 +96,7 @@
             android:layout_toLeftOf="@+id/senior_setting_late_time_img"
             android:layout_toRightOf="@+id/senior_setting_late_time_text"
             android:textColor="@color/dark_dark_grey"
+            android:padding="10dp"
             />
         <ImageView
             android:id="@+id/senior_setting_late_time_img"
@@ -134,6 +135,7 @@
             android:layout_toLeftOf="@+id/senior_setting_serious_late_time_img"
             android:layout_toRightOf="@+id/senior_setting_serious_late_time_text"
             android:textColor="@color/dark_dark_grey"
+            android:padding="10dp"
             />
         <ImageView
             android:id="@+id/senior_setting_serious_late_time_img"
@@ -172,6 +174,7 @@
             android:layout_toLeftOf="@+id/senior_setting_leave_early_img"
             android:layout_toRightOf="@+id/senior_setting_leave_early_text"
             android:textColor="@color/dark_dark_grey"
+            android:padding="10dp"
             />
         <ImageView
             android:id="@+id/senior_setting_leave_early_img"
@@ -210,6 +213,7 @@
             android:layout_toLeftOf="@+id/senior_setting_absenteeism_img"
             android:layout_toRightOf="@+id/senior_setting_absenteeism_text"
             android:textColor="@color/dark_dark_grey"
+            android:padding="10dp"
             />
         <ImageView
             android:id="@+id/senior_setting_absenteeism_img"

+ 3 - 0
WeiChat/src/main/res/values/strings.xml

@@ -16,6 +16,9 @@
         <item>20分钟</item>
         <item>30分钟</item>
     </string-array>
+    <string-array name="effective_distance">
+        <item>200M</item> <item>300M</item> <item>500M</item> <item>1000M</item> <item>1500M</item>
+    </string-array>
     <string-array name="late_time">
          <item>1分钟</item> <item>2分钟</item> <item>3分钟</item> <item>4分钟</item> <item>5分钟</item> <item>6分钟</item>
          <item>7分钟</item> <item>8分钟</item> <item>9分钟</item> <item>10分钟</item> <item>11分钟</item> <item>12分钟</item>