diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f4eb803..850eebb 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -98,8 +98,7 @@
android:screenOrientation="sensorPortrait" />
+ android:launchMode="singleTask" />
diff --git a/app/src/main/java/com/uiui/aios/activity/EmergencyActivity.java b/app/src/main/java/com/uiui/aios/activity/EmergencyActivity.java
index edaf521..744fe71 100644
--- a/app/src/main/java/com/uiui/aios/activity/EmergencyActivity.java
+++ b/app/src/main/java/com/uiui/aios/activity/EmergencyActivity.java
@@ -14,14 +14,20 @@ import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
import com.tencent.mmkv.MMKV;
import com.uiui.aios.R;
import com.uiui.aios.bean.BaseResponse;
+import com.uiui.aios.bean.SOSSetting;
+import com.uiui.aios.disklrucache.CacheHelper;
import com.uiui.aios.manager.AmapManager;
import com.uiui.aios.network.NetInterfaceManager;
+import com.uiui.aios.network.URLAddress;
import com.uiui.aios.receiver.BootReceiver;
import com.uiui.aios.utils.ToastUtil;
+import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -45,13 +51,15 @@ public class EmergencyActivity extends AppCompatActivity {
private String TAG = EmergencyActivity.class.getSimpleName();
private boolean needDial = false;
private boolean isCalling = false;
- private List phoneListSet;
+ private List phoneListSet;
+ private CacheHelper mCacheHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.e(TAG, "onCreate: ");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_emergency);
+ mCacheHelper = new CacheHelper(this);
ButterKnife.bind(this);
//发送紧急广播
@@ -66,9 +74,19 @@ public class EmergencyActivity extends AppCompatActivity {
// return;
// }
- String setting_sos = Settings.System.getString(getContentResolver(), "setting_sos");
- if (TextUtils.isEmpty(setting_sos)) return;
- phoneListSet = new ArrayList<>(Arrays.asList(setting_sos.split(",")));
+ String jsonString = mCacheHelper.getAsString(URLAddress.GET_SETTINGS);
+ //为 "" 是已经请求成功的
+ if (jsonString == null) {
+ return;
+ }
+ Gson gson = new Gson();
+ Type type = new TypeToken>() {
+ }.getType();
+ List setting_sos = gson.fromJson(jsonString, type);
+ if (setting_sos == null || setting_sos.size() == 0) {
+ return;
+ }
+ phoneListSet = setting_sos;
Log.e(TAG, "onCreate: " + phoneListSet);
final Long time = 3L;
@@ -111,7 +129,7 @@ public class EmergencyActivity extends AppCompatActivity {
});
needDial = true;
Intent intent1 = new Intent(Intent.ACTION_CALL);
- Uri data = Uri.parse("tel:" + phoneListSet.get(0));
+ Uri data = Uri.parse("tel:" + phoneListSet.get(0).getMobile());
intent1.setData(data);
startActivity(intent1);
isCalling = true;
@@ -154,7 +172,8 @@ public class EmergencyActivity extends AppCompatActivity {
@Override
public void run() {
Intent intent1 = new Intent(Intent.ACTION_CALL);
- Uri data = Uri.parse("tel:" + phoneListSet.get(0));
+ String phone = phoneListSet.get(0).getMobile();
+ Uri data = Uri.parse("tel:" + phone);
intent1.setData(data);
startActivity(intent1);
isCalling = true;
diff --git a/app/src/main/java/com/uiui/aios/activity/main/MainPresenter.java b/app/src/main/java/com/uiui/aios/activity/main/MainPresenter.java
index 07fd7f0..72304bb 100644
--- a/app/src/main/java/com/uiui/aios/activity/main/MainPresenter.java
+++ b/app/src/main/java/com/uiui/aios/activity/main/MainPresenter.java
@@ -1,6 +1,7 @@
package com.uiui.aios.activity.main;
import android.content.Context;
+import android.content.Intent;
import android.text.TextUtils;
import android.util.Log;
@@ -10,6 +11,7 @@ import com.trello.rxlifecycle4.android.ActivityEvent;
import com.uiui.aios.BuildConfig;
import com.uiui.aios.bean.BaseResponse;
import com.uiui.aios.bean.NetDesktopIcon;
+import com.uiui.aios.bean.SOSSetting;
import com.uiui.aios.network.NetInterfaceManager;
import com.uiui.aios.utils.ApkUtils;
import com.uiui.aios.utils.AppUsedTimeUtils;
@@ -55,9 +57,11 @@ public class MainPresenter implements MainContact.Presenter {
@Override
public void getSystemSettings() {
NetInterfaceManager.getInstance().getSystemSettings(true, getLifecycle(), new NetInterfaceManager.SosNumberCallback() {
- @Override
- public void setSosNumber(String json) {
+ @Override
+ public void setSosNumber(List setting_sos) {
+ Intent intent = new Intent("setting_sos");
+ mContext.sendBroadcast(intent);
}
@Override
diff --git a/app/src/main/java/com/uiui/aios/activity/weather/WeatherActivity.java b/app/src/main/java/com/uiui/aios/activity/weather/WeatherActivity.java
index 54868ad..af0b397 100644
--- a/app/src/main/java/com/uiui/aios/activity/weather/WeatherActivity.java
+++ b/app/src/main/java/com/uiui/aios/activity/weather/WeatherActivity.java
@@ -1,5 +1,6 @@
package com.uiui.aios.activity.weather;
+import android.content.res.Configuration;
import android.content.res.Resources;
import android.view.View;
import android.widget.ImageView;
@@ -40,10 +41,14 @@ public class WeatherActivity extends BaseActivity implements WeatherContact.Weat
mPresenter.attachView(this);
mPresenter.setLifecycle(lifecycleSubject);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
- linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
Resources resources = getResources();
+ if (resources.getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
+ linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
+ rv_weather.addItemDecoration(new HorizontalItemDecoration(30, this));//10表示10dp
+ } else {
+ linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
+ }
rv_weather.setLayoutManager(linearLayoutManager);
- rv_weather.addItemDecoration(new HorizontalItemDecoration(30, this));//10表示10dp
// rv_weather.setLayoutManager(new GridLayoutManager(this, 3));
// rv_weather.addItemDecoration(new RecyclerItemDecoration(ScreenUtils.dp2px(resources, 10), ScreenUtils.dp2px(resources, 10), 3));
mWeatherDayApdapter = new WeatherDayApdapter();
diff --git a/app/src/main/java/com/uiui/aios/adapter/SOSNnmberAdapter.java b/app/src/main/java/com/uiui/aios/adapter/SOSNnmberAdapter.java
index 8cb8f54..ec73c9c 100644
--- a/app/src/main/java/com/uiui/aios/adapter/SOSNnmberAdapter.java
+++ b/app/src/main/java/com/uiui/aios/adapter/SOSNnmberAdapter.java
@@ -13,15 +13,16 @@ import androidx.recyclerview.widget.RecyclerView;
import com.uiui.aios.R;
import com.uiui.aios.activity.EmergencyActivity;
+import com.uiui.aios.bean.SOSSetting;
import java.util.List;
public class SOSNnmberAdapter extends RecyclerView.Adapter {
- private List phoneNumberList;
+ private List phoneNumberList;
private Context mContext;
- public void setPhoneNumberList(List phoneList) {
- this.phoneNumberList = phoneList;
+ public void setPhoneNumberList(List sosSettingList) {
+ this.phoneNumberList = sosSettingList;
notifyDataSetChanged();
}
@@ -35,11 +36,11 @@ public class SOSNnmberAdapter extends RecyclerView.Adapter {
Intent intent = new Intent(mContext, EmergencyActivity.class);
- intent.putExtra("setting_sos", phone);
+ intent.putExtra("setting_sos", sosSetting.getMobile());
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
diff --git a/app/src/main/java/com/uiui/aios/bean/SOSSetting.java b/app/src/main/java/com/uiui/aios/bean/SOSSetting.java
new file mode 100644
index 0000000..152bc03
--- /dev/null
+++ b/app/src/main/java/com/uiui/aios/bean/SOSSetting.java
@@ -0,0 +1,64 @@
+package com.uiui.aios.bean;
+
+import androidx.annotation.NonNull;
+
+import com.google.gson.Gson;
+import com.google.gson.JsonParser;
+
+import java.io.Serializable;
+
+public class SOSSetting implements Serializable {
+ private static final long serialVersionUID = 8814155739557674021L;
+
+ int id;
+ String name;//名称
+ int is_urgent;//是否紧急联系人 0否1是
+ String mobile;//手机号
+ String avatar;//头像
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getIs_urgent() {
+ return is_urgent;
+ }
+
+ public void setIs_urgent(int is_urgent) {
+ this.is_urgent = is_urgent;
+ }
+
+ public String getMobile() {
+ return mobile;
+ }
+
+ public void setMobile(String mobile) {
+ this.mobile = mobile;
+ }
+
+ public String getAvatar() {
+ return avatar;
+ }
+
+ public void setAvatar(String avatar) {
+ this.avatar = avatar;
+ }
+
+ @NonNull
+ @Override
+ public String toString() {
+ return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString();
+ }
+}
diff --git a/app/src/main/java/com/uiui/aios/bean/SystemSettings.java b/app/src/main/java/com/uiui/aios/bean/SystemSettings.java
index 25c4725..e4c42ce 100644
--- a/app/src/main/java/com/uiui/aios/bean/SystemSettings.java
+++ b/app/src/main/java/com/uiui/aios/bean/SystemSettings.java
@@ -5,6 +5,7 @@ import com.google.gson.Gson;
import com.google.gson.JsonParser;
import java.io.Serializable;
+import java.util.List;
public class SystemSettings implements Serializable {
@@ -36,7 +37,7 @@ public class SystemSettings implements Serializable {
int qch_restore;
int setting_browserInput;
int dev_mode;
- String setting_sos;
+ List setting_sos;
String setting_volume;
String setting_luminance;
String setting_typeface;
@@ -261,11 +262,11 @@ public class SystemSettings implements Serializable {
this.setting_hotspot = setting_hotspot;
}
- public String getSetting_sos() {
+ public List getSetting_sos() {
return setting_sos;
}
- public void setSetting_sos(String setting_sos) {
+ public void setSetting_sos(List setting_sos) {
this.setting_sos = setting_sos;
}
diff --git a/app/src/main/java/com/uiui/aios/fragment/CustomFragment.java b/app/src/main/java/com/uiui/aios/fragment/CustomFragment.java
index 344575b..90d85ef 100644
--- a/app/src/main/java/com/uiui/aios/fragment/CustomFragment.java
+++ b/app/src/main/java/com/uiui/aios/fragment/CustomFragment.java
@@ -34,6 +34,7 @@ import com.amap.api.location.AMapLocationListener;
import com.blankj.utilcode.util.NetworkUtils;
import com.bumptech.glide.Glide;
import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
import com.qweather.sdk.bean.base.Code;
import com.qweather.sdk.bean.base.Lang;
import com.qweather.sdk.bean.base.Unit;
@@ -54,12 +55,15 @@ import com.uiui.aios.bean.AlarmClockData;
import com.uiui.aios.bean.AlarmItem;
import com.uiui.aios.bean.BaseResponse;
import com.uiui.aios.bean.HealthCode;
+import com.uiui.aios.bean.SOSSetting;
import com.uiui.aios.bean.SnInfo;
import com.uiui.aios.bean.UserAvatarInfo;
import com.uiui.aios.dialog.SingleDialog;
+import com.uiui.aios.disklrucache.CacheHelper;
import com.uiui.aios.manager.AmapManager;
import com.uiui.aios.alarm.AlarmUtils;
import com.uiui.aios.network.NetInterfaceManager;
+import com.uiui.aios.network.URLAddress;
import com.uiui.aios.tpush.MessageReceiver;
import com.uiui.aios.utils.ApkUtils;
import com.uiui.aios.utils.AppUtil;
@@ -69,6 +73,7 @@ import com.uiui.aios.utils.ToastUtil;
import com.uiui.aios.utils.Utils;
import java.lang.reflect.Method;
+import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -148,6 +153,7 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
private MMKV mMMKV;
private Activity mContext;
private ContentResolver mCRv;
+ private CacheHelper mCacheHelper;
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
@@ -323,6 +329,7 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
// Inflate the layout for this fragment
rootView = inflater.inflate(R.layout.fragment_custom, container, false);
mContext = (Activity) rootView.getContext();
+ mCacheHelper = new CacheHelper(mContext);
mCRv = mContext.getContentResolver();
ButterKnife.bind(this, rootView);
initView();
@@ -442,7 +449,7 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
private void checkSosNumber() {
NetInterfaceManager.getInstance().getSystemSettings(new NetInterfaceManager.SosNumberCallback() {
@Override
- public void setSosNumber(String json) {
+ public void setSosNumber(List setting_sos) {
Intent intent = new Intent(mContext, EmergencyActivity.class);
// intent.putExtra("setting_sos", phone);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
@@ -565,15 +572,24 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
}
public void setSosNumber() {
- String setting_sos = Settings.System.getString(mCRv, "setting_sos");
- if (TextUtils.isEmpty(setting_sos)) {
-// rv_sos.setVisibility(View.GONE);
+ String jsonString = mCacheHelper.getAsString(URLAddress.GET_SETTINGS);
+ //为 "" 是已经请求成功的
+ if (jsonString == null) {
+ // rv_sos.setVisibility(View.GONE);
// iv_sos.setVisibility(View.VISIBLE);
} else {
-// rv_sos.setVisibility(View.VISIBLE);
+ Gson gson = new Gson();
+ Type type = new TypeToken>() {
+ }.getType();
+ List setting_sos = gson.fromJson(jsonString, type);
+ if (setting_sos == null || setting_sos.size() == 0) {
+ // rv_sos.setVisibility(View.VISIBLE);
// iv_sos.setVisibility(View.GONE);
- List phoneList = new ArrayList<>(Arrays.asList(setting_sos.split(",")));
- sosNnmberAdapter.setPhoneNumberList(phoneList);
+ sosNnmberAdapter.setPhoneNumberList(setting_sos);
+ } else {
+ // rv_sos.setVisibility(View.GONE);
+// iv_sos.setVisibility(View.VISIBLE);
+ }
}
}
diff --git a/app/src/main/java/com/uiui/aios/network/NetInterfaceManager.java b/app/src/main/java/com/uiui/aios/network/NetInterfaceManager.java
index 40da500..1b15e36 100644
--- a/app/src/main/java/com/uiui/aios/network/NetInterfaceManager.java
+++ b/app/src/main/java/com/uiui/aios/network/NetInterfaceManager.java
@@ -20,6 +20,7 @@ import com.uiui.aios.bean.DemandBean;
import com.uiui.aios.bean.GoodsInfo;
import com.uiui.aios.bean.HealthCode;
import com.uiui.aios.bean.NetDesktopIcon;
+import com.uiui.aios.bean.SOSSetting;
import com.uiui.aios.bean.SnInfo;
import com.uiui.aios.bean.SystemSettings;
import com.uiui.aios.bean.UserAvatarInfo;
@@ -787,7 +788,7 @@ public class NetInterfaceManager {
}
public interface SosNumberCallback {
- void setSosNumber(String json);
+ void setSosNumber(List setting_sos);
void setEmpty();
@@ -808,10 +809,10 @@ public class NetInterfaceManager {
getSystemSettings(lifecycle, callback);
} else {
Gson gson = new Gson();
- Type type = new TypeToken() {
+ Type type = new TypeToken>() {
}.getType();
- String setting_sos = gson.fromJson(jsonString, type);
- if (TextUtils.isEmpty(setting_sos)) {
+ List setting_sos = gson.fromJson(jsonString, type);
+ if (setting_sos == null || setting_sos.size() == 0) {
if (callback != null) callback.setEmpty();
} else {
if (callback != null) callback.setSosNumber(setting_sos);
@@ -852,12 +853,12 @@ public class NetInterfaceManager {
mMMKV.encode("is_health", systemSettings.getIs_health());
mMMKV.encode("is_shopping", systemSettings.getIs_shopping());
mMMKV.encode("is_info", systemSettings.getIs_info());
- String setting_sos = systemSettings.getSetting_sos();
- if (TextUtils.isEmpty(setting_sos)) {
+ List setting_sos = systemSettings.getSetting_sos();
+ if (setting_sos == null || setting_sos.size() == 0) {
mCacheHelper.put(URLAddress.GET_SETTINGS, "");
if (callback != null) callback.setEmpty();
} else {
- mCacheHelper.put(URLAddress.GET_SETTINGS, setting_sos);
+ mCacheHelper.put(URLAddress.GET_SETTINGS, GsonUtils.toJsonString(setting_sos));
if (callback != null) callback.setSosNumber(setting_sos);
}
} else {
@@ -869,11 +870,21 @@ public class NetInterfaceManager {
@Override
public void onError(@NonNull Throwable e) {
Log.e("getSystemSettings", "onError: " + e.getMessage());
- String setting_sos = mCacheHelper.getAsString(URLAddress.GET_SETTINGS);
- if (TextUtils.isEmpty(setting_sos)) {
+ String jsonString = mCacheHelper.getAsString(URLAddress.GET_SETTINGS);
+ //为 "" 是已经请求成功的
+ if (jsonString == null) {
if (callback != null) callback.setEmpty();
} else {
- if (callback != null) callback.setSosNumber(setting_sos);
+ Gson gson = new Gson();
+ Type type = new TypeToken>() {
+ }.getType();
+ List setting_sos = gson.fromJson(jsonString, type);
+ if (setting_sos == null || setting_sos.size() == 0) {
+ if (callback != null) callback.setEmpty();
+ } else {
+ if (callback != null) callback.setSosNumber(setting_sos);
+ }
+ if (callback != null) callback.onComplete();
}
onComplete();
}
diff --git a/app/src/main/res/layout/item_weather.xml b/app/src/main/res/layout-land/item_weather.xml
similarity index 100%
rename from app/src/main/res/layout/item_weather.xml
rename to app/src/main/res/layout-land/item_weather.xml
diff --git a/app/src/main/res/layout-port/item_weather.xml b/app/src/main/res/layout-port/item_weather.xml
new file mode 100644
index 0000000..df7047c
--- /dev/null
+++ b/app/src/main/res/layout-port/item_weather.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d2ba573..9657491 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,5 +1,5 @@
- 桌面OS
+ 老人OS系统
Hello blank fragment