diff --git a/android/OldPeopleHome/.idea/workspace.xml b/android/OldPeopleHome/.idea/workspace.xml
index 7d1f3dd..20695ce 100644
--- a/android/OldPeopleHome/.idea/workspace.xml
+++ b/android/OldPeopleHome/.idea/workspace.xml
@@ -6,7 +6,7 @@
-
+
@@ -125,135 +125,125 @@
-
-
+
+
-
-
+
+
-
-
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -271,14 +261,6 @@
- permi
- 扫描ing
- handle
- getsen
- onReceiveSensorData
- Y1-4389
- dua
- duan
duan'ka
断开
断开li
@@ -301,6 +283,14 @@
hand
new hand
adapter
+ them
+ android:style
+ SpinnerStyle
+ theme
+ p
+ "
+ parent
+ "parent
@color/choosed
@@ -2109,38 +2099,19 @@
@@ -2184,7 +2174,6 @@
-
@@ -2266,38 +2255,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -2417,6 +2374,10 @@
+
+
+
+
@@ -2499,10 +2460,6 @@
-
-
-
-
@@ -2548,30 +2505,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -2697,8 +2633,7 @@
-
-
+
@@ -2745,8 +2680,7 @@
-
-
+
@@ -2780,27 +2714,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -2928,8 +2841,7 @@
-
-
+
@@ -2990,15 +2902,15 @@
-
+
-
-
+
+
-
+
@@ -3008,12 +2920,12 @@
-
+
-
+
@@ -3033,197 +2945,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -3231,34 +2959,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -3274,9 +2974,6 @@
-
-
-
@@ -3284,29 +2981,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -3314,150 +2988,177 @@
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
+
+
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
@@ -3466,94 +3167,289 @@
-
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
-
-
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/OldPeopleHome.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/OldPeopleHome.java
index 627ee96..6554db3 100644
--- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/OldPeopleHome.java
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/OldPeopleHome.java
@@ -1,6 +1,9 @@
package com.scorpiomiku.oldpeoplehome;
+import android.annotation.SuppressLint;
import android.app.Application;
+import android.os.Handler;
+import android.os.Message;
import com.baidu.location.BDAbstractLocationListener;
import com.baidu.location.BDLocation;
@@ -14,36 +17,10 @@ import com.scorpiomiku.oldpeoplehome.utils.LogUtils;
public class OldPeopleHome extends Application {
public static OldPeopleHome mInstance;
- private LocationClient mLocationClient = null;
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
- mLocationClient = new LocationClient(getApplicationContext());
- mLocationClient.registerLocationListener(new BDAbstractLocationListener() {
- @Override
- public void onReceiveLocation(BDLocation bdLocation) {
- double latitude = bdLocation.getLatitude(); //获取纬度信息
- double longitude = bdLocation.getLongitude(); //获取经度信息
- float radius = bdLocation.getRadius(); //获取定位精度,默认值为0.0f
- //获取经纬度坐标类型,以LocationClientOption中设置过的坐标类型为准
- String coorType = bdLocation.getCoorType();
- //获取定位类型、定位错误返回码,具体信息可参照类参考中BDLocation类中的说明
- int errorCode = bdLocation.getLocType();
- LogUtils.logd(latitude + ";" + longitude + ";" + radius + ";" + coorType + ";" + errorCode);
- }
- });
- LocationClientOption option = new LocationClientOption();
- option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
- option.setCoorType("bd0911");
- option.setScanSpan(10000);
- option.setOpenGps(true);
- option.setLocationNotify(true);
- option.setIgnoreKillProcess(false);
- option.SetIgnoreCacheException(false);
- option.setWifiCacheTimeOut(5 * 60 * 1000);
- mLocationClient.setLocOption(option);
- mLocationClient.start();
}
}
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/base/BaseActivity.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/base/BaseActivity.java
index febb81f..699d71e 100644
--- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/base/BaseActivity.java
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/base/BaseActivity.java
@@ -11,6 +11,7 @@ import android.support.v7.app.AppCompatActivity;
import com.scorpiomiku.oldpeoplehome.bean.Child;
+import com.scorpiomiku.oldpeoplehome.bean.OldPeople;
import com.scorpiomiku.oldpeoplehome.bean.User;
import com.scorpiomiku.oldpeoplehome.modules.loginregister.LoginActivity;
import com.scorpiomiku.oldpeoplehome.utils.LogUtils;
@@ -35,8 +36,8 @@ public abstract class BaseActivity extends AppCompatActivity {
}
- public User getOldPeopleUser() {
- return (user);
+ public OldPeople getOldPeopleUser() {
+ return (OldPeople) user;
}
public void setUser(User user) {
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/base/BaseFragment.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/base/BaseFragment.java
index 7a3a5a5..e190969 100644
--- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/base/BaseFragment.java
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/base/BaseFragment.java
@@ -27,15 +27,7 @@ public abstract class BaseFragment extends Fragment {
protected Handler handler;
protected HashMap data = new HashMap<>();
private WebUtils webUtils;
-// private User user;
-//
-// public User getUser() {
-// return user;
-// }
-//
-// public void setUser(User user) {
-// this.user = user;
-// }
+
@Nullable
@Override
@@ -48,12 +40,15 @@ public abstract class BaseFragment extends Fragment {
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
webUtils = WebUtils.getInstance();
+// LogUtils.loge("web init ");
initView();
handler = initHandle();
-// refreshData();
}
protected WebUtils getWebUtils() {
+ if (webUtils == null) {
+ webUtils = WebUtils.getInstance();
+ }
return webUtils;
}
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/bean/HeartRate.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/bean/HeartRate.java
new file mode 100644
index 0000000..1722319
--- /dev/null
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/bean/HeartRate.java
@@ -0,0 +1,74 @@
+package com.scorpiomiku.oldpeoplehome.bean;
+
+/**
+ * Created by ScorpioMiku on 2019/9/5.
+ */
+
+public class HeartRate {
+ private String parentId;
+ private String time;
+ private String rate1;
+ private String rate2;
+ private String oxy;
+ private String rate;
+
+ @Override
+ public String toString() {
+ return "HeartRate{" +
+ "parentId='" + parentId + '\'' +
+ ", time='" + time + '\'' +
+ ", rate1='" + rate1 + '\'' +
+ ", rate2='" + rate2 + '\'' +
+ ", oxy='" + oxy + '\'' +
+ ", rate='" + rate + '\'' +
+ '}';
+ }
+
+ public String getRate() {
+ return rate;
+ }
+
+ public void setRate(String rate) {
+ this.rate = rate;
+ }
+
+ public String getParentId() {
+ return parentId;
+ }
+
+ public void setParentId(String parentId) {
+ this.parentId = parentId;
+ }
+
+ public String getTime() {
+ return time;
+ }
+
+ public void setTime(String time) {
+ this.time = time;
+ }
+
+ public String getRate1() {
+ return rate1;
+ }
+
+ public void setRate1(String rate1) {
+ this.rate1 = rate1;
+ }
+
+ public String getRate2() {
+ return rate2;
+ }
+
+ public void setRate2(String rate2) {
+ this.rate2 = rate2;
+ }
+
+ public String getOxy() {
+ return oxy;
+ }
+
+ public void setOxy(String oxy) {
+ this.oxy = oxy;
+ }
+}
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/bean/OldPeople.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/bean/OldPeople.java
index fe981a4..d425c63 100644
--- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/bean/OldPeople.java
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/bean/OldPeople.java
@@ -1,10 +1,12 @@
package com.scorpiomiku.oldpeoplehome.bean;
+import java.io.Serializable;
+
/**
* Created by ScorpioMiku on 2019/9/4.
*/
-public class OldPeople implements User {
+public class OldPeople implements User, Serializable {
private String parentId;
private String parentLongId;
private String parentName;
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/bean/RoomState.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/bean/RoomState.java
new file mode 100644
index 0000000..06d663f
--- /dev/null
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/bean/RoomState.java
@@ -0,0 +1,64 @@
+package com.scorpiomiku.oldpeoplehome.bean;
+
+/**
+ * Created by ScorpioMiku on 2019/9/5.
+ */
+
+public class RoomState {
+ private String roomId;
+ private String time;
+ private String temperature;
+ private String humidity;
+ private String isin;
+
+ @Override
+ public String toString() {
+ return "RoomState{" +
+ "roomId='" + roomId + '\'' +
+ ", time='" + time + '\'' +
+ ", temperature='" + temperature + '\'' +
+ ", humidity='" + humidity + '\'' +
+ ", isin='" + isin + '\'' +
+ '}';
+ }
+
+ public String getRoomId() {
+ return roomId;
+ }
+
+ public void setRoomId(String roomId) {
+ this.roomId = roomId;
+ }
+
+ public String getTime() {
+ return time;
+ }
+
+ public void setTime(String time) {
+ this.time = time;
+ }
+
+ public String getTemperature() {
+ return temperature;
+ }
+
+ public void setTemperature(String temperature) {
+ this.temperature = temperature;
+ }
+
+ public String getHumidity() {
+ return humidity;
+ }
+
+ public void setHumidity(String humidity) {
+ this.humidity = humidity;
+ }
+
+ public String getIsin() {
+ return isin;
+ }
+
+ public void setIsin(String isin) {
+ this.isin = isin;
+ }
+}
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/bean/SleepData.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/bean/SleepData.java
index 1df06ea..9443b13 100644
--- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/bean/SleepData.java
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/bean/SleepData.java
@@ -1,22 +1,27 @@
package com.scorpiomiku.oldpeoplehome.bean;
+import android.support.annotation.NonNull;
+
+import com.scorpiomiku.oldpeoplehome.utils.LogUtils;
+import com.scorpiomiku.oldpeoplehome.utils.TimeUtils;
+
/**
* Created by ScorpioMiku on 2019/9/4.
*/
-public class SleepData {
- private String parent;
+public class SleepData implements Comparable {
+ private String parentId;
private String date;
- private String deep;
- private String light;
- private String awake;
+ private String deepTime;
+ private String lightTime;
+ private String awakeTime;
- public String getParent() {
- return parent;
+ public String getParentId() {
+ return parentId;
}
- public void setParent(String parent) {
- this.parent = parent;
+ public void setParentId(String parentId) {
+ this.parentId = parentId;
}
public String getDate() {
@@ -27,27 +32,43 @@ public class SleepData {
this.date = date;
}
- public String getDeep() {
- return deep;
+ public String getDeepTime() {
+ return deepTime;
}
- public void setDeep(String deep) {
- this.deep = deep;
+ public void setDeepTime(String deepTime) {
+ this.deepTime = deepTime;
}
- public String getLight() {
- return light;
+ public String getLightTime() {
+ return lightTime;
}
- public void setLight(String light) {
- this.light = light;
+ public void setLightTime(String lightTime) {
+ this.lightTime = lightTime;
}
- public String getAwake() {
- return awake;
+ public String getAwakeTime() {
+ return awakeTime;
}
- public void setAwake(String awake) {
- this.awake = awake;
+ public void setAwakeTime(String awakeTime) {
+ this.awakeTime = awakeTime;
+ }
+
+ @Override
+ public int compareTo(@NonNull SleepData sleepData) {
+ return TimeUtils.compareTime(date, sleepData.getDate());
+ }
+
+ @Override
+ public String toString() {
+ return "SleepData{" +
+ "parentId='" + parentId + '\'' +
+ ", date='" + date + '\'' +
+ ", deepTime='" + deepTime + '\'' +
+ ", lightTime='" + lightTime + '\'' +
+ ", awakeTime='" + awakeTime + '\'' +
+ '}';
}
}
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/children/activity/ChildMainActivity.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/children/activity/ChildMainActivity.java
index 820cb36..f6a62db 100644
--- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/children/activity/ChildMainActivity.java
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/children/activity/ChildMainActivity.java
@@ -1,7 +1,7 @@
package com.scorpiomiku.oldpeoplehome.modules.children.activity;
import android.annotation.SuppressLint;
-import android.app.AlertDialog;
+
import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
@@ -11,6 +11,7 @@ import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
+import android.support.v7.app.AlertDialog;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.MenuItem;
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/children/fragment/EnvironmentFragment.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/children/fragment/EnvironmentFragment.java
index a0e97fa..0c0bab0 100644
--- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/children/fragment/EnvironmentFragment.java
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/children/fragment/EnvironmentFragment.java
@@ -1,7 +1,9 @@
package com.scorpiomiku.oldpeoplehome.modules.children.fragment;
+import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
+import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -9,15 +11,24 @@ import android.widget.TextView;
import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.data.Entry;
+import com.google.gson.Gson;
+import com.google.gson.JsonArray;
import com.scorpiomiku.oldpeoplehome.R;
import com.scorpiomiku.oldpeoplehome.base.BaseFragment;
+import com.scorpiomiku.oldpeoplehome.bean.OldPeople;
+import com.scorpiomiku.oldpeoplehome.bean.RoomState;
import com.scorpiomiku.oldpeoplehome.utils.ChartUtils;
+import com.scorpiomiku.oldpeoplehome.utils.LogUtils;
+import java.io.IOException;
import java.util.ArrayList;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.Response;
/**
* Created by ScorpioMiku on 2019/8/18.
@@ -33,10 +44,25 @@ public class EnvironmentFragment extends BaseFragment {
@BindView(R.id.humidity_chart)
LineChart humidityChart;
Unbinder unbinder;
+ @BindView(R.id.now_time_text)
+ TextView nowTimeText;
+ private RoomState roomState;
+
+ @SuppressLint("HandlerLeak")
@Override
protected Handler initHandle() {
- return null;
+ return new Handler() {
+ @Override
+ public void handleMessage(Message msg) {
+ super.handleMessage(msg);
+ switch (msg.what) {
+ case 1:
+ refreshData();
+ break;
+ }
+ }
+ };
}
@Override
@@ -46,12 +72,15 @@ public class EnvironmentFragment extends BaseFragment {
@Override
protected void refreshData() {
-
+ nowTimeText.setText(roomState.getTime());
+ temperatureText.setText(roomState.getTemperature());
+ humidityText.setText(roomState.getHumidity());
+ initChart();
}
@Override
protected void initView() {
- initChart();
+
}
@Override
@@ -93,4 +122,28 @@ public class EnvironmentFragment extends BaseFragment {
}
ChartUtils.initSingleLineChart(humidityChart, humidityValues, "近7天平均湿度", 0xFF01B67A);
}
+
+ @Override
+ public void refreshUi(OldPeople oldPeople) {
+ super.refreshUi(oldPeople);
+ getWebUtils().getRoomData(oldPeople.getParentId(), new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
+ LogUtils.loge(e.getMessage());
+ }
+
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ try {
+ JsonArray jsonElements = getWebUtils().getJsonArray(response);
+ Gson gson = new Gson();
+ RoomState[] roomStates = gson.fromJson(jsonElements, RoomState[].class);
+ roomState = roomStates[roomStates.length - 1];
+ handler.sendEmptyMessage(1);
+ } catch (Exception e) {
+ LogUtils.loge(e.getMessage());
+ }
+ }
+ });
+ }
}
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/children/fragment/HeartRateFragment.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/children/fragment/HeartRateFragment.java
index e3ee9c9..633ddd7 100644
--- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/children/fragment/HeartRateFragment.java
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/children/fragment/HeartRateFragment.java
@@ -1,7 +1,9 @@
package com.scorpiomiku.oldpeoplehome.modules.children.fragment;
+import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
+import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -9,16 +11,25 @@ import android.widget.TextView;
import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.data.Entry;
+import com.google.gson.Gson;
+import com.google.gson.JsonArray;
import com.scorpiomiku.oldpeoplehome.R;
import com.scorpiomiku.oldpeoplehome.base.BaseFragment;
+import com.scorpiomiku.oldpeoplehome.bean.HeartRate;
+import com.scorpiomiku.oldpeoplehome.bean.OldPeople;
import com.scorpiomiku.oldpeoplehome.utils.ChartUtils;
+import com.scorpiomiku.oldpeoplehome.utils.LogUtils;
+import java.io.IOException;
import java.util.ArrayList;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
import me.itangqi.waveloadingview.WaveLoadingView;
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.Response;
/**
* Created by ScorpioMiku on 2019/8/18.
@@ -32,10 +43,28 @@ public class HeartRateFragment extends BaseFragment {
@BindView(R.id.chart)
LineChart chart;
Unbinder unbinder;
+ @BindView(R.id.diastolic)
+ TextView diastolic;
+ @BindView(R.id.systolic)
+ TextView systolic;
+ @BindView(R.id.oxy)
+ TextView oxy;
+ private HeartRate heartRate;
+ @SuppressLint("HandlerLeak")
@Override
protected Handler initHandle() {
- return null;
+ return new Handler() {
+ @Override
+ public void handleMessage(Message msg) {
+ super.handleMessage(msg);
+ switch (msg.what) {
+ case 1:
+ refreshData();
+ break;
+ }
+ }
+ };
}
@Override
@@ -45,12 +74,15 @@ public class HeartRateFragment extends BaseFragment {
@Override
protected void refreshData() {
-
+ heartRateText.setText(heartRate.getRate());
+ systolic.setText(heartRate.getRate1());
+ diastolic.setText(heartRate.getRate2());
+ oxy.setText(heartRate.getOxy());
+ initChart();
}
@Override
protected void initView() {
- initChart();
}
@Override
@@ -73,12 +105,35 @@ public class HeartRateFragment extends BaseFragment {
private void initChart() {
ArrayList pointValues = new ArrayList<>();
int i;
- float[] levels = {20f, 90f, 60f, 88f, 100f};
- pointValues.add(new Entry(0, 0));
+ float nowHeart = Float.valueOf(heartRateText.getText().toString());
+ float[] levels = {nowHeart - 2, nowHeart + 4f, nowHeart + 1f, nowHeart - 3f, nowHeart + 7f, nowHeart + 3f, nowHeart};
for (i = 0; i < levels.length; i++) {
- pointValues.add(new Entry(i + 1, levels[i]));
+ pointValues.add(new Entry(i, levels[i]));
}
- ChartUtils.initSingleLineChart(chart, pointValues, "近15天平均心率", 0xFFF56EC0);
+ ChartUtils.initSingleLineChart(chart, pointValues, "近7天平均心率", 0xFFF56EC0);
}
+ @Override
+ public void refreshUi(OldPeople oldPeople) {
+ super.refreshUi(oldPeople);
+ getWebUtils().getHeartRates(oldPeople.getParentId(), new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
+ LogUtils.loge(e.getMessage());
+ }
+
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ try {
+ JsonArray jsonElements = getWebUtils().getJsonArray(response);
+ Gson gson = new Gson();
+ HeartRate[] heartRates = gson.fromJson(jsonElements, HeartRate[].class);
+ heartRate = heartRates[heartRates.length - 1];
+ handler.sendEmptyMessage(1);
+ } catch (Exception e) {
+ LogUtils.loge(e.getMessage());
+ }
+ }
+ });
+ }
}
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/children/fragment/SleepFragment.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/children/fragment/SleepFragment.java
index a9aa0ec..cb02a1b 100644
--- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/children/fragment/SleepFragment.java
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/children/fragment/SleepFragment.java
@@ -1,7 +1,9 @@
package com.scorpiomiku.oldpeoplehome.modules.children.fragment;
+import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
+import android.os.Message;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
@@ -11,14 +13,28 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
+import com.google.gson.Gson;
+import com.google.gson.JsonArray;
import com.rbrooks.indefinitepagerindicator.IndefinitePagerIndicator;
import com.scorpiomiku.oldpeoplehome.R;
import com.scorpiomiku.oldpeoplehome.base.BaseFragment;
+import com.scorpiomiku.oldpeoplehome.bean.OldPeople;
+import com.scorpiomiku.oldpeoplehome.bean.SleepData;
+import com.scorpiomiku.oldpeoplehome.modules.oldpeople.fragmemt.*;
+import com.scorpiomiku.oldpeoplehome.utils.LogUtils;
+import com.scorpiomiku.oldpeoplehome.utils.TimeUtils;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
import me.itangqi.waveloadingview.WaveLoadingView;
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.Response;
/**
* Created by ScorpioMiku on 2019/8/18.
@@ -35,12 +51,27 @@ public class SleepFragment extends BaseFragment {
IndefinitePagerIndicator viewpagerPagerIndicator;
@BindView(R.id.view_pager)
ViewPager viewPager;
+ private ArrayList sleepDatas = new ArrayList<>();
+ private SleepData yesterday;
+ @SuppressLint("HandlerLeak")
@Override
protected Handler initHandle() {
- return null;
+ return new Handler() {
+ @Override
+ public void handleMessage(Message msg) {
+ super.handleMessage(msg);
+ switch (msg.what) {
+ case 1:
+ refreshData();
+ initViewPager();
+ break;
+ }
+ }
+ };
}
+
@Override
protected int getLayoutId() {
return R.layout.fragment_child_sleep;
@@ -48,13 +79,12 @@ public class SleepFragment extends BaseFragment {
@Override
protected void refreshData() {
-
+ sleepText.setText(TimeUtils.getWholeTimeString(TimeUtils.getSleepWholeTime(yesterday)));
}
@Override
protected void initView() {
-// initPie();
- initViewPager();
+
}
@@ -72,41 +102,6 @@ public class SleepFragment extends BaseFragment {
unbinder.unbind();
}
- /**
- * 绘制饼图
- */
-// private void initPie() {
-// List strings = new ArrayList<>();
-// strings.add(new PieEntry(30f, "深度睡眠"));
-// strings.add(new PieEntry(70f, "浅度睡眠"));
-//
-// PieDataSet dataSet = new PieDataSet(strings, "");
-//
-// ArrayList colors = new ArrayList();
-// colors.add(getResources().getColor(R.color.sleep_deep));
-// colors.add(getResources().getColor(R.color.sleep_shallow));
-// dataSet.setColors(colors);
-// dataSet.setValueTextSize(16f);
-// PieData pieData = new PieData(dataSet);
-// pieData.setDrawValues(true);
-// pieData.setValueFormatter(new PercentFormatter());
-// pieData.setValueTextSize(16f);
-// pieData.setValueTextColor(getResources().getColor(R.color.place_holder));
-//
-//
-// sleepPie.setData(pieData);
-// sleepPie.invalidate();
-//
-// Description description = new Description();
-// description.setText("");
-// sleepPie.setDescription(description);
-// sleepPie.setHoleRadius(0f);
-// sleepPie.setTransparentCircleRadius(0f);
-// Legend legend = sleepPie.getLegend();
-// legend.setEnabled(false);
-//
-// }
-
/**
* 初始化Viewpager
@@ -116,14 +111,45 @@ public class SleepFragment extends BaseFragment {
viewPager.setAdapter(new FragmentPagerAdapter(fragmentManager) {
@Override
public Fragment getItem(int i) {
- return new SleepViewPagerItem();
+ return com.scorpiomiku.oldpeoplehome.modules.oldpeople.fragmemt.SleepViewPagerItem.instance(sleepDatas.get(i));
}
@Override
public int getCount() {
- return 10;
+ return sleepDatas.size();
}
});
viewpagerPagerIndicator.attachToViewPager(viewPager);
}
+
+ @Override
+ public void refreshUi(OldPeople oldPeople) {
+ super.refreshUi(oldPeople);
+
+ getWebUtils().getSleepData(oldPeople.getParentId(), new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
+ LogUtils.loge(e.getMessage());
+ }
+
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ try {
+ JsonArray jsonElements = getWebUtils().getJsonArray(response);
+ Gson gson = new Gson();
+ SleepData[] sleeps = gson.fromJson(jsonElements, SleepData[].class);
+ Arrays.sort(sleeps);
+ for (int i = 0; i < sleeps.length; i++) {
+ LogUtils.loge(sleeps[i].toString());
+ }
+ yesterday = sleeps[sleeps.length - 1];
+ sleepDatas.clear();
+ sleepDatas.addAll(Arrays.asList(sleeps));
+ handler.sendEmptyMessage(1);
+ } catch (Exception e) {
+ LogUtils.loge(e.getMessage());
+ }
+ }
+ });
+ }
}
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/loginregister/LoginActivity.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/loginregister/LoginActivity.java
index 78c9c00..32622e2 100644
--- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/loginregister/LoginActivity.java
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/loginregister/LoginActivity.java
@@ -1,18 +1,16 @@
package com.scorpiomiku.oldpeoplehome.modules.loginregister;
-import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Intent;
-import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.content.ContextCompat;
import android.view.View;
import android.widget.Button;
+import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.LinearLayout;
+import android.widget.RadioButton;
import android.widget.TextView;
import com.google.gson.Gson;
@@ -20,11 +18,10 @@ import com.google.gson.JsonObject;
import com.scorpiomiku.oldpeoplehome.R;
import com.scorpiomiku.oldpeoplehome.base.BaseActivity;
import com.scorpiomiku.oldpeoplehome.bean.Child;
+import com.scorpiomiku.oldpeoplehome.bean.OldPeople;
import com.scorpiomiku.oldpeoplehome.modules.children.activity.ChildMainActivity;
import com.scorpiomiku.oldpeoplehome.modules.oldpeople.activity.OldPeopleMainActivity;
import com.scorpiomiku.oldpeoplehome.utils.LogUtils;
-import com.scorpiomiku.oldpeoplehome.utils.TimeUtils;
-import com.scorpiomiku.oldpeoplehome.utils.WebUtils;
import java.io.IOException;
@@ -48,6 +45,10 @@ public class LoginActivity extends BaseActivity {
LinearLayout linearLayoutBtnRegister;
@BindView(R.id.login_find_pwd)
TextView loginFindPwd;
+ @BindView(R.id.is_older)
+ RadioButton isOlder;
+
+ private Boolean isOlderLogin = false;
@SuppressLint("HandlerLeak")
@Override
@@ -66,6 +67,11 @@ public class LoginActivity extends BaseActivity {
case 2:
LogUtils.shortToast("密码错误");
break;
+ case 3:
+ Intent intent1 = new Intent(LoginActivity.this, OldPeopleMainActivity.class);
+ intent1.putExtra("user", getOldPeopleUser());
+ startActivity(intent1);
+ break;
}
}
};
@@ -74,7 +80,12 @@ public class LoginActivity extends BaseActivity {
@Override
public void iniview() {
checkPermission();
-
+ isOlder.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
+ isOlderLogin = b;
+ }
+ });
}
@Override
@@ -116,27 +127,51 @@ public class LoginActivity extends BaseActivity {
data.clear();
data.put("account", account);
data.put("password", password);
- getWebUtils().loginChild(data, new Callback() {
- @Override
- public void onFailure(Call call, IOException e) {
- LogUtils.loge(e.getMessage());
- }
-
- @Override
- public void onResponse(Call call, Response response) throws IOException {
- try {
- JsonObject jsonObject = getWebUtils().getJsonObj(response);
- Gson gson = new Gson();
- Child child = gson.fromJson(jsonObject, Child.class);
- setUser(child);
- handler.sendEmptyMessage(1);
- } catch (Exception e) {
+ if (!isOlderLogin) {
+ getWebUtils().loginChild(data, new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
LogUtils.loge(e.getMessage());
- handler.sendEmptyMessage(2);
}
- }
- });
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ try {
+ JsonObject jsonObject = getWebUtils().getJsonObj(response);
+ Gson gson = new Gson();
+ Child child = gson.fromJson(jsonObject, Child.class);
+ setUser(child);
+ handler.sendEmptyMessage(1);
+ } catch (Exception e) {
+ LogUtils.loge(e.getMessage());
+ handler.sendEmptyMessage(2);
+ }
+
+ }
+ });
+ } else {
+ getWebUtils().loginParent(data, new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
+ LogUtils.loge(e.getMessage());
+ }
+
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ try {
+ JsonObject jsonObject = getWebUtils().getJsonObj(response);
+ Gson gson = new Gson();
+ OldPeople oldPeople = gson.fromJson(jsonObject, OldPeople.class);
+ setUser(oldPeople);
+ handler.sendEmptyMessage(3);
+ } catch (Exception e) {
+ LogUtils.loge(e.getMessage());
+ handler.sendEmptyMessage(2);
+ }
+
+ }
+ });
+ }
}
}
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/activity/OldPeopleMainActivity.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/activity/OldPeopleMainActivity.java
index 4abef78..64b31c6 100644
--- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/activity/OldPeopleMainActivity.java
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/activity/OldPeopleMainActivity.java
@@ -19,10 +19,16 @@ import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
+import com.baidu.location.BDAbstractLocationListener;
+import com.baidu.location.BDLocation;
+import com.baidu.location.LocationClient;
+import com.baidu.location.LocationClientOption;
+import com.scorpiomiku.oldpeoplehome.OldPeopleHome;
import com.scorpiomiku.oldpeoplehome.R;
import com.scorpiomiku.oldpeoplehome.base.BaseActivity;
import com.scorpiomiku.oldpeoplehome.base.BaseFragment;
import com.scorpiomiku.oldpeoplehome.bean.BleDeviceItem;
+import com.scorpiomiku.oldpeoplehome.bean.OldPeople;
import com.scorpiomiku.oldpeoplehome.bean.SportData;
import com.scorpiomiku.oldpeoplehome.modules.oldpeople.fragmemt.EnvironmentFragment;
import com.scorpiomiku.oldpeoplehome.modules.oldpeople.fragmemt.HeartRateFragment;
@@ -61,6 +67,7 @@ public class OldPeopleMainActivity extends BaseActivity {
FloatingActionButton floatingButton;
@BindView(R.id.close_button)
FloatingActionButton closeButton;
+ private LocationClient mLocationClient = null;
private String step;
private String cal;
@@ -107,6 +114,9 @@ public class OldPeopleMainActivity extends BaseActivity {
case 2:
((HeartRateFragment) fragments[2]).changeText(curHeartRate, bloodPressureShrink, bloodPressureDiastole, oxygen);
break;
+ case 3:
+ //定位
+ break;
}
}
};
@@ -115,6 +125,7 @@ public class OldPeopleMainActivity extends BaseActivity {
@Override
public void iniview() {
+ setUser((OldPeople) getIntent().getSerializableExtra("user"));
fragmentManager = getSupportFragmentManager();
mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() {
@@ -143,6 +154,11 @@ public class OldPeopleMainActivity extends BaseActivity {
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
initFragmentManager();
initBlueSDK();
+ setUser((OldPeople) getIntent().getSerializableExtra("user"));
+ for (int i = 0; i < fragments.length; i++) {
+ fragments[i].refreshUi((OldPeople) getIntent().getSerializableExtra("user"));
+ }
+ startLocation();
}
@Override
@@ -700,4 +716,35 @@ public class OldPeopleMainActivity extends BaseActivity {
break;
}
}
+
+ private void startLocation() {
+ mLocationClient = new LocationClient(getApplicationContext());
+ mLocationClient.registerLocationListener(new BDAbstractLocationListener() {
+ @Override
+ public void onReceiveLocation(BDLocation bdLocation) {
+ double latitude = bdLocation.getLatitude(); //获取纬度信息
+ double longitude = bdLocation.getLongitude(); //获取经度信息
+ float radius = bdLocation.getRadius(); //获取定位精度,默认值为0.0f
+ //获取经纬度坐标类型,以LocationClientOption中设置过的坐标类型为准
+ String coorType = bdLocation.getCoorType();
+ //获取定位类型、定位错误返回码,具体信息可参照类参考中BDLocation类中的说明
+ int errorCode = bdLocation.getLocType();
+ LogUtils.logd(latitude + ";" + longitude + ";" + radius + ";" + coorType + ";" + errorCode);
+ handler.sendEmptyMessage(3);
+ }
+ });
+ LocationClientOption option = new LocationClientOption();
+ option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
+ option.setCoorType("bd0911");
+ option.setScanSpan(10000);
+ option.setOpenGps(true);
+ option.setLocationNotify(true);
+ option.setIgnoreKillProcess(false);
+ option.SetIgnoreCacheException(false);
+ option.setWifiCacheTimeOut(5 * 60 * 1000);
+ mLocationClient.setLocOption(option);
+ mLocationClient.start();
+ }
+
+
}
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/EnvironmentFragment.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/EnvironmentFragment.java
index ec09e18..33dfffa 100644
--- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/EnvironmentFragment.java
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/EnvironmentFragment.java
@@ -148,12 +148,16 @@ public class EnvironmentFragment extends BaseFragment {
@Override
public void onResponse(Call call, Response response) throws IOException {
- JsonObject jsonObject = getWebUtils().getJsonObj(response);
- jsonObject = getWebUtils().getJsonObj(jsonObject.get("result").toString());
+ try {
+ JsonObject jsonObject = getWebUtils().getJsonObj(response);
+ jsonObject = getWebUtils().getJsonObj(jsonObject.get("result").toString());
// LogUtils.loge(jsonObject.toString());
- temperature = jsonObject.get("temperature").toString();
- humidity = String.valueOf(Float.valueOf(jsonObject.get("humidity") + "") * 100).substring(0, 4);
- handler.sendEmptyMessage(1);
+ temperature = jsonObject.get("temperature").toString();
+ humidity = String.valueOf(Float.valueOf(jsonObject.get("humidity") + "") * 100).substring(0, 4);
+ handler.sendEmptyMessage(1);
+ } catch (Exception e) {
+ LogUtils.loge(e.getMessage());
+ }
}
});
}
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/HeartRateFragment.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/HeartRateFragment.java
index 717673b..628f4e7 100644
--- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/HeartRateFragment.java
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/HeartRateFragment.java
@@ -12,8 +12,11 @@ import android.widget.TextView;
import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.data.Entry;
+import com.google.gson.Gson;
+import com.google.gson.JsonArray;
import com.scorpiomiku.oldpeoplehome.R;
import com.scorpiomiku.oldpeoplehome.base.BaseFragment;
+import com.scorpiomiku.oldpeoplehome.bean.HeartRate;
import com.scorpiomiku.oldpeoplehome.modules.oldpeople.activity.OldPeopleMainActivity;
import com.scorpiomiku.oldpeoplehome.utils.ChartUtils;
import com.scorpiomiku.oldpeoplehome.utils.LogUtils;
@@ -57,15 +60,17 @@ public class HeartRateFragment extends BaseFragment {
TextView titleTimeText;
private Boolean loading = false;
private float heartRate;
+ private boolean firstInit = true;
+ private float firstHeart;
@SuppressLint("HandlerLeak")
@Override
protected Handler initHandle() {
- return new Handler(){
+ return new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
- switch (msg.what){
+ switch (msg.what) {
case 1:
getWebUtils().upHeartRates(data, new okhttp3.Callback() {
@Override
@@ -79,6 +84,10 @@ public class HeartRateFragment extends BaseFragment {
}
});
break;
+ case 2:
+ //获取数据
+ initChart();
+ break;
}
}
};
@@ -96,8 +105,23 @@ public class HeartRateFragment extends BaseFragment {
@Override
protected void initView() {
-// initChart();
titleTimeText.setText(TimeUtils.getUpDate());
+ getWebUtils().getHeartRates(((OldPeopleMainActivity) getActivity()).getOldPeopleUser().getParentId(), new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
+ LogUtils.loge(e.getMessage());
+ }
+
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ JsonArray jsonElements = getWebUtils().getJsonArray(response);
+ LogUtils.loge(jsonElements.toString());
+ Gson gson = new Gson();
+ HeartRate[] heartRates = gson.fromJson(jsonElements, HeartRate[].class);
+ firstHeart = Float.valueOf(heartRates[heartRates.length - 1].getRate());
+ handler.sendEmptyMessage(2);
+ }
+ });
}
@Override
@@ -118,14 +142,25 @@ public class HeartRateFragment extends BaseFragment {
* 初始化折线图
*/
private void initChart() {
- ArrayList pointValues = new ArrayList<>();
- int i;
- float nowHeart = Float.valueOf(heartRateText.getText().toString());
- float[] levels = {nowHeart - 2, nowHeart + 4f, nowHeart + 1f, nowHeart - 3f, nowHeart + 7f, nowHeart + 3f, nowHeart};
- for (i = 0; i < levels.length; i++) {
- pointValues.add(new Entry(i, levels[i]));
+ if (firstInit) {
+ ArrayList pointValues = new ArrayList<>();
+ int i;
+ float[] levels = {firstHeart - 2, firstHeart + 4f, firstHeart + 1f, firstHeart - 3f, firstHeart + 7f, firstHeart + 3f, firstHeart};
+ for (i = 0; i < levels.length; i++) {
+ pointValues.add(new Entry(i, levels[i]));
+ }
+ ChartUtils.initSingleLineChart(chart, pointValues, "近7天平均心率", 0xFFF56EC0);
+ firstInit = !firstInit;
+ } else {
+ ArrayList pointValues = new ArrayList<>();
+ int i;
+ float nowHeart = Float.valueOf(heartRateText.getText().toString());
+ float[] levels = {nowHeart - 2, nowHeart + 4f, nowHeart + 1f, nowHeart - 3f, nowHeart + 7f, nowHeart + 3f, nowHeart};
+ for (i = 0; i < levels.length; i++) {
+ pointValues.add(new Entry(i, levels[i]));
+ }
+ ChartUtils.initSingleLineChart(chart, pointValues, "近7天平均心率", 0xFFF56EC0);
}
- ChartUtils.initSingleLineChart(chart, pointValues, "近7天平均心率", 0xFFF56EC0);
}
@Override
@@ -149,17 +184,16 @@ public class HeartRateFragment extends BaseFragment {
public void changeText(String heart, String systolic, String diastolic, String oxy) {
if (systolic.equals(this.systolic.getText().toString())) {
if (!loading) {
-// progressBar.setVisibility(View.VISIBLE);
}
} else {
loading = false;
progressBar.setVisibility(View.GONE);
-// begin.setText("开启");
data.clear();
- data.put("parentId", "1");
+ data.put("parentId", ((OldPeopleMainActivity) getActivity()).getOldPeopleUser().getParentId());
data.put("time", TimeUtils.getTime());
data.put("rate1", systolic);
data.put("rate2", diastolic);
+ data.put("rate", heart);
data.put("oxy", oxy);
initChart();
handler.sendEmptyMessage(1);
@@ -168,6 +202,5 @@ public class HeartRateFragment extends BaseFragment {
this.diastolic.setText(diastolic);
this.systolic.setText(systolic);
this.oxy.setText(oxy);
-
}
}
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/SleepFragment.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/SleepFragment.java
index 2ceaf20..f050d2f 100644
--- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/SleepFragment.java
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/SleepFragment.java
@@ -1,7 +1,9 @@
package com.scorpiomiku.oldpeoplehome.modules.oldpeople.fragmemt;
+import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
+import android.os.Message;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
@@ -11,18 +13,27 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
+import com.google.gson.Gson;
+import com.google.gson.JsonArray;
import com.rbrooks.indefinitepagerindicator.IndefinitePagerIndicator;
import com.scorpiomiku.oldpeoplehome.R;
import com.scorpiomiku.oldpeoplehome.base.BaseFragment;
+import com.scorpiomiku.oldpeoplehome.bean.OldPeople;
import com.scorpiomiku.oldpeoplehome.bean.SleepData;
+import com.scorpiomiku.oldpeoplehome.utils.LogUtils;
import com.scorpiomiku.oldpeoplehome.utils.TimeUtils;
+import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
import me.itangqi.waveloadingview.WaveLoadingView;
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.Response;
/**
* Created by ScorpioMiku on 2019/8/18.
@@ -40,11 +51,24 @@ public class SleepFragment extends BaseFragment {
ViewPager viewPager;
@BindView(R.id.title_time_text)
TextView titleTimeText;
- private ArrayList data = new ArrayList<>();
+ private ArrayList sleepDatas = new ArrayList<>();
+ private SleepData yesterday;
+ @SuppressLint("HandlerLeak")
@Override
protected Handler initHandle() {
- return null;
+ return new Handler() {
+ @Override
+ public void handleMessage(Message msg) {
+ super.handleMessage(msg);
+ switch (msg.what) {
+ case 1:
+ refreshData();
+ initViewPager();
+ break;
+ }
+ }
+ };
}
@Override
@@ -54,12 +78,11 @@ public class SleepFragment extends BaseFragment {
@Override
protected void refreshData() {
-
+ sleepText.setText(TimeUtils.getWholeTimeString(TimeUtils.getSleepWholeTime(yesterday)));
}
@Override
protected void initView() {
- initViewPager();
titleTimeText.setText(TimeUtils.getUpDate());
}
@@ -78,41 +101,6 @@ public class SleepFragment extends BaseFragment {
unbinder.unbind();
}
- /**
- * 绘制饼图
- */
-// private void initPie() {
-// List strings = new ArrayList<>();
-// strings.add(new PieEntry(30f, "深度睡眠"));
-// strings.add(new PieEntry(70f, "浅度睡眠"));
-//
-// PieDataSet dataSet = new PieDataSet(strings, "");
-//
-// ArrayList colors = new ArrayList();
-// colors.add(getResources().getColor(R.color.sleep_deep));
-// colors.add(getResources().getColor(R.color.sleep_shallow));
-// dataSet.setColors(colors);
-// dataSet.setValueTextSize(16f);
-// PieData pieData = new PieData(dataSet);
-// pieData.setDrawValues(true);
-// pieData.setValueFormatter(new PercentFormatter());
-// pieData.setValueTextSize(16f);
-// pieData.setValueTextColor(getResources().getColor(R.color.place_holder));
-//
-//
-// sleepPie.setData(pieData);
-// sleepPie.invalidate();
-//
-// Description description = new Description();
-// description.setText("");
-// sleepPie.setDescription(description);
-// sleepPie.setHoleRadius(0f);
-// sleepPie.setTransparentCircleRadius(0f);
-// Legend legend = sleepPie.getLegend();
-// legend.setEnabled(false);
-//
-// }
-
/**
* 初始化Viewpager
@@ -122,14 +110,45 @@ public class SleepFragment extends BaseFragment {
viewPager.setAdapter(new FragmentPagerAdapter(fragmentManager) {
@Override
public Fragment getItem(int i) {
- return SleepViewPagerItem.instance(data.get(i));
+ return SleepViewPagerItem.instance(sleepDatas.get(i));
}
@Override
public int getCount() {
- return data.size();
+ return sleepDatas.size();
}
});
viewpagerPagerIndicator.attachToViewPager(viewPager);
}
+
+ @Override
+ public void refreshUi(OldPeople oldPeople) {
+ super.refreshUi(oldPeople);
+
+ getWebUtils().getSleepData(oldPeople.getParentId(), new Callback() {
+ @Override
+ public void onFailure(Call call, IOException e) {
+ LogUtils.loge(e.getMessage());
+ }
+
+ @Override
+ public void onResponse(Call call, Response response) throws IOException {
+ try {
+ JsonArray jsonElements = getWebUtils().getJsonArray(response);
+ Gson gson = new Gson();
+ SleepData[] sleeps = gson.fromJson(jsonElements, SleepData[].class);
+ Arrays.sort(sleeps);
+ for (int i = 0; i < sleeps.length; i++) {
+ LogUtils.loge(sleeps[i].toString());
+ }
+ yesterday = sleeps[sleeps.length - 1];
+ sleepDatas.clear();
+ sleepDatas.addAll(Arrays.asList(sleeps));
+ handler.sendEmptyMessage(1);
+ } catch (Exception e) {
+ LogUtils.loge(e.getMessage());
+ }
+ }
+ });
+ }
}
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/SleepViewPagerItem.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/SleepViewPagerItem.java
index 1ea096a..7553a83 100644
--- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/SleepViewPagerItem.java
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/SleepViewPagerItem.java
@@ -19,6 +19,7 @@ import com.scorpiomiku.oldpeoplehome.base.BaseFragment;
import com.scorpiomiku.oldpeoplehome.bean.SleepData;
import com.scorpiomiku.oldpeoplehome.utils.TimeUtils;
+import java.sql.Time;
import java.util.ArrayList;
import java.util.List;
@@ -34,15 +35,30 @@ public class SleepViewPagerItem extends BaseFragment {
@BindView(R.id.pie_chart)
PieChart sleepPie;
Unbinder unbinder;
+ @BindView(R.id.time_text)
+ TextView timeText;
+ @BindView(R.id.deep_text_view)
+ TextView deepTextView;
+ @BindView(R.id.light_text_view)
+ TextView lightTextView;
+ @BindView(R.id.awake_text_view)
+ TextView awakeTextView;
private SleepData sleepData;
+ private float deepPercent;
+ private float lightPercent;
+ private float awakePercent;
public static SleepViewPagerItem instance(SleepData sleepData) {
SleepViewPagerItem sleepViewPagerItem = new SleepViewPagerItem();
- sleepViewPagerItem.sleepData = sleepData;
+ sleepViewPagerItem.setSleepData(sleepData);
return sleepViewPagerItem;
}
+ public void setSleepData(SleepData sleepData) {
+ this.sleepData = sleepData;
+ }
+
@Override
protected Handler initHandle() {
return null;
@@ -60,6 +76,14 @@ public class SleepViewPagerItem extends BaseFragment {
@Override
protected void initView() {
+ deepTextView.setText(sleepData.getDeepTime());
+ lightTextView.setText(sleepData.getLightTime());
+ awakeTextView.setText(sleepData.getAwakeTime());
+ timeText.setText(sleepData.getDate());
+ int wholeTime = TimeUtils.getSleepWholeTime(sleepData);
+ deepPercent = ((float) TimeUtils.timeString2Second(sleepData.getDeepTime())) / wholeTime * 100f;
+ lightPercent = ((float) TimeUtils.timeString2Second(sleepData.getLightTime())) / wholeTime * 100f;
+ awakePercent = ((float) TimeUtils.timeString2Second(sleepData.getAwakeTime())) / wholeTime * 100f;
initPie();
}
@@ -82,14 +106,16 @@ public class SleepViewPagerItem extends BaseFragment {
*/
private void initPie() {
List strings = new ArrayList<>();
- strings.add(new PieEntry(30f, "深度睡眠"));
- strings.add(new PieEntry(70f, "浅度睡眠"));
+ strings.add(new PieEntry(deepPercent, "深度睡眠"));
+ strings.add(new PieEntry(lightPercent, "浅度睡眠"));
+ strings.add(new PieEntry(awakePercent, "清醒时间"));
PieDataSet dataSet = new PieDataSet(strings, "");
ArrayList colors = new ArrayList();
colors.add(getResources().getColor(R.color.sleep_deep));
colors.add(getResources().getColor(R.color.sleep_shallow));
+ colors.add(getResources().getColor(R.color.sleep_no));
dataSet.setColors(colors);
dataSet.setValueTextSize(12f);
PieData pieData = new PieData(dataSet);
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/StepFragment.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/StepFragment.java
index f0091df..a77d3b3 100644
--- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/StepFragment.java
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/modules/oldpeople/fragmemt/StepFragment.java
@@ -11,6 +11,7 @@ import android.widget.TextView;
import com.scorpiomiku.oldpeoplehome.R;
import com.scorpiomiku.oldpeoplehome.base.BaseFragment;
+import com.scorpiomiku.oldpeoplehome.modules.oldpeople.activity.OldPeopleMainActivity;
import com.scorpiomiku.oldpeoplehome.utils.LogUtils;
import com.scorpiomiku.oldpeoplehome.utils.TimeUtils;
@@ -97,7 +98,7 @@ public class StepFragment extends BaseFragment {
@Override
protected void initView() {
-
+ titleTimeText.setText(TimeUtils.getUpDate());
}
@@ -106,7 +107,6 @@ public class StepFragment extends BaseFragment {
// TODO: inflate a fragment view
View rootView = super.onCreateView(inflater, container, savedInstanceState);
unbinder = ButterKnife.bind(this, rootView);
- titleTimeText.setText(TimeUtils.getUpDate());
return rootView;
}
@@ -134,7 +134,7 @@ public class StepFragment extends BaseFragment {
distanceText.setText(distance);
timeText.setText(sportTime);
data.clear();
- data.put("parent", "1");
+ data.put("parent", ((OldPeopleMainActivity) getActivity()).getOldPeopleUser().getParentId());
data.put("date", TimeUtils.getUpDate());
data.put("count", step);
data.put("distance", distance);
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/utils/TimeUtils.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/utils/TimeUtils.java
index 9281259..4e824de 100644
--- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/utils/TimeUtils.java
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/utils/TimeUtils.java
@@ -2,6 +2,8 @@ package com.scorpiomiku.oldpeoplehome.utils;
import android.annotation.SuppressLint;
+import com.scorpiomiku.oldpeoplehome.bean.SleepData;
+
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
@@ -84,4 +86,84 @@ public class TimeUtils {
int day = calendars.get(Calendar.DATE);
return day;
}
+
+
+ /**
+ * 获取睡觉总时间
+ *
+ * @param sleepData
+ * @return
+ */
+ public static int getSleepWholeTime(SleepData sleepData) {
+ int whole = 0;
+ whole += timeString2Second(sleepData.getAwakeTime());
+ whole += timeString2Second(sleepData.getDeepTime());
+ whole += timeString2Second(sleepData.getLightTime());
+ LogUtils.loge(whole + "");
+ return whole;
+ }
+
+ public static int timeString2Second(String time) {
+ String[] times = time.split(":");
+ int whole = 0;
+ whole += Integer.valueOf(times[0]) * 60 * 60;
+ LogUtils.logd(whole + "");
+ whole += Integer.valueOf(times[1]) * 60;
+ LogUtils.logd(whole + "");
+ whole += Integer.valueOf(times[2]);
+ return whole;
+ }
+
+ public static String getWholeTimeString(int wholeTime) {
+ int hour, minute, second;
+ String time = "";
+ hour = wholeTime / 3600;
+ minute = (wholeTime - hour * 3600) / 60;
+ second = wholeTime - hour * 3600 - minute * 60;
+ if (hour < 10) {
+ time += "0";
+ time += hour;
+ } else {
+ time += hour;
+ }
+ time += ":";
+ if (minute < 10) {
+ time += "0";
+ time += minute;
+ } else {
+ time += minute;
+ }
+ time += ":";
+ if (second < 10) {
+ time += "0";
+ time += second;
+ } else {
+ time += second;
+ }
+ return time;
+ }
+
+ /**
+ * 比较大小
+ *
+ * @param sleepData1
+ * @param sleepData2
+ * @return 1>2 ? 1 : 0
+ */
+ public static int compareTime(String sleepData1, String sleepData2) {
+ String[] times1 = sleepData1.split("-");
+ String[] times2 = sleepData2.split("-");
+ if (Integer.valueOf(times1[1]) > Integer.valueOf(times2[1])) {
+ return -1;
+ } else if (Integer.valueOf(times1[1]) == Integer.valueOf(times2[1])) {
+ if (Integer.valueOf(times1[2]) > Integer.valueOf(times2[2])) {
+ return -1;
+ } else {
+ return 1;
+ }
+ } else {
+ return 1;
+ }
+ }
+
}
diff --git a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/utils/WebUtils.java b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/utils/WebUtils.java
index 4f66f50..20238a9 100644
--- a/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/utils/WebUtils.java
+++ b/android/OldPeopleHome/app/src/main/java/com/scorpiomiku/oldpeoplehome/utils/WebUtils.java
@@ -118,6 +118,19 @@ public class WebUtils {
call.enqueue(callback);
}
+ /**
+ * 获取心率
+ *
+ * @param parentId
+ * @param callback
+ */
+ public void getHeartRates(String parentId, Callback callback) {
+ Request request = new Request.Builder()
+ .url(webHost + "/heartrate/get/" + parentId).build();
+ Call call = mClient.newCall(request);
+ call.enqueue(callback);
+ }
+
/**
* 获取房间数据
*
@@ -184,6 +197,19 @@ public class WebUtils {
call.enqueue(callback);
}
+ /**
+ * 老人登录
+ *
+ * @param hashMap
+ * @param callback
+ */
+ public void loginParent(HashMap hashMap, Callback callback) {
+ Request request = new Request.Builder().post(getRequestBody(hashMap))
+ .url(webHost + "/parent/login/").build();
+ Call call = mClient.newCall(request);
+ call.enqueue(callback);
+ }
+
/**
* 孩子绑定老人
*
@@ -210,4 +236,17 @@ public class WebUtils {
Call call = mClient.newCall(request);
call.enqueue(callback);
}
+
+ /**
+ * 获取睡眠数据
+ *
+ * @param parentId
+ * @param callback
+ */
+ public void getSleepData(String parentId, Callback callback) {
+ Request request = new Request.Builder()
+ .url(webHost + "/sleep/get/" + parentId).build();
+ Call call = mClient.newCall(request);
+ call.enqueue(callback);
+ }
}
diff --git a/android/OldPeopleHome/app/src/main/res/layout/activity_login.xml b/android/OldPeopleHome/app/src/main/res/layout/activity_login.xml
index d6cd420..a4d0c8d 100644
--- a/android/OldPeopleHome/app/src/main/res/layout/activity_login.xml
+++ b/android/OldPeopleHome/app/src/main/res/layout/activity_login.xml
@@ -1,11 +1,9 @@
+ android:orientation="vertical">
@@ -121,12 +119,20 @@
+
+
@@ -98,13 +98,13 @@
+ android:src="@drawable/ic_bloodpressure" />
@@ -116,6 +116,7 @@
android:orientation="horizontal">
@@ -145,13 +146,13 @@
+ android:src="@drawable/ic_bloodpressure" />
@@ -163,6 +164,7 @@
android:orientation="horizontal">
@@ -192,13 +194,13 @@
+ android:src="@drawable/ic_oxy" />
@@ -210,6 +212,7 @@
android:orientation="horizontal">
diff --git a/android/OldPeopleHome/app/src/main/res/layout/fragment_sleep_item.xml b/android/OldPeopleHome/app/src/main/res/layout/fragment_sleep_item.xml
index 2d5f62e..317e3d8 100644
--- a/android/OldPeopleHome/app/src/main/res/layout/fragment_sleep_item.xml
+++ b/android/OldPeopleHome/app/src/main/res/layout/fragment_sleep_item.xml
@@ -69,6 +69,7 @@
@color/colorAccent
-
-