This commit is contained in:
LitterDryFish
2019-09-07 10:45:44 +08:00
98 changed files with 3959 additions and 1935 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -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();
}
}

View File

@@ -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) {

View File

@@ -27,15 +27,7 @@ public abstract class BaseFragment extends Fragment {
protected Handler handler;
protected HashMap<String, String> 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;
}

View File

@@ -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;
}
}

View File

@@ -0,0 +1,58 @@
package com.scorpiomiku.oldpeoplehome.bean;
import android.support.annotation.NonNull;
/**
* Created by ScorpioMiku on 2019/9/6.
*/
public class Location {
private String parent;
private String longitude;
private String latitude;
private String time;
@Override
public String toString() {
return "Location{" +
"parent='" + parent + '\'' +
", longitude='" + longitude + '\'' +
", latitude='" + latitude + '\'' +
", time='" + time + '\'' +
'}';
}
public String getParent() {
return parent;
}
public void setParent(String parent) {
this.parent = parent;
}
public String getLongitude() {
return longitude;
}
public void setLongitude(String longitude) {
this.longitude = longitude;
}
public String getLatitude() {
return latitude;
}
public void setLatitude(String latitude) {
this.latitude = latitude;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
}

View File

@@ -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;

View File

@@ -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;
}
}

View File

@@ -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<SleepData> {
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 + '\'' +
'}';
}
}

View File

@@ -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;

View File

@@ -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());
}
}
});
}
}

View File

@@ -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<Entry> 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());
}
}
});
}
}

View File

@@ -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;
@@ -16,15 +18,26 @@ import com.baidu.mapapi.map.Overlay;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.map.PolylineOptions;
import com.baidu.mapapi.model.LatLng;
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.Location;
import com.scorpiomiku.oldpeoplehome.modules.oldpeople.activity.OldPeopleMainActivity;
import com.scorpiomiku.oldpeoplehome.utils.LogUtils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;
/**
* Created by ScorpioMiku on 2019/8/21.
@@ -36,9 +49,22 @@ public class MapFragment extends BaseFragment {
Unbinder unbinder;
LatLng GEO_ZHONGBEI = new LatLng(38.019467, 112.455778);
private ArrayList<Location> locations = new ArrayList<>();
@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:
drawLine();
break;
}
}
};
}
@Override
@@ -48,7 +74,26 @@ public class MapFragment extends BaseFragment {
@Override
protected void refreshData() {
getWebUtils().getLocation(((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 {
try {
JsonArray jsonElements = getWebUtils().getJsonArray(response);
Gson gson = new Gson();
Location[] locas = gson.fromJson(jsonElements, Location[].class);
locations.clear();
locations.addAll(Arrays.asList(locas));
handler.sendEmptyMessage(1);
} catch (Exception e) {
LogUtils.loge(e.getMessage());
}
}
});
}
@Override
@@ -60,7 +105,6 @@ public class MapFragment extends BaseFragment {
MapStatus.Builder builder = new MapStatus.Builder();
builder.zoom(16.5f);
map.getMap().setMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
drawLine();
}
@Override
@@ -104,13 +148,13 @@ public class MapFragment extends BaseFragment {
* 轨迹
*/
private void drawLine() {
LatLng p1 = new LatLng(38.019467, 112.455778);
LatLng p2 = new LatLng(38.019467, 112.465778);
LatLng p3 = new LatLng(38.019467, 112.455978);
List<LatLng> points = new ArrayList<LatLng>();
points.add(p1);
points.add(p2);
points.add(p3);
for (int i = 0; i < locations.size(); i++) {
points.add(new LatLng(
Double.valueOf(locations.get(i).getLatitude()),
Double.valueOf(locations.get(i).getLongitude())
));
}
//设置折线的属性
OverlayOptions mOverlayOptions = new PolylineOptions()
.width(10)

View File

@@ -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<SleepData> 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<PieEntry> strings = new ArrayList<>();
// strings.add(new PieEntry(30f, "深度睡眠"));
// strings.add(new PieEntry(70f, "浅度睡眠"));
//
// PieDataSet dataSet = new PieDataSet(strings, "");
//
// ArrayList<Integer> colors = new ArrayList<Integer>();
// 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());
}
}
});
}
}

View File

@@ -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);
}
}
});
}
}
}

View File

@@ -19,10 +19,17 @@ 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.Location;
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;
@@ -37,16 +44,21 @@ import com.scorpiomiku.oldpeoplehome.utils.TimeUtils;
import com.sxr.sdk.ble.keepfit.aidl.IRemoteService;
import com.sxr.sdk.ble.keepfit.aidl.IServiceCallback;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Locale;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;
/**
* Created by ScorpioMiku on 2019/8/18.
@@ -61,6 +73,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;
@@ -73,6 +86,8 @@ public class OldPeopleMainActivity extends BaseActivity {
private String bloodPressureDiastole = "0";
private String oxygen;
private Location location;
private Boolean mIsBound = false;
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener;
@@ -107,6 +122,25 @@ public class OldPeopleMainActivity extends BaseActivity {
case 2:
((HeartRateFragment) fragments[2]).changeText(curHeartRate, bloodPressureShrink, bloodPressureDiastole, oxygen);
break;
case 3:
//定位
data.clear();
data.put("parent", location.getParent());
data.put("longitude", location.getLongitude());
data.put("latitude", location.getLatitude());
data.put("time", location.getTime());
getWebUtils().upLocation(data, new okhttp3.Callback() {
@Override
public void onFailure(Call call, IOException e) {
LogUtils.loge(e.getMessage());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
LogUtils.logd("上传位置成功");
}
});
break;
}
}
};
@@ -115,6 +149,7 @@ public class OldPeopleMainActivity extends BaseActivity {
@Override
public void iniview() {
setUser((OldPeople) getIntent().getSerializableExtra("user"));
fragmentManager = getSupportFragmentManager();
mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() {
@@ -143,6 +178,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 +740,40 @@ 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);
location = new Location();
location.setLatitude(latitude + "");
location.setLongitude(longitude + "");
location.setParent(getOldPeopleUser().getParentId());
location.setTime(TimeUtils.getTime());
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();
}
}

View File

@@ -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());
}
}
});
}

View File

@@ -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<Entry> 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<Entry> 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<Entry> 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);
}
}

View File

@@ -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<SleepData> data = new ArrayList<>();
private ArrayList<SleepData> 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<PieEntry> strings = new ArrayList<>();
// strings.add(new PieEntry(30f, "深度睡眠"));
// strings.add(new PieEntry(70f, "浅度睡眠"));
//
// PieDataSet dataSet = new PieDataSet(strings, "");
//
// ArrayList<Integer> colors = new ArrayList<Integer>();
// 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());
}
}
});
}
}

View File

@@ -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<PieEntry> 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<Integer> colors = new ArrayList<Integer>();
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);

View File

@@ -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);

View File

@@ -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;
}
}
}

View File

@@ -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<String, String> 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,43 @@ 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);
}
/**
* 上传坐标
*
* @param hashMap
* @param callback
*/
public void upLocation(HashMap<String, String> hashMap, Callback callback) {
Request request = new Request.Builder().post(getRequestBody(hashMap))
.url(webHost + "/location/add/").build();
Call call = mClient.newCall(request);
call.enqueue(callback);
}
/**
* 获取坐标
*
* @param parentId
* @param callback
*/
public void getLocation(String parentId, Callback callback) {
Request request = new Request.Builder()
.url(webHost + "/location/get/" + parentId).build();
Call call = mClient.newCall(request);
call.enqueue(callback);
}
}

View File

@@ -1,11 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.scorpiomiku.oldpeoplehome.modules.loginregister.LoginActivity">
android:orientation="vertical">
<include layout="@layout/default_bar" />
@@ -121,12 +119,20 @@
</android.support.v7.widget.CardView>
<RadioButton
android:id="@+id/is_older"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="老人登录" />
<Button
android:id="@+id/login_btn_login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="5dp"
android:background="#41a4f5"
android:elevation="5dp"
android:text="登 录"

View File

@@ -59,7 +59,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="00:00"
android:text="0"
android:textColor="#FFF"
android:textSize="30sp" />
@@ -98,13 +98,13 @@
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:src="@drawable/ic_heart_log" />
android:src="@drawable/ic_bloodpressure" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="最小心率"
android:text="血压(收缩压)"
android:textColor="@color/heart_rate_bg"
android:textSize="14sp" />
@@ -116,6 +116,7 @@
android:orientation="horizontal">
<TextView
android:id="@+id/diastolic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
@@ -128,7 +129,7 @@
android:layout_gravity="center_vertical"
android:layout_marginLeft="5dp"
android:gravity="center"
android:text="BPM"
android:text="mmHg"
android:textColor="@color/heart_rate_bg"
android:textSize="14sp" />
</LinearLayout>
@@ -145,13 +146,13 @@
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:src="@drawable/ic_heart_log" />
android:src="@drawable/ic_bloodpressure" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="平均心率"
android:text="血压(舒张压)"
android:textColor="@color/heart_rate_bg"
android:textSize="14sp" />
@@ -163,6 +164,7 @@
android:orientation="horizontal">
<TextView
android:id="@+id/systolic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
@@ -175,7 +177,7 @@
android:layout_gravity="center_vertical"
android:layout_marginLeft="5dp"
android:gravity="center"
android:text="BPM"
android:text="mmHg"
android:textColor="@color/heart_rate_bg"
android:textSize="14sp" />
</LinearLayout>
@@ -192,13 +194,13 @@
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:src="@drawable/ic_heart_log" />
android:src="@drawable/ic_oxy" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="最大心率"
android:text="血氧"
android:textColor="@color/heart_rate_bg"
android:textSize="14sp" />
@@ -210,6 +212,7 @@
android:orientation="horizontal">
<TextView
android:id="@+id/oxy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
@@ -222,7 +225,7 @@
android:layout_gravity="center_vertical"
android:layout_marginLeft="5dp"
android:gravity="center"
android:text="BPM"
android:text="HbO2"
android:textColor="@color/heart_rate_bg"
android:textSize="14sp" />
</LinearLayout>

View File

@@ -69,6 +69,7 @@
</LinearLayout>
<TextView
android:id="@+id/deep_text_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
@@ -105,6 +106,7 @@
</LinearLayout>
<TextView
android:id="@+id/light_text_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
@@ -141,6 +143,7 @@
</LinearLayout>
<TextView
android:id="@+id/awake_text_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"

View File

@@ -8,10 +8,5 @@
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="SpinnerStyle">
<item name="colorAccent">#2f2a94</item>
<item name="colorControlNormal">#ddf16565</item> <!--改变了spinner的颜色 -->
</style>
</resources>

View File

@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="gson-2.2.2">
<CLASSES>
<root url="jar://E:/javaprogrames/okhttpTest/gson-2.2.2.jar!/" />
<root url="jar://E:/javaprogrames/okhttpTest/okhttp-3.5.0.jar!/" />
<root url="jar://E:/javaprogrames/okhttpTest/okio-1.11.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/OldPeopleInterServer.iml" filepath="$PROJECT_DIR$/OldPeopleInterServer.iml" />
</modules>
</component>
</project>

View File

@@ -0,0 +1,499 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="e14eed3f-19c7-4682-a833-d377ab2a08a3" name="Default" comment="" />
<ignored path="$PROJECT_DIR$/out/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="Main.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="224">
<caret line="19" column="19" selection-start-line="19" selection-start-column="19" selection-end-line="19" selection-end-column="19" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#688#689#0" expanded="true" />
<element signature="e#754#755#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Node.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/Node.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="480">
<caret line="24" column="48" selection-start-line="24" selection-start-column="48" selection-end-line="24" selection-end-column="48" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="funcList.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/funcList.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="120">
<caret line="14" column="30" selection-start-line="14" selection-start-column="30" selection-end-line="14" selection-end-column="30" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="RoomData.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/RoomData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="408">
<caret line="17" column="25" selection-start-line="17" selection-start-column="25" selection-end-line="17" selection-end-column="25" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="TimeUtils.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/TimeUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="240">
<caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="WebUtils.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/WebUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="323">
<caret line="61" column="94" selection-start-line="61" selection-start-column="94" selection-end-line="61" selection-end-column="94" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Class" />
</list>
</option>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>com.scorpiomiku.wifitrick.</find>
</findStrings>
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/RoomData.java" />
<option value="$PROJECT_DIR$/src/TimeUtils.java" />
<option value="$PROJECT_DIR$/src/funcList.java" />
<option value="$PROJECT_DIR$/src/Node.java" />
<option value="$PROJECT_DIR$/src/WebUtils.java" />
<option value="$PROJECT_DIR$/src/Main.java" />
</list>
</option>
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsGulpfileManager">
<detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="NodePackageJsonFileManager">
<packageJsonPaths />
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="-8" />
<option name="y" value="-8" />
<option name="width" value="1936" />
<option name="height" value="1056" />
</component>
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="PackagesPane" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="OldPeopleInterServer" type="b2602c69:ProjectViewProjectNode" />
<item name="OldPeopleInterServer" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="OldPeopleInterServer" type="b2602c69:ProjectViewProjectNode" />
<item name="OldPeopleInterServer" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="AndroidView" />
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="E:/javaprogrames/okhttpTest/okio-1.11.0.jar!/" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
<property name="project.structure.last.edited" value="Libraries" />
<property name="project.structure.proportion" value="0.15" />
<property name="project.structure.side.proportion" value="0.2" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="E:\javaprogrames\OldPeopleInterServer\src" />
</key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration name="Main" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="Main" />
<module name="OldPeopleInterServer" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
</configuration>
<configuration default="true" type="Application" factoryName="Application">
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
</configuration>
<configuration default="true" type="JUnit" factoryName="JUnit">
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="%MODULE_WORKING_DIR%" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<patterns />
</configuration>
<configuration default="true" type="TestNG" factoryName="TestNG">
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="SUITE_NAME" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="GROUP_NAME" />
<option name="TEST_OBJECT" value="CLASS" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="%MODULE_WORKING_DIR%" />
<option name="OUTPUT_DIRECTORY" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<option name="USE_DEFAULT_REPORTERS" value="false" />
<option name="PROPERTIES_FILE" />
<properties />
<listeners />
</configuration>
<recent_temporary>
<list>
<item itemvalue="Application.Main" />
</list>
</recent_temporary>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="e14eed3f-19c7-4682-a833-d377ab2a08a3" name="Default" comment="" />
<created>1567753931598</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1567753931598</updated>
<workItem from="1567753939083" duration="1386000" />
<workItem from="1567775235491" duration="855000" />
<workItem from="1567819403830" duration="1525000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="3766000" />
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
<editor active="true" />
<layout>
<window_info anchor="right" id="Palette" order="3" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Messages" order="7" />
<window_info anchor="right" id="Palette&#9;" order="3" />
<window_info id="Image Layers" order="2" />
<window_info anchor="right" id="Capture Analysis" order="3" />
<window_info anchor="bottom" id="Event Log" order="7" side_tool="true" />
<window_info anchor="right" id="Maven Projects" order="3" />
<window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Run" order="2" visible="true" weight="0.44008714" />
<window_info anchor="right" id="Mongo Explorer" order="3" />
<window_info anchor="bottom" id="Terminal" order="7" />
<window_info id="Capture Tool" order="2" />
<window_info id="Designer" order="2" />
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.12526652" />
<window_info anchor="right" id="Database" order="3" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info id="UI Designer" order="2" />
<window_info anchor="right" id="Theme Preview" order="3" />
<window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Find" order="1" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<option name="time" value="1" />
</breakpoint-manager>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144">
<caret line="11" column="37" lean-forward="true" selection-start-line="11" selection-start-column="37" selection-end-line="11" selection-end-column="37" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#688#689#0" expanded="true" />
<element signature="e#754#755#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Node.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="408">
<caret line="21" column="46" selection-start-line="21" selection-start-column="46" selection-end-line="21" selection-end-column="46" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/funcList.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="336">
<caret line="14" column="30" lean-forward="true" selection-start-line="14" selection-start-column="30" selection-end-line="14" selection-end-column="30" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/RoomData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="408">
<caret line="17" column="25" selection-start-line="17" selection-start-column="25" selection-end-line="17" selection-end-column="25" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/TimeUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="168">
<caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/WebUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="912">
<caret line="51" column="44" selection-start-line="51" selection-start-column="44" selection-end-line="51" selection-end-column="44" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
<caret line="3" selection-start-line="3" selection-end-line="3" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#688#689#0" expanded="true" />
<element signature="e#754#755#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/RoomData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="408">
<caret line="17" column="25" selection-start-line="17" selection-start-column="25" selection-end-line="17" selection-end-column="25" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/TimeUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="240">
<caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/funcList.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="120">
<caret line="14" column="30" selection-start-line="14" selection-start-column="30" selection-end-line="14" selection-end-column="30" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Node.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="480">
<caret line="24" column="48" selection-start-line="24" selection-start-column="48" selection-end-line="24" selection-end-column="48" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/WebUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="323">
<caret line="61" column="94" selection-start-line="61" selection-start-column="94" selection-end-line="61" selection-end-column="94" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="224">
<caret line="19" column="19" selection-start-line="19" selection-start-column="19" selection-end-line="19" selection-end-column="19" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#688#689#0" expanded="true" />
<element signature="e#754#755#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
<state key="ArtifactsStructureConfigurable.UI">
<settings>
<artifact-editor />
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="FacetStructureConfigurable.UI">
<settings>
<last-edited>No facets are configured</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="GlobalLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="JdkListConfigurable.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ModuleStructureConfigurable.UI">
<settings>
<last-edited>OldPeopleInterServer</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectJDKs.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectLibrariesConfigurable.UI">
<settings>
<last-edited>gson-2.2.2</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>

View File

@@ -0,0 +1,97 @@
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonParser;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;
import java.io.IOException;
public class Main {
private static String isin;
private static String temporature;
private static String humidity;
private static WebUtils webUtils;
public static void main(String[] args) {
webUtils = WebUtils.getInstance();
System.out.println("开始转发任务");
getAndUpData();
// fengshan();
}
private static void fengshan() {
webUtils.fengshan(8, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
System.out.println(e.getMessage());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
}
});
}
private static void getAndUpData() {
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(2000);
webUtils.getRoomData(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
System.out.println(e.getMessage());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
JsonArray jsonElements = getJsonArray(response);
Gson gson = new Gson();
Node[] nodes = gson.fromJson(jsonElements, Node[].class);
for (Node node : nodes) {
System.out.println("接收到数据:" + node.toString());
funcList[] funcLists = node.getFuncList();
for (funcList funcList : funcLists) {
if (funcList.getType().equals("安防")) {
isin = String.valueOf((int) funcList.getData());
} else if (funcList.getType().equals("温度")) {
temporature = String.valueOf(funcList.getData());
} else if (funcList.getType().equals("湿度")) {
humidity = String.valueOf(funcList.getData());
}
}
}
RoomData roomData = new RoomData(isin, temporature, humidity, TimeUtils.getTime(), "1");
System.out.println("解析出房间信息:" + roomData);
webUtils.upRoomState(roomData.getMap(), new Callback() {
@Override
public void onFailure(Call call, IOException e) {
System.out.println(e.getMessage());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
System.out.println("房间信息上传成功");
getAndUpData();
}
});
}
});
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
private static JsonArray getJsonArray(Response response) throws IOException {
String result = response.body().string();
JsonParser jsonParser = new JsonParser();
JsonArray jsonObject = (JsonArray) jsonParser.parse(result);
return jsonObject;
}
}

View File

@@ -0,0 +1,62 @@
/**
* Created by ScorpioMiku on 2019/9/3.
*/
public class Node {
private String nwkAddr;
private String parAddr;
private String macAddr;
private funcList[] funcList;
public funcList[] getFuncList() {
return funcList;
}
public void setFuncList(funcList[] funcList) {
this.funcList = funcList;
}
@Override
public String toString() {
return "Node{" +
"nwkAddr='" + nwkAddr + '\'' +
", parAddr='" + parAddr + '\'' +
", macAddr='" + macAddr + '\'' +
", funcList=" + funcListString() +
'}';
}
private String funcListString() {
String temp = "";
for (int i = 0; i < funcList.length; i++) {
temp += funcList[i].toString();
}
return temp;
}
public String getNwkAddr() {
return nwkAddr;
}
public void setNwkAddr(String nwkAddr) {
this.nwkAddr = nwkAddr;
}
public String getParAddr() {
return parAddr;
}
public void setParAddr(String parAddr) {
this.parAddr = parAddr;
}
public String getMacAddr() {
return macAddr;
}
public void setMacAddr(String macAddr) {
this.macAddr = macAddr;
}
}

View File

@@ -0,0 +1,82 @@
import java.util.HashMap;
/**
* Created by ScorpioMiku on 2019/9/3.
*/
public class RoomData {
private String isin;
private String temporature;
private String humidity;
private String time;
private String roomId;
public RoomData(String isin, String temporature, String humidity, String time, String roomId) {
this.isin = isin;
this.temporature = temporature;
this.humidity = humidity;
this.time = time;
this.roomId = roomId;
}
public HashMap<String, String> getMap() {
HashMap<String, String> mapData = new HashMap<>();
mapData.put("roomId", getRoomId());
mapData.put("time", TimeUtils.getTime());
mapData.put("temperature", getTemporature());
mapData.put("humidity", getHumidity());
mapData.put("isin", getIsin());
return mapData;
}
public String getIsin() {
return isin;
}
public void setIsin(String isin) {
this.isin = isin;
}
public String getTemporature() {
return temporature;
}
public void setTemporature(String temporature) {
this.temporature = temporature;
}
public String getHumidity() {
return humidity;
}
public void setHumidity(String humidity) {
this.humidity = humidity;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getRoomId() {
return roomId;
}
public void setRoomId(String roomId) {
this.roomId = roomId;
}
@Override
public String toString() {
return "RoomData{" +
"isin='" + isin + '\'' +
", temporature='" + temporature + '\'' +
", humidity='" + humidity + '\'' +
", time='" + time + '\'' +
", roomId='" + roomId + '\'' +
'}';
}
}

View File

@@ -0,0 +1,18 @@
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
/**
* Created by ScorpioMiku on 2019/9/3.
*/
public class TimeUtils {
public static String getTime() {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// HH:mm:ss
//获取当前时间
Date date = new Date(System.currentTimeMillis());
return simpleDateFormat.format(date);
}
}

View File

@@ -0,0 +1,66 @@
import java.io.IOException;
import java.util.HashMap;
import java.util.Set;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
/**
* Created by ScorpioMiku on 2019/9/3.
*/
public class WebUtils {
private static final String TAG = "WebUtils";
private static WebUtils instance = new WebUtils();
private static OkHttpClient mClient = new OkHttpClient();
private static final String webHost = "http://39.105.65.209:8080";
private WebUtils() {
}
public static WebUtils getInstance() {
return instance;
}
public RequestBody getRequestBody(HashMap<String, String> data) {
String body = "";
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
Set<String> keys = data.keySet();
for (String key : keys) {
body += key + "=" + data.get(key) + "&";
}
body = body.substring(0, body.length() - 1);
RequestBody requestBody = RequestBody.create(mediaType, body);
return requestBody;
}
public void upRoomState(HashMap<String, String> hashMap, Callback callback) {
Request request = new Request.Builder().post(getRequestBody(hashMap))
.url(webHost + "/rstate/add/").build();
Call call = mClient.newCall(request);
call.enqueue(callback);
}
public void getRoomData(Callback callback) {
Request request = new Request.Builder()
.url("http://192.168.0.1/cgi-bin/node.cgi")
.build();
Call call = mClient.newCall(request);
call.enqueue(callback);
}
public void fengshan(int code, Callback callback) {
Request request = new Request.Builder()
.url("http://192.168.0.1/cgi-bin/send_node.cgi" + "?type=11&id=3&data=" + code).build();
Call call = mClient.newCall(request);
call.enqueue(callback);
}
}

View File

@@ -0,0 +1,55 @@
import java.util.HashMap;
/**
* Created by ScorpioMiku on 2019/9/3.
*/
public class funcList {
private String typeCode;
private String type;
private float cycle;
private float data;
@Override
public String toString() {
return "funcList{" +
"typeCode='" + typeCode + '\'' +
", type='" + type + '\'' +
", cycle=" + cycle +
", data=" + data +
'}';
}
public String getTypeCode() {
return typeCode;
}
public void setTypeCode(String typeCode) {
this.typeCode = typeCode;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public float getCycle() {
return cycle;
}
public void setCycle(float cycle) {
this.cycle = cycle;
}
public float getData() {
return data;
}
public void setData(float data) {
this.data = data;
}
}

View File

@@ -1,11 +0,0 @@
<component name="libraryTable">
<library name="android.arch.core:common:1.0.0@jar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.core/common/1.0.0/a2d487452376193fc8c103dd2b9bd5f2b1b44563/common-1.0.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.core/common/1.0.0/a41fa3b9a66f3bdd41f98013a1688e969072aaf2/common-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,11 +0,0 @@
<component name="libraryTable">
<library name="android.arch.lifecycle:common:1.0.0@jar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/common/1.0.0/e414a4cb28434e25c4f6aa71426eb20cf4874ae9/common-1.0.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/common/1.0.0/39ce4055689b4b766478265a8c661f4165f26dc3/common-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,12 +0,0 @@
<component name="libraryTable">
<library name="android.arch.lifecycle:runtime-1.0.0">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/aaa1b57bd552bbf8ba82ec1599a38b91/res" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/aaa1b57bd552bbf8ba82ec1599a38b91/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/runtime/1.0.0/1dd0298d8c45d8dfa4d038270247327f23df7a3a/runtime-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,12 +0,0 @@
<component name="libraryTable">
<library name="com.android.support:animated-vector-drawable-26.1.0">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/animated-vector-drawable-26.1.0.aar/e000b7ea2dbfa67e7edb770d2c38abf7/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/animated-vector-drawable-26.1.0.aar/e000b7ea2dbfa67e7edb770d2c38abf7/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/animated-vector-drawable/26.1.0/91743e9b07667784f471a3c4748e6883cd810084/animated-vector-drawable-26.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,12 +0,0 @@
<component name="libraryTable">
<library name="com.android.support:appcompat-v7-26.1.0">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.1.0.aar/9692b2e8dc5f8180735131fff58e5e86/res" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.1.0.aar/9692b2e8dc5f8180735131fff58e5e86/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/appcompat-v7/26.1.0/2b34456c30d6b6e5db5fa3e8fa02f6cebd5531fd/appcompat-v7-26.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,11 +0,0 @@
<component name="libraryTable">
<library name="com.android.support:support-annotations:26.1.0@jar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-annotations/26.1.0/814258103cf26a15fcc26ecce35f5b7d24b73f8/support-annotations-26.1.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-annotations/26.1.0/29ca6aaf2d4976c13dd7c836e91bd2a61b697bf3/support-annotations-26.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,12 +0,0 @@
<component name="libraryTable">
<library name="com.android.support:support-compat-26.1.0">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/e7e85648284485d1d25b6d42d6c14b7e/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/e7e85648284485d1d25b6d42d6c14b7e/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-compat/26.1.0/73bfdb5cca1949a51219d3676700996990ea3b52/support-compat-26.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,12 +0,0 @@
<component name="libraryTable">
<library name="com.android.support:support-core-ui-26.1.0">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-ui-26.1.0.aar/85ae674c3e112c22ebf0b3b403ab8f19/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-ui-26.1.0.aar/85ae674c3e112c22ebf0b3b403ab8f19/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-core-ui/26.1.0/4d52cef4a24bf9939de1d256ca9f0974c6e636a4/support-core-ui-26.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,12 +0,0 @@
<component name="libraryTable">
<library name="com.android.support:support-core-utils-26.1.0">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-utils-26.1.0.aar/d347dda4ed4237ae204c9c5ca05d21f6/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-utils-26.1.0.aar/d347dda4ed4237ae204c9c5ca05d21f6/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-core-utils/26.1.0/2b0c3da7f80880bbf365452b354490a77f085c96/support-core-utils-26.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,12 +0,0 @@
<component name="libraryTable">
<library name="com.android.support:support-fragment-26.1.0">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-fragment-26.1.0.aar/2651be039130210e105c7dff87360005/res" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-fragment-26.1.0.aar/2651be039130210e105c7dff87360005/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-fragment/26.1.0/8279b00f5194701ff18363fa2958c5a26670b0ef/support-fragment-26.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,12 +0,0 @@
<component name="libraryTable">
<library name="com.android.support:support-media-compat-26.1.0">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/052381a9c89d20584a849d07c5ea5d68/res" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/052381a9c89d20584a849d07c5ea5d68/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-media-compat/26.1.0/774fd1164ec32514eec562953f723a1920a7fef7/support-media-compat-26.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,12 +0,0 @@
<component name="libraryTable">
<library name="com.android.support:support-v4-26.1.0">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/fb63478598190d56b716f6d57689b24f/res" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/fb63478598190d56b716f6d57689b24f/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-v4/26.1.0/9c53eab3272b3b26583b17facac2e90d264b2788/support-v4-26.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -1,12 +0,0 @@
<component name="libraryTable">
<library name="com.android.support:support-vector-drawable-26.1.0">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-vector-drawable-26.1.0.aar/e4dc5b86958a76374e04a6ba735e5f76/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-vector-drawable-26.1.0.aar/e4dc5b86958a76374e04a6ba735e5f76/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-vector-drawable/26.1.0/7a59c417eb560e5ddc2de20792ad45b38e422a5b/support-vector-drawable-26.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -6,6 +6,7 @@
</shared>
</component>
<component name="AndroidLogFilters">
<option name="TOOL_WINDOW_LOG_LEVEL" value="error" />
<option name="TOOL_WINDOW_CONFIGURED_FILTER" value="Show only selected application" />
</component>
<component name="ChangeListManager">
@@ -31,22 +32,23 @@
</system>
</component>
<component name="FileEditorManager">
<leaf>
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="MainActivity.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/MainActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="321">
<state relative-caret-position="299">
<caret line="127" column="52" lean-forward="false" selection-start-line="127" selection-start-column="52" selection-end-line="127" selection-end-column="52" />
<folding>
<element signature="e#1773#2259#0" expanded="true" />
<element signature="e#2258#2259#0" expanded="true" />
<element signature="e#2640#2787#0" expanded="true" />
<element signature="e#2786#2787#0" expanded="true" />
<element signature="e#3266#3581#0" expanded="true" />
<element signature="e#3580#3581#0" expanded="true" />
<element signature="e#3668#3669#0" expanded="true" />
<element signature="e#3716#3717#0" expanded="true" />
</folding>
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="styles.xml" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/res/values/styles.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="220">
<caret line="10" column="12" lean-forward="false" selection-start-line="10" selection-start-column="12" selection-end-line="10" selection-end-column="12" />
<folding />
</state>
</provider>
</entry>
@@ -64,27 +66,12 @@
</provider>
</entry>
</file>
<file leaf-file-name="activity_main.xml" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml">
<provider editor-type-id="android-designer2">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="220">
<caret line="10" column="30" lean-forward="false" selection-start-line="10" selection-start-column="30" selection-end-line="10" selection-end-column="30" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="TimeUtils.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/TimeUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="387">
<caret line="20" column="0" lean-forward="false" selection-start-line="20" selection-start-column="0" selection-end-line="21" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="198">
<caret line="14" column="29" lean-forward="false" selection-start-line="14" selection-start-column="29" selection-end-line="14" selection-end-column="29" />
<folding />
</state>
</provider>
</entry>
@@ -92,83 +79,23 @@
<file leaf-file-name="WebUtils.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/WebUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="387">
<caret line="60" column="31" lean-forward="false" selection-start-line="60" selection-start-column="31" selection-end-line="60" selection-end-column="31" />
<state relative-caret-position="211">
<caret line="56" column="29" lean-forward="false" selection-start-line="56" selection-start-column="29" selection-end-line="56" selection-end-column="29" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#798#799#0" expanded="true" />
<element signature="e#829#830#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="WifiConnect.java" pinned="false" current-in-tab="false">
<file leaf-file-name="WifiConnect.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/WifiConnect.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-2151">
<caret line="102" column="17" lean-forward="false" selection-start-line="102" selection-start-column="17" selection-end-line="102" selection-end-column="17" />
<state relative-caret-position="385">
<caret line="133" column="34" lean-forward="true" selection-start-line="133" selection-start-column="34" selection-end-line="133" selection-end-column="34" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#1168#1476#0" expanded="true" />
<element signature="e#1475#1476#0" expanded="true" />
<element signature="e#2782#3137#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="RoomData.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/RoomData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="519">
<caret line="30" column="23" lean-forward="false" selection-start-line="30" selection-start-column="23" selection-end-line="30" selection-end-column="23" />
<folding>
<element signature="e#937#938#0" expanded="true" />
<element signature="e#964#965#0" expanded="true" />
<element signature="e#1004#1005#0" expanded="true" />
<element signature="e#1036#1037#0" expanded="true" />
<element signature="e#1074#1075#0" expanded="true" />
<element signature="e#1108#1109#0" expanded="true" />
<element signature="e#1162#1163#0" expanded="true" />
<element signature="e#1208#1209#0" expanded="true" />
<element signature="e#1243#1244#0" expanded="true" />
<element signature="e#1274#1275#0" expanded="true" />
<element signature="e#1322#1323#0" expanded="true" />
<element signature="e#1362#1363#0" expanded="true" />
<element signature="e#1393#1394#0" expanded="true" />
<element signature="e#1420#1421#0" expanded="true" />
<element signature="e#1460#1461#0" expanded="true" />
<element signature="e#1492#1493#0" expanded="true" />
<element signature="e#1525#1526#0" expanded="true" />
<element signature="e#1554#1555#0" expanded="true" />
<element signature="e#1598#1599#0" expanded="true" />
<element signature="e#1634#1635#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="funcList.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/funcList.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="374">
<caret line="26" column="24" lean-forward="false" selection-start-line="26" selection-start-column="24" selection-end-line="26" selection-end-column="24" />
<folding>
<element signature="e#538#539#0" expanded="true" />
<element signature="e#569#570#0" expanded="true" />
<element signature="e#617#618#0" expanded="true" />
<element signature="e#657#658#0" expanded="true" />
<element signature="e#688#689#0" expanded="true" />
<element signature="e#715#716#0" expanded="true" />
<element signature="e#755#756#0" expanded="true" />
<element signature="e#787#788#0" expanded="true" />
<element signature="e#818#819#0" expanded="true" />
<element signature="e#846#847#0" expanded="true" />
<element signature="e#887#888#0" expanded="true" />
<element signature="e#921#922#0" expanded="true" />
<element signature="e#951#952#0" expanded="true" />
<element signature="e#978#979#0" expanded="true" />
<element signature="e#1017#1018#0" expanded="true" />
<element signature="e#1049#1050#0" expanded="true" />
</folding>
</state>
</provider>
@@ -178,38 +105,44 @@
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/Node.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="264">
<caret line="12" column="63" lean-forward="false" selection-start-line="12" selection-start-column="63" selection-end-line="12" selection-end-column="63" />
<caret line="12" column="51" lean-forward="false" selection-start-line="12" selection-start-column="51" selection-end-line="12" selection-end-column="51" />
<folding>
<element signature="e#284#285#0" expanded="true" />
<element signature="e#315#316#0" expanded="true" />
<element signature="e#753#754#0" expanded="true" />
<element signature="e#783#784#0" expanded="true" />
<element signature="e#829#830#0" expanded="true" />
<element signature="e#867#868#0" expanded="true" />
<element signature="e#901#902#0" expanded="true" />
<element signature="e#931#932#0" expanded="true" />
<element signature="e#977#978#0" expanded="true" />
<element signature="e#1015#1016#0" expanded="true" />
<element signature="e#1049#1050#0" expanded="true" />
<element signature="e#1079#1080#0" expanded="true" />
<element signature="e#1125#1126#0" expanded="true" />
<element signature="e#1163#1164#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="NetworkReceiver.java" pinned="false" current-in-tab="true">
<file leaf-file-name="RoomData.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/RoomData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="682">
<caret line="31" column="5" lean-forward="false" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="funcList.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/funcList.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="550">
<caret line="26" column="24" lean-forward="false" selection-start-line="26" selection-start-column="24" selection-end-line="26" selection-end-column="24" />
<folding>
<element signature="e#538#539#0" expanded="true" />
<element signature="e#569#570#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="NetworkReceiver.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/NetworkReceiver.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="379">
<caret line="86" column="47" lean-forward="true" selection-start-line="86" selection-start-column="47" selection-end-line="86" selection-end-column="47" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#1130#1393#0" expanded="true" />
<element signature="e#1392#1393#0" expanded="true" />
<element signature="e#3806#3807#0" expanded="true" />
<element signature="e#5221#5248#0" expanded="true" />
</folding>
<state relative-caret-position="3014">
<caret line="156" column="24" lean-forward="false" selection-start-line="156" selection-start-column="24" selection-end-line="156" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
@@ -1979,16 +1912,17 @@
<option value="$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/w.java" />
<option value="$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/RoomData.java" />
<option value="$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml" />
<option value="$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/WebUtils.java" />
<option value="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" />
<option value="$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/WifiConnect.java" />
<option value="$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/MainActivity.java" />
<option value="$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/NetworkReceiver.java" />
<option value="$PROJECT_DIR$/app/src/main/res/values/styles.xml" />
<option value="$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/WebUtils.java" />
</list>
</option>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="-8" />
<option name="x" value="1912" />
<option name="y" value="-8" />
<option name="width" value="1936" />
<option name="height" value="1056" />
@@ -2009,7 +1943,6 @@
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane" />
<pane id="AndroidView">
<subPane>
<PATH>
@@ -2035,6 +1968,10 @@
<option name="myItemId" value="res" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.android.AndroidResFolderNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="values" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.android.AndroidResFolderTypeNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -2049,10 +1986,6 @@
<option name="myItemId" value="res" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.android.AndroidResFolderNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="layout" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.android.AndroidResFolderTypeNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
@@ -2099,6 +2032,7 @@
</subPane>
</pane>
<pane id="PackagesPane" />
<pane id="ProjectPane" />
<pane id="Scratches" />
</panes>
</component>
@@ -2106,6 +2040,7 @@
<property name="android.sdk.path" value="E:/androidSDK" />
<property name="settings.editor.selected.configurable" value="android.sdk-updates" />
<property name="device.picker.selection" value="B2T7N16C11002906" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
@@ -2188,7 +2123,9 @@
</Profilers>
<option name="DEEP_LINK" value="" />
<option name="ACTIVITY_CLASS" value="" />
<method />
<method>
<option name="com.android.instantApps.provision.BeforeRunTask" enabled="true" clearCache="false" clearProvisionedDevices="false" myTimestamp="1567775885726" />
</method>
</configuration>
<configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Instrumented Tests">
<module name="" />
@@ -2233,7 +2170,9 @@
<Profilers>
<option name="ADVANCED_PROFILING_ENABLED" value="false" />
</Profilers>
<method />
<method>
<option name="com.android.instantApps.provision.BeforeRunTask" enabled="true" clearCache="false" clearProvisionedDevices="false" myTimestamp="1567775885726" />
</method>
</configuration>
<configuration default="true" type="Application" factoryName="Application">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
@@ -2266,27 +2205,6 @@
</ExternalSystemSettings>
<method />
</configuration>
<configuration default="true" type="JUnit" factoryName="JUnit">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<envs />
<patterns />
<method />
</configuration>
<configuration default="true" type="JarApplication" factoryName="JAR Application">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<envs />
@@ -2413,7 +2331,9 @@
</Profilers>
<option name="DEEP_LINK" value="" />
<option name="ACTIVITY_CLASS" value="" />
<method />
<method>
<option name="com.android.instantApps.provision.BeforeRunTask" enabled="true" clearCache="false" clearProvisionedDevices="false" myTimestamp="1567775885727" />
</method>
</configuration>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="Android App.app" />
@@ -2454,40 +2374,41 @@
<servers />
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
<frame x="1912" y="-8" width="1936" height="1056" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="Android Profiler" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Build Variants" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Logcat" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32900432" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Statistic" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Android Profiler" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32896176" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Build Variants" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32900432" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Logcat" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32900432" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Captures" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Gradle Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.11247335" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Statistic" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Gradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Device File Explorer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32896176" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32995737" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32900432" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Captures" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Gradle Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.11247335" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Gradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
<window_info id="Device File Explorer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="true" content_ui="tabs" />
<window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32995737" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
</layout>
</component>
<component name="VcsContentAnnotationSettings">
@@ -2498,11 +2419,316 @@
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/RoomData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="682">
<caret line="31" column="5" lean-forward="false" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/funcList.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="550">
<caret line="26" column="24" lean-forward="false" selection-start-line="26" selection-start-column="24" selection-end-line="26" selection-end-column="24" />
<folding>
<element signature="e#538#539#0" expanded="true" />
<element signature="e#569#570#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/NetworkReceiver.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3014">
<caret line="156" column="24" lean-forward="false" selection-start-line="156" selection-start-column="24" selection-end-line="156" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/values/styles.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="242">
<caret line="11" column="0" lean-forward="true" selection-start-line="11" selection-start-column="0" selection-end-line="11" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/MainActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/AndroidManifest.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="154">
<caret line="7" column="68" lean-forward="false" selection-start-line="7" selection-start-column="68" selection-end-line="7" selection-end-column="68" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="220">
<caret line="10" column="30" lean-forward="false" selection-start-line="10" selection-start-column="30" selection-end-line="10" selection-end-column="30" />
<folding />
</state>
</provider>
<provider editor-type-id="android-designer2">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/TimeUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="14" column="29" lean-forward="false" selection-start-line="14" selection-start-column="29" selection-end-line="14" selection-end-column="29" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/WebUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1078">
<caret line="67" column="34" lean-forward="false" selection-start-line="67" selection-start-column="34" selection-end-line="67" selection-end-column="34" />
<folding>
<element signature="e#798#799#0" expanded="true" />
<element signature="e#829#830#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="682">
<caret line="31" column="10" lean-forward="false" selection-start-line="31" selection-start-column="10" selection-end-line="31" selection-end-column="10" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/WifiConnect.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2574">
<caret line="133" column="43" lean-forward="false" selection-start-line="133" selection-start-column="43" selection-end-line="133" selection-end-column="43" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/RoomData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="682">
<caret line="31" column="5" lean-forward="false" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/funcList.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="550">
<caret line="26" column="24" lean-forward="false" selection-start-line="26" selection-start-column="24" selection-end-line="26" selection-end-column="24" />
<folding>
<element signature="e#538#539#0" expanded="true" />
<element signature="e#569#570#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/NetworkReceiver.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3014">
<caret line="156" column="24" lean-forward="false" selection-start-line="156" selection-start-column="24" selection-end-line="156" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/MainActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1936">
<caret line="127" column="52" lean-forward="false" selection-start-line="127" selection-start-column="52" selection-end-line="127" selection-end-column="52" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/AndroidManifest.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="154">
<caret line="7" column="68" lean-forward="false" selection-start-line="7" selection-start-column="68" selection-end-line="7" selection-end-column="68" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="220">
<caret line="10" column="30" lean-forward="false" selection-start-line="10" selection-start-column="30" selection-end-line="10" selection-end-column="30" />
<folding />
</state>
</provider>
<provider editor-type-id="android-designer2">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/TimeUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="330">
<caret line="20" column="0" lean-forward="false" selection-start-line="20" selection-start-column="0" selection-end-line="21" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/WebUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="924">
<caret line="60" column="31" lean-forward="false" selection-start-line="60" selection-start-column="31" selection-end-line="60" selection-end-column="31" />
<folding>
<element signature="e#798#799#0" expanded="true" />
<element signature="e#829#830#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/WifiConnect.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1892">
<caret line="102" column="17" lean-forward="false" selection-start-line="102" selection-start-column="17" selection-end-line="102" selection-end-column="17" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/RoomData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="660">
<caret line="30" column="23" lean-forward="false" selection-start-line="30" selection-start-column="23" selection-end-line="30" selection-end-column="23" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/funcList.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="550">
<caret line="26" column="24" lean-forward="false" selection-start-line="26" selection-start-column="24" selection-end-line="26" selection-end-column="24" />
<folding>
<element signature="e#538#539#0" expanded="true" />
<element signature="e#569#570#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/Node.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="264">
<caret line="12" column="63" lean-forward="false" selection-start-line="12" selection-start-column="63" selection-end-line="12" selection-end-column="63" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/NetworkReceiver.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1474">
<caret line="86" column="47" lean-forward="false" selection-start-line="86" selection-start-column="47" selection-end-line="86" selection-end-column="47" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/MainActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1936">
<caret line="127" column="52" lean-forward="false" selection-start-line="127" selection-start-column="52" selection-end-line="127" selection-end-column="52" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/AndroidManifest.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="154">
<caret line="7" column="68" lean-forward="false" selection-start-line="7" selection-start-column="68" selection-end-line="7" selection-end-column="68" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="220">
<caret line="10" column="30" lean-forward="false" selection-start-line="10" selection-start-column="30" selection-end-line="10" selection-end-column="30" />
<folding />
</state>
</provider>
<provider editor-type-id="android-designer2">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/TimeUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="330">
<caret line="20" column="0" lean-forward="false" selection-start-line="20" selection-start-column="0" selection-end-line="21" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/WebUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="924">
<caret line="60" column="31" lean-forward="false" selection-start-line="60" selection-start-column="31" selection-end-line="60" selection-end-column="31" />
<folding>
<element signature="e#798#799#0" expanded="true" />
<element signature="e#829#830#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/WifiConnect.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1892">
<caret line="102" column="17" lean-forward="false" selection-start-line="102" selection-start-column="17" selection-end-line="102" selection-end-column="17" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/RoomData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="660">
<caret line="30" column="23" lean-forward="false" selection-start-line="30" selection-start-column="23" selection-end-line="30" selection-end-column="23" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/funcList.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="550">
<caret line="26" column="24" lean-forward="false" selection-start-line="26" selection-start-column="24" selection-end-line="26" selection-end-column="24" />
<folding>
<element signature="e#538#539#0" expanded="true" />
<element signature="e#569#570#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/Node.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="264">
<caret line="12" column="63" lean-forward="false" selection-start-line="12" selection-start-column="63" selection-end-line="12" selection-end-column="63" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/NetworkReceiver.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1474">
<caret line="86" column="47" lean-forward="true" selection-start-line="86" selection-start-column="47" selection-end-line="86" selection-end-column="47" />
<folding />
</state>
</provider>
</entry>
<entry file="file://E:/androidSDK/sources/android-26/android/net/wifi/ScanResult.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-6278">
<caret line="31" column="47" lean-forward="false" selection-start-line="31" selection-start-column="47" selection-end-line="31" selection-end-column="47" />
<folding />
</state>
</provider>
</entry>
@@ -2510,18 +2736,10 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="2853" column="28" lean-forward="false" selection-start-line="2853" selection-start-column="28" selection-end-line="2853" selection-end-column="28" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/WifiUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="550">
<caret line="64" column="4" lean-forward="false" selection-start-line="64" selection-start-column="4" selection-end-line="64" selection-end-column="4" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/WifiUtils.java" />
<entry file="file://$PROJECT_DIR$/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="242">
@@ -2530,139 +2748,31 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="381">
<caret line="32" column="35" lean-forward="false" selection-start-line="32" selection-start-column="35" selection-end-line="32" selection-end-column="35" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/w.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="176">
<caret line="8" column="1" lean-forward="true" selection-start-line="8" selection-start-column="1" selection-end-line="8" selection-end-column="1" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/Node.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="264">
<caret line="12" column="63" lean-forward="false" selection-start-line="12" selection-start-column="63" selection-end-line="12" selection-end-column="63" />
<folding>
<element signature="e#315#316#0" expanded="true" />
<element signature="e#753#754#0" expanded="true" />
<element signature="e#783#784#0" expanded="true" />
<element signature="e#829#830#0" expanded="true" />
<element signature="e#867#868#0" expanded="true" />
<element signature="e#901#902#0" expanded="true" />
<element signature="e#931#932#0" expanded="true" />
<element signature="e#977#978#0" expanded="true" />
<element signature="e#1015#1016#0" expanded="true" />
<element signature="e#1049#1050#0" expanded="true" />
<element signature="e#1079#1080#0" expanded="true" />
<element signature="e#1125#1126#0" expanded="true" />
<element signature="e#1163#1164#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/w.java" />
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml">
<provider editor-type-id="android-designer2">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="220">
<caret line="10" column="30" lean-forward="false" selection-start-line="10" selection-start-column="30" selection-end-line="10" selection-end-column="30" />
<folding />
</state>
</provider>
<provider editor-type-id="android-designer2">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/RoomData.java">
<entry file="file://$PROJECT_DIR$/app/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="519">
<caret line="30" column="23" lean-forward="false" selection-start-line="30" selection-start-column="23" selection-end-line="30" selection-end-column="23" />
<folding>
<element signature="e#937#938#0" expanded="true" />
<element signature="e#964#965#0" expanded="true" />
<element signature="e#1004#1005#0" expanded="true" />
<element signature="e#1036#1037#0" expanded="true" />
<element signature="e#1074#1075#0" expanded="true" />
<element signature="e#1108#1109#0" expanded="true" />
<element signature="e#1162#1163#0" expanded="true" />
<element signature="e#1208#1209#0" expanded="true" />
<element signature="e#1243#1244#0" expanded="true" />
<element signature="e#1274#1275#0" expanded="true" />
<element signature="e#1322#1323#0" expanded="true" />
<element signature="e#1362#1363#0" expanded="true" />
<element signature="e#1393#1394#0" expanded="true" />
<element signature="e#1420#1421#0" expanded="true" />
<element signature="e#1460#1461#0" expanded="true" />
<element signature="e#1492#1493#0" expanded="true" />
<element signature="e#1525#1526#0" expanded="true" />
<element signature="e#1554#1555#0" expanded="true" />
<element signature="e#1598#1599#0" expanded="true" />
<element signature="e#1634#1635#0" expanded="true" />
</folding>
<state relative-caret-position="682">
<caret line="31" column="10" lean-forward="false" selection-start-line="31" selection-start-column="10" selection-end-line="31" selection-end-column="10" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/funcList.java">
<entry file="file://$PROJECT_DIR$/app/src/main/res/values/styles.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="374">
<caret line="26" column="24" lean-forward="false" selection-start-line="26" selection-start-column="24" selection-end-line="26" selection-end-column="24" />
<folding>
<element signature="e#538#539#0" expanded="true" />
<element signature="e#569#570#0" expanded="true" />
<element signature="e#617#618#0" expanded="true" />
<element signature="e#657#658#0" expanded="true" />
<element signature="e#688#689#0" expanded="true" />
<element signature="e#715#716#0" expanded="true" />
<element signature="e#755#756#0" expanded="true" />
<element signature="e#787#788#0" expanded="true" />
<element signature="e#818#819#0" expanded="true" />
<element signature="e#846#847#0" expanded="true" />
<element signature="e#887#888#0" expanded="true" />
<element signature="e#921#922#0" expanded="true" />
<element signature="e#951#952#0" expanded="true" />
<element signature="e#978#979#0" expanded="true" />
<element signature="e#1017#1018#0" expanded="true" />
<element signature="e#1049#1050#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/TimeUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="387">
<caret line="20" column="0" lean-forward="false" selection-start-line="20" selection-start-column="0" selection-end-line="21" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/WifiConnect.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-2151">
<caret line="102" column="17" lean-forward="false" selection-start-line="102" selection-start-column="17" selection-end-line="102" selection-end-column="17" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#1168#1476#0" expanded="true" />
<element signature="e#1475#1476#0" expanded="true" />
<element signature="e#2782#3137#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/WebUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="387">
<caret line="60" column="31" lean-forward="false" selection-start-line="60" selection-start-column="31" selection-end-line="60" selection-end-column="31" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="220">
<caret line="10" column="12" lean-forward="false" selection-start-line="10" selection-start-column="12" selection-end-line="10" selection-end-column="12" />
<folding />
</state>
</provider>
</entry>
@@ -2677,33 +2787,77 @@
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/MainActivity.java">
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/funcList.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="321">
<caret line="127" column="52" lean-forward="false" selection-start-line="127" selection-start-column="52" selection-end-line="127" selection-end-column="52" />
<state relative-caret-position="550">
<caret line="26" column="24" lean-forward="false" selection-start-line="26" selection-start-column="24" selection-end-line="26" selection-end-column="24" />
<folding>
<element signature="e#1773#2259#0" expanded="true" />
<element signature="e#2258#2259#0" expanded="true" />
<element signature="e#2640#2787#0" expanded="true" />
<element signature="e#2786#2787#0" expanded="true" />
<element signature="e#3266#3581#0" expanded="true" />
<element signature="e#3580#3581#0" expanded="true" />
<element signature="e#3668#3669#0" expanded="true" />
<element signature="e#3716#3717#0" expanded="true" />
<element signature="e#538#539#0" expanded="true" />
<element signature="e#569#570#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/NetworkReceiver.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="379">
<caret line="86" column="47" lean-forward="true" selection-start-line="86" selection-start-column="47" selection-end-line="86" selection-end-column="47" />
<state relative-caret-position="3014">
<caret line="156" column="24" lean-forward="false" selection-start-line="156" selection-start-column="24" selection-end-line="156" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/RoomData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="682">
<caret line="31" column="5" lean-forward="false" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/Node.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="264">
<caret line="12" column="51" lean-forward="false" selection-start-line="12" selection-start-column="51" selection-end-line="12" selection-end-column="51" />
<folding>
<element signature="e#284#285#0" expanded="true" />
<element signature="e#315#316#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/MainActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="299">
<caret line="127" column="52" lean-forward="false" selection-start-line="127" selection-start-column="52" selection-end-line="127" selection-end-column="52" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/TimeUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="14" column="29" lean-forward="false" selection-start-line="14" selection-start-column="29" selection-end-line="14" selection-end-column="29" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/WebUtils.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="211">
<caret line="56" column="29" lean-forward="false" selection-start-line="56" selection-start-column="29" selection-end-line="56" selection-end-column="29" />
<folding>
<element signature="e#798#799#0" expanded="true" />
<element signature="e#829#830#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/scorpiomiku/wifitrick/WifiConnect.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="385">
<caret line="133" column="34" lean-forward="true" selection-start-line="133" selection-start-column="34" selection-end-line="133" selection-end-column="34" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#1130#1393#0" expanded="true" />
<element signature="e#1392#1393#0" expanded="true" />
<element signature="e#3806#3807#0" expanded="true" />
<element signature="e#5221#5248#0" expanded="true" />
</folding>
</state>
</provider>

View File

@@ -35,16 +35,6 @@ public class WebUtils {
return instance;
}
public static FormBody getBody(HashMap<String, String> data) {
FormBody.Builder bodyBuilder = new FormBody.Builder();
Set<String> keys = data.keySet();
for (String key : keys) {
bodyBuilder.add(key, data.get(key));
}
return bodyBuilder.build();
}
public static RequestBody getRequestBody(HashMap<String, String> data) {
String body = "";
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
@@ -53,7 +43,6 @@ public class WebUtils {
body += key + "=" + data.get(key) + "&";
}
body = body.substring(0, body.length() - 1);
// Log.d(TAG, "getRequestBody: " + body);
RequestBody requestBody = RequestBody.create(mediaType, body);
return requestBody;
}

View File

@@ -1,7 +1,7 @@
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>

View File

@@ -35,19 +35,6 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="AndroidManifest.xml" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/android-smartband-sdk-sxrblejy2client/AndroidManifest.xml">
<provider editor-type-id="android-manifest">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="132">
<caret line="6" column="12" lean-forward="false" selection-start-line="6" selection-start-column="12" selection-end-line="6" selection-end-column="12" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="build.gradle" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/android-smartband-sdk-sxrblejy2client/build.gradle">
<provider selected="true" editor-type-id="text-editor">
@@ -58,16 +45,6 @@
</provider>
</entry>
</file>
<file leaf-file-name="build.gradle" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="352">
<caret line="16" column="1" lean-forward="false" selection-start-line="16" selection-start-column="1" selection-end-line="16" selection-end-column="1" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="settings.gradle" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/settings.gradle">
<provider selected="true" editor-type-id="text-editor">
@@ -101,11 +78,40 @@
<file leaf-file-name="MainActivity.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/android-smartband-sdk-sxrblejy2client/src/com/sxr/sdk/ble/keepfit/client/MainActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2523">
<caret line="365" column="17" lean-forward="true" selection-start-line="365" selection-start-column="17" selection-end-line="365" selection-end-column="17" />
<state relative-caret-position="433">
<caret line="841" column="35" lean-forward="false" selection-start-line="841" selection-start-column="35" selection-end-line="841" selection-end-column="35" />
<folding>
<element signature="e#21873#22745#0" expanded="true" />
<element signature="e#22744#22745#0" expanded="true" />
<element signature="e#23594#24435#0" expanded="true" />
<element signature="e#24434#24435#0" expanded="true" />
<element signature="e#24483#24807#0" expanded="true" />
<element signature="e#24806#24807#0" expanded="true" />
<element signature="e#30843#30859#0" expanded="true" />
<element signature="e#30903#30922#0" expanded="true" />
<element signature="e#38267#38282#0" expanded="true" />
<element signature="e#51229#51958#0" expanded="true" />
<element signature="e#51957#51958#0" expanded="true" />
<element signature="e#51999#52262#0" expanded="true" />
<element signature="e#52261#52262#0" expanded="true" />
<element signature="e#52601#52852#0" expanded="true" />
<element signature="e#52851#52852#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="activity_main.xml" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/android-smartband-sdk-sxrblejy2client/res/layout/activity_main.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1056">
<caret line="48" column="39" lean-forward="false" selection-start-line="48" selection-start-column="33" selection-end-line="48" selection-end-column="39" />
<folding />
</state>
</provider>
<provider editor-type-id="android-designer2">
<state />
</provider>
</entry>
</file>
<file leaf-file-name="BleDeviceItem.java" pinned="false" current-in-tab="false">
@@ -148,6 +154,11 @@
<find>getCurSportData</find>
<find>id.sca</find>
<find>case</find>
<find>d</find>
<find>断开</find>
<find>Y1</find>
<find>R.id.disconnect</find>
<find>unbind</find>
</findStrings>
</component>
<component name="GradleLocalSettings">
@@ -1943,6 +1954,22 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="PackagesPane" />
<pane id="AndroidView">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="android-smartband-sdk-sxrblejy2" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Gradle Scripts" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.android.AndroidBuildScriptsGroupNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<PATH>
@@ -1989,51 +2016,7 @@
</PATH>
</subPane>
</pane>
<pane id="AndroidView">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="android-smartband-sdk-sxrblejy2" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Gradle Scripts" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.android.AndroidBuildScriptsGroupNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="android-smartband-sdk-sxrblejy2" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="android-smartband-sdk-sxrblejy2client" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.android.AndroidModuleNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="android-smartband-sdk-sxrblejy2" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="android-smartband-sdk-sxrblejy2client" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.android.AndroidModuleNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="java" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.android.AndroidSourceTypeNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="client" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.android.AndroidPsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Scope" />
<pane id="Scratches" />
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
@@ -2126,7 +2109,8 @@
<option name="DEEP_LINK" value="" />
<option name="ACTIVITY_CLASS" value="" />
<method>
<option name="com.android.instantApps.provision.BeforeRunTask" enabled="true" clearCache="false" clearProvisionedDevices="false" myTimestamp="1567046242196" />
<option name="Android.Gradle.BeforeRunTask" enabled="true" />
<option name="com.android.instantApps.provision.BeforeRunTask" enabled="true" clearCache="false" clearProvisionedDevices="false" myTimestamp="1567685636550" />
</method>
</configuration>
<configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Instrumented Tests">
@@ -2173,7 +2157,8 @@
<option name="ADVANCED_PROFILING_ENABLED" value="false" />
</Profilers>
<method>
<option name="com.android.instantApps.provision.BeforeRunTask" enabled="true" clearCache="false" clearProvisionedDevices="false" myTimestamp="1567046242196" />
<option name="Android.Gradle.BeforeRunTask" enabled="true" />
<option name="com.android.instantApps.provision.BeforeRunTask" enabled="true" clearCache="false" clearProvisionedDevices="false" myTimestamp="1567685636550" />
</method>
</configuration>
<configuration default="true" type="Application" factoryName="Application">
@@ -2333,7 +2318,10 @@
</Profilers>
<option name="DEEP_LINK" value="" />
<option name="ACTIVITY_CLASS" value="" />
<method />
<method>
<option name="Android.Gradle.BeforeRunTask" enabled="true" />
<option name="com.android.instantApps.provision.BeforeRunTask" enabled="true" clearCache="false" clearProvisionedDevices="false" myTimestamp="1567685636551" />
</method>
</configuration>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="Android App.android-smartband-sdk-sxrblejy2client" />
@@ -2374,10 +2362,10 @@
<servers />
</component>
<component name="ToolWindowManager">
<frame x="1912" y="-8" width="1936" height="1056" extended-state="7" />
<frame x="1912" y="-8" width="1936" height="1056" extended-state="0" />
<editor active="true" />
<layout>
<window_info id="Android Profiler" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Android Profiler" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.30985916" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Build Variants" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
@@ -2421,6 +2409,102 @@
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/android-smartband-sdk-sxrblejy2client/AndroidManifest.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="132">
<caret line="6" column="12" lean-forward="false" selection-start-line="6" selection-start-column="12" selection-end-line="6" selection-end-column="12" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/android-smartband-sdk-sxrblejy2client/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="440">
<caret line="20" column="34" lean-forward="false" selection-start-line="20" selection-start-column="34" selection-end-line="20" selection-end-column="34" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="352">
<caret line="16" column="1" lean-forward="false" selection-start-line="16" selection-start-column="1" selection-end-line="16" selection-end-column="1" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/settings.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gradle/wrapper/gradle-wrapper.properties">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/local.properties">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/android-smartband-sdk-sxrblejy2client/src/com/sxr/sdk/ble/keepfit/client/BleDeviceItem.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="88">
<caret line="4" column="19" lean-forward="false" selection-start-line="4" selection-start-column="19" selection-end-line="4" selection-end-column="19" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/android-smartband-sdk-sxrblejy2client/src/com/sxr/sdk/ble/keepfit/client/ComparatorBleDeviceItem.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="88">
<caret line="4" column="13" lean-forward="false" selection-start-line="4" selection-start-column="13" selection-end-line="4" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/android-smartband-sdk-sxrblejy2client/src/com/sxr/sdk/ble/keepfit/client/SampleBleService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="66">
<caret line="3" column="13" lean-forward="false" selection-start-line="3" selection-start-column="13" selection-end-line="3" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/android-smartband-sdk-sxrblejy2client/src/com/sxr/sdk/ble/keepfit/client/MainActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="6908">
<caret line="365" column="17" lean-forward="true" selection-start-line="365" selection-start-column="17" selection-end-line="365" selection-end-column="17" />
<folding>
<element signature="e#21873#22745#0" expanded="true" />
<element signature="e#22744#22745#0" expanded="true" />
<element signature="e#23594#24435#0" expanded="true" />
<element signature="e#24434#24435#0" expanded="true" />
<element signature="e#24483#24807#0" expanded="true" />
<element signature="e#24806#24807#0" expanded="true" />
<element signature="e#30843#30859#0" expanded="true" />
<element signature="e#30903#30922#0" expanded="true" />
<element signature="e#38267#38282#0" expanded="true" />
<element signature="e#51229#51958#0" expanded="true" />
<element signature="e#51957#51958#0" expanded="true" />
<element signature="e#51999#52262#0" expanded="true" />
<element signature="e#52261#52262#0" expanded="true" />
<element signature="e#52601#52852#0" expanded="true" />
<element signature="e#52851#52852#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/android-smartband-sdk-sxrblejy2client/AndroidManifest.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="132">
@@ -2433,7 +2517,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="286">
<caret line="13" column="0" lean-forward="false" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@@ -2497,7 +2580,23 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1804">
<caret line="133" column="38" lean-forward="false" selection-start-line="133" selection-start-column="38" selection-end-line="133" selection-end-column="38" />
<folding />
<folding>
<element signature="e#21873#22745#0" expanded="true" />
<element signature="e#22744#22745#0" expanded="true" />
<element signature="e#23594#24435#0" expanded="true" />
<element signature="e#24434#24435#0" expanded="true" />
<element signature="e#24483#24807#0" expanded="true" />
<element signature="e#24806#24807#0" expanded="true" />
<element signature="e#30843#30859#0" expanded="true" />
<element signature="e#30903#30922#0" expanded="true" />
<element signature="e#38267#38282#0" expanded="true" />
<element signature="e#51229#51958#0" expanded="true" />
<element signature="e#51957#51958#0" expanded="true" />
<element signature="e#51999#52262#0" expanded="true" />
<element signature="e#52261#52262#0" expanded="true" />
<element signature="e#52601#52852#0" expanded="true" />
<element signature="e#52851#52852#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
@@ -2513,7 +2612,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="286">
<caret line="13" column="0" lean-forward="false" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@@ -2577,7 +2675,23 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="27544">
<caret line="1252" column="46" lean-forward="false" selection-start-line="1252" selection-start-column="34" selection-end-line="1252" selection-end-column="46" />
<folding />
<folding>
<element signature="e#21873#22745#0" expanded="true" />
<element signature="e#22744#22745#0" expanded="true" />
<element signature="e#23594#24435#0" expanded="true" />
<element signature="e#24434#24435#0" expanded="true" />
<element signature="e#24483#24807#0" expanded="true" />
<element signature="e#24806#24807#0" expanded="true" />
<element signature="e#30843#30859#0" expanded="true" />
<element signature="e#30903#30922#0" expanded="true" />
<element signature="e#38267#38282#0" expanded="true" />
<element signature="e#51229#51958#0" expanded="true" />
<element signature="e#51957#51958#0" expanded="true" />
<element signature="e#51999#52262#0" expanded="true" />
<element signature="e#52261#52262#0" expanded="true" />
<element signature="e#52601#52852#0" expanded="true" />
<element signature="e#52851#52852#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
@@ -2592,7 +2706,6 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="110">
<caret line="5" column="6" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="5" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
@@ -2624,33 +2737,21 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/android-smartband-sdk-sxrblejy2client/res/layout/activity_main.xml">
<provider editor-type-id="android-designer2">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="374">
<caret line="17" column="36" lean-forward="false" selection-start-line="17" selection-start-column="36" selection-end-line="17" selection-end-column="36" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/android-smartband-sdk-sxrblejy2client/res/layout/device_listitem_text.xml">
<provider editor-type-id="android-designer2">
<state />
</provider>
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
<provider editor-type-id="android-designer2">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/android-smartband-sdk-sxrblejy2client/res/values/styles.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="286">
<caret line="13" column="0" lean-forward="false" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
@@ -2697,13 +2798,6 @@
</state>
</provider>
</entry>
<entry file="jar://E:/androidSDK/platforms/android-21/android.jar!/android/content/ContextWrapper.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="299">
<caret line="306" column="25" lean-forward="false" selection-start-line="306" selection-start-column="25" selection-end-line="306" selection-end-column="25" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/android-smartband-sdk-sxrblejy2aidl-release.aar/ceb0acd531a2bd0f655c2792c41b5a25/jars/classes.jar!/com/sxr/sdk/ble/keepfit/aidl/IRemoteService.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="299">
@@ -2743,11 +2837,45 @@
</state>
</provider>
</entry>
<entry file="jar://E:/androidSDK/platforms/android-21/android.jar!/android/content/ContextWrapper.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="299">
<caret line="318" column="16" lean-forward="false" selection-start-line="318" selection-start-column="16" selection-end-line="318" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/android-smartband-sdk-sxrblejy2client/res/layout/activity_main.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1056">
<caret line="48" column="39" lean-forward="false" selection-start-line="48" selection-start-column="33" selection-end-line="48" selection-end-column="39" />
<folding />
</state>
</provider>
<provider editor-type-id="android-designer2">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/android-smartband-sdk-sxrblejy2client/src/com/sxr/sdk/ble/keepfit/client/MainActivity.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2523">
<caret line="365" column="17" lean-forward="true" selection-start-line="365" selection-start-column="17" selection-end-line="365" selection-end-column="17" />
<folding />
<state relative-caret-position="433">
<caret line="841" column="35" lean-forward="false" selection-start-line="841" selection-start-column="35" selection-end-line="841" selection-end-column="35" />
<folding>
<element signature="e#21873#22745#0" expanded="true" />
<element signature="e#22744#22745#0" expanded="true" />
<element signature="e#23594#24435#0" expanded="true" />
<element signature="e#24434#24435#0" expanded="true" />
<element signature="e#24483#24807#0" expanded="true" />
<element signature="e#24806#24807#0" expanded="true" />
<element signature="e#30843#30859#0" expanded="true" />
<element signature="e#30903#30922#0" expanded="true" />
<element signature="e#38267#38282#0" expanded="true" />
<element signature="e#51229#51958#0" expanded="true" />
<element signature="e#51957#51958#0" expanded="true" />
<element signature="e#51999#52262#0" expanded="true" />
<element signature="e#52261#52262#0" expanded="true" />
<element signature="e#52601#52852#0" expanded="true" />
<element signature="e#52851#52852#0" expanded="true" />
</folding>
</state>
</provider>
</entry>

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1567602307103" class="icon" viewBox="0 0 1230 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2082" xmlns:xlink="http://www.w3.org/1999/xlink" width="240.234375" height="200"><defs><style type="text/css"></style></defs><path d="M733.165056 571.7504l20.224-25.9584a131.6352 131.6352 0 0 0-22.6816-184.7808l-155.648-121.6a131.6352 131.6352 0 0 0-184.7808 22.6816L147.129856 573.44a131.6352 131.6352 0 0 0 22.6816 184.7808l155.648 121.6a131.6352 131.6352 0 0 0 184.832-22.7328l80.9984-103.7312" fill="#FDA933" p-id="2083"></path><path d="M585.350656 386.6624l-20.224 25.9584a131.6352 131.6352 0 0 0 22.6816 184.832l155.648 121.5488a131.6352 131.6352 0 0 0 184.7808-22.6816l243.1488-311.296a131.6352 131.6352 0 0 0-22.6816-184.7808l-155.648-121.5488a131.6352 131.6352 0 0 0-184.832 22.6816l-80.9984 103.7312" fill="#FFDCAC" p-id="2084"></path><path d="M550.790656 805.1712l-40.3456-31.488-94.5664 121.0368a102.4 102.4 0 0 1-143.7696 17.6128l-181.5552-141.824a102.4 102.4 0 0 1-17.6128-143.7696l283.648-363.1104a102.4 102.4 0 0 1 143.7696-17.6128l181.5552 141.824a102.4 102.4 0 0 1 17.664 143.7696l-23.6544 30.208 40.3456 31.5392 23.6544-30.208a153.6 153.6 0 0 0-26.4704-215.6544l-181.5552-141.824a153.6 153.6 0 0 0-215.6032 26.4704L32.544256 595.2512a153.6 153.6 0 0 0 26.4704 215.552l181.5552 141.8752a153.6 153.6 0 0 0 215.552-26.4704l94.6176-121.0368z m0 0l-40.3456-31.488-94.5664 121.0368a102.4 102.4 0 0 1-143.7696 17.6128l-181.5552-141.824a102.4 102.4 0 0 1-17.6128-143.7696l283.648-363.1104a102.4 102.4 0 0 1 143.7696-17.6128l181.5552 141.824a102.4 102.4 0 0 1 17.664 143.7696l-23.6544 30.208 40.3456 31.5392 23.6544-30.208a153.6 153.6 0 0 0-26.4704-215.6544l-181.5552-141.824a153.6 153.6 0 0 0-215.6032 26.4704L32.544256 595.2512a153.6 153.6 0 0 0 26.4704 215.552l181.5552 141.8752a153.6 153.6 0 0 0 215.552-26.4704l94.6176-121.0368z" fill="#2A1212" p-id="2085"></path><path d="M639.673856 192.4096l40.3456 31.5392 94.5664-121.0368a102.4 102.4 0 0 1 143.7184-17.664l181.5552 141.824a102.4 102.4 0 0 1 17.664 143.7696l-283.648 363.1104a102.4 102.4 0 0 1-143.7696 17.664l-181.5552-141.824a102.4 102.4 0 0 1-17.664-143.7696l23.6544-30.2592-40.3456-31.5392-23.6544 30.2592a153.6 153.6 0 0 0 26.4704 215.6032l181.5552 141.824a153.6 153.6 0 0 0 215.6032-26.4192l283.6992-363.1104a153.6 153.6 0 0 0-26.4704-215.6032L949.843456 44.9536a153.6 153.6 0 0 0-215.6032 26.4192l-94.5664 121.0368z m0 0l40.3456 31.5392 94.5664-121.0368a102.4 102.4 0 0 1 143.7184-17.664l181.5552 141.824a102.4 102.4 0 0 1 17.664 143.7696l-283.648 363.1104a102.4 102.4 0 0 1-143.7696 17.664l-181.5552-141.824a102.4 102.4 0 0 1-17.664-143.7696l23.6544-30.2592-40.3456-31.5392-23.6544 30.2592a153.6 153.6 0 0 0 26.4704 215.6032l181.5552 141.824a153.6 153.6 0 0 0 215.6032-26.4192l283.6992-363.1104a153.6 153.6 0 0 0-26.4704-215.6032L949.843456 44.9536a153.6 153.6 0 0 0-215.6032 26.4192l-94.5664 121.0368z" fill="#2A1212" p-id="2086"></path></svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,20 @@
package com.oldpeoplehome.dao;
import com.oldpeoplehome.dto.LocationFilter;
import com.oldpeoplehome.entity.Location;
import java.util.List;
/**
* Created By Jiangyuwei on 2019/9/6 11:30
* Description:
*/
public interface LocationDao {
List<Location> findByParent(LocationFilter locationFilter);
List<Location> findByTime(LocationFilter locationFilter);
List<Location> findByParentAndTime(LocationFilter locationFilter);
void insert(Location location);
}

View File

@@ -0,0 +1,64 @@
package com.oldpeoplehome.dto;
import java.sql.Date;
import java.sql.Timestamp;
/**
* Created By Jiangyuwei on 2019/9/6 11:27
* Description:
*/
public class LocationFilter {
private Timestamp startTime;
private Timestamp endTime;
private long parentId;
public LocationFilter() {
}
public LocationFilter(long parentId) {
this.parentId = parentId;
}
public LocationFilter(String startTime, long parentId) {
this.startTime = Timestamp.valueOf(startTime);
this.parentId = parentId;
}
public LocationFilter(String startTime, String endTime, long parentId) {
this.startTime = Timestamp.valueOf(startTime);
this.endTime = Timestamp.valueOf(endTime);
this.parentId = parentId;
}
public Timestamp getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = Timestamp.valueOf(startTime);
}
public void setStartTime(Timestamp startTime) {
this.startTime = startTime;
}
public Timestamp getEndTime() {
return endTime;
}
public void setEndTime(Timestamp endTime) {
this.endTime = endTime;
}
public void setEndTime(String endTime) {
this.endTime = Timestamp.valueOf(endTime);
}
public long getParentId() {
return parentId;
}
public void setParentId(long parentId) {
this.parentId = parentId;
}
}

View File

@@ -0,0 +1,80 @@
package com.oldpeoplehome.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.sql.Timestamp;
/**
* Created By Jiangyuwei on 2019/9/6 11:15
* Description:
*/
public class Location {
private Long parentId;
private Float longitude;
private Float latitude;
private Timestamp time;
public Location() {
}
public Location(Long parentId, Float longitude, Float latitude, Timestamp time) {
this.parentId = parentId;
this.longitude = longitude;
this.latitude = latitude;
this.time = time;
}
public Location(Long parentId, Float longitude, Float latitude, String time) {
this.parentId = parentId;
this.longitude = longitude;
this.latitude = latitude;
this.time = Timestamp.valueOf(time);
}
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public Float getLongitude() {
return longitude;
}
public void setLongitude(Float longitude) {
this.longitude = longitude;
}
public Float getLatitude() {
return latitude;
}
public void setLatitude(Float latitude) {
this.latitude = latitude;
}
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
public Timestamp getTime() {
return time;
}
public void setTime(Timestamp time) {
this.time = time;
}
public void setTime(String time) {
this.time = Timestamp.valueOf(time);
}
@Override
public String toString() {
return "Location{" +
"parentId=" + parentId +
", longitude=" + longitude +
", latitude=" + latitude +
", time=" + time +
'}';
}
}

View File

@@ -0,0 +1,20 @@
package com.oldpeoplehome.service;
import com.oldpeoplehome.dto.LocationFilter;
import com.oldpeoplehome.entity.Location;
import java.util.List;
/**
* Created By Jiangyuwei on 2019/9/6 11:35
* Description:
*/
public interface LocationService {
List<Location> findByParent(LocationFilter locationFilter);
List<Location> findByTime(LocationFilter locationFilter);
List<Location> findByParentAndTime(LocationFilter locationFilter);
void insert(Location location);
}

View File

@@ -0,0 +1,41 @@
package com.oldpeoplehome.service.impl;
import com.oldpeoplehome.dao.LocationDao;
import com.oldpeoplehome.dto.LocationFilter;
import com.oldpeoplehome.entity.Location;
import com.oldpeoplehome.service.LocationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Created By Jiangyuwei on 2019/9/6 11:36
* Description:
*/
@Service
public class LocationServiceImpl implements LocationService {
@Autowired
private LocationDao locationDao;
@Override
public List<Location> findByParent(LocationFilter locationFilter) {
return locationDao.findByParent(locationFilter);
}
@Override
public List<Location> findByTime(LocationFilter locationFilter) {
return locationDao.findByTime(locationFilter);
}
@Override
public List<Location> findByParentAndTime(LocationFilter locationFilter) {
return locationDao.findByParentAndTime(locationFilter);
}
@Override
public void insert(Location location) {
locationDao.insert(location);
}
}

View File

@@ -0,0 +1,61 @@
package com.oldpeoplehome.web;
import com.oldpeoplehome.dto.LocationFilter;
import com.oldpeoplehome.entity.Location;
import com.oldpeoplehome.service.LocationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.List;
import java.util.Map;
/**
* Created By Jiangyuwei on 2019/9/6 13:51
* Description:
*/
@RestController
@RequestMapping("/location")
public class LocationController {
@Autowired
private LocationService locationService;
@RequestMapping("/get/{id}")
@ResponseBody
public List findByParentId(HttpServletRequest request, @PathVariable("id") String id) {
List<Location> list;
String startDate = request.getParameter("start");
String endDate = request.getParameter("end");
if (endDate == null){
if (startDate == null) {
LocationFilter locationFilter = new LocationFilter(Long.valueOf(id));
list = locationService.findByParent(locationFilter);
}
else {
LocationFilter locationFilter = new LocationFilter(startDate, Long.valueOf(id));
list = locationService.findByParentAndTime(locationFilter);
}
}
else{
LocationFilter locationFilter = new LocationFilter(startDate, endDate, Long.valueOf(id));
list = locationService.findByTime(locationFilter);
}
return list;
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public Location add(@RequestParam Map<String, Object> params){
long parentId = Long.valueOf(String.valueOf(params.get("parent")));
float longitude = Float.valueOf(String.valueOf(params.get("longitude")));
float latitude = Float.valueOf(String.valueOf(params.get("latitude")));
String time = String.valueOf(params.get("time"));
Location location = new Location(parentId,longitude,latitude,time);
locationService.insert(location);
return location;
}
}

View File

@@ -1,4 +1,4 @@
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssmtest?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
jdbc.username=root
jdbc.password=
jdbc.password=root

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.oldpeoplehome.dao.LocationDao">
<resultMap id="BaseResultMap" type="com.oldpeoplehome.entity.Location">
<id column="pid" property="parentId" jdbcType="BIGINT"/>
<result column="longitude" property="longitude" jdbcType="BIGINT"/>
<result column="latitude" property="latitude" jdbcType="BIGINT"/>
<result column="time" property="time" jdbcType="TIMESTAMP"/>
</resultMap>
<select id="findByParent" resultMap="BaseResultMap" parameterType="com.oldpeoplehome.dto.LocationFilter">
select *
from location where pid = #{parentId}
</select>
<select id="findByTime" resultMap="BaseResultMap" parameterType="com.oldpeoplehome.dto.LocationFilter">
select *
from location where pid = #{parentId} and DATE_FORMAT(time,'%Y-%m-%d %T') between #{startTime} and #{endTime}
</select>
<select id="findByParentAndTime" resultMap="BaseResultMap" parameterType="com.oldpeoplehome.dto.LocationFilter">
select l.*, p.* from location l left join parent p on l.pid = p.id where l.pid = #{parentId} and l.date = #{startTime}
</select>
<insert id="insert" parameterType="Location">
insert into location(pid, longitude,latitude, time)
values (#{parentId}, #{longitude},#{latitude}, #{time})
</insert>
</mapper>

View File

@@ -106,4 +106,12 @@ CREATE TABLE `admin` (
PRIMARY KEY (`account`),
UNIQUE INDEX `index_acc`(`account`) USING BTREE
);
CREATE TABLE `location` (
`pid` bigint(0) NOT NULL,
`longitude` float NULL COMMENT '经度',
`latitude` float NULL COMMENT '纬度',
`time` datetime(0) NULL,
INDEX `date`(`time`) USING BTREE,
CONSTRAINT `pid_2` FOREIGN KEY (`pid`) REFERENCES `parent` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
);

View File

@@ -17,7 +17,7 @@ public class HeartRateServiceTest extends BaseTest {
@Test
public void test(){
HeartRate heartRate = new HeartRate(1, "2019-8-22 10:00:00", 20.3, 21,21);
HeartRate heartRate = new HeartRate(1, "2019-8-22 10:00:00", 1,20.3, 21,21);
heartRateService.insert(heartRate);
// HeartRateFilter heartRateFilter = new HeartRateFilter(1);
// System.out.println(heartRateService.findByParent(heartRateFilter));

View File

@@ -0,0 +1,26 @@
package com.oldpeoplehome.service;
import com.oldpeoplehome.BaseTest;
import com.oldpeoplehome.dto.LocationFilter;
import com.oldpeoplehome.entity.Location;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
/**
* Created By Jiangyuwei on 2019/9/6 11:38
* Description:
*/
public class LocationServiceTest extends BaseTest {
@Autowired
private LocationService locationService;
@Test
public void test(){
// Location location = new Location(new Long(1),13.2323f,123.45f,"2019-4-5 19:2:2");
// locationService.insert(location);
LocationFilter locationFilter = new LocationFilter("2019-4-5 19:2:7","2019-4-6 19:2:2",1);
System.out.println(locationService.findByTime(locationFilter));
}
}

View File

@@ -77,7 +77,7 @@
| Parent | /parent/add | POST | 添加老人 | parentSex老人性别parentPassword老人密码parentAccount账号parentName姓名parentBirth生日parentLongId身份证 |
| Parent | /parent/update/1 | POST | 更新id=1的老人信息 | **要更新的字段严格按照命名格式传参**比如name就传入parentName |
| Parent | /parent/delete/1 | DELETE | 删除id=1的老人 | |
| Parent | /parent/login | POST | 老人登陆 | 登陆成功返回老人的所有信息登陆失败返回null不返回 account:bao,password:123 |
| Parent | /parent/login | POST | 老人登陆 | 登陆成功返回老人的所有信息登陆失败返回null不返回 account:bao,password:123 |
| Child | /child/get/1 | GET | 查询id=1的子女 | |
| Child | /child/get_longid/111 | GET | 查询身份证=111的child的详细信息 | |
| Child | /child/get_name/小蒋 | GET | 查询姓名=小蒋的child的详细信息 | |
@@ -85,7 +85,7 @@
| Child | /child/add | POST | | childSexchildPasswordchildAccountchildNamechildLongIdchildPhone |
| Child | /child/update/1 | POST | 更新id=1的子女信息 | **要更新的字段严格按照命名格式传参**比如name就传入parentName |
| Child | /child/delete/1 | DELETE | 删除id=1的子女信息 | |
| Child | /child/login | POST | 登陆子女 | 登陆成功返回子女信息,失败返回空(不返回) account:bao,password:123 |
| Child | /child/login | POST | 登陆子女 | 登陆成功返回子女信息,失败返回空(不返回) account:bao,password:123 |
| ChildAndParent | /child_parent/child/1 | GET | 查看子女id=1对应的老人 | |
| ChildAndParent | /child_parent/parent/1 | GET | 查看老人id=1对应的子女 | |
| ChildAndParent | /child_parent/add | POST | 添加老人子女对应关系 | 子女idchild老人idparent关系relation |
@@ -97,3 +97,5 @@
| Sleep | /sleep/add | POST | 添加老人睡眠信息 | parentdatedeeplightawake |
| HeartRate | /heartrate/get/1 | GET | 查找id=1的心率信息 | 参数格式yyyy-mm-dd hh-mm-ss 加上start参数可以查看某一时刻。加上start和end参数可以查看某一时间段。 |
| HeartRate | /heartrate/add | POST | 添加老人睡眠信息 | parentIdtimerate1(收缩压)rate2(舒张压)oxy(血氧) |
| Location | /location/get/1 | GET | 查找id=1的老人位置信息 | 参数格式yyyy-mm-dd hh-mm-ss 加上start参数可以查看某一时刻。加上start和end参数可以查看某一时间段。 |
| Location | /location/add | POST | 添加老人位置信息 | parentlongitudelatitudetime。添加成功返回Location对象 |

View File

@@ -5,8 +5,9 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Old People Home - 老人注册</title>
<link rel="icon" type="image/png" sizes="16x16" href="icons/favicon.png">
<link rel="stylesheet" href="addPeople_style.css">
<link rel="icon" type="image/png" sizes="16x16" href="css/icons/favicon.png">
<link rel="stylesheet" href="css/addPeople_style.css">
<script src="js/addPeople.js"></script>
</head>
<body>
<div class="box1">
@@ -17,15 +18,15 @@
<span class="upper">H</span>
<span class="lower">ome</span>
</div>
<div class="register_1">
<div class="register_1" id="register_1" style="display: block">
<h3>老人注册</h3>
<form>
<input type="text" placeholder="账号"><br>
<input type="password" placeholder="密码"><br>
<input type="button" value="next" id="next">
<input type="button" value="next" id="next" onclick="changeDiv()">
</form>
</div>
<div class="register_2">
<div class="register_2" id="register_2" style="display: none">
<h3>老人注册</h3>
<form action="firstPage.html">
<input type="text" placeholder="姓名"><br>

View File

@@ -39,8 +39,6 @@ body {
position: absolute;
top: 75px;
left: 850px;
/* 用js写个隐藏跳转 */
display: none;
}
.register_1 h3 {
padding: 0 0 0 30px;
@@ -90,7 +88,6 @@ body {
position: absolute;
top: 75px;
left: 850px;
/* display: none; */
}
.register_2 h3 {
padding: 0 0 0 30px;

View File

Before

Width:  |  Height:  |  Size: 338 B

After

Width:  |  Height:  |  Size: 338 B

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 813 B

After

Width:  |  Height:  |  Size: 813 B

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

Before

Width:  |  Height:  |  Size: 401 B

After

Width:  |  Height:  |  Size: 401 B

View File

Before

Width:  |  Height:  |  Size: 3.9 MiB

After

Width:  |  Height:  |  Size: 3.9 MiB

View File

Before

Width:  |  Height:  |  Size: 3.7 MiB

After

Width:  |  Height:  |  Size: 3.7 MiB

View File

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

View File

Before

Width:  |  Height:  |  Size: 2.1 MiB

After

Width:  |  Height:  |  Size: 2.1 MiB

View File

Before

Width:  |  Height:  |  Size: 1.9 MiB

After

Width:  |  Height:  |  Size: 1.9 MiB

View File

Before

Width:  |  Height:  |  Size: 273 KiB

After

Width:  |  Height:  |  Size: 273 KiB

View File

Before

Width:  |  Height:  |  Size: 2.6 MiB

After

Width:  |  Height:  |  Size: 2.6 MiB

View File

@@ -5,8 +5,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Old People Home - 老人注销</title>
<link rel="icon" type="image/png" sizes="16x16" href="icons/favicon.png">
<link rel="stylesheet" href="deletePeople_style.css">
<link rel="icon" type="image/png" sizes="16x16" href="css/icons/favicon.png">
<link rel="stylesheet" href="css/deletePeople_style.css">
</head>
<body>
<div class="box1">

View File

@@ -5,8 +5,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Old People Home</title>
<link rel="icon" type="image/png" sizes="16x16" href="icons/favicon.png">
<link rel="stylesheet" href="firstPage_style.css">
<link rel="icon" type="image/png" sizes="16x16" href="css/icons/favicon.png">
<link rel="stylesheet" href="css/firstPage_style.css">
</head>
<body>
<div class="box1">

13
web/html/js/addPeople.js Normal file
View File

@@ -0,0 +1,13 @@
function changeDiv() {
register_1 = document.getElementById("register_1")
register_2 = document.getElementById("register_2")
if(register_1.style.display === "block"&&register_2.style.display === "none"){
register_1.style.display = "none"
register_2.style.display = "block"
console.log(register_1.style.display)
}
else if(register_1.style.display === "none"&&register_2.style.display === "block") {
register_1.style.display = "block"
register_2.style.display = "none"
}
}

26
web/html/js/login.js Normal file
View File

@@ -0,0 +1,26 @@
var http = require('http');
// 用于请求的选项
var options = {
host: '39.105.65.209',
port: '8080',
path: '/login.html'
};
// 处理响应的回调函数
var callback = function (response) {
// 不断更新数据
var body = '';
response.on('data',function (data) {
body +=data;
});
response.on('end',function () {
// 数据接收完成
console.log(body);
});
}
// 向服务器端发送请求
var request = http.request(options,callback);
request.end();

View File

@@ -5,8 +5,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Old People Home - 个人中心</title>
<link rel="icon" type="image/png" sizes="16x16" href="icons/favicon.png">
<link rel="stylesheet" href="personal_style.css">
<link rel="icon" type="image/png" sizes="16x16" href="css/icons/favicon.png">
<link rel="stylesheet" href="css/personal_style.css">
</head>
<body>
<div class="box1">
@@ -28,7 +28,8 @@
</ul>
</div>
<div class="background">
<form action="login.html">
<!-- js跳转 -->
<form action="">
<div class="pic">
<a href="#"></a>
</div>
@@ -37,7 +38,7 @@
<span><p>root</p></span>
</div>
<div class="logout">
<input type="submit" value="安全退出">
<input type="submit" value="安全退出" href="login.html">
</div>
</form>
</div>

View File

@@ -5,8 +5,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Old People Home - 查看</title>
<link rel="icon" type="image/png" sizes="16x16" href="icons/favicon.png">
<link rel="stylesheet" href="views_style.css">
<link rel="icon" type="image/png" sizes="16x16" href="css/icons/favicon.png">
<link rel="stylesheet" href="css/views_style.css">
</head>
<body>
<div class="box1">

View File

@@ -4,8 +4,10 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>管理员登录</title>
<link rel="stylesheet" href="login_style.css">
<title>Old People Home - 管理员登录</title>
<link rel="icon" type="image/png" sizes="16x16" href="html/css/icons/favicon.png">
<link rel="stylesheet" href="html/css/login_style.css">
<!-- <script src="html/js/login.js"></script> -->
</head>
<body>
<div>
@@ -13,7 +15,7 @@
<div>
<p id="title_1">管理员登录</p>
<div>
<form action="firstPage.html" id="name">
<form action="html/firstPage.html" id="name" >
<input type="text" name="name" placeholder="用户名" autofocus><br><br><br>
<input type="password" name="password" placeholder="密码"><br><br><br>
<input type="submit" id="submit" value="OK">

34
web/server.js Normal file
View File

@@ -0,0 +1,34 @@
var http = require('http');
var fs = require('fs');
var url = require('url');
// 创建服务器
http.createServer(function (request, response) {
// 解析请求,包括文件名
var pathname = url.parse(request.url).pathname;
// 输出请求的文件名
console.log("Request for" + pathname + "received.");
// 从文件系统中读取请求的文件内容
fs.readFile(pathname.substr(1), function (error, data) {
if(error){
console.log(error);
// HTTP状态码404NOT FOUND
// Content Typetext/html
response.writeHead(404,{'Content-Type': 'text/html'});
}else{
// HTTP 状态码200OK
// Content Type: text/html
response.writeHead(200,{'Content-Type': 'text/html'});
console.log("11111");
// 响应文件内容
response.write(data.toString());
}
// 发送响应数据
response.end();
});
}).listen(8080);
console.log('server running at http://39.105.65.209:8080/');