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