From 63b87b529196c056fb4d96a58eded3936d3445f2 Mon Sep 17 00:00:00 2001
From: haijiang <181069201@qq.com>
Date: Tue, 17 Jul 2018 16:19:35 +0800
Subject: [PATCH] 提交

---
 app/src/main/java/com/moral/screen/activity/MapActivity.java |  134 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 119 insertions(+), 15 deletions(-)

diff --git a/app/src/main/java/com/moral/screen/activity/MapActivity.java b/app/src/main/java/com/moral/screen/activity/MapActivity.java
index 9b48d09..ef0a3e9 100644
--- a/app/src/main/java/com/moral/screen/activity/MapActivity.java
+++ b/app/src/main/java/com/moral/screen/activity/MapActivity.java
@@ -1,8 +1,12 @@
 package com.moral.screen.activity;
 
+import android.Manifest;
 import android.content.Intent;
 import android.graphics.Point;
+import android.os.AsyncTask;
+import android.os.Build;
 import android.os.Bundle;
+import android.os.Looper;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -28,16 +32,23 @@
 import com.moral.screen.model.DeviceBean;
 import com.moral.screen.R;
 import com.moral.screen.base.BaseActivity;
+import com.moral.screen.update.UpdateManager;
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
+import java.util.Timer;
+import java.util.TimerTask;
+
+import pub.devrel.easypermissions.AfterPermissionGranted;
+import pub.devrel.easypermissions.EasyPermissions;
 
 /**
  * Created by hjzhang on 2018/7/2.
  */
 
-public class MapActivity extends BaseActivity {
-    private TextView tv_left;
+public class MapActivity extends BaseActivity implements EasyPermissions.PermissionCallbacks{
+    private TextView tv_left,tv_right;
     private MapView bmapView;
     private BaiduMap mBaiduMap;
     BitmapDescriptor bdNormal = BitmapDescriptorFactory
@@ -57,6 +68,22 @@
     private ImageView iv_close;
     private LinearLayout ll_pop;
     private DeviceBean curDeviceBean;
+    private Timer timer;
+    /**
+     * ���������
+     */
+    private boolean isFinish = false;
+    private void showData() {
+        timer = new Timer();
+        timer.schedule(new TimerTask() {
+            @Override
+            public void run() {
+                if(!isFinish){
+                    getData(false);
+                }
+            }
+        },0,10*1000);
+    }
     @Override
     protected void getBundleExtras(Bundle extras) {
 
@@ -70,6 +97,7 @@
     @Override
     protected void initViews() {
         tv_left = findView(R.id.tv_left);
+        tv_right = findView(R.id.tv_right);
         bmapView = findView(R.id.bmapView);
         popView = LayoutInflater.from(this).inflate(R.layout.pop_layout,null);
         tv_name = popView.findViewById(R.id.tv_name);
@@ -102,17 +130,33 @@
                 startActivity(intent);
             }
         });
+        tv_right.setOnClickListener(this);
     }
 
     @Override
     protected void initData() {
-        getData();
+        getData(true);
+        showData();
+        /**
+         * ������������
+         */
+        if (Build.VERSION.SDK_INT >= 11) {
+            new checkUpdateTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+        } else {
+            new checkUpdateTask().execute();
+        }
     }
 
     @Override
     protected void processClick(View view) {
         switch (view.getId()){
             case R.id.tv_left:
+                finish();
+                break;
+            case R.id.tv_right:
+                MainApp.theApp.mSharedPreferencesUtil.exitLogin();
+                Intent intent = new Intent(MapActivity.this,LoginActivity.class);
+                startActivity(intent);
                 finish();
                 break;
         }
@@ -152,7 +196,7 @@
     /**
      * ������������
      */
-    private void showMapData(){
+    private void showMapData(boolean show){
         mBaiduMap.clear();
         MarkerOptions mo = null;
         Marker mMarker = null;
@@ -184,7 +228,8 @@
                         .zIndex(i);
             }
             // ������������
-            mo.animateType(MarkerOptions.MarkerAnimateType.drop);
+            if(show)
+               mo.animateType(MarkerOptions.MarkerAnimateType.grow);
             mMarker = (Marker) (mBaiduMap.addOverlay(mo));
             mkList.add(mMarker);
         }
@@ -211,12 +256,16 @@
         bdC.recycle();
         super.onDestroy();
         bmapView.onDestroy();
+        if(timer!=null){
+            timer.cancel();
+            timer =null;
+        }
     }
 
-    private void getData() {
+    private void getData(final boolean show) {
         HashMap<String, String> params = new HashMap<>();
         params.put("organizationId", MainApp.theApp.orgId+"");
-        mHttpUtils.doGet(API.DEVICES, params, CacheMode.DEFAULT, true, new HttpCallBack() {
+        mHttpUtils.doGet(API.DEVICES, params, CacheMode.DEFAULT, show, new HttpCallBack() {
             @Override
             public void onSuccess(String res, String msg) {
                 if (progressDialog.isShowing()) {
@@ -227,15 +276,17 @@
                     deviceList.clear();
                     deviceList.addAll(temp);
                 }
-                if(deviceList.size()>0){
-                    DeviceBean bean = deviceList.get(0);
-                    LatLng ll = new LatLng(bean.getLatitude(),
-                            bean.getLongitude());
-                    MapStatus.Builder builder = new MapStatus.Builder();
-                    builder.target(ll).zoom(18.0f);
-                    mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
+                if(show){
+                    if(deviceList.size()>0){
+                        DeviceBean bean = deviceList.get(0);
+                        LatLng ll = new LatLng(bean.getLatitude(),
+                                bean.getLongitude());
+                        MapStatus.Builder builder = new MapStatus.Builder();
+                        builder.target(ll).zoom(18.0f);
+                        mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
+                    }
                 }
-                showMapData();
+                showMapData(show);
             }
 
             @Override
@@ -254,4 +305,57 @@
         });
 
     }
+
+
+    @Override
+    public void onPermissionsGranted(int requestCode, List<String> perms) {
+        if (requestCode == WRITE_EXTERNAL_STORAGE) {
+            manager.showNoticeDialog();
+        }
+    }
+
+    @Override
+    public void onPermissionsDenied(int requestCode, List<String> perms) {
+
+    }
+
+    private final static int WRITE_EXTERNAL_STORAGE = 0x01;
+
+    @AfterPermissionGranted(WRITE_EXTERNAL_STORAGE)
+    public void updateAPP() {
+        String[] perms = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
+        if (EasyPermissions.hasPermissions(this, perms)) {
+            // Already have permission, do the thing
+            manager.showNoticeDialog();
+        } else {
+            // Do not have permissions, request them now
+            EasyPermissions.requestPermissions(this, "���������������������������������������������������",
+                    WRITE_EXTERNAL_STORAGE, perms);
+        }
+    }
+
+    UpdateManager manager = new UpdateManager(MapActivity.this);
+
+    private class checkUpdateTask extends AsyncTask<String, Void, String> {
+        @Override
+        protected String doInBackground(String... params) {
+            Looper.prepare();
+            // ������������������
+            manager.checkUpdateJson();
+            Looper.loop();
+            return null;
+        }
+
+        @Override
+        protected void onPostExecute(String result) {
+        }
+
+        @Override
+        protected void onPreExecute() {
+        }
+
+        @Override
+        protected void onProgressUpdate(Void... values) {
+        }
+    }
 }

--
Gitblit v1.8.0