Browse Source

字段搜索修改为全部可搜索

Bitliker 7 years ago
parent
commit
acaee63683

+ 96 - 7
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/NavigationActivity.java

@@ -4,6 +4,8 @@ import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
 import android.net.Uri;
 import android.os.Bundle;
 import android.support.v4.content.LocalBroadcastManager;
@@ -13,6 +15,9 @@ import android.widget.Toast;
 
 import com.baidu.mapapi.map.MapView;
 import com.baidu.mapapi.model.LatLng;
+import com.baidu.mapapi.navi.BaiduMapAppNotSupportNaviException;
+import com.baidu.mapapi.navi.BaiduMapNavigation;
+import com.baidu.mapapi.navi.NaviParaOption;
 import com.baidu.mapapi.search.core.SearchResult;
 import com.baidu.mapapi.search.route.DrivingRoutePlanOption;
 import com.baidu.mapapi.search.route.DrivingRouteResult;
@@ -24,6 +29,7 @@ import com.common.data.ListUtils;
 import com.core.app.Constants;
 import com.core.base.BaseActivity;
 import com.core.utils.BaiduMapUtil;
+import com.core.utils.ToastUtil;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.uas.applocation.UasLocationHelper;
@@ -32,11 +38,15 @@ import com.xzjmyk.pm.activity.util.baidu.DrivingRouteOverlay;
 import com.xzjmyk.pm.activity.util.baidu.OnGetRoutePlanResult;
 
 import java.io.File;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
 
 public class NavigationActivity extends BaseActivity {
     @ViewInject(R.id.baiduMap)
     private MapView baiduMap;
     private LatLng toLocation;
+    private List<String > mapList=null;
 
 
     private BroadcastReceiver upLocationReceiver = new BroadcastReceiver() {
@@ -116,8 +126,8 @@ public class NavigationActivity extends BaseActivity {
 
         public void onGetDrivingRouteResult(DrivingRouteResult result) {
             //驾车
-            if (result == null || SearchResult.ERRORNO.RESULT_NOT_FOUND == result.error|| ListUtils.isEmpty(result.getRouteLines())||
-                    result.getRouteLines().get(0)==null) {
+            if (result == null || SearchResult.ERRORNO.RESULT_NOT_FOUND == result.error || ListUtils.isEmpty(result.getRouteLines()) ||
+                    result.getRouteLines().get(0) == null) {
                 Toast.makeText(getApplicationContext(), "未搜索到结果", Toast.LENGTH_LONG).show();
                 return;
             }
@@ -135,13 +145,14 @@ public class NavigationActivity extends BaseActivity {
     private void userOtherMap() {
         if (isInstallBaidu()) {
             LogUtil.i("百度地图客户端已经安装");
-            userBauduMap();
+            startNaviBaidu();
         } else {
             LogUtil.i("百度地图客户端没有安装");
             ToastMessage("系统检测到本机没有安装百度地图,请安装后使用");
         }
     }
 
+
     private boolean isInstallBaidu() {
         return new File("/data/data/" + "com.baidu.BaiduMap").exists();
     }
@@ -150,16 +161,94 @@ public class NavigationActivity extends BaseActivity {
         return new File("/data/data/" + "com.autonavi.minimap").exists();
     }
 
-    private void userBauduMap() {
+    //是否安装腾讯地图
+    public boolean isHaveTencentMap() {
         try {
-            Intent intent = new Intent();
-            intent.setData(Uri.parse("baidumap://map/navi?location=" + toLocation.latitude + "," + toLocation.longitude));
-            startActivity(intent);
+            if (!new File("/data/data/" + "com.tencent.map").exists()) {
+                return false;
+            }
         } catch (Exception e) {
+            return false;
+        }
+        return true;
+    }
+
+
+    public static boolean isAvilible(Context context, String packageName) {
+        //获取packagemanager
+        final PackageManager packageManager = context.getPackageManager();
+        //获取所有已安装程序的包信息
+        List<PackageInfo> packageInfos = packageManager.getInstalledPackages(0);
+        //用于存储所有已安装程序的包名
+        List<String> packageNames = new ArrayList<String>();
+        //从pinfo中将包名字逐一取出,压入pName list中
+        if (packageInfos != null) {
+            for (int i = 0; i < packageInfos.size(); i++) {
+                String packName = packageInfos.get(i).packageName;
+                packageNames.add(packName);
+            }
+        }
+        //判断packageNames中是否有目标程序的包名,有TRUE,没有FALSE
+        return packageNames.contains(packageName);
+    }
+
+    //开启百度导航
+    public void startNaviBaidu() {
+        //百度地图,从起点是LatLng ll_location = new LatLng("你的纬度latitude","你的经度longitude");
+        //终点是LatLng ll = new LatLng("你的纬度latitude","你的经度longitude");
+        NaviParaOption para = new NaviParaOption();
+        para.startPoint(UasLocationHelper.getInstance().getUASLocation().getLocation());
+        para.startName(UasLocationHelper.getInstance().getUASLocation().getName());
+        para.endPoint(toLocation);
+        para.endName("到这里结束");
+        try {
+            BaiduMapNavigation.openBaiduMapNavi(para, this);
+        } catch (BaiduMapAppNotSupportNaviException e) {
             e.printStackTrace();
+            ToastUtil.showToast(ct, "您尚未安装百度地图或地图版本过低");
         }
     }
 
 
+    //高德地图,起点就是定位点
+    // 终点是LatLng ll = new LatLng("你的纬度latitude","你的经度longitude");
+    public void startNaviGao() {
+        if (isAvilible(ct, "com.autonavi.minimap")) {
+            try {
+                //sourceApplication
+                Intent intent = Intent.getIntent("androidamap://navi?sourceApplication=UU互联&poiname=到这里结束&lat=" + toLocation.latitude + "&lon=" + toLocation.longitude + "&dev=0");
+                startActivity(intent);
+            } catch (URISyntaxException e) {
+                e.printStackTrace();
+            }
+        } else {
+            ToastUtil.showToast(ct, "您尚未安装高德地图或地图版本过低");
+        }
+    }
+
+
+    //谷歌地图,起点就是定位点
+    // 终点是LatLng ll = new LatLng("你的latitude","你的longitude");
+    public void startNaviGoogle() {
+        if (isAvilible(this, "com.google.android.apps.maps")) {
+            Uri gmmIntentUri = Uri.parse("google.navigation:q=" + toLocation.latitude + "," + toLocation.longitude);
+            Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
+            mapIntent.setPackage("com.google.android.apps.maps");
+            startActivity(mapIntent);
+        } else {
+            ToastUtil.showToast(ct, "您尚未安装谷歌地图或地图版本过低");
+        }
+
+    }
 
+
+    public void openTencentMap() {
+        try {
+            String url = "qqmap://map/routeplan?type=drive&to=" + "到这里结束" + "&tocoord=" + toLocation.latitude + "," + toLocation.longitude + "&policy=2&referer=myapp";
+            Intent intent = new Intent("android.intent.action.VIEW", android.net.Uri.parse(url));
+            startActivity(intent);
+        } catch (Exception e) {
+
+        }
+    }
 }

+ 25 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/secretary/BookingAddActivity.java

@@ -13,6 +13,7 @@ import android.widget.AdapterView;
 import android.widget.BaseAdapter;
 import android.widget.Button;
 import android.widget.EditText;
+import android.widget.PopupWindow;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
@@ -36,10 +37,12 @@ import com.core.widget.NScrollerGridView;
 import com.core.widget.view.Activity.SearchLocationActivity;
 import com.core.widget.view.Activity.SelectActivity;
 import com.core.widget.view.model.SearchPoiParam;
+import com.core.widget.view.model.SelectAimModel;
 import com.core.widget.view.selectcalendar.SelectCalendarActivity;
 import com.core.widget.view.selectcalendar.bean.DataState;
 import com.core.xmpp.model.AddAttentionResult;
 import com.lidroid.xutils.view.annotation.ViewInject;
+import com.modular.apputils.utils.PopupWindowHelper;
 import com.modular.booking.model.BookingModel;
 import com.uas.appcontact.model.contacts.ContactsModel;
 import com.uas.appcontact.ui.activity.ContactsActivity;
@@ -183,7 +186,7 @@ public class BookingAddActivity extends SupportToolBarActivity implements  View.
                 SearchPoiParam poiParam = new SearchPoiParam();
                 poiParam.setType(2);
                 poiParam.setTitle("地图搜索");
-                poiParam.setRadius(300);
+                poiParam.setRadius(500);
                 //poiParam.setContrastLatLng(new LatLng(companyLocation.getLocation().longitude, companyLocation.getLocation().latitude));
                 poiParam.setResultCode(0x23);
                 poiParam.setDistanceTag(MyApplication.getInstance().getResources().getString(R.string.rice));
@@ -209,7 +212,7 @@ public class BookingAddActivity extends SupportToolBarActivity implements  View.
                 break;
         }
     }
-
+    private PopupWindow popupWindow;
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (data == null) return;
@@ -220,6 +223,26 @@ public class BookingAddActivity extends SupportToolBarActivity implements  View.
                 tvBookAddress.setText(poi.address + poi.name);
                 latitude = poi.location.latitude;
                 longitude = poi.location.longitude;
+                if (popupWindow != null) {
+                    popupWindow.dismiss();
+                    popupWindow = null;
+                }
+                SelectAimModel chcheAimModel=new SelectAimModel();
+                chcheAimModel.setLatLng(poi.location);
+                chcheAimModel.setName(poi.address);
+                chcheAimModel.setAddress(poi.name);
+                chcheAimModel.setType(3);
+                popupWindow = PopupWindowHelper.create(this, getString(com.modular.booking.R.string.perfect_company_name), chcheAimModel, new PopupWindowHelper.OnClickListener() {
+                    @Override
+                    public void result(SelectAimModel model) {
+                        tvBookAddress.setText(model.getName());
+                    }
+                }, new PopupWindowHelper.OnFindLikerListener() {
+                    @Override
+                    public void click(String licker) {
+                    }
+                });
+
                 break;
             case 0x24://时间
                 startTime = data.getStringExtra("startDate");

+ 9 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/secretary/BookingDetailActivity.java

@@ -32,6 +32,7 @@ import android.widget.Toast;
 
 import com.afollestad.materialdialogs.MaterialDialog;
 import com.alibaba.fastjson.JSON;
+import com.baidu.mapapi.model.LatLng;
 import com.common.LogUtil;
 import com.common.data.CalendarUtil;
 import com.common.data.DateFormatUtil;
@@ -139,7 +140,14 @@ public class BookingDetailActivity extends OABaseActivity implements HttpImp,Vie
         ll_bottom= (LinearLayout) findViewById(R.id.ll_bottom);
         findViewById(R.id.bt_change).setOnClickListener(this);
         findViewById(R.id.bt_cancle).setOnClickListener(this);
-
+        tvAddress.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Intent intent = new Intent("com.modular.appworks.NavigationActivity");
+                intent.putExtra("toLocation", new LatLng(Float.valueOf(model.getAb_latitude()),Float.valueOf(model.getAb_longitude())));
+                startActivityForResult(intent, 0x23);
+            }
+        });
         Animation animation= AnimationUtils.loadAnimation(this, R.anim.anim_translate_bookingprogress);
         
         

+ 4 - 0
app_core/common/src/main/java/com/core/widget/view/imp/SearchPresenter.java

@@ -4,6 +4,7 @@ import android.content.Intent;
 
 import com.baidu.mapapi.model.LatLng;
 import com.baidu.mapapi.search.core.PoiInfo;
+import com.common.LogUtil;
 import com.common.data.ListUtils;
 import com.common.data.StringUtil;
 import com.core.app.MyApplication;
@@ -142,6 +143,7 @@ public class SearchPresenter {
 
 
     private void initData() {
+        radius=param.getRadius();
         if (!MyApplication.getInstance().isNetworkActive()) {
             iSearchView.showNotNetWork();
             return;
@@ -192,6 +194,8 @@ public class SearchPresenter {
      * @param chche
      */
     private void showData(List<SearchLocationModel> chche) {
+        LogUtil.i("gong","param.isHineOutSize()="+param.isHineOutSize());
+        LogUtil.i("gong","chche.isHineOutSize()="+chche.size());
         List<SearchLocationModel> showModels = new ArrayList<>();
         if (!ListUtils.isEmpty(chche)) {
             for (int i = 0; i < chche.size(); i++) {

+ 1 - 1
app_core/common/src/main/java/com/core/widget/view/model/SearchPoiParam.java

@@ -143,7 +143,7 @@ public class SearchPoiParam implements Parcelable {
     }
 
     public int getRadius() {
-        return radius;
+        return radius<=0?200:radius;
     }
 
     public void setRadius(int radius) {

+ 29 - 4
app_modular/appbooking/src/main/java/com/modular/booking/activity/business/BBookingAddActivity.java

@@ -10,6 +10,7 @@ import android.widget.AdapterView;
 import android.widget.BaseAdapter;
 import android.widget.Button;
 import android.widget.EditText;
+import android.widget.PopupWindow;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
@@ -36,6 +37,7 @@ import com.core.utils.CommonUtil;
 import com.core.widget.NScrollerGridView;
 import com.core.widget.view.Activity.SearchLocationActivity;
 import com.core.widget.view.model.SearchPoiParam;
+import com.core.widget.view.model.SelectAimModel;
 import com.core.widget.view.selectcalendar.SelectCalendarActivity;
 import com.core.widget.view.selectcalendar.bean.DataState;
 import com.core.xmpp.model.AddAttentionResult;
@@ -43,6 +45,7 @@ import com.me.network.app.http.HttpClient;
 import com.me.network.app.http.Method;
 import com.me.network.app.http.rx.ResultListener;
 import com.me.network.app.http.rx.ResultSubscriber;
+import com.modular.apputils.utils.PopupWindowHelper;
 import com.modular.booking.R;
 import com.modular.booking.model.BookingModel;
 import com.uas.appcontact.model.contacts.ContactsModel;
@@ -112,7 +115,7 @@ public class BBookingAddActivity extends SupportToolBarActivity implements View.
     }
 
     public void initView() {
-      setTitle(getString(R.string.booking_business));
+        setTitle(getString(R.string.booking_business));
 
         tvBookObject = (TextView) findViewById(R.id.tv_book_object);
         companyAddRl = (RelativeLayout) findViewById(R.id.company_add_rl);
@@ -195,7 +198,7 @@ public class BBookingAddActivity extends SupportToolBarActivity implements View.
             SearchPoiParam poiParam = new SearchPoiParam();
             poiParam.setType(2);
             poiParam.setTitle("地图搜索");
-            poiParam.setRadius(300);
+            poiParam.setRadius(500);
             //poiParam.setContrastLatLng(new LatLng(companyLocation.getLocation().longitude, companyLocation.getLocation().latitude));
             poiParam.setResultCode(0x23);
             poiParam.setDistanceTag(MyApplication.getInstance().getResources().getString(R.string.rice));
@@ -298,6 +301,26 @@ public class BBookingAddActivity extends SupportToolBarActivity implements View.
                 tvBookAddress.setText(poi.address + poi.name);
                 latitude = poi.location.latitude;
                 longitude = poi.location.longitude;
+                if (popupWindow != null) {
+                    popupWindow.dismiss();
+                    popupWindow = null;
+                }
+                SelectAimModel chcheAimModel = new SelectAimModel();
+                chcheAimModel.setLatLng(poi.location);
+                chcheAimModel.setName(poi.address);
+                chcheAimModel.setAddress(poi.name);
+                chcheAimModel.setType(3);
+                popupWindow = PopupWindowHelper.create(this, getString(R.string.perfect_company_name), chcheAimModel, new PopupWindowHelper.OnClickListener() {
+                    @Override
+                    public void result(SelectAimModel model) {
+                        tvBookAddress.setText(model.getName());
+                    }
+                }, new PopupWindowHelper.OnFindLikerListener() {
+                    @Override
+                    public void click(String licker) {
+                    }
+                });
+
                 break;
             case 0x24://时间
                 startTime = data.getStringExtra("startDate");
@@ -311,6 +334,8 @@ public class BBookingAddActivity extends SupportToolBarActivity implements View.
         }
     }
 
+    private PopupWindow popupWindow;
+
     //提交
     public void save() {
         if (!CommonUtil.isNetWorkConnected(ct)) {
@@ -356,7 +381,7 @@ public class BBookingAddActivity extends SupportToolBarActivity implements View.
                 "\"ab_longitude\":\"" + longitude + "\",\n" +
                 "\"ab_latitude\":\"" + latitude + "\"" +
                 "}\n";
-       // showLoading();
+        // showLoading();
         LogUtil.d("HttpLogs", "map:" + map);
         HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build();
         httpClient.Api().send(new HttpClient.Builder()
@@ -594,7 +619,7 @@ public class BBookingAddActivity extends SupportToolBarActivity implements View.
                 Request.Method.POST, "http://message.ubtob.com/sms/send", new Response.ErrorListener() {
             @Override
             public void onErrorResponse(VolleyError arg0) {
-              //  dimssLoading();
+                //  dimssLoading();
             }
         }, new StringJsonObjectRequest.Listener<AddAttentionResult>() {
             @Override

+ 6 - 6
app_modular/applocation/src/main/java/com/uas/applocation/utils/LocationNeerUtils.java

@@ -10,7 +10,6 @@ import com.baidu.mapapi.search.poi.PoiCitySearchOption;
 import com.baidu.mapapi.search.poi.PoiNearbySearchOption;
 import com.baidu.mapapi.search.poi.PoiResult;
 import com.baidu.mapapi.search.poi.PoiSearch;
-import com.baidu.mapapi.search.poi.PoiSortType;
 import com.uas.applocation.Interface.OnBaiduPoiListener;
 import com.uas.applocation.Interface.OnSearchLocationListener;
 import com.uas.applocation.UasLocationHelper;
@@ -54,23 +53,24 @@ public class LocationNeerUtils {
             if (mManager == null && !(mManager instanceof NativeLocationManager)) {
                 mManager = new NativeLocationManager(ct);
             }
-            ((NativeLocationManager) mManager).loadNativeByNeer(ct, latLng.latitude, latLng.longitude,radius, mOnSearchLocationListener);
+            ((NativeLocationManager) mManager).loadNativeByNeer(ct, latLng.latitude, latLng.longitude, radius, mOnSearchLocationListener);
         } else {
             loadBaiduByNeer(radius, pagerNum, latLng, mOnSearchLocationListener);
         }
     }
 
 
-
     //获取百度定位周边为位置点
     private static void loadBaiduByNeer(int radius, int pagerNum, LatLng latLng, final OnSearchLocationListener mOnSearchLocationListener) {
+        Log.i("gong", "radius=" + radius);
+        Log.i("gong", "pagerNum=" + pagerNum);
+        Log.i("gong", "latLng=" + latLng.latitude+"|||  longitude="+latLng.longitude);
         PoiNearbySearchOption option = new PoiNearbySearchOption();
         PoiSearch mPoiSearch = PoiSearch.newInstance();
         option.keyword("公司")
-                .sortType(PoiSortType.distance_from_near_to_far)
                 .radius(radius)
                 .pageNum(pagerNum)
-                .pageCapacity(1000)
+                .pageCapacity(40)
                 .location(latLng);
         mPoiSearch.setOnGetPoiSearchResultListener(new OnBaiduPoiListener() {
             @Override
@@ -126,7 +126,7 @@ public class LocationNeerUtils {
             if (mManager == null && !(mManager instanceof NativeLocationManager)) {
                 mManager = new NativeLocationManager(ct);
             }
-            ((NativeLocationManager) mManager).loadByInput(ct,city,keyWord, mOnSearchLocationListener);
+            ((NativeLocationManager) mManager).loadByInput(ct, city, keyWord, mOnSearchLocationListener);
 
         } else {
             searchBaiduByInput(city, keyWord, pagerNum, mOnSearchLocationListener);