diff --git a/app/build.gradle b/app/build.gradle
index 3fa13e6..1307bc8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -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"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4eab927..b19ea0d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -47,6 +47,7 @@
android:supportsRtl="true"
android:theme="@style/Theme.WhiteScreen"
tools:targetApi="n">
+
diff --git a/app/src/main/java/com/navinfo/outdoor/activity/PhotoAlbumActivity.java b/app/src/main/java/com/navinfo/outdoor/activity/PhotoAlbumActivity.java
new file mode 100644
index 0000000..577cf4c
--- /dev/null
+++ b/app/src/main/java/com/navinfo/outdoor/activity/PhotoAlbumActivity.java
@@ -0,0 +1,78 @@
+package com.navinfo.outdoor.activity;
+
+import androidx.recyclerview.widget.GridLayoutManager;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+import com.jcodecraeer.xrecyclerview.XRecyclerView;
+import com.navinfo.outdoor.R;
+import com.navinfo.outdoor.adapter.PhotoAlbumAdapter;
+import com.navinfo.outdoor.base.BaseActivity;
+import com.navinfo.outdoor.room.PoiEntity;
+import com.navinfo.outdoor.util.AWMp4ParserHelper;
+
+import java.io.File;
+import java.io.Serializable;
+import java.util.List;
+
+public class PhotoAlbumActivity extends BaseActivity implements View.OnClickListener {
+
+ private android.widget.ImageView ivPhotoFinal;
+ private android.widget.TextView tvPhotoAlbumDelete,tvPhotoChoose;
+ private com.jcodecraeer.xrecyclerview.XRecyclerView photoAlbumRecycler;
+ private PhotoAlbumAdapter photoAlbumAdapter;
+ private List fileListByUUID;
+
+ @Override
+ protected int getLayout() {
+ return R.layout.activity_photo_album;
+ }
+
+ @Override
+ protected void initView() {
+ super.initView();
+ PoiEntity showPoiEntity = (PoiEntity) getIntent().getSerializableExtra("showPoiEntity");
+ if (showPoiEntity!=null){
+ String id = showPoiEntity.getId();
+ if (showPoiEntity.getRecord_way()==1){
+ fileListByUUID = AWMp4ParserHelper.getInstance().getVideoFileListByUUID(id);
+ }else if (showPoiEntity.getRecord_way()==2){
+ fileListByUUID=AWMp4ParserHelper.getInstance().getJPGFileListByUUID(id);
+
+ }
+ }
+ ivPhotoFinal = (ImageView) findViewById(R.id.iv_photo_final);
+ ivPhotoFinal.setOnClickListener(this::onClick);
+ tvPhotoChoose = (TextView) findViewById(R.id.tv_photo_choose);
+ tvPhotoChoose.setOnClickListener(this::onClick);
+ tvPhotoAlbumDelete = (TextView) findViewById(R.id.tv_photo_album_delete);
+ tvPhotoAlbumDelete.setOnClickListener(this::onClick);
+ photoAlbumRecycler = (XRecyclerView) findViewById(R.id.photo_album_recycler);
+ photoAlbumRecycler.setLayoutManager(new GridLayoutManager(this,4));
+ photoAlbumAdapter = new PhotoAlbumAdapter(fileListByUUID,this);
+ photoAlbumRecycler.setAdapter(photoAlbumAdapter);
+ }
+
+ @Override
+ protected void initData() {
+ super.initData();
+ }
+
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.iv_photo_final:
+ finish();
+ break;
+
+ case R.id.tv_photo_album_delete:
+ //photoAlbumAdapter.setDeletePhoto();
+ break;
+
+ case R.id.tv_photo_choose:
+
+ break;
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/navinfo/outdoor/activity/PictureActivity.java b/app/src/main/java/com/navinfo/outdoor/activity/PictureActivity.java
index b0fde8c..e586796 100644
--- a/app/src/main/java/com/navinfo/outdoor/activity/PictureActivity.java
+++ b/app/src/main/java/com/navinfo/outdoor/activity/PictureActivity.java
@@ -158,13 +158,13 @@ public class PictureActivity extends BaseActivity implements View.OnClickListene
ivZoomAdd.setOnClickListener(this);
ivZoomDel = findViewById(R.id.iv_zoom_del);
ivZoomDel.setOnClickListener(this);
- cbMapType = findViewById(R.id.cb_map_type);
- cbMapType.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- setLocMarkerStyle(LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER);
- }
- });
+// cbMapType = findViewById(R.id.cb_map_type);
+// cbMapType.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+// @Override
+// public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+// setLocMarkerStyle(LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER);
+// }
+// });
ivLocation = findViewById(R.id.iv_location);
ivLocation.setOnClickListener(this);
layerChange = findViewById(R.id.layer_change);
@@ -627,10 +627,9 @@ public class PictureActivity extends BaseActivity implements View.OnClickListene
isMapSlide = false;
ivZoomAdd.setVisibility(View.GONE);
ivZoomDel.setVisibility(View.GONE);
- cbMapType.setVisibility(View.GONE);
ivLocation.setVisibility(View.GONE);
setLocMarkerStyle(LOCATION_TYPE_LOCATION_ROTATE);
- cbMapType.setChecked(false);
+
}
//大图
@@ -638,7 +637,6 @@ public class PictureActivity extends BaseActivity implements View.OnClickListene
isMapSlide = true;
ivZoomAdd.setVisibility(View.VISIBLE);
ivZoomDel.setVisibility(View.VISIBLE);
- cbMapType.setVisibility(View.VISIBLE);
ivLocation.setVisibility(View.VISIBLE);
setLocMarkerStyle(LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER);
diff --git a/app/src/main/java/com/navinfo/outdoor/activity/PicturesActivity.java b/app/src/main/java/com/navinfo/outdoor/activity/PicturesActivity.java
index 7c532a8..8e46a82 100644
--- a/app/src/main/java/com/navinfo/outdoor/activity/PicturesActivity.java
+++ b/app/src/main/java/com/navinfo/outdoor/activity/PicturesActivity.java
@@ -137,13 +137,13 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
ivZoomAdd.setOnClickListener(this);
ivZoomDel =findViewById(R.id.iv_zoom_del);
ivZoomDel.setOnClickListener(this);
- cbMapType =findViewById(R.id.cb_map_type);
- cbMapType.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- setLocMarkerStyle(LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER);
- }
- });
+// cbMapType =findViewById(R.id.cb_map_type);
+// cbMapType.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+// @Override
+// public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+// setLocMarkerStyle(LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER);
+// }
+// });
ivLocation =findViewById(R.id.iv_location);
ivLocation.setOnClickListener(this);
camera =findViewById(R.id.camera);
@@ -416,10 +416,10 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
isMapSlide = false;
ivZoomAdd.setVisibility(View.GONE);
ivZoomDel.setVisibility(View.GONE);
- cbMapType.setVisibility(View.GONE);
+
ivLocation.setVisibility(View.GONE);
setLocMarkerStyle(LOCATION_TYPE_LOCATION_ROTATE);
- cbMapType.setChecked(false);
+
}
//大图
@@ -427,7 +427,6 @@ public class PicturesActivity extends BaseActivity implements View.OnClickListen
isMapSlide = true;
ivZoomAdd.setVisibility(View.VISIBLE);
ivZoomDel.setVisibility(View.VISIBLE);
- cbMapType.setVisibility(View.VISIBLE);
ivLocation.setVisibility(View.VISIBLE);
setLocMarkerStyle(LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER);
}
diff --git a/app/src/main/java/com/navinfo/outdoor/activity/RegardMapActivity.java b/app/src/main/java/com/navinfo/outdoor/activity/RegardMapActivity.java
index a7e8b4e..9156730 100644
--- a/app/src/main/java/com/navinfo/outdoor/activity/RegardMapActivity.java
+++ b/app/src/main/java/com/navinfo/outdoor/activity/RegardMapActivity.java
@@ -1,6 +1,7 @@
package com.navinfo.outdoor.activity;
import android.content.Intent;
+import android.net.Uri;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
@@ -37,13 +38,17 @@ public class RegardMapActivity extends BaseActivity implements View.OnClickLis
finish();
break;
case R.id.tv_map_link:
- Intent linkIntent = new Intent(this, LinkActivity.class);
- linkIntent.putExtra("url","http://www.navinfo.com");
- startActivity(linkIntent);
+ Uri uri = Uri.parse("http://www.navinfo.com");
+ Intent intent = new Intent();
+ intent.setAction("android.intent.action.VIEW");
+ intent.setData(uri);
+ startActivity(intent);
break;
case R.id.tv_official_link:
- Intent officialIntent = new Intent(this, LinkActivity.class);
- officialIntent.putExtra("url","https://dtxbmaps.navinfo.com/user");
+ Uri officialUri = Uri.parse("https://dtxbmaps.navinfo.com/user");
+ Intent officialIntent = new Intent();
+ officialIntent.setAction("android.intent.action.VIEW");
+ officialIntent.setData(officialUri);
startActivity(officialIntent);
break;
}
diff --git a/app/src/main/java/com/navinfo/outdoor/adapter/CapacityEvaluationAdapter.java b/app/src/main/java/com/navinfo/outdoor/adapter/CapacityEvaluationAdapter.java
index 9f36ff3..fd752b1 100644
--- a/app/src/main/java/com/navinfo/outdoor/adapter/CapacityEvaluationAdapter.java
+++ b/app/src/main/java/com/navinfo/outdoor/adapter/CapacityEvaluationAdapter.java
@@ -40,7 +40,12 @@ public class CapacityEvaluationAdapter extends RecyclerView.Adapter {
+ private List files ;
+ private Context context;
+
+ public PhotoAlbumAdapter(List files, Context context) {
+ this.files = files;
+ this.context = context;
+ }
+
+
+
+ Handler handler = new Handler() {
+ @Override
+ public void handleMessage(@NonNull @NotNull Message msg) {
+ super.handleMessage(msg);
+ switch (msg.what) {
+ case 0x107:
+ notifyDataSetChanged();
+ break;
+ }
+ }
+ };
+
+ @NonNull
+ @NotNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull @NotNull ViewGroup parent, int viewType) {
+ View inflate = LayoutInflater.from(context).inflate(R.layout.photo_album_item, parent, false);
+ return new ViewHolder(inflate);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull @NotNull ViewHolder holder, int position) {
+ File file= files.get(position);
+ if (file.exists()) {
+ AWMp4ParserHelper.getInstance().loadFirstWithGlide(context, Uri.fromFile(file).toString(), holder.ivPhoto, 500);
+ }
+
+ //点击每个条目
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (photoClickItem != null) {
+ photoClickItem.item(position);
+ }
+ }
+ });
+ holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
+ @Override
+ public boolean onLongClick(View v) {
+ holder.cbPhoto.setVisibility(View.VISIBLE);
+ holder.cbPhoto.setChecked(true);
+ return false;
+ }
+ });
+
+
+ }
+ @Override
+ public int getItemCount() {
+ return files.size();
+ }
+
+ class ViewHolder extends RecyclerView.ViewHolder {
+ private ImageView ivPhoto;
+ private CheckBox cbPhoto;
+
+ public ViewHolder(@NonNull @NotNull View itemView) {
+ super(itemView);
+ ivPhoto = itemView.findViewById(R.id.iv_photo_album);
+ cbPhoto = itemView.findViewById(R.id.cb_photo_album);
+ }
+ }
+
+ public photoClickItem photoClickItem;
+
+ public void setPhotoClickItem(photoClickItem photoClickItem) {
+ this.photoClickItem = photoClickItem;
+ }
+
+ public interface photoClickItem {
+ void item(int aInt);
+ }
+
+
+}
diff --git a/app/src/main/java/com/navinfo/outdoor/adapter/StaySubmitAdapter.java b/app/src/main/java/com/navinfo/outdoor/adapter/StaySubmitAdapter.java
index 8cd599f..6e67b3d 100644
--- a/app/src/main/java/com/navinfo/outdoor/adapter/StaySubmitAdapter.java
+++ b/app/src/main/java/com/navinfo/outdoor/adapter/StaySubmitAdapter.java
@@ -41,6 +41,7 @@ public class StaySubmitAdapter extends RecyclerView.Adapter videoFileListByUUID = AWMp4ParserHelper.getInstance().getVideoFileListByUUID(showPoiEntity.getId());
for (int i = 0; i < videoFileListByUUID.size(); i++) {
videoFileListByUUID.get(i).delete();
-
}
ivPoiVideoPicture.setImageDrawable(null);
return false;
@@ -409,6 +412,17 @@ public class PoiVideoFragment extends BaseDrawerFragment implements View.OnClick
return;
}
break;
+ case R.id.tv_photo_album:
+ if (tvPicture.isEnabled()){
+ showPoiEntity.setRecord_way(1);
+ }
+ if (tvPictures.isEnabled()){
+ showPoiEntity.setRecord_way(2);
+ }
+ Intent photoAlbumIntent = new Intent(getActivity(), PhotoAlbumActivity.class);
+ photoAlbumIntent.putExtra("showPoiEntity",showPoiEntity);
+ startActivity(photoAlbumIntent);
+ break;
}
}
diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/StaySubmitFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/StaySubmitFragment.java
index d307ee1..26f78a0 100644
--- a/app/src/main/java/com/navinfo/outdoor/fragment/StaySubmitFragment.java
+++ b/app/src/main/java/com/navinfo/outdoor/fragment/StaySubmitFragment.java
@@ -53,6 +53,7 @@ public class StaySubmitFragment extends BaseFragment implements View.OnClickList
private List roadEntities;
private ArrayList newEntities;
private ArrayList poiEntities;
+ private CheckBox cbSelect;
public static StaySubmitFragment newInstance(Bundle bundle) {
@@ -84,7 +85,7 @@ public class StaySubmitFragment extends BaseFragment implements View.OnClickList
ConstraintLayout clStayType = findViewById(R.id.cl_stay_type);
clStayType.setOnClickListener(this);
RecyclerView stayXrv =findViewById(R.id.stay_xrv);
- CheckBox cbSelect =findViewById(R.id.cb_select);
+ cbSelect = findViewById(R.id.cb_select);
cbSelect.setOnClickListener(this);
TextView tvDelete =findViewById(R.id.tv_delete);
tvDelete.setOnClickListener(this);
@@ -111,6 +112,7 @@ public class StaySubmitFragment extends BaseFragment implements View.OnClickList
}
});
+ //全选
cbSelect.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
@@ -124,6 +126,7 @@ public class StaySubmitFragment extends BaseFragment implements View.OnClickList
@Subscribe
public void onEvent(Message data) {
if (data.what == Constant.EVENT_STAY_REFRESH) {
+ cbSelect.setChecked(false);
Toast.makeText(getActivity(), (String) data.obj, Toast.LENGTH_SHORT).show();
dismissLoadingDialog();
refreshData();
@@ -215,8 +218,10 @@ public class StaySubmitFragment extends BaseFragment implements View.OnClickList
showLoadingDialog();
setLoadingDialogText("提交中...");
PoiSaveUtils.getInstance(getActivity()).uploadPoiEntityBatch(poiEntities);
+
} else {
- Toast.makeText(getActivity(), "请选择要删除的条目数据", Toast.LENGTH_SHORT).show();
+
+ Toast.makeText(getActivity(), "请选择要提交的数据", Toast.LENGTH_SHORT).show();
}
break;
diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java
index e3b6b1a..35edc0e 100644
--- a/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java
+++ b/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java
@@ -103,6 +103,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.Timer;
+import java.util.TimerTask;
/**
* 寻宝的Fragment
@@ -175,7 +177,12 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
dismissLoadingDialog();
removableHashMap.clear();
initThread(); // 刷新筛选的本地数据
- initList(Constant.currentLocation); // 刷新筛选的网络数据
+ if (Constant.currentLocation!=null){
+ initList(Constant.currentLocation); // 刷新筛选的网络数据
+ }else {
+ Toast.makeText(getActivity(), "未开启定位服务", Toast.LENGTH_SHORT).show();
+ }
+
}
@Override
@@ -286,8 +293,23 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
treasureMap.getLayoutParams().width = widthHeight[0];
treasureMap.getLayoutParams().height = widthHeight[1];
- }
+ //消息通知:
+
+ }
+ public class TimerTest {
+ class MyTimerTask extends TimerTask {
+ public void run() {
+
+ System.out.println("我爱你中国");
+ }
+ }
+ public void main(String[] args) {
+ Timer timer = new Timer();
+ timer.schedule(new MyTimerTask(), 0, 5000);
+
+ }
+ }
/**
* 得到电话区号,电话位数
*/
diff --git a/app/src/main/res/layout/activity_photo_album.xml b/app/src/main/res/layout/activity_photo_album.xml
new file mode 100644
index 0000000..d6a378f
--- /dev/null
+++ b/app/src/main/res/layout/activity_photo_album.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_picture.xml b/app/src/main/res/layout/activity_picture.xml
index e8e9368..2f631a7 100644
--- a/app/src/main/res/layout/activity_picture.xml
+++ b/app/src/main/res/layout/activity_picture.xml
@@ -52,17 +52,17 @@
app:layout_constraintLeft_toLeftOf="@id/iv_zoom_add"
app:layout_constraintTop_toBottomOf="@id/iv_zoom_add" />
-
+
+
+
+
+
+
+
+
+
+
+
+ app:layout_constraintLeft_toLeftOf="@id/iv_zoom_del"
+ app:layout_constraintTop_toBottomOf="@id/iv_zoom_del" />
-
+
+
+
+
+
+
+
+
+
+
+
+ app:layout_constraintLeft_toLeftOf="@id/iv_zoom_del"
+ app:layout_constraintTop_toBottomOf="@id/iv_zoom_del" />
diff --git a/app/src/main/res/layout/fragment_message.xml b/app/src/main/res/layout/fragment_message.xml
index 8f245f9..4f1b4c7 100644
--- a/app/src/main/res/layout/fragment_message.xml
+++ b/app/src/main/res/layout/fragment_message.xml
@@ -40,6 +40,7 @@
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="20dp"
+ android:visibility="gone"
android:layout_marginRight="10dp"
android:text="全部已读"
android:textColor="@color/black" />
diff --git a/app/src/main/res/layout/photo_album_item.xml b/app/src/main/res/layout/photo_album_item.xml
new file mode 100644
index 0000000..008d700
--- /dev/null
+++ b/app/src/main/res/layout/photo_album_item.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/poi_video_fragment.xml b/app/src/main/res/layout/poi_video_fragment.xml
index 5365645..d7739bc 100644
--- a/app/src/main/res/layout/poi_video_fragment.xml
+++ b/app/src/main/res/layout/poi_video_fragment.xml
@@ -175,6 +175,16 @@
android:text="点击拍照"
android:textColor="@color/white"
android:textSize="15sp" />
+
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index b3af242..16f06a4 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -57,7 +57,7 @@