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/res/mipmap-xxxhdpi/icon.png | 0
app/src/main/java/com/moral/screen/activity/ChartActivity.java | 17
app/src/main/java/com/moral/screen/common/API.java | 4
app/src/main/res/mipmap-xxxhdpi/icon_level1.png | 0
app/src/main/java/com/moral/screen/update/UpdateManager.java | 327 +++++++++++++++++++++++++++++
app/src/main/java/com/moral/screen/update/ParseXmlService.java | 49 ++++
.idea/misc.xml | 49 ++++
app/src/main/java/com/moral/screen/activity/DeviceDataActivity.java | 7
app/src/main/res/layout/ac_login_layout.xml | 4
.idea/gradle.xml | 19 +
app/src/main/res/mipmap-xxxhdpi/icon_offline.png | 0
app/src/main/res/layout/softupdate_progress.xml | 11 +
app/build.gradle | 1
app/release/app-release.apk | 0
app/src/main/res/mipmap-xxxhdpi/icon_level3.png | 0
app/src/main/res/values/strings.xml | 7
app/src/main/AndroidManifest.xml | 4
app/src/main/java/com/moral/screen/activity/MapActivity.java | 75 ++++++
app/src/main/res/mipmap-xxxhdpi/start.png | 0
app/src/main/res/mipmap-xxxhdpi/icon_normal.png | 0
/dev/null | 0
app/release/output.json | 1
app/src/main/res/mipmap-xxxhdpi/icon_level2.png | 0
.idea/runConfigurations.xml | 12 +
app/src/main/res/layout/ac_charts_layout.xml | 38 ++-
25 files changed, 595 insertions(+), 30 deletions(-)
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000..a674d6f
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="GradleSettings">
+ <option name="linkedExternalProjectsSettings">
+ <GradleProjectSettings>
+ <option name="distributionType" value="DEFAULT_WRAPPED" />
+ <option name="externalProjectPath" value="$PROJECT_DIR$" />
+ <option name="modules">
+ <set>
+ <option value="$PROJECT_DIR$" />
+ <option value="$PROJECT_DIR$/andbrickslib" />
+ <option value="$PROJECT_DIR$/app" />
+ </set>
+ </option>
+ <option name="resolveModulePerSourceSet" value="false" />
+ </GradleProjectSettings>
+ </option>
+ </component>
+</project>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..13c4629
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="NullableNotNullManager">
+ <option name="myDefaultNullable" value="android.support.annotation.Nullable" />
+ <option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
+ <option name="myNullables">
+ <value>
+ <list size="4">
+ <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
+ <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
+ <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
+ <item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
+ </list>
+ </value>
+ </option>
+ <option name="myNotNulls">
+ <value>
+ <list size="4">
+ <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
+ <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
+ <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
+ <item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
+ </list>
+ </value>
+ </option>
+ </component>
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+ <output url="file://$PROJECT_DIR$/build/classes" />
+ </component>
+ <component name="ProjectType">
+ <option name="id" value="Android" />
+ </component>
+ <component name="masterDetails">
+ <states>
+ <state key="ProjectJDKs.UI">
+ <settings>
+ <last-edited>1.8</last-edited>
+ <splitter-proportions>
+ <option name="proportions">
+ <list>
+ <option value="0.2" />
+ </list>
+ </option>
+ </splitter-proportions>
+ </settings>
+ </state>
+ </states>
+ </component>
+</project>
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
new file mode 100644
index 0000000..7f68460
--- /dev/null
+++ b/.idea/runConfigurations.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="RunConfigurationProducerService">
+ <option name="ignoredProducers">
+ <set>
+ <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
+ <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
+ <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
+ </set>
+ </option>
+ </component>
+</project>
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index e6261ea..334d2fc 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -51,4 +51,5 @@
exclude group: 'com.android.support'
})
compile 'com.github.lecho:hellocharts-library:1.5.8@aar'
+ compile 'pub.devrel:easypermissions:0.4.0'
}
diff --git a/app/release/app-release.apk b/app/release/app-release.apk
new file mode 100644
index 0000000..842c7a8
--- /dev/null
+++ b/app/release/app-release.apk
Binary files differ
diff --git a/app/release/output.json b/app/release/output.json
new file mode 100644
index 0000000..2bd93ae
--- /dev/null
+++ b/app/release/output.json
@@ -0,0 +1 @@
+[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":1},"path":"app-release.apk","properties":{"packageId":"com.moral.screen","split":"","minSdkVersion":"15"}}]
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 57fce28..91ee280 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -23,9 +23,9 @@
<application
android:name=".MainApp"
android:allowBackup="true"
- android:icon="@mipmap/ic_launcher"
+ android:icon="@mipmap/icon"
android:label="@string/app_name"
- android:roundIcon="@mipmap/ic_launcher_round"
+ android:roundIcon="@mipmap/icon"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:replace="android:icon">
diff --git a/app/src/main/java/com/moral/screen/activity/ChartActivity.java b/app/src/main/java/com/moral/screen/activity/ChartActivity.java
index 2036671..77ccbea 100644
--- a/app/src/main/java/com/moral/screen/activity/ChartActivity.java
+++ b/app/src/main/java/com/moral/screen/activity/ChartActivity.java
@@ -61,7 +61,7 @@
private List<PointValue> mPointValues = new ArrayList<>();
private List<AxisValue> mAxisXValues = new ArrayList<>();
- private TextView tv_sub;
+ private TextView tv_sub,tv_unit;
private String sensorKey, mac, name, unit;
private float maxValue;
@@ -101,7 +101,9 @@
initTopBar();
tv_title.setText("������������");
tv_sub = findView(R.id.tv_sub);
+ tv_unit = findView(R.id.tv_unit);
tv_sub.setText(name + "���������������");
+ tv_unit.setText("���������" + unit);
chartView = findView(R.id.chart);
initLineChart();
}
@@ -150,11 +152,12 @@
data.setLines(lines);
data.setValueLabelBackgroundColor(Color.TRANSPARENT);//������������������������������������������
data.setValueLabelBackgroundEnabled(false);
- data.setValueLabelsTextColor(Color.GRAY);
+ data.setValueLabelsTextColor(Color.WHITE);
+ data.setValueLabelTextSize(8);
//���������
axisX = new Axis(); //X���
- axisX.setHasTiltedLabels(true); //X���������������������������������������������true���������������
+ axisX.setHasTiltedLabels(false); //X���������������������������������������������true���������������
axisX.setName("������������"); //������������
axisX.setTextSize(8);//������������������
axisX.setTextColor(getResources().getColor(R.color.blue_txt));
@@ -170,12 +173,12 @@
axisY = Axis.generateAxisFromRange((float) 0.0, maxValue == 0 ? 100 : maxValue, maxValue == 0 ? 10 : maxValue / 16); //Y���
// axisY = new Axis();
axisY.setAutoGenerated(false);
- AxisValueFormatter yvalue = new SimpleAxisValueFormatter(1);
- axisY.setFormatter(yvalue);
+// AxisValueFormatter yvalue = new SimpleAxisValueFormatter(1);
+// axisY.setFormatter(yvalue);
axisY.setHasLines(true);
axisY.setHasSeparationLine(true);
- axisY.setName("���������" + unit);//y���������
- axisY.setTextSize(10);//������������������
+ axisY.setName(" ");//y���������
+ axisY.setTextSize(8);//������������������
axisY.setTextColor(getResources().getColor(R.color.blue_txt));
axisY.setLineColor(getResources().getColor(R.color.blue_txt));
data.setAxisYLeft(axisY); //Y������������������
diff --git a/app/src/main/java/com/moral/screen/activity/DeviceDataActivity.java b/app/src/main/java/com/moral/screen/activity/DeviceDataActivity.java
index 3b6adc8..15efea5 100644
--- a/app/src/main/java/com/moral/screen/activity/DeviceDataActivity.java
+++ b/app/src/main/java/com/moral/screen/activity/DeviceDataActivity.java
@@ -136,7 +136,12 @@
ArrayList<DeviceDataBean> temp = (ArrayList<DeviceDataBean>) FastJsonTools.getArrayJson(res,DeviceDataBean.class);
if(temp!=null){
dataList.clear();
- dataList.addAll(temp);
+ for (DeviceDataBean data: temp){
+ if(!("e23".equals(data.getSensor_key())||"e24".equals(data.getSensor_key())||"warn".equals(data.getSensor_key()))){
+ dataList.add(data);
+ }
+ }
+
}
adapter.notifyDataSetChanged();
}
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 656aa7f..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,17 +32,22 @@
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 {
+public class MapActivity extends BaseActivity implements EasyPermissions.PermissionCallbacks{
private TextView tv_left,tv_right;
private MapView bmapView;
private BaiduMap mBaiduMap;
@@ -128,6 +137,14 @@
protected void initData() {
getData(true);
showData();
+ /**
+ * ������������
+ */
+ if (Build.VERSION.SDK_INT >= 11) {
+ new checkUpdateTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ } else {
+ new checkUpdateTask().execute();
+ }
}
@Override
@@ -211,7 +228,8 @@
.zIndex(i);
}
// ������������
- mo.animateType(MarkerOptions.MarkerAnimateType.grow);
+ if(show)
+ mo.animateType(MarkerOptions.MarkerAnimateType.grow);
mMarker = (Marker) (mBaiduMap.addOverlay(mo));
mkList.add(mMarker);
}
@@ -287,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) {
+ }
+ }
}
diff --git a/app/src/main/java/com/moral/screen/common/API.java b/app/src/main/java/com/moral/screen/common/API.java
index 51a40a2..d4fa4bc 100644
--- a/app/src/main/java/com/moral/screen/common/API.java
+++ b/app/src/main/java/com/moral/screen/common/API.java
@@ -5,10 +5,10 @@
*/
public class API {
- public static final String BASE_HTTP = "http://192.168.1.101:8090/screen_api_v2";
+ public static final String BASE_HTTP = "http://monitor-api2.7drlb.com";
public static final String LOGIN = BASE_HTTP+"/mobile/login";
public static final String DEVICES = BASE_HTTP+"/mobile/devices";
public static final String SENSORS = BASE_HTTP+"/mobile/sensors";
public static final String SENSOR = BASE_HTTP+"/mobile/sensor";
-
+ public final static String UPDATE = "http://www.7drlb.com/apps/screen_app.json";//���������������
}
diff --git a/app/src/main/java/com/moral/screen/update/ParseXmlService.java b/app/src/main/java/com/moral/screen/update/ParseXmlService.java
new file mode 100644
index 0000000..fb6209f
--- /dev/null
+++ b/app/src/main/java/com/moral/screen/update/ParseXmlService.java
@@ -0,0 +1,49 @@
+package com.moral.screen.update;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import java.util.HashMap;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+/**
+ * Created by bin.shen on 6/25/16.
+ */
+public class ParseXmlService {
+
+ public HashMap<String, String> parseXml(String uri) throws Exception {
+ HashMap<String, String> hashMap = new HashMap<String, String>();
+
+ // ������������������������������������
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ // ������������������������������������������������������
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ // ���������������������������������������������������������
+ Document document = builder.parse(uri);
+ //������XML���������������
+ Element root = document.getDocumentElement();
+ //���������������������
+ NodeList childNodes = root.getChildNodes();
+ for (int j = 0; j < childNodes.getLength(); j++) {
+ //���������������
+ Node childNode = (Node) childNodes.item(j);
+ if (childNode.getNodeType() == Node.ELEMENT_NODE) {
+ Element childElement = (Element) childNode;
+ if ("version".equals(childElement.getNodeName())) { //���������
+ hashMap.put("version",childElement.getFirstChild().getNodeValue());
+ } else if (("name".equals(childElement.getNodeName()))) { //������������
+ hashMap.put("name",childElement.getFirstChild().getNodeValue());
+ } else if (("url".equals(childElement.getNodeName()))) { //������������
+ hashMap.put("url",childElement.getFirstChild().getNodeValue());
+ } else if (("message".equals(childElement.getNodeName()))) { //������������
+ hashMap.put("message",childElement.getFirstChild().getNodeValue());
+ }
+ }
+ }
+ return hashMap;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/moral/screen/update/UpdateManager.java b/app/src/main/java/com/moral/screen/update/UpdateManager.java
new file mode 100644
index 0000000..9d9c37d
--- /dev/null
+++ b/app/src/main/java/com/moral/screen/update/UpdateManager.java
@@ -0,0 +1,327 @@
+package com.moral.screen.update;
+
+/**
+ * Created by bin.shen on 6/25/16.
+ */
+
+import android.app.AlertDialog.Builder;
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnClickListener;
+import android.content.Intent;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.net.Uri;
+import android.os.Build;
+import android.os.Environment;
+import android.os.Handler;
+import android.os.Message;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.ProgressBar;
+
+import com.moral.screen.MainActivity;
+import com.moral.screen.R;
+import com.moral.screen.activity.MapActivity;
+import com.moral.screen.common.API;
+
+import org.json.JSONObject;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.HashMap;
+
+public class UpdateManager {
+ /* ��������� */
+ private static final int DOWNLOAD = 1;
+ /* ������������ */
+ private static final int DOWNLOAD_FINISH = 2;
+ /* ���������������XML������ */
+ HashMap<String, String> mHashMap;
+ /* ������������������ */
+ private String mSavePath;
+ /* ��������������������� */
+ private int progress;
+ /* ������������������ */
+ private boolean cancelUpdate = false;
+
+ private MapActivity mActivity;
+
+ /* ��������������� */
+ private ProgressBar mProgress;
+ private Dialog mDownloadDialog;
+
+ private Handler mHandler = new Handler() {
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ // ������������
+ case DOWNLOAD:
+ // ���������������������
+ mProgress.setProgress(progress);
+ break;
+ case DOWNLOAD_FINISH:
+ // ������������
+ installApk();
+ break;
+ default:
+ break;
+ }
+ }
+ };
+
+ public UpdateManager(MapActivity activity) {
+ this.mActivity = activity;
+ }
+
+
+ /**
+ * ������������������
+ */
+ public void checkUpdateJson() {
+ String data = getUrlData(API.UPDATE);
+ try {
+ JSONObject resJosn = new JSONObject(data);
+ mHashMap = new HashMap<>();
+ mHashMap.put("version", resJosn.optString("version"));
+ mHashMap.put("name", resJosn.optString("name"));
+ mHashMap.put("message", "");
+ mHashMap.put("url", resJosn.optString("url"));
+ if (isUpdate()) {
+ if (Build.VERSION.SDK_INT >= 23) {
+ mActivity.updateAPP();
+ } else {
+ // ���������������������
+ showNoticeDialog();
+ }
+ } else {
+// Log.d("haijiang","���������������������");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * ���������������������������������
+ *
+ * @return
+ */
+ private boolean isUpdate() {
+ // ������������������������
+ int versionCode = getVersionCode(mActivity);
+ if (null != mHashMap) {
+ int serviceCode = Integer.valueOf(mHashMap.get("version"));
+ // ������������
+ if (serviceCode > versionCode) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * ���������������������
+ *
+ * @param context
+ * @return
+ */
+ private int getVersionCode(Context context) {
+ int versionCode = 0;
+ try {
+ // ������������������������������AndroidManifest.xml���android:versionCode
+ versionCode = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode;
+ } catch (NameNotFoundException e) {
+ e.printStackTrace();
+ }
+ return versionCode;
+ }
+
+ /**
+ * ���������������������������
+ */
+ public void showNoticeDialog() {
+ String message = mHashMap.get("message");
+ // ���������������
+ Builder builder = new Builder(mActivity);
+ builder.setTitle(R.string.soft_update_title);
+ if (message == null || message.isEmpty()) {
+ builder.setMessage(R.string.soft_update_info);
+ } else {
+ builder.setMessage(message);
+ }
+
+ // ������
+ builder.setPositiveButton(R.string.soft_update_updatebtn, new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.dismiss();
+ // ���������������������
+ showDownloadDialog();
+ }
+ });
+
+ // ������������
+ builder.setNegativeButton(R.string.soft_update_later, new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.dismiss();
+ }
+ });
+ Dialog noticeDialog = builder.create();
+ noticeDialog.setCanceledOnTouchOutside(false);
+ noticeDialog.show();
+ }
+
+ /**
+ * ���������������������������
+ */
+ private void showDownloadDialog() {
+ // ���������������������������
+ Builder builder = new Builder(mActivity);
+ builder.setTitle(R.string.soft_updating);
+ // ���������������������������������
+ final LayoutInflater inflater = LayoutInflater.from(mActivity);
+ View v = inflater.inflate(R.layout.softupdate_progress, null);
+ mProgress = (ProgressBar) v.findViewById(R.id.update_progress);
+ builder.setView(v);
+ // ������������
+ builder.setNegativeButton(R.string.soft_update_cancel, new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.dismiss();
+ // ������������������
+ cancelUpdate = true;
+ }
+ });
+ mDownloadDialog = builder.create();
+ mDownloadDialog.show();
+ // ������������
+ downloadApk();
+ }
+
+ /**
+ * ������apk������
+ */
+ private void downloadApk() {
+ // ���������������������������
+ new downloadApkThread().start();
+ }
+
+ /**
+ * ������������������
+ *
+ * @author coolszy
+ * @date 2012-4-26
+ * @blog http://blog.92coding.com
+ */
+ private class downloadApkThread extends Thread {
+ @Override
+ public void run() {
+ try {
+ // ������SD������������������������������������������������
+ //if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
+ // ������������������������
+ //String sdpath = Environment.getExternalStorageDirectory() + "/";
+ //mSavePath = sdpath + "download";
+
+ mSavePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/";
+
+ URL url = new URL(mHashMap.get("url"));
+ // ������������
+ HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+ conn.connect();
+ // ������������������
+ int length = conn.getContentLength();
+ // ���������������
+ InputStream is = conn.getInputStream();
+
+ File file = new File(mSavePath);
+ // ������������������������������
+ if (!file.exists()) {
+ file.mkdir();
+ }
+ File apkFile = new File(mSavePath, mHashMap.get("name"));
+ FileOutputStream fos = new FileOutputStream(apkFile);
+ int count = 0;
+ // ������
+ byte buf[] = new byte[1024];
+ // ������������������
+ do {
+ int numread = is.read(buf);
+ count += numread;
+ // ���������������������
+ progress = (int) (((float) count / length) * 100);
+ // ������������
+ mHandler.sendEmptyMessage(DOWNLOAD);
+ if (numread <= 0) {
+ // ������������
+ mHandler.sendEmptyMessage(DOWNLOAD_FINISH);
+ break;
+ }
+ // ������������
+ fos.write(buf, 0, numread);
+ } while (!cancelUpdate);// ���������������������������.
+ fos.close();
+ is.close();
+ //}
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ // ���������������������������
+ mDownloadDialog.dismiss();
+ }
+ }
+
+ ;
+
+ /**
+ * ������APK������
+ */
+ private void installApk() {
+ File apkfile = new File(mSavePath, mHashMap.get("name"));
+ if (!apkfile.exists()) {
+ return;
+ }
+ // ������Intent������APK������
+ Intent i = new Intent(Intent.ACTION_VIEW);
+ i.setDataAndType(Uri.parse("file://" + apkfile.toString()), "application/vnd.android.package-archive");
+ mActivity.startActivity(i);
+ }
+
+ public static String getUrlData(String path) {
+ BufferedReader br = null;
+ StringBuffer sb = new StringBuffer();
+ HttpURLConnection connection = null;
+ try {
+ URL url = new URL(path);
+ connection = (HttpURLConnection) url.openConnection();
+ connection.setRequestMethod("GET");
+ connection.setConnectTimeout(8000);
+ connection.setReadTimeout(8000);
+ br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+ String s = null;
+ while ((s = br.readLine()) != null) {
+ sb.append(s);
+ }
+ br.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ if (connection != null) {
+ connection.disconnect();
+ }
+ }
+ return sb.toString();
+ }
+
+
+}
diff --git a/app/src/main/res/layout/ac_charts_layout.xml b/app/src/main/res/layout/ac_charts_layout.xml
index e87c359..d0011b8 100644
--- a/app/src/main/res/layout/ac_charts_layout.xml
+++ b/app/src/main/res/layout/ac_charts_layout.xml
@@ -5,49 +5,59 @@
android:background="@mipmap/bg"
android:fitsSystemWindows="true"
android:orientation="vertical">
- <include layout="@layout/top_bar_layout"/>
+
+ <include layout="@layout/top_bar_layout" />
+
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:orientation="vertical"
android:layout_marginLeft="@dimen/x8"
android:layout_marginRight="@dimen/x8"
android:layout_marginTop="@dimen/x20"
- android:padding="@dimen/x10"
- android:background="@mipmap/bg_chart">
+ android:background="@mipmap/bg_chart"
+ android:orientation="vertical"
+ android:padding="@dimen/x10">
+
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center_vertical"
android:orientation="horizontal">
+
<ImageView
android:layout_width="@dimen/x10"
android:layout_height="@dimen/x10"
- android:src="@mipmap/icon_yuan"/>
+ android:src="@mipmap/icon_yuan" />
+
<TextView
android:id="@+id/tv_sub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textColor="@color/white"
- android:textSize="16sp"
android:layout_gravity="center_horizontal"
- android:text="PM2.5���������"
- android:layout_marginRight="@dimen/x4"
android:layout_marginLeft="@dimen/x4"
- />
+ android:layout_marginRight="@dimen/x4"
+ android:text="PM2.5���������"
+ android:textColor="@color/white"
+ android:textSize="16sp" />
+
<ImageView
android:layout_width="@dimen/x10"
android:layout_height="@dimen/x10"
- android:src="@mipmap/icon_xia"/>
+ android:src="@mipmap/icon_xia" />
</LinearLayout>
+ <TextView
+ android:id="@+id/tv_unit"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textColor="@color/blue_txt"
+ android:textSize="14sp" />
<lecho.lib.hellocharts.view.LineChartView
android:id="@+id/chart"
android:layout_width="match_parent"
- android:layout_marginTop="@dimen/x8"
- android:layout_height="@dimen/y300">
- </lecho.lib.hellocharts.view.LineChartView>
+ android:layout_height="@dimen/y300"
+ android:layout_marginTop="@dimen/x8"/>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/ac_login_layout.xml b/app/src/main/res/layout/ac_login_layout.xml
index 4bbc9ef..a677b35 100644
--- a/app/src/main/res/layout/ac_login_layout.xml
+++ b/app/src/main/res/layout/ac_login_layout.xml
@@ -22,7 +22,7 @@
android:textSize="16sp"
android:textColor="@color/white"
android:textColorHint="@color/white"
- android:hint="������������������������"
+ android:hint="���������������"
android:gravity="center"
android:background="@mipmap/button1"/>
<EditText
@@ -36,7 +36,7 @@
android:textSize="16sp"
android:textColor="@color/white"
android:textColorHint="@color/white"
- android:hint="���������������������"
+ android:hint="���������������"
android:gravity="center"
android:background="@mipmap/button1"/>
<Button
diff --git a/app/src/main/res/layout/softupdate_progress.xml b/app/src/main/res/layout/softupdate_progress.xml
new file mode 100644
index 0000000..5abe7e0
--- /dev/null
+++ b/app/src/main/res/layout/softupdate_progress.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content">
+ <ProgressBar
+ android:id="@+id/update_progress"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ style="?android:attr/progressBarStyleHorizontal" />
+</LinearLayout>
diff --git a/app/src/main/res/mipmap-xxxhdpi/icon.png b/app/src/main/res/mipmap-xxxhdpi/icon.png
new file mode 100644
index 0000000..5c29fb5
--- /dev/null
+++ b/app/src/main/res/mipmap-xxxhdpi/icon.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/icon_level1.png b/app/src/main/res/mipmap-xxxhdpi/icon_level1.png
index 5487601..d22dddd 100644
--- a/app/src/main/res/mipmap-xxxhdpi/icon_level1.png
+++ b/app/src/main/res/mipmap-xxxhdpi/icon_level1.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/icon_level2.png b/app/src/main/res/mipmap-xxxhdpi/icon_level2.png
index 1928a67..59d82d0 100644
--- a/app/src/main/res/mipmap-xxxhdpi/icon_level2.png
+++ b/app/src/main/res/mipmap-xxxhdpi/icon_level2.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/icon_level3.png b/app/src/main/res/mipmap-xxxhdpi/icon_level3.png
index 7b6d691..526e349 100644
--- a/app/src/main/res/mipmap-xxxhdpi/icon_level3.png
+++ b/app/src/main/res/mipmap-xxxhdpi/icon_level3.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/icon_normal.png b/app/src/main/res/mipmap-xxxhdpi/icon_normal.png
index 64a77b1..0367c2a 100644
--- a/app/src/main/res/mipmap-xxxhdpi/icon_normal.png
+++ b/app/src/main/res/mipmap-xxxhdpi/icon_normal.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/icon_offline.png b/app/src/main/res/mipmap-xxxhdpi/icon_offline.png
index a71a2cb..9c76b51 100644
--- a/app/src/main/res/mipmap-xxxhdpi/icon_offline.png
+++ b/app/src/main/res/mipmap-xxxhdpi/icon_offline.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/start.jpg b/app/src/main/res/mipmap-xxxhdpi/start.jpg
deleted file mode 100644
index 0a70db8..0000000
--- a/app/src/main/res/mipmap-xxxhdpi/start.jpg
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/start.png b/app/src/main/res/mipmap-xxxhdpi/start.png
new file mode 100644
index 0000000..469f6af
--- /dev/null
+++ b/app/src/main/res/mipmap-xxxhdpi/start.png
Binary files differ
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9fc9c70..fff96b0 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,3 +1,10 @@
<resources>
<string name="app_name">������������������</string>
+ <string name="soft_update_no">���������������������</string>
+ <string name="soft_update_title">������������</string>
+ <string name="soft_update_info">������������������������������������?</string>
+ <string name="soft_update_updatebtn">������</string>
+ <string name="soft_update_later">������������</string>
+ <string name="soft_updating">������������</string>
+ <string name="soft_update_cancel">������</string>
</resources>
--
Gitblit v1.8.0