From 487102118041896810e4657a37eaab43a8998bc5 Mon Sep 17 00:00:00 2001 From: haijiang <181069201@qq.com> Date: Tue, 10 Jul 2018 10:51:09 +0800 Subject: [PATCH] 提交 --- app/libs/armeabi/libindoor.so | 0 app/libs/x86/libBaiduMapSDK_map_v5_1_0.so | 0 app/libs/armeabi-v7a/libindoor.so | 0 app/src/main/java/com/moral/screen/activity/ChartActivity.java | 267 ++++++++ app/src/main/res/mipmap-xxxhdpi/icon_yuan.png | 0 app/src/main/java/com/moral/screen/httputils/HttpUtils.java | 461 ------------- app/src/main/java/com/moral/screen/activity/DeviceDataActivity.java | 160 +++++ app/src/main/java/com/moral/screen/model/DeviceDataBean.java | 89 ++ app/src/main/res/mipmap-xxxhdpi/icon_white_jiantou.png | 0 app/src/main/res/layout/ac_login_layout.xml | 2 app/src/main/java/com/moral/screen/MainApp.java | 11 app/libs/armeabi-v7a/libBaiduMapSDK_base_v5_1_0.so | 0 app/build.gradle | 15 app/libs/armeabi/liblocSDK7b.so | 0 app/src/main/java/com/moral/screen/model/SensorData.java | 17 app/libs/BaiduLBS_Android.jar | 0 app/libs/x86_64/libBaiduMapSDK_map_v5_1_0.so | 0 app/src/main/res/mipmap-xxxhdpi/pro_kuang.png | 0 app/libs/arm64-v8a/liblocSDK7b.so | 0 app/src/main/java/com/moral/screen/model/DeviceBean.java | 143 ++++ app/src/main/res/mipmap-xxxhdpi/bg_chart.png | 0 app/src/main/res/mipmap-xxxhdpi/icon_close.png | 0 app/libs/x86_64/libindoor.so | 0 app/libs/x86_64/liblocSDK7b.so | 0 app/src/main/res/layout/pop_layout.xml | 40 + app/libs/x86/libBaiduMapSDK_base_v5_1_0.so | 0 app/src/main/res/layout/ac_charts_layout.xml | 53 + app/libs/armeabi/libBaiduMapSDK_map_v5_1_0.so | 0 app/src/main/java/com/moral/screen/common/API.java | 7 app/src/main/res/mipmap-xxxhdpi/icon_level1.png | 0 app/src/main/res/layout/top_bar_layout.xml | 9 app/src/main/res/drawable/my_progress_background.xml | 18 app/src/main/res/mipmap-xxxhdpi/bg_map.png | 0 app/src/main/res/layout/ac_map_layout.xml | 49 + app/src/main/res/values/colors.xml | 2 app/src/main/res/layout/list_item_data.xml | 46 + app/src/main/res/mipmap-xxxhdpi/bg_data.png | 0 app/src/main/res/mipmap-xxxhdpi/icon_offline.png | 0 app/src/main/res/layout/ac_device_data_layout.xml | 51 + app/libs/x86_64/libBaiduMapSDK_base_v5_1_0.so | 0 app/src/main/res/mipmap-xxxhdpi/icon_xia.png | 0 app/libs/armeabi-v7a/liblocSDK7b.so | 0 app/libs/x86/liblocSDK7b.so | 0 app/src/main/res/mipmap-xxxhdpi/icon_level3.png | 0 app/src/main/res/mipmap-xxxhdpi/bg_pop.png | 0 app/src/main/AndroidManifest.xml | 35 + app/src/main/java/com/moral/screen/activity/MapActivity.java | 257 ++++++++ app/libs/arm64-v8a/libindoor.so | 0 app/libs/arm64-v8a/libBaiduMapSDK_base_v5_1_0.so | 0 app/libs/arm64-v8a/libBaiduMapSDK_map_v5_1_0.so | 0 app/src/main/java/com/moral/screen/utils/SharedPreferencesUtil.java | 45 + app/src/main/res/mipmap-xxxhdpi/icon_normal.png | 0 app/src/main/java/com/moral/screen/adapter/DeviceDataAdapter.java | 40 + app/src/main/res/mipmap-xxxhdpi/icon_level2.png | 0 app/libs/armeabi/libBaiduMapSDK_base_v5_1_0.so | 0 app/libs/x86/libindoor.so | 0 app/src/main/java/com/moral/screen/activity/LoginActivity.java | 79 ++ app/libs/armeabi-v7a/libBaiduMapSDK_map_v5_1_0.so | 0 58 files changed, 1,439 insertions(+), 457 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index a6cf203..e6261ea 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,6 +11,20 @@ multiDexEnabled true testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } + signingConfigs { + // your debug keystore + debug { + keyAlias 'moral' + keyPassword 'moral123456' + storeFile file("C:\\Users\\Administrator\\Desktop\\key\\key.jks") + storePassword 'moral123456' + } + } + sourceSets { + main { + jniLibs.srcDir 'libs' + } + } buildTypes { release { minifyEnabled false @@ -36,4 +50,5 @@ compile('com.github.niorgai:StatusBarCompat:2.1.4', { exclude group: 'com.android.support' }) + compile 'com.github.lecho:hellocharts-library:1.5.8@aar' } diff --git a/app/libs/BaiduLBS_Android.jar b/app/libs/BaiduLBS_Android.jar new file mode 100644 index 0000000..2985ae3 --- /dev/null +++ b/app/libs/BaiduLBS_Android.jar Binary files differ diff --git a/app/libs/arm64-v8a/libBaiduMapSDK_base_v5_1_0.so b/app/libs/arm64-v8a/libBaiduMapSDK_base_v5_1_0.so new file mode 100644 index 0000000..4d7ea83 --- /dev/null +++ b/app/libs/arm64-v8a/libBaiduMapSDK_base_v5_1_0.so Binary files differ diff --git a/app/libs/arm64-v8a/libBaiduMapSDK_map_v5_1_0.so b/app/libs/arm64-v8a/libBaiduMapSDK_map_v5_1_0.so new file mode 100644 index 0000000..0bdae20 --- /dev/null +++ b/app/libs/arm64-v8a/libBaiduMapSDK_map_v5_1_0.so Binary files differ diff --git a/app/libs/arm64-v8a/libindoor.so b/app/libs/arm64-v8a/libindoor.so new file mode 100644 index 0000000..f8e8ca8 --- /dev/null +++ b/app/libs/arm64-v8a/libindoor.so Binary files differ diff --git a/app/libs/arm64-v8a/liblocSDK7b.so b/app/libs/arm64-v8a/liblocSDK7b.so new file mode 100644 index 0000000..6bab09a --- /dev/null +++ b/app/libs/arm64-v8a/liblocSDK7b.so Binary files differ diff --git a/app/libs/armeabi-v7a/libBaiduMapSDK_base_v5_1_0.so b/app/libs/armeabi-v7a/libBaiduMapSDK_base_v5_1_0.so new file mode 100644 index 0000000..6366af7 --- /dev/null +++ b/app/libs/armeabi-v7a/libBaiduMapSDK_base_v5_1_0.so Binary files differ diff --git a/app/libs/armeabi-v7a/libBaiduMapSDK_map_v5_1_0.so b/app/libs/armeabi-v7a/libBaiduMapSDK_map_v5_1_0.so new file mode 100644 index 0000000..312c582 --- /dev/null +++ b/app/libs/armeabi-v7a/libBaiduMapSDK_map_v5_1_0.so Binary files differ diff --git a/app/libs/armeabi-v7a/libindoor.so b/app/libs/armeabi-v7a/libindoor.so new file mode 100644 index 0000000..177ad25 --- /dev/null +++ b/app/libs/armeabi-v7a/libindoor.so Binary files differ diff --git a/app/libs/armeabi-v7a/liblocSDK7b.so b/app/libs/armeabi-v7a/liblocSDK7b.so new file mode 100644 index 0000000..dd040ea --- /dev/null +++ b/app/libs/armeabi-v7a/liblocSDK7b.so Binary files differ diff --git a/app/libs/armeabi/libBaiduMapSDK_base_v5_1_0.so b/app/libs/armeabi/libBaiduMapSDK_base_v5_1_0.so new file mode 100644 index 0000000..1496543 --- /dev/null +++ b/app/libs/armeabi/libBaiduMapSDK_base_v5_1_0.so Binary files differ diff --git a/app/libs/armeabi/libBaiduMapSDK_map_v5_1_0.so b/app/libs/armeabi/libBaiduMapSDK_map_v5_1_0.so new file mode 100644 index 0000000..83b3b84 --- /dev/null +++ b/app/libs/armeabi/libBaiduMapSDK_map_v5_1_0.so Binary files differ diff --git a/app/libs/armeabi/libindoor.so b/app/libs/armeabi/libindoor.so new file mode 100644 index 0000000..cd2a548 --- /dev/null +++ b/app/libs/armeabi/libindoor.so Binary files differ diff --git a/app/libs/armeabi/liblocSDK7b.so b/app/libs/armeabi/liblocSDK7b.so new file mode 100644 index 0000000..1a9a34a --- /dev/null +++ b/app/libs/armeabi/liblocSDK7b.so Binary files differ diff --git a/app/libs/x86/libBaiduMapSDK_base_v5_1_0.so b/app/libs/x86/libBaiduMapSDK_base_v5_1_0.so new file mode 100644 index 0000000..a27743f --- /dev/null +++ b/app/libs/x86/libBaiduMapSDK_base_v5_1_0.so Binary files differ diff --git a/app/libs/x86/libBaiduMapSDK_map_v5_1_0.so b/app/libs/x86/libBaiduMapSDK_map_v5_1_0.so new file mode 100644 index 0000000..234fa36 --- /dev/null +++ b/app/libs/x86/libBaiduMapSDK_map_v5_1_0.so Binary files differ diff --git a/app/libs/x86/libindoor.so b/app/libs/x86/libindoor.so new file mode 100644 index 0000000..14a6348 --- /dev/null +++ b/app/libs/x86/libindoor.so Binary files differ diff --git a/app/libs/x86/liblocSDK7b.so b/app/libs/x86/liblocSDK7b.so new file mode 100644 index 0000000..f25b6e9 --- /dev/null +++ b/app/libs/x86/liblocSDK7b.so Binary files differ diff --git a/app/libs/x86_64/libBaiduMapSDK_base_v5_1_0.so b/app/libs/x86_64/libBaiduMapSDK_base_v5_1_0.so new file mode 100644 index 0000000..f47dee5 --- /dev/null +++ b/app/libs/x86_64/libBaiduMapSDK_base_v5_1_0.so Binary files differ diff --git a/app/libs/x86_64/libBaiduMapSDK_map_v5_1_0.so b/app/libs/x86_64/libBaiduMapSDK_map_v5_1_0.so new file mode 100644 index 0000000..da894c8 --- /dev/null +++ b/app/libs/x86_64/libBaiduMapSDK_map_v5_1_0.so Binary files differ diff --git a/app/libs/x86_64/libindoor.so b/app/libs/x86_64/libindoor.so new file mode 100644 index 0000000..6c0e05e --- /dev/null +++ b/app/libs/x86_64/libindoor.so Binary files differ diff --git a/app/libs/x86_64/liblocSDK7b.so b/app/libs/x86_64/liblocSDK7b.so new file mode 100644 index 0000000..4fda0cd --- /dev/null +++ b/app/libs/x86_64/liblocSDK7b.so Binary files differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f7ac9c1..161fdcc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,7 +2,24 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.moral.screen"> + + <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> + //������������������������������������������������������������ <uses-permission android:name="android.permission.INTERNET"/> + //��������������������������������������������������������������� + <uses-permission android:name="android.permission.READ_PHONE_STATE" /> + //��������������������������������������� + <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> + //��������������������������������������������������������������� + <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> + //������������������������������������������������������ + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> + //������sd������������������������������������������������������������������ + <uses-permission android:name="android.permission.WRITE_SETTINGS" /> + //������������������ + <uses-permission android:name="android.permission.GET_TASKS" /> + //��������������������������������������� + <uses-permission android:name="android.permission.CAMERA" /> <application android:name=".MainApp" android:allowBackup="true" @@ -10,14 +27,26 @@ android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" - tools:replace="android:icon" - android:theme="@style/AppTheme"> - <activity android:name=".activity.LoginActivity"> + android:theme="@style/AppTheme" + tools:replace="android:icon"> + <activity android:name=".activity.LoginActivity" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> + <activity android:name=".activity.MapActivity" android:screenOrientation="portrait"/> + <activity android:name=".activity.DeviceDataActivity" android:screenOrientation="portrait"/> + <activity android:name=".activity.ChartActivity" android:screenOrientation="portrait"/> + + <meta-data + android:name="com.baidu.lbsapi.API_KEY" + android:value="Pel4i0XKOQFmw3kO2awBV7uFI1Cb5BMm" /> + <service + android:name="com.baidu.location.f" + android:enabled="true" + android:process=":remote" > + </service> </application> </manifest> \ No newline at end of file diff --git a/app/src/main/java/com/moral/screen/MainApp.java b/app/src/main/java/com/moral/screen/MainApp.java index a887062..ddaa02e 100644 --- a/app/src/main/java/com/moral/screen/MainApp.java +++ b/app/src/main/java/com/moral/screen/MainApp.java @@ -3,10 +3,13 @@ import android.app.Application; import android.content.Context; import android.support.multidex.MultiDex; + +import com.baidu.mapapi.SDKInitializer; import com.lzy.okgo.OkGo; import com.lzy.okgo.cookie.store.PersistentCookieStore; import com.moral.andbrickslib.utils.ScreenUtils; import com.moral.andbrickslib.utils.log.XLog; +import com.moral.screen.utils.SharedPreferencesUtil; /** @@ -15,8 +18,9 @@ public class MainApp extends Application { public static MainApp theApp; + public SharedPreferencesUtil mSharedPreferencesUtil; //������id - public int userId = 0; + public int orgId = 0; public int width; @Override public void onCreate() { @@ -24,8 +28,13 @@ this.theApp = this; XLog.init("haijiang"); width = ScreenUtils.getScreenWidth(this); + if(mSharedPreferencesUtil==null){ + mSharedPreferencesUtil = new SharedPreferencesUtil(this); + } + orgId = mSharedPreferencesUtil.getOrgId(); OkGo.init(this); OkGo.getInstance().setCookieStore(new PersistentCookieStore()); + SDKInitializer.initialize(getApplicationContext()); } @Override diff --git a/app/src/main/java/com/moral/screen/activity/ChartActivity.java b/app/src/main/java/com/moral/screen/activity/ChartActivity.java new file mode 100644 index 0000000..10ffb36 --- /dev/null +++ b/app/src/main/java/com/moral/screen/activity/ChartActivity.java @@ -0,0 +1,267 @@ +package com.moral.screen.activity; + +import android.app.AlertDialog; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.os.Bundle; +import android.support.annotation.IdRes; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.Window; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.RadioGroup; +import android.widget.TextView; + +import com.lzy.okgo.cache.CacheMode; +import com.moral.andbrickslib.utils.FastJsonTools; +import com.moral.andbrickslib.utils.NumberUtils; +import com.moral.andbrickslib.utils.TimeUtil; +import com.moral.screen.R; +import com.moral.screen.base.BaseActivity; +import com.moral.screen.common.API; +import com.moral.screen.httputils.HttpCallBack; +import com.moral.screen.model.SensorData; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Timer; +import java.util.TimerTask; + +import lecho.lib.hellocharts.formatter.AxisValueFormatter; +import lecho.lib.hellocharts.formatter.LineChartValueFormatter; +import lecho.lib.hellocharts.formatter.SimpleAxisValueFormatter; +import lecho.lib.hellocharts.formatter.SimpleLineChartValueFormatter; +import lecho.lib.hellocharts.gesture.ContainerScrollType; +import lecho.lib.hellocharts.gesture.ZoomType; +import lecho.lib.hellocharts.model.Axis; +import lecho.lib.hellocharts.model.AxisValue; +import lecho.lib.hellocharts.model.Line; +import lecho.lib.hellocharts.model.LineChartData; +import lecho.lib.hellocharts.model.PointValue; +import lecho.lib.hellocharts.model.ValueShape; +import lecho.lib.hellocharts.model.Viewport; +import lecho.lib.hellocharts.view.LineChartView; + +/** + * Created by haijiang on 2017/7/13. + */ + +public class ChartActivity extends BaseActivity { + private LineChartView chartView; + Line line; + LineChartData data; + Axis axisX; + Axis axisY; + private List<PointValue> mPointValues = new ArrayList<>(); + private List<AxisValue> mAxisXValues = new ArrayList<>(); + + private TextView tv_sub; + private String sensorKey, mac, name, unit; + private float maxValue; + + private Timer timer; + + /** + * ��������� + */ + private boolean isFinish = false; + private void showChangeLineChart() { + timer = new Timer(); + timer.schedule(new TimerTask() { + @Override + public void run() { + if(!isFinish){ + getData(1,false); + } + } + },0,5*1000); + } + @Override + protected void getBundleExtras(Bundle extras) { + sensorKey = getIntent().getStringExtra("sensorKey"); + mac = getIntent().getStringExtra("mac"); + name = getIntent().getStringExtra("name"); + unit = getIntent().getStringExtra("unit"); + maxValue = getIntent().getFloatExtra("maxValue", 0); + } + + @Override + protected int getLayoutId() { + return R.layout.ac_charts_layout; + } + + @Override + protected void initViews() { + initTopBar(); + tv_title.setText("������������"); + tv_sub = findView(R.id.tv_sub); + tv_sub.setText(name + "���������������"); + chartView = findView(R.id.chart); + initLineChart(); + } + + @Override + protected void initListener() { + + } + + @Override + protected void initData() { + getData(8,true); + showChangeLineChart(); + } + + @Override + protected void processClick(View view) { + switch (view.getId()) { + case R.id.tv_left: + finish(); + break; + } + + } + + @Override + protected void onErrorPageClick() { + + } + + private void initLineChart() { + line = new Line(mPointValues).setColor(Color.parseColor("#ffffff")); //��������������� + List<Line> lines = new ArrayList<>(); + line.setShape(ValueShape.CIRCLE);//������������������������������������ ��������������� ������������ ���ValueShape.SQUARE ValueShape.CIRCLE ValueShape.DIAMOND��� + line.setPointColor(Color.parseColor("#ffffff")); + line.setCubic(false);//��������������������������������������������� + line.setFilled(false);//��������������������������� + line.setHasLabels(true);//��������������������������������������� +// line.setHasLabelsOnlyForSelected(true);//������������������������������������������������line.setHasLabels(true);������������ + line.setHasLines(true);//������������������������������false ������������������������������ + line.setHasPoints(true);//������������������ ���������false ������������������������������������������������������������������������ + LineChartValueFormatter chartValueFormatter = new SimpleLineChartValueFormatter(1); + line.setFormatter(chartValueFormatter);//��������������� + lines.add(line); + data = new LineChartData(); + data.setLines(lines); + data.setValueLabelBackgroundColor(Color.TRANSPARENT);//������������������������������������������ + data.setValueLabelBackgroundEnabled(false); + data.setValueLabelsTextColor(Color.GRAY); + + //��������� + axisX = new Axis(); //X��� + axisX.setHasTiltedLabels(true); //X���������������������������������������������true��������������� + axisX.setName("������������"); //������������ + axisX.setTextSize(8);//������������������ + axisX.setTextColor(getResources().getColor(R.color.blue_txt)); +// axisX.setMaxLabelChars(7); //������������X���������������������������������������X���������������������7<=x<=mAxisXValues.length + axisX.setValues(mAxisXValues); //������X������������������ + axisX.setHasLines(true); //x ������������ + axisX.setLineColor(getResources().getColor(R.color.blue_txt)); + axisX.setHasSeparationLine(true); + data.setAxisXBottom(axisX); //x ������������ + //data.setAxisXTop(axisX); //x ������������ + + // Y���������������������������������������Y���������(���������������������������Y������������������������������) + 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); + axisY.setHasLines(true); + axisY.setHasSeparationLine(true); + axisY.setName("���������" + unit);//y��������� + axisY.setTextSize(10);//������������������ + axisY.setTextColor(getResources().getColor(R.color.blue_txt)); + axisY.setLineColor(getResources().getColor(R.color.blue_txt)); + data.setAxisYLeft(axisY); //Y������������������ + + //������������������������������������������������������ + chartView.setInteractive(true); + chartView.setZoomType(ZoomType.HORIZONTAL); + chartView.setMaxZoom((float) 2);//������������������ + chartView.setContainerScrollEnabled(true, ContainerScrollType.HORIZONTAL); + chartView.setLineChartData(data); + chartView.setVisibility(View.VISIBLE); + /**���������������7���10��������������������������������������� + * ���������������������X������������������������������http://forum.xda-developers.com/tools/programming/library-hellocharts-charting-library-t2904456/page2���; + */ + final Viewport v = new Viewport(chartView.getMaximumViewport()); + v.bottom = (float) 0.0; + v.top = maxValue; + chartView.setMaximumViewport(v); + chartView.setCurrentViewport(v); + } + + private int index = 0; + + private void reshowChart(final SensorData sensorData) { + chartView.post(new Runnable() { + @Override + public void run() { + mPointValues.add(new PointValue(index, sensorData.getValue())); + mAxisXValues.add(new AxisValue(index).setLabel(index + "")); + if(mPointValues.size()>8){ + mPointValues.remove(0); + } + if(mAxisXValues.size()>8){ + mAxisXValues.remove(0); + } + axisX.setValues(mAxisXValues); + data.setAxisXBottom(axisX); + line.setValues(mPointValues); + List<Line> lines = new ArrayList<Line>(); + lines.add(line); + data.setLines(lines); + chartView.setLineChartData(data); + index++; + final Viewport v = new Viewport(chartView.getMaximumViewport()); + v.bottom = (float) 0.0; + v.top = maxValue; + chartView.setMaximumViewport(v); + chartView.setCurrentViewport(v); + } + }); + } + + private ArrayList<SensorData> dataList = new ArrayList<>(); + + private void getData(int size,boolean show) { + HashMap<String, String> params = new HashMap<>(); + params.put("sensorKey", sensorKey); + params.put("mac", mac); + params.put("size", size + ""); + mHttpUtils.doGet(API.SENSOR, params, CacheMode.DEFAULT, show, new HttpCallBack() { + @Override + public void onSuccess(String res, String msg) { + if (progressDialog.isShowing()) { + progressDialog.dismiss(); + } + ArrayList<SensorData> temp = (ArrayList<SensorData>) FastJsonTools.getArrayJson(res, SensorData.class); + if (temp != null) { + dataList.clear(); + dataList.addAll(temp); + } + for (SensorData data:dataList){ + reshowChart(data); + } + } + + @Override + public void showLoadingDialog() { + progressDialog.show(); + } + + @Override + public void onFail(int errno, String s) { + if (progressDialog.isShowing()) { + progressDialog.dismiss(); + } + } + }); + } +} diff --git a/app/src/main/java/com/moral/screen/activity/DeviceDataActivity.java b/app/src/main/java/com/moral/screen/activity/DeviceDataActivity.java new file mode 100644 index 0000000..62cd718 --- /dev/null +++ b/app/src/main/java/com/moral/screen/activity/DeviceDataActivity.java @@ -0,0 +1,160 @@ +package com.moral.screen.activity; + +import android.content.Intent; +import android.os.Bundle; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.TextView; + +import com.baidu.mapapi.map.MapStatus; +import com.baidu.mapapi.map.MapStatusUpdateFactory; +import com.baidu.mapapi.model.LatLng; +import com.lzy.okgo.cache.CacheMode; +import com.moral.andbrickslib.baseadapter.recyclerview.MultiItemTypeAdapter; +import com.moral.andbrickslib.utils.FastJsonTools; +import com.moral.screen.MainApp; +import com.moral.screen.R; +import com.moral.screen.adapter.DeviceDataAdapter; +import com.moral.screen.base.BaseActivity; +import com.moral.screen.common.API; +import com.moral.screen.httputils.HttpCallBack; +import com.moral.screen.model.DeviceBean; +import com.moral.screen.model.DeviceDataBean; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Timer; +import java.util.TimerTask; + +/** + * Created by hjzhang on 2018/7/4. + */ + +public class DeviceDataActivity extends BaseActivity { + private TextView tv_left; + private RecyclerView rv_data; + private DeviceDataAdapter adapter; + private ArrayList<DeviceDataBean> dataList = new ArrayList<>(); + private int deviceVersionId,deviceId; + private String mac; + private Timer timer; + /** + * ��������� + */ + private boolean isFinish = false; + private void getDataForTime() { + timer = new Timer(); + timer.schedule(new TimerTask() { + @Override + public void run() { + if(!isFinish){ + getData(false); + } + } + },0,10*1000); + } + @Override + protected void getBundleExtras(Bundle extras) { + deviceVersionId = getIntent().getIntExtra("deviceVersionId",0); + deviceId = getIntent().getIntExtra("deviceId",0); + mac = getIntent().getStringExtra("mac"); + } + + @Override + protected int getLayoutId() { + return R.layout.ac_device_data_layout; + } + + @Override + protected void initViews() { + tv_left = findView(R.id.tv_left); + rv_data = findView(R.id.rv_data); + adapter = new DeviceDataAdapter(rv_data,R.layout.list_item_data,dataList); + rv_data.setLayoutManager(new LinearLayoutManager(rv_data.getContext())); + rv_data.setAdapter(adapter); + adapter.setOnItemClickListener(new MultiItemTypeAdapter.OnItemClickListener() { + @Override + public void onItemClick(View view, RecyclerView.ViewHolder holder, int position) { + DeviceDataBean data = dataList.get(position); + Intent intent = new Intent(DeviceDataActivity.this,ChartActivity.class); + intent.putExtra("sensorKey",data.getSensor_key()); + intent.putExtra("name",data.getDescription()); + intent.putExtra("mac",mac); + intent.putExtra("maxValue",data.getUpper()); + intent.putExtra("unit",data.getUnit()); + startActivity(intent); + } + + @Override + public boolean onItemLongClick(View view, RecyclerView.ViewHolder holder, int position) { + return false; + } + }); + } + + @Override + protected void initListener() { + tv_left.setOnClickListener(this); + } + + @Override + protected void initData() { + getData(true); + getDataForTime(); + } + + @Override + protected void processClick(View view) { + switch (view.getId()){ + case R.id.tv_left: + finish(); + break; + } + + } + + @Override + protected void onErrorPageClick() { + + } + + private void getData(boolean show) { + HashMap<String, String> params = new HashMap<>(); + params.put("deviceVersionId", deviceVersionId+""); + params.put("deviceId", deviceId+""); + params.put("mac", mac); + mHttpUtils.doGet(API.SENSORS, params, CacheMode.DEFAULT, show, new HttpCallBack() { + @Override + public void onSuccess(String res, String msg) { + if (progressDialog.isShowing()) { + progressDialog.dismiss(); + } + ArrayList<DeviceDataBean> temp = (ArrayList<DeviceDataBean>) FastJsonTools.getArrayJson(res,DeviceDataBean.class); + if(temp!=null){ + dataList.clear(); + dataList.addAll(temp); + } + adapter.notifyDataSetChanged(); + } + + @Override + public void showLoadingDialog() { + progressDialog.setTitleText("������������������..."); + progressDialog.show(); + } + + @Override + public void onFail(int errno, String s) { + mToatUtils.showSingletonToast(s); + if (progressDialog.isShowing()) { + progressDialog.dismiss(); + } + } + }); + + } +} diff --git a/app/src/main/java/com/moral/screen/activity/LoginActivity.java b/app/src/main/java/com/moral/screen/activity/LoginActivity.java index 744600e..25c25e0 100644 --- a/app/src/main/java/com/moral/screen/activity/LoginActivity.java +++ b/app/src/main/java/com/moral/screen/activity/LoginActivity.java @@ -1,10 +1,24 @@ package com.moral.screen.activity; +import android.content.Intent; +import android.content.SearchRecentSuggestionsProvider; import android.os.Bundle; +import android.text.TextUtils; import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import com.lzy.okgo.cache.CacheMode; +import com.moral.screen.MainApp; import com.moral.screen.R; import com.moral.screen.base.BaseActivity; +import com.moral.screen.common.API; +import com.moral.screen.httputils.HttpCallBack; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.HashMap; /** * ������������ @@ -12,6 +26,9 @@ */ public class LoginActivity extends BaseActivity { + private Button bt_sure; + private EditText et_phone, et_pwd; + @Override protected void getBundleExtras(Bundle extras) { @@ -24,11 +41,16 @@ @Override protected void initViews() { + bt_sure = findView(R.id.bt_sure); + et_phone = findView(R.id.et_phone); + et_pwd = findView(R.id.et_pwd); + et_phone.setText("admin"); + et_pwd.setText("123456"); } @Override protected void initListener() { - + bt_sure.setOnClickListener(this); } @Override @@ -38,6 +60,21 @@ @Override protected void processClick(View view) { + switch (view.getId()) { + case R.id.bt_sure: + String phone = et_phone.getText().toString(); + if (TextUtils.isEmpty(phone)) { + mToatUtils.showSingletonToast("���������������������"); + return; + } + String password = et_pwd.getText().toString(); + if (TextUtils.isEmpty(password)) { + mToatUtils.showSingletonToast("���������������"); + return; + } + login(phone, password); + break; + } } @@ -45,4 +82,44 @@ protected void onErrorPageClick() { } + + private void login(String phone, String password) { + HashMap<String, String> params = new HashMap<>(); + params.put("account", phone); + params.put("password", password); + mHttpUtils.doGet(API.LOGIN, params, CacheMode.DEFAULT, true, new HttpCallBack() { + @Override + public void onSuccess(String res, String msg) { + if (progressDialog.isShowing()) { + progressDialog.dismiss(); + } + try { + JSONObject json = new JSONObject(res); + int organizationId = json.optInt("organizationId"); + MainApp.theApp.orgId = organizationId; + MainApp.theApp.mSharedPreferencesUtil.saveOrgId(organizationId); + Intent intent = new Intent(LoginActivity.this, MapActivity.class); + startActivity(intent); + finish(); + } catch (JSONException e) { + e.printStackTrace(); + } + } + + @Override + public void showLoadingDialog() { + progressDialog.setTitleText("������������..."); + progressDialog.show(); + } + + @Override + public void onFail(int errno, String s) { + mToatUtils.showSingletonToast(s); + if (progressDialog.isShowing()) { + progressDialog.dismiss(); + } + } + }); + + } } diff --git a/app/src/main/java/com/moral/screen/activity/MapActivity.java b/app/src/main/java/com/moral/screen/activity/MapActivity.java new file mode 100644 index 0000000..9b48d09 --- /dev/null +++ b/app/src/main/java/com/moral/screen/activity/MapActivity.java @@ -0,0 +1,257 @@ +package com.moral.screen.activity; + +import android.content.Intent; +import android.graphics.Point; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.baidu.mapapi.map.BaiduMap; +import com.baidu.mapapi.map.BitmapDescriptor; +import com.baidu.mapapi.map.BitmapDescriptorFactory; +import com.baidu.mapapi.map.InfoWindow; +import com.baidu.mapapi.map.MapStatus; +import com.baidu.mapapi.map.MapStatusUpdateFactory; +import com.baidu.mapapi.map.MapView; +import com.baidu.mapapi.map.Marker; +import com.baidu.mapapi.map.MarkerOptions; +import com.baidu.mapapi.model.LatLng; +import com.lzy.okgo.cache.CacheMode; +import com.moral.andbrickslib.utils.FastJsonTools; +import com.moral.screen.MainApp; +import com.moral.screen.common.API; +import com.moral.screen.httputils.HttpCallBack; +import com.moral.screen.model.DeviceBean; +import com.moral.screen.R; +import com.moral.screen.base.BaseActivity; + +import java.util.ArrayList; +import java.util.HashMap; + +/** + * Created by hjzhang on 2018/7/2. + */ + +public class MapActivity extends BaseActivity { + private TextView tv_left; + private MapView bmapView; + private BaiduMap mBaiduMap; + BitmapDescriptor bdNormal = BitmapDescriptorFactory + .fromResource(R.mipmap.icon_normal); + BitmapDescriptor bdA = BitmapDescriptorFactory + .fromResource(R.mipmap.icon_level1); + BitmapDescriptor bdB = BitmapDescriptorFactory + .fromResource(R.mipmap.icon_level2); + BitmapDescriptor bdC = BitmapDescriptorFactory + .fromResource(R.mipmap.icon_level3); + BitmapDescriptor bdOffline = BitmapDescriptorFactory + .fromResource(R.mipmap.icon_offline); + private ArrayList<Marker> mkList = new ArrayList<>(); + private ArrayList<DeviceBean> deviceList = new ArrayList<>(); + private View popView; + private TextView tv_name,tv_address; + private ImageView iv_close; + private LinearLayout ll_pop; + private DeviceBean curDeviceBean; + @Override + protected void getBundleExtras(Bundle extras) { + + } + + @Override + protected int getLayoutId() { + return R.layout.ac_map_layout; + } + + @Override + protected void initViews() { + tv_left = findView(R.id.tv_left); + bmapView = findView(R.id.bmapView); + popView = LayoutInflater.from(this).inflate(R.layout.pop_layout,null); + tv_name = popView.findViewById(R.id.tv_name); + tv_address = popView.findViewById(R.id.tv_address); + iv_close = popView.findViewById(R.id.iv_close); + ll_pop = popView.findViewById(R.id.ll_pop); + initMap(); + } + + @Override + protected void initListener() { + tv_left.setOnClickListener(this); + iv_close.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + mBaiduMap.hideInfoWindow(); + } + }); + ll_pop.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if("4".equals(curDeviceBean.getState())){ + mToatUtils.showSingletonToast("������������������������..."); + return; + } + Intent intent = new Intent(MapActivity.this,DeviceDataActivity.class); + intent.putExtra("deviceVersionId",curDeviceBean.getDeviceVersionId()); + intent.putExtra("mac",curDeviceBean.getMac()); + intent.putExtra("deviceId",curDeviceBean.getId()); + startActivity(intent); + } + }); + } + + @Override + protected void initData() { + getData(); + } + + @Override + protected void processClick(View view) { + switch (view.getId()){ + case R.id.tv_left: + finish(); + break; + } + + } + + @Override + protected void onErrorPageClick() { + + } + + private void initMap(){ + mBaiduMap = bmapView.getMap(); + // ������������������ + mBaiduMap.setMyLocationEnabled(true); + + mBaiduMap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener() { + public boolean onMarkerClick(final Marker marker) { + if (marker != null) { + curDeviceBean = deviceList.get(marker.getZIndex()); + tv_address.setText("���������"+curDeviceBean.getAddress()); + tv_name.setText(curDeviceBean.getName()); + final LatLng ll = marker.getPosition(); + InfoWindow mInfoWindow; + Point p = mBaiduMap.getProjection().toScreenLocation(ll); + p.y -= 47; + LatLng llInfo = mBaiduMap.getProjection().fromScreenLocation(p); + //������������InfoWindow������������������ + mInfoWindow = new InfoWindow(popView,llInfo,0); + mBaiduMap.showInfoWindow(mInfoWindow); + } + return true; + } + }); + } + + /** + * ������������ + */ + private void showMapData(){ + mBaiduMap.clear(); + MarkerOptions mo = null; + Marker mMarker = null; + LatLng ll = null; + for (int i = 0; i < deviceList.size(); i++) { + DeviceBean bean = deviceList.get(i); + double lat = bean.getLatitude(); + double lon = bean.getLongitude(); + ll = new LatLng(lat, lon); +// 0 ������ +// 1 ������������ +// 2 ������������ +// 3 ������������ +// 4 ������ + if ("0".equals(bean.getState())) { + mo = new MarkerOptions().position(ll).icon(bdNormal) + .zIndex(i); + } else if ("1".equals(bean.getState())) { + mo = new MarkerOptions().position(ll).icon(bdA) + .zIndex(i); + } else if ("2".equals(bean.getState())) { + mo = new MarkerOptions().position(ll).icon(bdB) + .zIndex(i); + }else if ("3".equals(bean.getState())) { + mo = new MarkerOptions().position(ll).icon(bdC) + .zIndex(i); + }else if ("4".equals(bean.getState())) { + mo = new MarkerOptions().position(ll).icon(bdOffline) + .zIndex(i); + } + // ������������ + mo.animateType(MarkerOptions.MarkerAnimateType.drop); + mMarker = (Marker) (mBaiduMap.addOverlay(mo)); + mkList.add(mMarker); + } + } + + @Override + public void onResume() { + super.onResume(); + bmapView.onResume(); + } + + @Override + public void onPause() { + super.onPause(); + bmapView.onPause(); + } + + @Override + public void onDestroy() { + bdNormal.recycle(); + bdOffline.recycle(); + bdA.recycle(); + bdB.recycle(); + bdC.recycle(); + super.onDestroy(); + bmapView.onDestroy(); + } + + private void getData() { + HashMap<String, String> params = new HashMap<>(); + params.put("organizationId", MainApp.theApp.orgId+""); + mHttpUtils.doGet(API.DEVICES, params, CacheMode.DEFAULT, true, new HttpCallBack() { + @Override + public void onSuccess(String res, String msg) { + if (progressDialog.isShowing()) { + progressDialog.dismiss(); + } + ArrayList<DeviceBean> temp = (ArrayList<DeviceBean>) FastJsonTools.getArrayJson(res,DeviceBean.class); + if(temp!=null){ + 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())); + } + showMapData(); + } + + @Override + public void showLoadingDialog() { + progressDialog.setTitleText("������������������..."); + progressDialog.show(); + } + + @Override + public void onFail(int errno, String s) { + mToatUtils.showSingletonToast(s); + if (progressDialog.isShowing()) { + progressDialog.dismiss(); + } + } + }); + + } +} diff --git a/app/src/main/java/com/moral/screen/adapter/DeviceDataAdapter.java b/app/src/main/java/com/moral/screen/adapter/DeviceDataAdapter.java new file mode 100644 index 0000000..10a93c1 --- /dev/null +++ b/app/src/main/java/com/moral/screen/adapter/DeviceDataAdapter.java @@ -0,0 +1,40 @@ +package com.moral.screen.adapter; + +import android.annotation.TargetApi; +import android.os.Build; +import android.support.v7.widget.RecyclerView; +import android.widget.ProgressBar; +import android.widget.TextView; + +import com.moral.andbrickslib.baseadapter.recyclerview.CommonAdapter; +import com.moral.andbrickslib.baseadapter.recyclerview.base.ViewHolder; +import com.moral.screen.R; +import com.moral.screen.model.DeviceBean; +import com.moral.screen.model.DeviceDataBean; + +import java.util.List; + +/** + * Created by hjzhang on 2018/7/4. + */ + +public class DeviceDataAdapter extends CommonAdapter<DeviceDataBean> { + public DeviceDataAdapter(RecyclerView v, int layoutId, List<DeviceDataBean> datas) { + super(v, layoutId, datas); + } + @Override + protected void convert(ViewHolder holder, DeviceDataBean item, int position) { + TextView tv_name = holder.getView(R.id.tv_name); + TextView tv_unit = holder.getView(R.id.tv_unit); + ProgressBar progressBar = holder.getView(R.id.progressBar); + tv_name.setText(item.getDescription()); + tv_unit.setText(item.getValue()+" ("+item.getUnit()+")"); + float barIndex = 0; + try { + barIndex = (Math.abs(item.getValue()) /item.getUpper()); + }catch (Exception e){ + }finally { + progressBar.setProgress((int) (barIndex*100)); + } + } +} 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 6672de4..51a40a2 100644 --- a/app/src/main/java/com/moral/screen/common/API.java +++ b/app/src/main/java/com/moral/screen/common/API.java @@ -5,7 +5,10 @@ */ public class API { - public static final String BASE_HTTP = "http://dcdev3.s1.natapp.cc/bronzecoll/"; - public static final String URL_HTTP = BASE_HTTP+"api/"; + public static final String BASE_HTTP = "http://192.168.1.101:8090/screen_api_v2"; + 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"; } diff --git a/app/src/main/java/com/moral/screen/httputils/HttpUtils.java b/app/src/main/java/com/moral/screen/httputils/HttpUtils.java index a8101e8..b608556 100644 --- a/app/src/main/java/com/moral/screen/httputils/HttpUtils.java +++ b/app/src/main/java/com/moral/screen/httputils/HttpUtils.java @@ -28,19 +28,21 @@ public class HttpUtils { private Context mConetext; + public HttpUtils(Context context) { this.mConetext = context; } /** * Get������ + * * @param url * @param params * @param cacheMode * @param showLoadingDialog * @param httpCallBack */ - public void doGet(final String url, Map<String, String> params, CacheMode cacheMode, final boolean showLoadingDialog, final HttpCallBack httpCallBack) { + public void doGet(final String url, Map<String, String> params, CacheMode cacheMode, final boolean showLoadingDialog, final HttpCallBack httpCallBack) { OkGo.get(url) .params(params) .cacheKey(String.valueOf(url)) @@ -62,102 +64,13 @@ XLog.e("result:" + s); try { JSONObject jsonObject = new JSONObject(s); - int errno = jsonObject.optInt("resultCode"); - String message = jsonObject.optString("msg"); - if(errno == 1){ - httpCallBack.onSuccess(jsonObject.optString("resObj"),message); - }else if(errno == 1002||errno == 1003){ - String errorMsg = jsonObject.optString("errorMsg"); - httpCallBack.onFail(errno,errorMsg); - }else{ - String errorMsg = jsonObject.optString("errorMsg"); - httpCallBack.onFail(errno,errorMsg); - } - } catch (JSONException e) { - e.printStackTrace(); - } - } - - @Override - public void onError(Call call, Response response, Exception e) { - super.onError(call, response, e); - if (response != null) { - int httpCode = response.code(); - switch (httpCode) { - case 400: - XLog.e("���������������������"); - T.show("���������������������"); - break; - case 401: - XLog.e("���������"); - T.show("���������"); - break; - case 403: - XLog.e("���������������"); - T.show("���������������"); - break; - case 404: - XLog.e("������������������������"); - T.show("������������������������"); - break; - case 408: - XLog.e("������������"); - T.show("������������"); - break; - case 500: - XLog.e("���������������"); - T.show("���������������"); - break; - case 503: - XLog.e("������������������������������"); - T.show("������������������������������"); - break; - } - } - } - }); - } - /** - * Get������ - * @param url - * @param params - * @param cacheMode - * @param showLoadingDialog - * @param httpCallBack - */ - public void doGet(final String url, Map<String, String> params, CacheMode cacheMode, final boolean showLoadingDialog, final HttpListCallBack httpCallBack) { - OkGo.get(url) - .params(params) - .cacheKey(String.valueOf(url)) - .tag(String.valueOf(url)) - .cacheMode(cacheMode) - .execute(new StringCallback() { - @Override - public void onBefore(BaseRequest request) { - super.onBefore(request); - XLog.e("url:" + request.getUrl()); - XLog.e("method:" + request.getMethod()); - XLog.e("params:" + request.getParams().toString()); - if (showLoadingDialog) - httpCallBack.showLoadingDialog(); - } - - @Override - public void onSuccess(String s, Call call, Response response) { - XLog.e("result:" + s); - try { - JSONObject jsonObject = new JSONObject(s); - int errno = jsonObject.optInt("resultCode"); - String message = jsonObject.optString("msg"); - int totalPage = jsonObject.optInt("totalPage"); - if(errno == 1){ - httpCallBack.onSuccess(jsonObject.optString("resObj"),message,totalPage); - }else if(errno == 1002||errno == 1003){ - String errorMsg = jsonObject.optString("errorMsg"); - httpCallBack.onFail(errno,errorMsg); - }else{ - String errorMsg = jsonObject.optString("errorMsg"); - httpCallBack.onFail(errno,errorMsg); + int errno = jsonObject.optInt("code"); + String message = jsonObject.optString("message"); + if (errno == 1) { + httpCallBack.onSuccess(jsonObject.optString("data"), message); + } else { + String errorMsg = jsonObject.optString("message"); + httpCallBack.onFail(errno, errorMsg); } } catch (JSONException e) { e.printStackTrace(); @@ -204,101 +117,7 @@ }); } - /** - * POST������ - * @param url - * @param params - * @param cacheMode - * @param showLoadingDialog - * @param httpCallBack - */ - public void doPostList(final String url, Map<String, String> params, CacheMode cacheMode, final boolean showLoadingDialog, final HttpListCallBack httpCallBack) { - OkGo.post(url) - .params(params) - .cacheKey(String.valueOf(url)) - .tag(String.valueOf(url)) - .cacheMode(cacheMode) - .execute(new StringCallback() { - @Override - public void onBefore(BaseRequest request) { - super.onBefore(request); - XLog.e("url:" + request.getUrl()); - XLog.e("method:" + request.getMethod()); - XLog.e("params:" + request.getParams().toString()); - if (showLoadingDialog) - httpCallBack.showLoadingDialog(); - } - - @Override - public void onSuccess(String s, Call call, Response response) { - XLog.e("result:" + s); - try { - JSONObject jsonObject = new JSONObject(s); - int errno = jsonObject.optInt("resultCode"); - String message = jsonObject.optString("msg"); - int totalPage = jsonObject.optInt("totalPage"); - if(errno == 1){ - httpCallBack.onSuccess(jsonObject.optString("resObj"),message,totalPage); - }else if(errno == 1002||errno == 1003){ - String errorMsg = jsonObject.optString("errorMsg"); - httpCallBack.onFail(errno,errorMsg); - }else{ - String errorMsg = jsonObject.optString("errorMsg"); - httpCallBack.onFail(errno,errorMsg); - } - } catch (JSONException e) { - e.printStackTrace(); - } - } - - @Override - public void onError(Call call, Response response, Exception e) { - super.onError(call, response, e); - if (response != null) { - int httpCode = response.code(); - switch (httpCode) { - case 400: - XLog.e("���������������������"); - T.show("���������������������"); - break; - case 401: - XLog.e("���������"); - T.show("���������"); - break; - case 403: - XLog.e("���������������"); - T.show("���������������"); - break; - case 404: - XLog.e("������������������������"); - T.show("������������������������"); - break; - case 408: - XLog.e("������������"); - T.show("������������"); - break; - case 500: - XLog.e("���������������"); - T.show("���������������"); - break; - case 503: - XLog.e("������������������������������"); - T.show("������������������������������"); - break; - } - } - } - }); - } - /** - * Post������ - * @param url - * @param params - * @param cacheMode - * @param showLoadingDialog - * @param httpCallBack - */ - public void doPost(final String url, Map<String, String> params, CacheMode cacheMode, final boolean showLoadingDialog, final HttpCallBack httpCallBack) { + public void doPost(final String url, Map<String, String> params, CacheMode cacheMode, final boolean showLoadingDialog, final HttpCallBack httpCallBack) { OkGo.post(url) .cacheKey(String.valueOf(url)) .tag(String.valueOf(url)) @@ -320,16 +139,13 @@ XLog.e("result:" + s); try { JSONObject jsonObject = new JSONObject(s); - int errno = jsonObject.optInt("resultCode"); - String message = jsonObject.optString("msg"); - if(errno == 1){ - httpCallBack.onSuccess(jsonObject.optString("resObj"),message); - }else if(errno == 1002||errno == 1003){ - String errorMsg = jsonObject.optString("errorMsg"); - httpCallBack.onFail(errno,errorMsg); - }else{ - String errorMsg = jsonObject.optString("errorMsg"); - httpCallBack.onFail(errno,errorMsg); + int errno = jsonObject.optInt("code"); + String message = jsonObject.optString("message"); + if (errno == 1) { + httpCallBack.onSuccess(jsonObject.optString("data"), message); + } else { + String errorMsg = jsonObject.optString("message"); + httpCallBack.onFail(errno, errorMsg); } } catch (JSONException e) { e.printStackTrace(); @@ -367,247 +183,6 @@ break; } } - - }); - } - - /** - * ������������ - * @param url - * @param params - * @param uploadCallBack - * @param files - */ - public void uploadFiles(final String url, Map<String, String> params, final UploadCallBack uploadCallBack, List<File> files) { - OkGo.post(url) - .params(params) - .isMultipart(true) - .addFileParams("file", files) - .execute(new StringCallback() { - @Override - public void onBefore(BaseRequest request) { - super.onBefore(request); - PostRequest re = (PostRequest) request; - XLog.e("url:" + re.getUrl()); - XLog.e("method:" + re.getMethod()); - } - - @Override - public void onSuccess(String s, Call call, Response response) { - XLog.e("result:" + s); - try { - JSONObject jsonObject = new JSONObject(s); - int errno = jsonObject.optInt("resultCode"); - String message = jsonObject.optString("msg"); - if(errno == 1){ - uploadCallBack.onSuccess(jsonObject.optString("resObj"),message); - }else{ - uploadCallBack.onFail(message); - } - } catch (JSONException e) { - e.printStackTrace(); - } - } - - @Override - public void upProgress(long currentSize, long totalSize, float progress, long networkSpeed) { - super.upProgress(currentSize, totalSize, progress, networkSpeed); - uploadCallBack.onProgress(currentSize, totalSize, progress, networkSpeed); - } - - @Override - public void onError(Call call, Response response, Exception e) { - super.onError(call, response, e); - if (response == null) - return; - int httpCode = response.code(); - switch (httpCode) { - case 400: - T.show("���������������������"); - break; - case 401: - T.show("���������"); - break; - case 403: - T.show("���������������"); - break; - case 404: - T.show("������������������������"); - break; - case 408: - T.show("������������"); - break; - case 500: - T.show("���������������"); - break; - case 503: - T.show("������������������������������"); - break; - } - } - - }); - - } - public void uploadFiles(final String url, Map<String, String> params, final UploadCallBack uploadCallBack, List<File> files,List<File> files2) { - OkGo.post(url) - .params(params) - .isMultipart(true) - .addFileParams("door", files) - .addFileParams("images", files2) - .execute(new StringCallback() { - @Override - public void onBefore(BaseRequest request) { - super.onBefore(request); - PostRequest re = (PostRequest) request; - XLog.e("url:" + re.getUrl()); - XLog.e("method:" + re.getMethod()); - } - - @Override - public void onSuccess(String s, Call call, Response response) { - XLog.e("result:" + s); - try { - JSONObject jsonObject = new JSONObject(s); - int errno = jsonObject.optInt("resultCode"); - String message = jsonObject.optString("msg"); - if(errno == 1){ - uploadCallBack.onSuccess(jsonObject.optString("resObj"),message); - }else{ - uploadCallBack.onFail(message); - } - } catch (JSONException e) { - e.printStackTrace(); - } - } - - @Override - public void upProgress(long currentSize, long totalSize, float progress, long networkSpeed) { - super.upProgress(currentSize, totalSize, progress, networkSpeed); - uploadCallBack.onProgress(currentSize, totalSize, progress, networkSpeed); - } - - @Override - public void onError(Call call, Response response, Exception e) { - super.onError(call, response, e); - if (response == null) - return; - int httpCode = response.code(); - switch (httpCode) { - case 400: - T.show("���������������������"); - break; - case 401: - T.show("���������"); - break; - case 403: - T.show("���������������"); - break; - case 404: - T.show("������������������������"); - break; - case 408: - T.show("������������"); - break; - case 500: - T.show("���������������"); - break; - case 503: - T.show("������������������������������"); - break; - } - } - - }); - - } - /** - * ������������ - * @param url - * @param params - * @param uploadCallBack - * @param files - */ - public void uploadFiles(final String url, Map<String, String> params, final UploadCallBack uploadCallBack, Map<String, File> files) { - PostRequest postRequest = OkGo.post(url); - postRequest.isMultipart(true); - for (String key : files.keySet()) { - postRequest.params(key, files.get(key)); - } - postRequest.params(params) - .execute(new StringCallback() { - @Override - public void onBefore(BaseRequest request) { - super.onBefore(request); - PostRequest re = (PostRequest) request; - XLog.e("url:" + re.getUrl()); - XLog.e("method:" + re.getMethod()); - } - - @Override - public void onSuccess(String s, Call call, Response response) { - XLog.e("result:" + s); - try { - JSONObject jsonObject = new JSONObject(s); - int errno = jsonObject.optInt("resultCode"); - String message = jsonObject.optString("msg"); - if(errno == 1){ - uploadCallBack.onSuccess(jsonObject.optString("resObj"),message); - }else{ - uploadCallBack.onFail(message); - } - } catch (JSONException e) { - e.printStackTrace(); - } - } - - @Override - public void upProgress(long currentSize, long totalSize, float progress, long networkSpeed) { - super.upProgress(currentSize, totalSize, progress, networkSpeed); - uploadCallBack.onProgress(currentSize, totalSize, progress, networkSpeed); - } - - @Override - public void onError(Call call, Response response, Exception e) { - super.onError(call, response, e); - if (response == null) - return; - int httpCode = response.code(); - switch (httpCode) { - case 400: - T.show("���������������������"); - break; - case 401: - T.show("���������"); - break; - case 403: - T.show("���������������"); - break; - case 404: - T.show("������������������������"); - break; - case 408: - T.show("������������"); - break; - case 500: - T.show("���������������"); - break; - case 503: - T.show("������������������������������"); - break; - } - } - - }); - - } - - public interface UploadCallBack { - void onSuccess(String res, String msg); - - void onFail(String s); - - void onProgress(long currentSize, long totalSize, float progress, long networkSpeed); } } diff --git a/app/src/main/java/com/moral/screen/model/DeviceBean.java b/app/src/main/java/com/moral/screen/model/DeviceBean.java new file mode 100644 index 0000000..8e2ce60 --- /dev/null +++ b/app/src/main/java/com/moral/screen/model/DeviceBean.java @@ -0,0 +1,143 @@ +package com.moral.screen.model; + +/** + * Created by hjzhang on 2018/7/4. + */ + +public class DeviceBean { + private int id; + private String name; + private String address; + private double longitude; + private double latitude; + private String mac; + private int operateUserId; + private String state; + private long createTime; + private String installTime; + private int monitorPointId; + private int deviceVersionId; + private String isDelete; + private int professionId; + private String device_name; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public double getLongitude() { + return longitude; + } + + public void setLongitude(double longitude) { + this.longitude = longitude; + } + + public double getLatitude() { + return latitude; + } + + public void setLatitude(double latitude) { + this.latitude = latitude; + } + + public String getMac() { + return mac; + } + + public void setMac(String mac) { + this.mac = mac; + } + + public int getOperateUserId() { + return operateUserId; + } + + public void setOperateUserId(int operateUserId) { + this.operateUserId = operateUserId; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public long getCreateTime() { + return createTime; + } + + public void setCreateTime(long createTime) { + this.createTime = createTime; + } + + public String getInstallTime() { + return installTime; + } + + public void setInstallTime(String installTime) { + this.installTime = installTime; + } + + public int getMonitorPointId() { + return monitorPointId; + } + + public void setMonitorPointId(int monitorPointId) { + this.monitorPointId = monitorPointId; + } + + public int getDeviceVersionId() { + return deviceVersionId; + } + + public void setDeviceVersionId(int deviceVersionId) { + this.deviceVersionId = deviceVersionId; + } + + public String getIsDelete() { + return isDelete; + } + + public void setIsDelete(String isDelete) { + this.isDelete = isDelete; + } + + public int getProfessionId() { + return professionId; + } + + public void setProfessionId(int professionId) { + this.professionId = professionId; + } + + public String getDevice_name() { + return device_name; + } + + public void setDevice_name(String device_name) { + this.device_name = device_name; + } +} diff --git a/app/src/main/java/com/moral/screen/model/DeviceDataBean.java b/app/src/main/java/com/moral/screen/model/DeviceDataBean.java new file mode 100644 index 0000000..749d046 --- /dev/null +++ b/app/src/main/java/com/moral/screen/model/DeviceDataBean.java @@ -0,0 +1,89 @@ +package com.moral.screen.model; + +/** + * Created by hjzhang on 2018/7/4. + */ + +public class DeviceDataBean { + private String sensor_key; + private String unit; + private float upper; + private float lower; + private String name; + private String description; + private int id; + private String state; + private float value; + + public String getSensor_key() { + return sensor_key; + } + + public void setSensor_key(String sensor_key) { + this.sensor_key = sensor_key; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public float getUpper() { + return upper; + } + + public void setUpper(float upper) { + this.upper = upper; + } + + public float getLower() { + return lower; + } + + public void setLower(float lower) { + this.lower = lower; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public float getValue() { + return value; + } + + public void setValue(float value) { + this.value = value; + } +} diff --git a/app/src/main/java/com/moral/screen/model/SensorData.java b/app/src/main/java/com/moral/screen/model/SensorData.java new file mode 100644 index 0000000..5fd194e --- /dev/null +++ b/app/src/main/java/com/moral/screen/model/SensorData.java @@ -0,0 +1,17 @@ +package com.moral.screen.model; + +/** + * Created by hjzhang on 2018/7/10. + */ + +public class SensorData { + private float value; + + public float getValue() { + return value; + } + + public void setValue(float value) { + this.value = value; + } +} diff --git a/app/src/main/java/com/moral/screen/utils/SharedPreferencesUtil.java b/app/src/main/java/com/moral/screen/utils/SharedPreferencesUtil.java new file mode 100644 index 0000000..baecb37 --- /dev/null +++ b/app/src/main/java/com/moral/screen/utils/SharedPreferencesUtil.java @@ -0,0 +1,45 @@ +package com.moral.screen.utils; + +import android.content.Context; +import android.content.SharedPreferences; +import android.content.SharedPreferences.Editor; +public class SharedPreferencesUtil { + private Context mContext; + public final static String SP_LOGIN_USER_KEY = "login_user"; + public SharedPreferencesUtil(Context context) { + this.mContext = context; + } + + public void saveOrgId(int orgId){ + SharedPreferences preferences = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); + Editor editor = preferences.edit(); + editor.putInt("orgId",orgId); + editor.commit(); + } + + public int getOrgId(){ + SharedPreferences sp = mContext.getSharedPreferences(SP_LOGIN_USER_KEY, Context.MODE_PRIVATE); + int orgId = sp.getInt("orgId",0); + return orgId; + } + + + /** + * ��������������������������� + * @param flag + */ + public void saveFirstUse(int flag) { + SharedPreferences preferences = mContext.getSharedPreferences("firstInfo", + Context.MODE_PRIVATE); + Editor editor = preferences.edit(); + editor.putInt("firstUse", flag); + editor.commit(); + } + + public int getFirstUse() { + SharedPreferences preferences = mContext.getSharedPreferences("firstInfo", + Context.MODE_PRIVATE); + int firstUse = preferences.getInt("firstUse", 0); + return firstUse; + } +} diff --git a/app/src/main/res/drawable/my_progress_background.xml b/app/src/main/res/drawable/my_progress_background.xml new file mode 100644 index 0000000..66a876a --- /dev/null +++ b/app/src/main/res/drawable/my_progress_background.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:id="@android:id/background"> + <color android:color="#00ffffff"/> + </item> + + <item android:id="@android:id/progress"> + <clip + android:clipOrientation="horizontal" + android:gravity="left"> + <shape> + <gradient + android:startColor="#00a445" + android:endColor="#00ffde"/> + </shape> + </clip> + </item> +</layer-list> diff --git a/app/src/main/res/layout/ac_charts_layout.xml b/app/src/main/res/layout/ac_charts_layout.xml new file mode 100644 index 0000000..e87c359 --- /dev/null +++ b/app/src/main/res/layout/ac_charts_layout.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@mipmap/bg" + android:fitsSystemWindows="true" + android:orientation="vertical"> + <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"> + <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"/> + <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" + /> + <ImageView + android:layout_width="@dimen/x10" + android:layout_height="@dimen/x10" + android:src="@mipmap/icon_xia"/> + </LinearLayout> + + <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> + </LinearLayout> + +</LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/ac_device_data_layout.xml b/app/src/main/res/layout/ac_device_data_layout.xml new file mode 100644 index 0000000..c0e7f9f --- /dev/null +++ b/app/src/main/res/layout/ac_device_data_layout.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@mipmap/bg" + android:fitsSystemWindows="true" + android:orientation="vertical"> + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="@dimen/y38"> + <TextView + android:id="@+id/tv_left" + android:layout_width="@dimen/x60" + android:layout_height="match_parent" + android:gravity="center" + android:textColor="@color/white" + android:drawablePadding="@dimen/x4" + android:textSize="16sp" + android:text="������" + android:paddingLeft="@dimen/x16" + /> + <TextView + android:id="@+id/tv_title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerInParent="true" + android:ellipsize="marquee" + android:focusable="true" + android:focusableInTouchMode="true" + android:gravity="center" + android:textColor="@color/white" + android:marqueeRepeatLimit="marquee_forever" + android:singleLine="true" + android:text="������������" + android:textSize="17sp" /> + </RelativeLayout> + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_margin="@dimen/x6" + android:paddingLeft="@dimen/x2" + android:paddingRight="@dimen/x2" + android:paddingBottom="@dimen/x10" + android:paddingTop="@dimen/x2" + android:background="@mipmap/bg_data"> + <android.support.v7.widget.RecyclerView + android:id="@+id/rv_data" + android:layout_width="match_parent" + android:layout_height="match_parent"/> + </RelativeLayout> +</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 242e533..4bbc9ef 100644 --- a/app/src/main/res/layout/ac_login_layout.xml +++ b/app/src/main/res/layout/ac_login_layout.xml @@ -19,7 +19,6 @@ android:layout_height="@dimen/x40" android:layout_marginLeft="@dimen/x36" android:layout_marginRight="@dimen/x36" - android:inputType="number" android:textSize="16sp" android:textColor="@color/white" android:textColorHint="@color/white" @@ -59,5 +58,6 @@ android:textColor="@color/blue_txt" android:text="������������" android:gravity="center" + android:visibility="invisible" android:layout_marginTop="@dimen/x60"/> </LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/ac_map_layout.xml b/app/src/main/res/layout/ac_map_layout.xml new file mode 100644 index 0000000..531c314 --- /dev/null +++ b/app/src/main/res/layout/ac_map_layout.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@mipmap/bg" + android:fitsSystemWindows="true" + android:orientation="vertical"> + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="@dimen/y38"> + <TextView + android:id="@+id/tv_left" + android:layout_width="@dimen/x60" + android:layout_height="match_parent" + android:gravity="center" + android:textColor="@color/white" + android:drawablePadding="@dimen/x4" + android:textSize="16sp" + android:text="������" + android:paddingLeft="@dimen/x16" + /> + <TextView + android:id="@+id/tv_title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerInParent="true" + android:ellipsize="marquee" + android:focusable="true" + android:focusableInTouchMode="true" + android:gravity="center" + android:textColor="@color/white" + android:marqueeRepeatLimit="marquee_forever" + android:singleLine="true" + android:text="������������" + android:textSize="17sp" /> + </RelativeLayout> + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_margin="@dimen/x6" + android:padding="@dimen/x2" + android:background="@mipmap/bg_map"> + <com.baidu.mapapi.map.MapView + android:id="@+id/bmapView" + android:layout_width="fill_parent" + android:layout_height="fill_parent" + android:clickable="true" /> + </RelativeLayout> +</LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/list_item_data.xml b/app/src/main/res/layout/list_item_data.xml new file mode 100644 index 0000000..240527d --- /dev/null +++ b/app/src/main/res/layout/list_item_data.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingTop="@dimen/x14" + android:paddingLeft="@dimen/x4" + android:paddingRight="@dimen/x4"> + <TextView + android:id="@+id/tv_name" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:gravity="right" + android:layout_weight="1.2" + android:textSize="13sp" + android:textColor="@color/white" + android:text="���������2.5"/> + <RelativeLayout + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="3" + android:background="@mipmap/pro_kuang" + android:layout_marginRight="@dimen/x6" + android:layout_marginLeft="@dimen/x6" + android:padding="@dimen/x2"> + <ProgressBar + android:id="@+id/progressBar" + android:layout_width="match_parent" + android:layout_height="wrap_content" + style="?android:attr/progressBarStyleHorizontal" + android:max="100" + android:progressDrawable="@drawable/my_progress_background" + /> + </RelativeLayout> + + <TextView + android:id="@+id/tv_unit" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:gravity="left" + android:layout_weight="2.2" + android:textColor="@color/white" + android:textSize="13sp" + android:text="6396���PCS/0.1L���"/> +</LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/pop_layout.xml b/app/src/main/res/layout/pop_layout.xml new file mode 100644 index 0000000..04f7962 --- /dev/null +++ b/app/src/main/res/layout/pop_layout.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/ll_pop" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:background="@mipmap/bg_pop" + android:paddingLeft="@dimen/x8" + android:paddingTop="@dimen/x8" + android:paddingRight="@dimen/x8" + android:paddingBottom="@dimen/x16" + android:orientation="vertical"> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center_vertical" + android:orientation="horizontal"> + <TextView + android:id="@+id/tv_name" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="XXXXXXXXXXXXXXXXXXXXXXX" + android:textSize="13sp" + android:textColor="@color/yellow_txt" + android:layout_weight="1"/> + <ImageView + android:id="@+id/iv_close" + android:layout_width="@dimen/x20" + android:layout_height="@dimen/x20" + android:padding="@dimen/x6" + android:src="@mipmap/icon_close" /> + </LinearLayout> + <TextView + android:id="@+id/tv_address" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:text="XXXXXXXXXXXXXXXXXXXXXXX" + android:textSize="13sp" + android:layout_marginTop="@dimen/x4" + android:layout_weight="1"/> +</LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/top_bar_layout.xml b/app/src/main/res/layout/top_bar_layout.xml index 8fd3c0a..547407b 100644 --- a/app/src/main/res/layout/top_bar_layout.xml +++ b/app/src/main/res/layout/top_bar_layout.xml @@ -1,15 +1,14 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" - android:layout_height="@dimen/y38" - android:background="@color/white"> + android:layout_height="@dimen/y38"> <TextView android:id="@+id/tv_left" android:layout_width="@dimen/x60" android:layout_height="match_parent" android:gravity="center" - android:textColor="@color/black_txt" + android:textColor="@color/white" android:drawablePadding="@dimen/x4" android:textSize="16sp" android:text="������" @@ -25,7 +24,7 @@ android:focusable="true" android:focusableInTouchMode="true" android:gravity="center" - android:textColor="@color/black_txt" + android:textColor="@color/white" android:marqueeRepeatLimit="marquee_forever" android:singleLine="true" android:text="������" @@ -48,6 +47,6 @@ android:gravity="center" android:text="" android:visibility="gone" - android:textColor="@color/black_txt" + android:textColor="@color/white" android:layout_alignParentRight="true" /> </RelativeLayout> \ No newline at end of file diff --git a/app/src/main/res/mipmap-xxxhdpi/bg_chart.png b/app/src/main/res/mipmap-xxxhdpi/bg_chart.png new file mode 100644 index 0000000..4e4e856 --- /dev/null +++ b/app/src/main/res/mipmap-xxxhdpi/bg_chart.png Binary files differ diff --git a/app/src/main/res/mipmap-xxxhdpi/bg_data.png b/app/src/main/res/mipmap-xxxhdpi/bg_data.png new file mode 100644 index 0000000..37af029 --- /dev/null +++ b/app/src/main/res/mipmap-xxxhdpi/bg_data.png Binary files differ diff --git a/app/src/main/res/mipmap-xxxhdpi/bg_map.png b/app/src/main/res/mipmap-xxxhdpi/bg_map.png new file mode 100644 index 0000000..82c212b --- /dev/null +++ b/app/src/main/res/mipmap-xxxhdpi/bg_map.png Binary files differ diff --git a/app/src/main/res/mipmap-xxxhdpi/bg_pop.png b/app/src/main/res/mipmap-xxxhdpi/bg_pop.png new file mode 100644 index 0000000..27d2f46 --- /dev/null +++ b/app/src/main/res/mipmap-xxxhdpi/bg_pop.png Binary files differ diff --git a/app/src/main/res/mipmap-xxxhdpi/icon_close.png b/app/src/main/res/mipmap-xxxhdpi/icon_close.png new file mode 100644 index 0000000..56171c5 --- /dev/null +++ b/app/src/main/res/mipmap-xxxhdpi/icon_close.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 new file mode 100644 index 0000000..5487601 --- /dev/null +++ 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 new file mode 100644 index 0000000..1928a67 --- /dev/null +++ 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 new file mode 100644 index 0000000..7b6d691 --- /dev/null +++ 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 new file mode 100644 index 0000000..64a77b1 --- /dev/null +++ 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 new file mode 100644 index 0000000..a71a2cb --- /dev/null +++ b/app/src/main/res/mipmap-xxxhdpi/icon_offline.png Binary files differ diff --git a/app/src/main/res/mipmap-xxxhdpi/icon_white_jiantou.png b/app/src/main/res/mipmap-xxxhdpi/icon_white_jiantou.png new file mode 100644 index 0000000..4c1962f --- /dev/null +++ b/app/src/main/res/mipmap-xxxhdpi/icon_white_jiantou.png Binary files differ diff --git a/app/src/main/res/mipmap-xxxhdpi/icon_xia.png b/app/src/main/res/mipmap-xxxhdpi/icon_xia.png new file mode 100644 index 0000000..d6ee6c8 --- /dev/null +++ b/app/src/main/res/mipmap-xxxhdpi/icon_xia.png Binary files differ diff --git a/app/src/main/res/mipmap-xxxhdpi/icon_yuan.png b/app/src/main/res/mipmap-xxxhdpi/icon_yuan.png new file mode 100644 index 0000000..3223a5c --- /dev/null +++ b/app/src/main/res/mipmap-xxxhdpi/icon_yuan.png Binary files differ diff --git a/app/src/main/res/mipmap-xxxhdpi/pro_kuang.png b/app/src/main/res/mipmap-xxxhdpi/pro_kuang.png new file mode 100644 index 0000000..46b2edf --- /dev/null +++ b/app/src/main/res/mipmap-xxxhdpi/pro_kuang.png Binary files differ diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 3c336cd..e89771f 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -10,7 +10,7 @@ <color name="dark_black_txt">#040000</color> <color name="black_txt">#323333</color> <color name="green_txt">#92c755</color> - <color name="yellow_txt">#eb8600</color> + <color name="yellow_txt">#ff7800</color> <color name="ac_bg">#f0f0f0</color> <color name="trans_white">#CCffffff</color> <color name="trans">#00ffffff</color> -- Gitblit v1.8.0