| | |
| | | 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; |
| | |
| | | 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 |
| | |
| | | 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) { |
| | | |
| | |
| | | @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); |
| | |
| | | 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; |
| | | } |
| | |
| | | /** |
| | | * 标注地图 |
| | | */ |
| | | private void showMapData(){ |
| | | private void showMapData(boolean show){ |
| | | mBaiduMap.clear(); |
| | | MarkerOptions mo = null; |
| | | Marker mMarker = null; |
| | |
| | | .zIndex(i); |
| | | } |
| | | // 掉下动画 |
| | | mo.animateType(MarkerOptions.MarkerAnimateType.drop); |
| | | if(show) |
| | | mo.animateType(MarkerOptions.MarkerAnimateType.grow); |
| | | mMarker = (Marker) (mBaiduMap.addOverlay(mo)); |
| | | mkList.add(mMarker); |
| | | } |
| | |
| | | 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()) { |
| | |
| | | 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 |
| | |
| | | }); |
| | | |
| | | } |
| | | |
| | | |
| | | @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) { |
| | | } |
| | | } |
| | | } |