version:3.5

fix:
update:优化退出,增加闹钟
This commit is contained in:
2023-05-29 10:21:55 +08:00
parent 2a0fa9f4dc
commit 3e440de562
124 changed files with 6897 additions and 1266 deletions

View File

@@ -12,7 +12,8 @@ import com.trello.rxlifecycle4.android.ActivityEvent;
import com.trello.rxlifecycle4.android.FragmentEvent;
import com.uiuios.aios.alarm.AlarmUtils;
import com.uiuios.aios.bean.ActivityBean;
import com.uiuios.aios.bean.AlarmClockData;
import com.uiuios.aios.alarm.AlarmClockData;
import com.uiuios.aios.bean.AlarmClockId;
import com.uiuios.aios.bean.ArticleInfo;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.Contact;
@@ -26,10 +27,15 @@ import com.uiuios.aios.bean.UserAvatarInfo;
import com.uiuios.aios.bean.UserId;
import com.uiuios.aios.config.CommonConfig;
import com.uiuios.aios.disklrucache.CacheHelper;
import com.uiuios.aios.gson.GsonUtils;
import com.uiuios.aios.manager.ConnectManager;
import com.uiuios.aios.manager.ConnectMode;
import com.uiuios.aios.network.api.ActivityListApi;
import com.uiuios.aios.network.api.AlarmClockAddApi;
import com.uiuios.aios.network.api.AlarmClockApi;
import com.uiuios.aios.network.api.AlarmClockDeleteApi;
import com.uiuios.aios.network.api.AlarmClockEditApi;
import com.uiuios.aios.network.api.AlarmClockQueryApi;
import com.uiuios.aios.network.api.AppUsageRecordApi;
import com.uiuios.aios.network.api.ArticleListApi;
import com.uiuios.aios.network.api.DemandListApi;
@@ -50,7 +56,6 @@ import com.uiuios.aios.network.api.UpdateAppIconApi;
import com.uiuios.aios.network.api.UpdateDesktopApi;
import com.uiuios.aios.network.api.UserInfoControl;
import com.uiuios.aios.network.interceptor.RepeatRequestInterceptor;
import com.uiuios.aios.utils.GsonUtils;
import com.uiuios.aios.utils.Utils;
import java.io.File;
@@ -182,14 +187,6 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread());
}
public Observable<BaseResponse<List<AlarmClockData>>> getAlarmClockObservable() {
return mRetrofit
.create(AlarmClockApi.class)
.getAlarmClockApiApi(Utils.getSerial())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
public Observable<BaseResponse> getRunningAppObservable(String json) {
return mRetrofit.create(RunNewApp.class)
.sendRunningInfo(Utils.getSerial(), json)
@@ -274,6 +271,46 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread());
}
/*
*闹钟相关
*/
public Observable<BaseResponse<List<AlarmClockData>>> getAlarmClockObservable() {
return mRetrofit
.create(AlarmClockApi.class)
.getAlarmClockApiApi(Utils.getSerial())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
public Observable<BaseResponse<AlarmClockId>> getAlarmClockAddObservable(Map<String, String> params, MultipartBody.Part body) {
return mRetrofit.create(AlarmClockAddApi.class)
.addAlarmClock(params, body)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
public Observable<BaseResponse> getAlarmClockEditObservable(Map<String, String> params, MultipartBody.Part body) {
return mRetrofit.create(AlarmClockEditApi.class)
.editAlarmClock(params, body)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
public Observable<BaseResponse<AlarmClockData>> getAlarmClockByIdObservable(int id) {
return mRetrofit.create(AlarmClockQueryApi.class)
.getAlarmClockById(Utils.getSerial(), id)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
public Observable<BaseResponse> deleteAlarmClockObservable(int id) {
return mRetrofit.create(AlarmClockDeleteApi.class)
.alarmClockDelete(Utils.getSerial(), id)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
public interface onCompleteCallback {
void onComplete();
}
@@ -321,7 +358,7 @@ public class NetInterfaceManager {
Log.e("getUserID", "onNext: " + userIdBaseResponse);
if (userIdBaseResponse.code == 200) {
UserId userId = userIdBaseResponse.data;
mCacheHelper.put(UrlAddress.GET_USER_ID, GsonUtils.toJsonString(userId));
mCacheHelper.put(UrlAddress.GET_USER_ID, GsonUtils.toJSONString(userId));
mMMKV.encode("USER_ID", userId.getUser_id());
} else {
mCacheHelper.put(UrlAddress.GET_USER_ID, -1);
@@ -421,7 +458,7 @@ public class NetInterfaceManager {
mCacheHelper.put(UrlAddress.GET_ACTIVITY_LIST, "");
if (callback != null) callback.noData();
} else {
mCacheHelper.put(UrlAddress.GET_ACTIVITY_LIST, GsonUtils.toJsonString(activityBeans));
mCacheHelper.put(UrlAddress.GET_ACTIVITY_LIST, GsonUtils.toJSONString(activityBeans));
if (callback != null) callback.setActivitiesList(activityBeans);
}
} else {
@@ -532,7 +569,7 @@ public class NetInterfaceManager {
mCacheHelper.put(UrlAddress.GET_DEMAND_LIST, "");
if (callback != null) callback.noData();
} else {
mCacheHelper.put(UrlAddress.GET_DEMAND_LIST, GsonUtils.toJsonString(demandBeans));
mCacheHelper.put(UrlAddress.GET_DEMAND_LIST, GsonUtils.toJSONString(demandBeans));
if (callback != null) callback.setDemandList(demandBeans);
}
} else {
@@ -650,7 +687,7 @@ public class NetInterfaceManager {
Log.e("getHealthCode", "onNext: " + listBaseResponse);
if (listBaseResponse.code == 200) {
List<HealthCode> healthCodeList = listBaseResponse.data;
mCacheHelper.put(UrlAddress.GET_HEALTH_CODE, GsonUtils.toJsonString(healthCodeList));
mCacheHelper.put(UrlAddress.GET_HEALTH_CODE, GsonUtils.toJSONString(healthCodeList));
callback.setHealthCode(healthCodeList);
} else {
mCacheHelper.put(UrlAddress.GET_HEALTH_CODE, "");
@@ -703,23 +740,23 @@ public class NetInterfaceManager {
// }
}
public void getAlarmClockCache(BehaviorSubject<ActivityEvent> lifecycle, AlarmClockCallback callback) {
String jsonString = mCacheHelper.getAsString(UrlAddress.GET_ALARM_CLOCK);
//为 "" 是已经请求成功的
if (jsonString == null) {
getAlarmClock(lifecycle, callback);
} else {
Gson gson = new Gson();
Type type = new TypeToken<List<AlarmClockData>>() {
}.getType();
List<AlarmClockData> list = gson.fromJson(jsonString, type);
if (list == null || list.size() == 0) {
callback.setAlarmClockEmpty();
} else {
callback.setAlarmClock(list);
}
}
}
// public void getAlarmClockCache(BehaviorSubject<ActivityEvent> lifecycle, AlarmClockCallback callback) {
// String jsonString = mCacheHelper.getAsString(UrlAddress.GET_ALARM_CLOCK);
// //为 "" 是已经请求成功的
// if (jsonString == null) {
// getAlarmClock(lifecycle, callback);
// } else {
// Gson gson = new Gson();
// Type type = new TypeToken<List<AlarmClockData>>() {
// }.getType();
// List<AlarmClockData> list = gson.fromJson(jsonString, type);
// if (list == null || list.size() == 0) {
// callback.setAlarmClockEmpty();
// } else {
// callback.setAlarmClock(list);
// }
// }
// }
public void getAlarmClock(BehaviorSubject<ActivityEvent> lifecycle, AlarmClockCallback callback) {
getAlarmClockObservable()
@@ -751,34 +788,34 @@ public class NetInterfaceManager {
List<AlarmClockData> alarmClockData = listBaseResponse.data;
if (alarmClockData != null && alarmClockData.size() != 0) {
AlarmUtils.getInstance().setAlarmClockData(alarmClockData);
if (callback != null) callback.setAlarmClock(alarmClockData);
mMMKV.encode(UrlAddress.GET_ALARM_CLOCK, GsonUtils.toJSONString(alarmClockData));
// if (callback != null) {
// callback.setAlarmClock(alarmClockData);
// }
} else {
AlarmUtils.getInstance().deleteAllAlarmClock();
AlarmUtils.getInstance().setAlarmClockData(null);
if (callback != null) callback.setAlarmClockEmpty();
mMMKV.encode(UrlAddress.GET_ALARM_CLOCK, "");
// if (callback != null) {
// callback.setAlarmClockEmpty();
// }
}
mCacheHelper.put(UrlAddress.GET_ALARM_CLOCK, GsonUtils.toJsonString(alarmClockData));
} else {
AlarmUtils.getInstance().deleteAllAlarmClock();
AlarmUtils.getInstance().setAlarmClockData(null);
mCacheHelper.put(UrlAddress.GET_ALARM_CLOCK, "");
if (callback != null) callback.setAlarmClockEmpty();
mMMKV.encode(UrlAddress.GET_ALARM_CLOCK, "");
// if (callback != null) {
// callback.setAlarmClockEmpty();
// }
}
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("getAlarmClockObserver", "onError: " + e.getMessage());
String jsonString = mCacheHelper.getAsString(UrlAddress.GET_ALARM_CLOCK);
Gson gson = new Gson();
Type type = new TypeToken<List<AlarmClockData>>() {
}.getType();
List<AlarmClockData> list = gson.fromJson(jsonString, type);
if (list == null || list.size() == 0) {
if (callback != null) callback.setAlarmClockEmpty();
} else {
if (callback != null) callback.setAlarmClock(list);
}
if (callback != null) callback.onError();
onComplete();
}
@@ -786,6 +823,13 @@ public class NetInterfaceManager {
@Override
public void onComplete() {
Log.e("getAlarmClockObserver", "onComplete: ");
List<AlarmClockData> list = AlarmUtils.getInstance().getOldData();
if (list == null || list.size() == 0) {
if (callback != null) callback.setAlarmClockEmpty();
} else {
List<AlarmClockData> filter = list.stream().filter(alarmClockData -> !alarmClockData.isDeleted()).collect(Collectors.toList());
if (callback != null) callback.setAlarmClock(filter);
}
}
};
}
@@ -896,7 +940,7 @@ public class NetInterfaceManager {
if (callback != null) callback.setEmpty();
} else {
List<Contact> emergencyContact = setting_sos.stream().filter(contact -> contact.getIs_urgent() == 1).collect(Collectors.toList());
mCacheHelper.put(UrlAddress.GET_SETTINGS, GsonUtils.toJsonString(setting_sos));
mCacheHelper.put(UrlAddress.GET_SETTINGS, GsonUtils.toJSONString(setting_sos));
if (callback != null) {
callback.setContact(setting_sos);
callback.setEmergencyContact(emergencyContact);
@@ -998,7 +1042,7 @@ public class NetInterfaceManager {
mCacheHelper.put(UrlAddress.GET_MAIL_LIST, "");
if (callback != null) callback.setEmpty();
} else {
mCacheHelper.put(UrlAddress.GET_MAIL_LIST, GsonUtils.toJsonString(contactList));
mCacheHelper.put(UrlAddress.GET_MAIL_LIST, GsonUtils.toJSONString(contactList));
List<Contact> emergencyContact = contactList.stream().filter(contact -> contact.getIs_urgent() == 1).collect(Collectors.toList());
if (callback != null) {
callback.setContact(contactList);

View File

@@ -0,0 +1,23 @@
package com.uiuios.aios.network.api;
import com.uiuios.aios.bean.AlarmClockId;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.UrlAddress;
import java.util.Map;
import io.reactivex.rxjava3.core.Observable;
import okhttp3.MultipartBody;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.QueryMap;
public interface AlarmClockAddApi {
@Multipart
@POST(UrlAddress.ALARM_CLOCK_ADD)
Observable<BaseResponse<AlarmClockId>> addAlarmClock(
@QueryMap Map<String, String> params,
@Part MultipartBody.Part body
);
}

View File

@@ -1,6 +1,6 @@
package com.uiuios.aios.network.api;
import com.uiuios.aios.bean.AlarmClockData;
import com.uiuios.aios.alarm.AlarmClockData;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.UrlAddress;

View File

@@ -0,0 +1,18 @@
package com.uiuios.aios.network.api;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.UrlAddress;
import io.reactivex.rxjava3.core.Observable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
public interface AlarmClockDeleteApi {
@FormUrlEncoded
@POST(UrlAddress.ALARM_CLOCK_DELETE)
Observable<BaseResponse> alarmClockDelete(
@Field("sn") String sn,
@Field("id") int id
);
}

View File

@@ -0,0 +1,22 @@
package com.uiuios.aios.network.api;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.UrlAddress;
import java.util.Map;
import io.reactivex.rxjava3.core.Observable;
import okhttp3.MultipartBody;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.QueryMap;
public interface AlarmClockEditApi {
@Multipart
@POST(UrlAddress.ALARM_CLOCK_EDIT)
Observable<BaseResponse> editAlarmClock(
@QueryMap Map<String, String> params,
@Part MultipartBody.Part body
);
}

View File

@@ -0,0 +1,17 @@
package com.uiuios.aios.network.api;
import com.uiuios.aios.alarm.AlarmClockData;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.UrlAddress;
import io.reactivex.rxjava3.core.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface AlarmClockQueryApi {
@GET(UrlAddress.ALARM_CLOCK_BY_ID)
Observable<BaseResponse<AlarmClockData>> getAlarmClockById(
@Query("sn") String sn,
@Query("id") int id
);
}