筛选页面与地图联调

This commit is contained in:
wds
2021-07-07 19:16:03 +08:00
parent d25b3e1e30
commit 39d660f5cb
13 changed files with 333 additions and 187 deletions

View File

@@ -3,7 +3,7 @@ apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion '29.0.2'
ndkVersion '23.0.7123448'
// ndkVersion '23.0.7123448'
defaultConfig {
applicationId "com.navinfo.outdoor"

View File

@@ -30,6 +30,7 @@ public class FilterAdapter extends RecyclerView.Adapter<FilterAdapter.ViewHolder
}
public void setAllPoi(List<PoiEntity> allPoi) {
this.allPoi.clear();
this.allPoi.addAll(allPoi);
notifyDataSetChanged();
}

View File

@@ -64,16 +64,18 @@ public class Constant {
public static final int OTHER_WORD = 25;//地图页面marker 的经纬都回传
public static final int CHARGING_STATION_PILE = 26;//跳转到充电桩 传给数据
public static final int CAPACITY_EVALUATION_PAGE = 1;//能力测评的页数
public static final int JOB_SEARCH_WORD = 28;//任务搜索的数据
public static final int JOB_SEARCH_WORD = 28;//任务搜索的网络数据
public static final int JOB_SEARCH_POI_WORD = 29;//任务搜索的本地数据
public static final int GATHER_GET_MAP = 30;//地图点击marker 后弹窗点击开始采集
public static final int HOME_MINE = 32;//点击我的实时监听刷新
public static final int HOME_TREASURE = 33;//点击寻宝实时监听刷新
public static final int JOB_WORD_MONITOR=34;//筛选条件的刷新
public static String USER_ATTESTATION_NAME; //实名认证姓名 银行卡
public static int NUMBER = 200; //任务个数
public static String PHOTOGRAPH = "全部"; //任务类型
public static String EXCLUSIVE = "全部";
public static String TYPE = "全部";
public static int LIMIT_TTPE = -1; //权限类型,普通任务-0专属任务-1
public static int TASK_TYPE = -1; // 任务类型
public static int TASK_STASTUS = -1; // 任务状态
/**
* 用户当前位置
*/

View File

@@ -590,6 +590,7 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View.
poiEntity.setCreateTime(format);
poiEntity.setType(2);
poiEntity.setTaskStatus(2);
poiEntity.setIsLocalData(1);
new Thread(new Runnable() {
@Override
public void run() {
@@ -715,6 +716,7 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View.
poiEntity.setCreateTime(format);
poiEntity.setType(2);
poiEntity.setTaskStatus(2);
poiEntity.setIsLocalData(1);
/* new Thread(new Runnable() {
@Override
public void run() {
@@ -805,7 +807,8 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View.
poiEntity.setCreateTime(format);
poiEntity.setType(2);
poiEntity.setTaskStatus(2);
new Thread(new Runnable() {
poiEntity.setIsLocalData(1);
/* new Thread(new Runnable() {
@Override
public void run() {
List<PoiEntity> allPoi = poiDao.getAllPoi();
@@ -816,7 +819,7 @@ public class ChargingStationFragment extends BaseDrawerFragment implements View.
}
});
}
}).start();
}).start();*/
String newPoiEntity = new Gson().toJson(poiEntity);
//以键值对的形式添加新值。
edit.putString("poiEntity", newPoiEntity);

View File

@@ -8,10 +8,12 @@ import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.jcodecraeer.xrecyclerview.ProgressStyle;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import com.kongzue.dialog.interfaces.OnMenuItemClickListener;
@@ -38,12 +40,13 @@ import java.util.List;
public class FilterFragment extends BaseDrawerFragment implements View.OnClickListener {
private Button btnFilter;
private XRecyclerView recyclerFilter;
private TextView tvType, tvExclusive, tvPhotograph,tvNumber;
private ConstraintLayout clPhotograph, clExclusive, clType,clNumber;
private TextView tvType, tvExclusive, tvPhotograph, tvNumber;
private ConstraintLayout clPhotograph, clExclusive, clType, clNumber;
private PoiDatabase poiDatabase;
private PoiDao poiDao;
private FilterAdapter filterAdapter;
private ArrayList<PoiEntity> poiEntities;
private List<PoiEntity> allPoi;
public static FilterFragment newInstance(Bundle bundle) {
@@ -65,20 +68,20 @@ public class FilterFragment extends BaseDrawerFragment implements View.OnClickLi
@Override
public void onClick(View v) {
Bundle arguments = getArguments();
if (arguments!=null) {
isSliding= arguments.getBoolean("isSliding",true);
Log.d("TAG", "onCreatessss: "+isSliding);
if (arguments != null) {
isSliding = arguments.getBoolean("isSliding", true);
Log.d("TAG", "onCreatessss: " + isSliding);
}
if (isSliding) {
// 监听到返回按钮点击事件
Message obtain = Message.obtain();
obtain.what= Constant.TREASURE_FRAGMENT;
obtain.obj=isSliding;
obtain.what = Constant.TREASURE_FRAGMENT;
obtain.obj = isSliding;
EventBus.getDefault().post(obtain);
Message mainButtonVisiableMsg = Message.obtain();
mainButtonVisiableMsg.what= Constant.MAIN_BUTTON_VISIABLE;
mainButtonVisiableMsg.obj= View.VISIBLE;
mainButtonVisiableMsg.what = Constant.MAIN_BUTTON_VISIABLE;
mainButtonVisiableMsg.obj = View.VISIBLE;
EventBus.getDefault().post(mainButtonVisiableMsg);
}
onBackPressed();
@@ -86,6 +89,7 @@ public class FilterFragment extends BaseDrawerFragment implements View.OnClickLi
});
}
}
@Override
public void onStart() {
super.onStart();
@@ -94,6 +98,7 @@ public class FilterFragment extends BaseDrawerFragment implements View.OnClickLi
}
}
@Override
public void onResume() {
super.onResume();
@@ -106,20 +111,20 @@ public class FilterFragment extends BaseDrawerFragment implements View.OnClickLi
@Override
public void onClick(View v) {
Bundle arguments = getArguments();
if (arguments!=null) {
isSliding= arguments.getBoolean("isSliding",true);
Log.d("TAG", "onCreatessss: "+isSliding);
if (arguments != null) {
isSliding = arguments.getBoolean("isSliding", true);
Log.d("TAG", "onCreatessss: " + isSliding);
}
if (isSliding) {
// 监听到返回按钮点击事件
Message obtain = Message.obtain();
obtain.what= Constant.TREASURE_FRAGMENT;
obtain.obj=isSliding;
obtain.what = Constant.TREASURE_FRAGMENT;
obtain.obj = isSliding;
EventBus.getDefault().post(obtain);
Message mainButtonVisiableMsg = Message.obtain();
mainButtonVisiableMsg.what= Constant.MAIN_BUTTON_VISIABLE;
mainButtonVisiableMsg.obj= View.VISIBLE;
mainButtonVisiableMsg.what = Constant.MAIN_BUTTON_VISIABLE;
mainButtonVisiableMsg.obj = View.VISIBLE;
EventBus.getDefault().post(mainButtonVisiableMsg);
}
onBackPressed();
@@ -136,6 +141,84 @@ public class FilterFragment extends BaseDrawerFragment implements View.OnClickLi
@Override
protected void initView() {
super.initView();
poiEntities = new ArrayList<>();
/* JobSearchBean jobSearchBean = (JobSearchBean) getArguments().getSerializable("body");//服务数据
ArrayList<PoiEntity> showAllPoi = (ArrayList<PoiEntity>) getArguments().getSerializable("showAllPoi");//本地数据
if (jobSearchBean != null) {
List<JobSearchBean.BodyBean.ListBean> list = jobSearchBean.getBody().getList();
for (int i = 0; i < list.size(); i++) {
PoiEntity poiEntity = new PoiEntity();
poiEntity.setTaskId(list.get(i).getId());
poiEntity.setName(list.get(i).getName());
poiEntity.setAddress(list.get(i).getAddress());
poiEntity.setTelPhone(list.get(i).getTelephone() + "");
poiEntity.setPrecision(list.get(i).getPrice());
poiEntity.setDist(list.get(i).getDist());
poiEntity.setType(Integer.valueOf(list.get(i).getType()));
String geo = list.get(i).getGeo();
Geometry geometry = GeometryTools.createGeometry(geo);
if (geometry.getGeometryType().equals("Point")) {//点
LatLng latLng = GeometryTools.createLatLng(geo);
poiEntity.setX(latLng.longitude + "");
poiEntity.setY(latLng.altitude + "");
} else if (geometry.getGeometryType().equals("LineString")) {//线
} else if (geometry.getGeometryType().equals("Polygon")) {//面
}
poiEntities.add(poiEntity);
}
}
if (showAllPoi != null) {
poiEntities.addAll(showAllPoi);
}
filterAdapter.setAllPoi(poiEntities);*/
}
@Subscribe
public void onEvent(Message data) {
if (data.what == Constant.JOB_SEARCH_WORD) {
poiEntities.clear();
JobSearchBean jobSearchBean = (JobSearchBean) data.obj;
if (jobSearchBean!=null){
List<JobSearchBean.BodyBean.ListBean> list = jobSearchBean.getBody().getList();
for (int i = 0; i < list.size(); i++) {
PoiEntity poiEntity = new PoiEntity();
poiEntity.setTaskId(list.get(i).getId());
poiEntity.setName(list.get(i).getName());
poiEntity.setAddress(list.get(i).getAddress());
poiEntity.setTelPhone(list.get(i).getTelephone() + "");
poiEntity.setPrecision(list.get(i).getPrice());
poiEntity.setDist(list.get(i).getDist());
poiEntity.setType(Integer.valueOf(list.get(i).getType()));
String geo = list.get(i).getGeo();
Geometry geometry = GeometryTools.createGeometry(geo);
if (geometry.getGeometryType().equals("Point")) {//点
LatLng latLng = GeometryTools.createLatLng(geo);
poiEntity.setX(latLng.longitude + "");
poiEntity.setY(latLng.altitude + "");
} else if (geometry.getGeometryType().equals("LineString")) {//线
} else if (geometry.getGeometryType().equals("Polygon")) {//面
}
poiEntities.add(poiEntity);
}
}
if (allPoi!=null){
poiEntities.addAll(allPoi);
}
filterAdapter.setAllPoi(poiEntities);
} else if (data.what == Constant.JOB_SEARCH_POI_WORD) {
allPoi = (List<PoiEntity>) data.obj;
}
}
@Override
protected void initData() {
super.initData();
poiDatabase = PoiDatabase.getInstance(getContext());
poiDao = poiDatabase.getPoiDao();
clNumber = findViewById(R.id.cl_number);
clNumber.setOnClickListener(this::onClick);
tvNumber = findViewById(R.id.tv_number);
@@ -174,13 +257,13 @@ public class FilterFragment extends BaseDrawerFragment implements View.OnClickLi
});
filterAdapter.setItemCLick(new FilterAdapter.ItemCLick() {
@Override
public void item(PoiEntity poiEntity,boolean aBoolean) {
if (aBoolean){
public void item(PoiEntity poiEntity, boolean aBoolean) {
if (aBoolean) {
Message obtain = Message.obtain();
obtain.what = Constant.GATHER_GET;
obtain.obj = poiEntity;
EventBus.getDefault().post(obtain);
}else {
} else {
Message obtain = Message.obtain();
obtain.what = Constant.FILTER_LIST_ITEM;
obtain.obj = poiEntity;
@@ -191,155 +274,141 @@ public class FilterFragment extends BaseDrawerFragment implements View.OnClickLi
});
}
@Subscribe
public void onEvent(Message data) {
if (data.what == Constant.JOB_SEARCH_WORD) {
/*
* id : 0
* name :
* address : http://10.130.23.166:8080/cbt/img/blue.png
* telephone : 11
* geo : 标题11
* price : 通过
* type :
* dist :
**/
new Thread(new Runnable() {
@Override
public void run() {
List<PoiEntity> allPoi = poiDao.getAllPoi();
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d("TAG", "run: " + allPoi.toString());
poiEntities.clear();
JobSearchBean jobSearchBean = (JobSearchBean) data.obj;
List<JobSearchBean.BodyBean.ListBean> list = jobSearchBean.getBody().getList();
for (int i = 0; i < list.size(); i++) {
PoiEntity poiEntity = new PoiEntity();
poiEntity.setTaskId(list.get(i).getId());
poiEntity.setName(list.get(i).getName());
poiEntity.setAddress(list.get(i).getAddress());
poiEntity.setTelPhone(list.get(i).getTelephone()+"");
poiEntity.setPrecision(list.get(i).getPrice());
poiEntity.setDist(list.get(i).getDist());
poiEntity.setType(Integer.valueOf(list.get(i).getType()));
String geo = list.get(i).getGeo();
Geometry geometry = GeometryTools.createGeometry(geo);
if ( geometry.getGeometryType().equals("Point")){//点
LatLng latLng = GeometryTools.createLatLng(geo);
poiEntity.setX(latLng.longitude+"");
poiEntity.setY(latLng.altitude+"");
}else if ( geometry.getGeometryType().equals("LineString")){//线
}else if ( geometry.getGeometryType().equals("Polygon")) {//面
}
poiEntities.add(poiEntity);
}
poiEntities.addAll(allPoi);
filterAdapter.setAllPoi(poiEntities);
}
});
}
}).start();
}
}
@Override
protected void initData() {
super.initData();
poiDatabase = PoiDatabase.getInstance(getContext());
poiDao = poiDatabase.getPoiDao();
poiEntities = new ArrayList<>();
new Thread(new Runnable() {
@Override
public void run() {
List<PoiEntity> allPoi = poiDao.getAllPoi();
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d("TAG", "run: " + allPoi.toString());
poiEntities.clear();
JobSearchBean jobSearchBean = (JobSearchBean) getArguments().getSerializable("body");
List<JobSearchBean.BodyBean.ListBean> list = jobSearchBean.getBody().getList();
for (int i = 0; i < list.size(); i++) {
PoiEntity poiEntity = new PoiEntity();
poiEntity.setTaskId(list.get(i).getId());
poiEntity.setName(list.get(i).getName());
poiEntity.setAddress(list.get(i).getAddress());
poiEntity.setTelPhone(list.get(i).getTelephone()+"");
poiEntity.setPrecision(list.get(i).getPrice());
poiEntity.setDist(list.get(i).getDist());
poiEntity.setType(Integer.valueOf(list.get(i).getType()));
String geo = list.get(i).getGeo();
Geometry geometry = GeometryTools.createGeometry(geo);
if ( geometry.getGeometryType().equals("Point")){//点
LatLng latLng = GeometryTools.createLatLng(geo);
poiEntity.setX(latLng.longitude+"");
poiEntity.setY(latLng.altitude+"");
}else if ( geometry.getGeometryType().equals("LineString")){//线
}else if ( geometry.getGeometryType().equals("Polygon")) {//面
}
poiEntities.add(poiEntity);
}
poiEntities.addAll(allPoi);
filterAdapter.setAllPoi(poiEntities);
}
});
}
}).start();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_filter:
Message obtain = Message.obtain();
obtain.what = Constant.FILTER_LIST;
obtain.obj = poiEntities;
EventBus.getDefault().post(obtain);
break;
case R.id.cl_number:
BottomMenu.show((AppCompatActivity) getContext(), new String[]{"200", "500","1000"}, new OnMenuItemClickListener() {
BottomMenu.show((AppCompatActivity) getContext(), new String[]{"200", "500", "1000"}, new OnMenuItemClickListener() {
@Override
public void onClick(String text, int index) {
tvNumber.setText(text);
Constant.NUMBER=Integer.getInteger(text);
switch (index) {
case 0:
Constant.NUMBER = 200;
break;
case 1:
Constant.NUMBER = 500;
break;
case 2:
Constant.NUMBER = 1000;
break;
}
Message obtain = Message.obtain();
obtain.what = Constant.JOB_WORD_MONITOR;
obtain.obj = true;
EventBus.getDefault().post(obtain);
}
});
break;
case R.id.cl_photograph:
BottomMenu.show((AppCompatActivity) getContext(), new String[]{"全部","专属任务", "普通任务"}, new OnMenuItemClickListener() {
BottomMenu.show((AppCompatActivity) getContext(), new String[]{"全部", "普通任务", "专属任务"}, new OnMenuItemClickListener() {
@Override
public void onClick(String text, int index) {
tvPhotograph.setText(text);
Constant.PHOTOGRAPH=text;
switch (index) {
case 0:
Constant.LIMIT_TTPE = -1;
break;
case 1:
Constant.LIMIT_TTPE = 0;
break;
case 2:
Constant.LIMIT_TTPE = 1;
break;
}
Message obtain = Message.obtain();
obtain.what = Constant.JOB_WORD_MONITOR;
obtain.obj = true;
EventBus.getDefault().post(obtain);
}
});
break;
/**
* 1 "POI"
* 2 "充电站"
* 3 "POI录像"
* 4 "道路录像"
* 5 "其他"
* 6 "面状任务"
*/
case R.id.cl_exclusive:
BottomMenu.show((AppCompatActivity) getContext(), new String[]{"全部","poi", "道路", "充电站", "其他"}, new OnMenuItemClickListener() {
BottomMenu.show((AppCompatActivity) getContext(), new String[]{"全部", "poi", "充电站", "POI录像", "道路录像", "其他", "面状任务"}, new OnMenuItemClickListener() {
@Override
public void onClick(String text, int index) {
tvExclusive.setText(text);
Constant.EXCLUSIVE=text;
switch (index) {
case 0:
Constant.TASK_TYPE = -1;
break;
case 1:
Constant.TASK_TYPE = 1;
break;
case 2:
Constant.TASK_TYPE = 2;
break;
case 3:
Constant.TASK_TYPE = 3;
break;
case 4:
Constant.TASK_TYPE = 4;
break;
case 5:
Constant.TASK_TYPE = 5;
break;
case 6:
Constant.TASK_TYPE = 6;
break;
}
Message obtain = Message.obtain();
obtain.what = Constant.JOB_WORD_MONITOR;
obtain.obj = true;
EventBus.getDefault().post(obtain);
}
});
break;
case R.id.cl_type:
BottomMenu.show((AppCompatActivity) getContext(), new String[]{"全部","已领取", "待提交","未领取"}, new OnMenuItemClickListener() {
BottomMenu.show((AppCompatActivity) getContext(), new String[]{"全部", "已领取", "待提交", "未领取"}, new OnMenuItemClickListener() {
@Override
public void onClick(String text, int index) {
tvType.setText(text);
Constant.TYPE=text;
switch (index) {
case 0:
Constant.TASK_STASTUS = -1;
break;
case 1:
Constant.TASK_STASTUS = 1;
break;
case 2:
Constant.TASK_STASTUS = 2;
break;
case 3:
Constant.TASK_STASTUS = 3;
break;
}
Message obtain = Message.obtain();
obtain.what = Constant.JOB_WORD_MONITOR;
obtain.obj = true;
EventBus.getDefault().post(obtain);
}
});
}
}
break;
}
}
@Override
public void onDestroy() {
if (EventBus.getDefault().isRegistered(this))//加上判断

View File

@@ -204,29 +204,19 @@ public class GatherGetFragment extends BaseFragment implements View.OnClickListe
//网络请求:
if (poiEntity != null) {
if (poiEntity.getType() == 1) {//poi的领取类型
receivedTaskByNet(HttpInterface.RECEIVED_POI_TASK, poiEntity.getTaskId() + "", false);
receivedTaskByNet(HttpInterface.RECEIVED_POI_TASK+"/"+poiEntity.getTaskId() + "", false);
} else if (poiEntity.getType() == 5) {
receivedTaskByNet(HttpInterface.RECEIVED_OTHER_TASK, poiEntity.getTaskId() + "", false);
receivedTaskByNet(HttpInterface.RECEIVED_OTHER_TASK+"/"+poiEntity.getTaskId() + "", false);
}
}
break;
case R.id.btn_gather://立即采集
int aInt = getArguments().getInt("aInt", 0);
if (aInt == 1) {
if (poiEntity != null) {
Message obtain = Message.obtain();
obtain.what = Constant.GATHER_GET;
obtain.obj = poiEntity;
EventBus.getDefault().post(obtain);
}
} else {
if (poiEntity != null) {
if (poiEntity.getType() == 1) {//poi的领取类型
receivedTaskByNet(HttpInterface.RECEIVED_POI_TASK, poiEntity.getTaskId() + "", true);
receivedTaskByNet(HttpInterface.RECEIVED_POI_TASK+"/"+poiEntity.getTaskId() + "", true);
} else if (poiEntity.getType() == 5) {
receivedTaskByNet(HttpInterface.RECEIVED_OTHER_TASK, poiEntity.getTaskId() + "", true);
receivedTaskByNet(HttpInterface.RECEIVED_OTHER_TASK+"/"+poiEntity.getTaskId() + "", true);
}
}
}
break;
case R.id.btn_finish_gather://结束采集
@@ -247,13 +237,12 @@ public class GatherGetFragment extends BaseFragment implements View.OnClickListe
}
/**
* @param url 不同任务类型对应的url
* @param id 任务id
*/
private void receivedTaskByNet(String url, String id, boolean isSaver) {
private void receivedTaskByNet(String url, boolean isSaver) {
showLoadingDialog();
OkGoBuilder.getInstance()
.Builder(getActivity())
.url(url + id)
.url(url)
.method(OkGoBuilder.GET)
.cls(ReceivedPoiBean.class)
.callback(new Callback<ReceivedPoiBean>() {

View File

@@ -352,6 +352,7 @@ public class OtherFragment extends BaseDrawerFragment implements View.OnClickLis
poiEntity.setCreateTime(format);
poiEntity.setType(5);
poiEntity.setTaskStatus(2);
poiEntity.setIsLocalData(1);
new Thread(new Runnable() {
@Override
public void run() {
@@ -502,6 +503,7 @@ public class OtherFragment extends BaseDrawerFragment implements View.OnClickLis
poiEntity.setCreateTime(format);
poiEntity.setType(5);
poiEntity.setTaskStatus(2);
poiEntity.setIsLocalData(1);
String newPoiEntity = new Gson().toJson(poiEntity);
//以键值对的形式添加新值。
edit.putString("poiEntity", newPoiEntity);

View File

@@ -447,6 +447,7 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe
poiEntity.setCreateTime(format);
poiEntity.setType(1);
poiEntity.setTaskStatus(2);
poiEntity.setIsLocalData(1);
new Thread(new Runnable() {
@Override
public void run() {
@@ -657,6 +658,7 @@ public class PoiFragment extends BaseDrawerFragment implements View.OnClickListe
poiEntity.setCreateTime(format);
poiEntity.setType(1);
poiEntity.setTaskStatus(2);
poiEntity.setIsLocalData(1);
String newPoiEntity = new Gson().toJson(poiEntity);
//以键值对的形式添加新值。
edit.putString("poiEntity", newPoiEntity);

View File

@@ -261,6 +261,7 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
poiEntity.setCreateTime(format);
poiEntity.setType(3);
poiEntity.setTaskStatus(2);
poiEntity.setIsLocalData(1);
new Thread(new Runnable() {
@Override
public void run() {
@@ -341,6 +342,7 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
poiEntity.setCreateTime(format);
poiEntity.setType(3);
poiEntity.setTaskStatus(2);
poiEntity.setIsLocalData(1);
String newPoiEntity = new Gson().toJson(poiEntity);
//以键值对的形式添加新值。
edit.putString("poiEntity", newPoiEntity);

View File

@@ -268,6 +268,7 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList
poiEntity.setCreateTime(format);
poiEntity.setType(4);
poiEntity.setTaskStatus(2);
poiEntity.setIsLocalData(1);
new Thread(new Runnable() {
@Override
public void run() {
@@ -349,6 +350,7 @@ public class RoadFragment extends BaseDrawerFragment implements View.OnClickList
poiEntity.setCreateTime(format);
poiEntity.setType(4);
poiEntity.setTaskStatus(2);
poiEntity.setIsLocalData(1);
String newPoiEntity = new Gson().toJson(poiEntity);
//以键值对的形式添加新值。
edit.putString("poiEntity", newPoiEntity);

View File

@@ -87,6 +87,7 @@ import com.vividsolutions.jts.geom.Geometry;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@@ -123,8 +124,9 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
private ChargingPileEntity chargingPileEntity;
private String userEncode;
private String centerEncode;
private JobSearchBean body;
private ArrayList<Removable> removables;
private List<Removable> removables;
private List<PoiEntity> showAllPoi;
private List<Removable> removablesLocality;
public static TreasureFragment newInstance(Bundle bundle) {
TreasureFragment fragment = new TreasureFragment();
@@ -200,12 +202,13 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
initSharePre();
//数据库
initThread();
removables = new ArrayList<>();
removables = new ArrayList<>();//存储网络数据的marker
showAllPoi = new ArrayList<>();//存储本地数据的容器
removablesLocality = new ArrayList<>(); //存储本地数据的marker
tencentMap.addOnMapLoadedCallback(new TencentMap.OnMapLoadedCallback() {
@Override
public void onMapLoaded() {
if (Constant.currentLocation != null ) {
if (Constant.currentLocation != null) {
initList(Constant.currentLocation);
}
tencentMap.setOnMarkerClickListener(new TencentMap.OnMarkerClickListener() {
@@ -237,7 +240,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
showSlidingFragment(otherFragment);
break;
}
}else if(marker.getTitle().equals("面妆任务")) {//面妆任务
} else if (marker.getTitle().equals("面妆任务")) {//面妆任务
JobSearchBean.BodyBean.ListBean listBean = (JobSearchBean.BodyBean.ListBean) marker.getTag();
PoiEntity poiListEntity = new PoiEntity();
poiListEntity.setTaskId(listBean.getId());
@@ -256,8 +259,8 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
} else if (geometry.getGeometryType().equals("LineString")) {//线
} else if (geometry.getGeometryType().equals("Polygon")) {//面
}
initMarker(poiListEntity,2);
}else {
initMarker(poiListEntity, 2);
} else {
JobSearchBean.BodyBean.ListBean listBean = (JobSearchBean.BodyBean.ListBean) marker.getTag();
PoiEntity poiListEntity = new PoiEntity();
poiListEntity.setTaskId(listBean.getId());
@@ -276,7 +279,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
} else if (geometry.getGeometryType().equals("LineString")) {//线
} else if (geometry.getGeometryType().equals("Polygon")) {//面
}
initMarker(poiListEntity,1);
initMarker(poiListEntity, 1);
}
return false;
}
@@ -299,6 +302,16 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
};
private void initList(TencentLocation tencentLocation) {
int task_type=Constant.TASK_TYPE;
int limit_type=Constant.LIMIT_TTPE;
int taskStatus = Constant.TASK_STASTUS;
if (taskStatus == 1 || taskStatus == 2) {
Message obtain = Message.obtain();
obtain.what = Constant.JOB_SEARCH_WORD;
obtain.obj = null;
EventBus.getDefault().post(obtain);
return;
}
//获取中心点位置
LatLng mapCenterPoint = getMapCenterPoint();
if (mapCenterPoint != null) {
@@ -316,6 +329,8 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
.params("date", date)
.params("pageSize", Constant.NUMBER)
.params("pageNum", "1")
.params("type",task_type)
.params("isExclusive",limit_type)
// .client(new OkHttpClient())
.execute(new DialogCallback<JobSearchBean>(JobSearchBean.class) {
@Override
@@ -325,7 +340,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
removables.get(i).remove();
}
removables.clear();
body = response.body();
JobSearchBean body = response.body();
List<JobSearchBean.BodyBean.ListBean> list = response.body().getBody().getList();
for (int i = 0; i < list.size(); i++) {
JobSearchBean.BodyBean.ListBean listBean = list.get(i);
@@ -353,7 +368,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
// 绘制折线
Polyline polyline = tencentMap.addPolyline(polylineOptions);
removables.add(polyline);
if (latLineString!=null&&latLineString.size()>0){
if (latLineString != null && latLineString.size() > 0) {
latLng = latLineString.get(0);
}
} else if (geometry.getGeometryType().equals("Polygon")) {//面
@@ -368,8 +383,8 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
//边线宽度15像素
strokeWidth(5));
removables.add(polygon);
if (latPolygon!=null&&latPolygon.size()>0){
latLng = latPolygon.get(0);
if (latPolygon != null && latPolygon.size() > 0) {
latLng = latPolygon.get(0);
}
}
switch (Integer.valueOf(list.get(i).getType())) {
@@ -405,13 +420,12 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
Marker planarMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(Constant.PLANAR_TASK_ICON).alpha(0.7f)
.flat(true)
.clockwise(false));
Log.d("面妆任务", "onSuccess: "+planarMarker);
Log.d("面妆任务", "onSuccess: " + planarMarker);
planarMarker.setTag(listBean);
removables.add(planarMarker);
planarMarker.setTitle("面妆任务");//1面妆任务
planarMarker.setClickable(true);
break;
}
}
Message obtain = Message.obtain();
@@ -423,14 +437,13 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
@Override
public void onError(Response<JobSearchBean> response) {
super.onError(response);
Log.d("TAG", "onError: " + response.message() + "gggggggggggggggggg");
Log.d("TAG", "onError: " + response.message() + "");
}
});
}
public void initMarker( PoiEntity poiEntity,int aInt) {
public void initMarker(PoiEntity poiEntity, int aInt) {
sliding_layout.setPanelHeight(0);
sliding_layout.setPanelState(SlidingUpPanelLayout.PanelState.HIDDEN);
frameLayout.setVisibility(View.VISIBLE);
@@ -438,29 +451,54 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
fragmentTransaction = supportFragmentManager.beginTransaction();
Bundle bundle = new Bundle();
bundle.putSerializable("poiEntity", poiEntity);
bundle.putBoolean("boolean",false);
bundle.putInt("aSave",aInt);
bundle.putBoolean("boolean", false);
bundle.putInt("aSave", aInt);
gatherGetFragment = GatherGetFragment.newInstance(bundle);
fragmentTransaction.replace(R.id.frame_layout, gatherGetFragment);
fragmentTransaction.commit();
}
private void initThread() {
int taskStatus = Constant.TASK_STASTUS;
int type = Constant.TASK_TYPE;
int limit = Constant.LIMIT_TTPE;
if (taskStatus == 3) {
showAllPoi.clear();
Message obtain = Message.obtain();
obtain.what = Constant.JOB_SEARCH_POI_WORD;
obtain.obj = showAllPoi;
EventBus.getDefault().post(obtain);
return;
}
new Thread(new Runnable() {
@Override
public void run() {
List<PoiEntity> allPoi = poiDao.getAllPoi();
List<PoiEntity> allTaskStatus = poiDao.getAllTaskStatus(taskStatus, taskStatus, type, type, limit, limit);
//List<PoiEntity> allTaskStatus = poiDao.getAllPoi();
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < allPoi.size(); i++) {
LatLng position = new LatLng(Double.valueOf(allPoi.get(i).getY()), Double.valueOf(allPoi.get(i).getX()));
for (int i = 0; i < removables.size(); i++) {
removables.get(i).remove();
}
removables.clear();
showAllPoi.clear();
showAllPoi.addAll(allTaskStatus);
for (int i = 0; i < allTaskStatus.size(); i++) {
LatLng position = new LatLng(Double.valueOf(allTaskStatus.get(i).getY()), Double.valueOf(allTaskStatus.get(i).getX()));
Marker marker = tencentMap.addMarker(new MarkerOptions(position));
marker.setClickable(true);
PoiEntity poiEntity = allPoi.get(i);
marker.setTitle("本地");//1本地
marker.setTag(poiEntity);
marker.setTag(allTaskStatus.get(i));
removablesLocality.add(marker);
}
Message obtain = Message.obtain();
obtain.what = Constant.JOB_SEARCH_POI_WORD;
obtain.obj = showAllPoi;
EventBus.getDefault().post(obtain);
}
});
}
@@ -691,10 +729,24 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
showSlidingFragment(chargingPileFragment);
} else if (data.what == Constant.CHARGING_STATION_PILE) {//充电站的充电桩
chargingPileEntity = (ChargingPileEntity) data.obj;
}else if (data.what==Constant.HOME_TREASURE){//寻宝的刷新
if ((boolean)data.obj){
} else if (data.what == Constant.HOME_TREASURE) {//寻宝的刷新
if ((boolean) data.obj) {
initList(Constant.currentLocation);
}
} else if (data.what == Constant.JOB_WORD_MONITOR) {//筛选条件界面的刷新
// 移除网络数据
for (int i = 0; i < removables.size(); i++) {
removables.get(i).remove();
}
removables.clear();
// 移除本地图层marker
for (int i = 0; i < removablesLocality.size(); i++) {
removablesLocality.get(i).remove();
}
removablesLocality.clear();
initThread();// 查询本地数据库
initList(Constant.currentLocation);//网络数据
}
}
@@ -921,10 +973,9 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
}).setTitle(title);
break;
case R.id.iv_filter:
initThread();
initList(Constant.currentLocation);
Bundle bundle = new Bundle();
if (body != null) {
bundle.putSerializable("body", body);
}
FilterFragment filterFragment = FilterFragment.newInstance(bundle);
showSlidingFragment(filterFragment);
break;

View File

@@ -16,13 +16,22 @@ import java.util.List;
public interface PoiDao {
/**
* 查询
*
* @return
*/
@Query("SELECT * FROM poi")
List<PoiEntity> getAllPoi();
@Query("SELECT * FROM poi where type=:type")
List<PoiEntity> getAllPoiType(int type);
@Query("SELECT * FROM poi WHERE (:taskStatus =-1 or taskStatus=:taskStatus1) and (:type=-1 or type=:type1) and (:isExclusive=-1 or isExclusive=:isExclusive1) ")
// @Query("SELECT * FROM poi WHERE taskStatus=:taskStatus and type=:type and (:isExclusive=-1 or isExclusive=:isExclusive) ")
List<PoiEntity> getAllTaskStatus(int taskStatus, int taskStatus1, int type, int type1, int isExclusive, int isExclusive1);
/**
* 添加
*
* @param poiEntities
*/
@Insert(onConflict = OnConflictStrategy.REPLACE)
@@ -30,6 +39,7 @@ public interface PoiDao {
/**
* 更新
*
* @param poiEntities
*/
@Update
@@ -37,13 +47,15 @@ public interface PoiDao {
/**
* 删除
*
* @param poiEntities
*/
@Delete
void deletePoiEntity(PoiEntity... poiEntities);
/**
*删除
* 删除
*
* @param poiEntities
*/
@Delete
@@ -51,6 +63,7 @@ public interface PoiDao {
/**
* 根据条件删除
*
* @param taskStatus
*/
@Query("DELETE FROM poi where taskStatus=:taskStatus")
@@ -65,6 +78,7 @@ public interface PoiDao {
/**
* 降序排列
*
* @return
*/
@Query("SELECT * FROM poi ORDER BY ID DESC")

View File

@@ -58,7 +58,16 @@ public class PoiEntity implements Serializable {
private int taskStatus;//任务状态 0.未领取 1.已领取2.未保存(保存到本地但未提交成功),3.已保存(保存到本地提交成功)4已上传结束采集,
private int type;//1 "POI"2 "充电站"3 "POI录像"4 "道路录像"5 "其他"6 "面状任务"
private int station_type;//1."全部"2 "POI"3 "充电站"4 "POI录像"5 "道路录像", "门牌:6 公交:7 情报:8
private int isLocalData;//是否是本地数据 0,服务 1,本地//现在没用
private int isLocalData;//是否是本地数据 0,服务 1,本地
private int isExclusive;//任务类型 0.普通任务1.专属任务
public int getIsExclusive() {
return isExclusive;
}
public void setIsExclusive(int isExclusive) {
this.isExclusive = isExclusive;
}
public int getIsLocalData() {
return isLocalData;