package com.alibaba.genie.panel.alarm;
import com.alibaba.genie.panel.basic.AbsApplication;
import com.alibaba.genie.panel.basic.constant.KeyConstant;
import com.alibaba.genie.panel.basic.utils.SpSaveDataUtils;
import com.aliyun.aligeniessp_1_0.Client;
import com.aliyun.aligeniessp_1_0.models.CreateAlarmRequest;
import com.aliyun.aligeniessp_1_0.models.CreateAlarmResponse;
import com.aliyun.aligeniessp_1_0.models.DeleteAlarmsRequest;
import com.aliyun.aligeniessp_1_0.models.DeleteAlarmsResponse;
import com.aliyun.aligeniessp_1_0.models.GetAlarmRequest;
import com.aliyun.aligeniessp_1_0.models.GetAlarmResponse;
import com.aliyun.aligeniessp_1_0.models.ListAlarmsRequest;
import com.aliyun.aligeniessp_1_0.models.ListAlarmsResponse;
import com.aliyun.aligeniessp_1_0.models.ListMusicRequest;
import com.aliyun.aligeniessp_1_0.models.ListMusicResponse;
import com.aliyun.aligeniessp_1_0.models.QueryMusicTypeRequest;
import com.aliyun.aligeniessp_1_0.models.QueryMusicTypeResponse;
import com.aliyun.aligeniessp_1_0.models.UpdateAlarmRequest;
import com.aliyun.aligeniessp_1_0.models.UpdateAlarmResponse;
import com.aliyun.alink.linksdk.tools.ThreadTools;
import com.aliyun.tea.TeaException;
import com.aliyun.tea.TeaModel;
import com.aliyun.teaopenapi.models.Config;
import com.google.gson.Gson;
import java.util.List;
public final class SettingRepository{
private static final String TAG = "AppRepository";
private final Gson gson;
public SettingRepository() {
gson = new Gson();
}
public static String getDeviceId() {
return SpSaveDataUtils.getInstance().get(AbsApplication.getAppContext(), "persist.api.deviceId");
}
public static String getUserId() {
return SpSaveDataUtils.getInstance().get(AbsApplication.getAppContext(), "persist.api.userId");
}
public Client createClient() throws Exception {
Config config = new Config()
.setAccessKeyId(BuildConfig.ACCESS_KEY_ID)
.setAccessKeySecret(BuildConfig.ACCESS_KEY_SECRET);
config.endpoint = "openapi.aligenie.com";
return new Client(config);
}
public void execute(Runnable runnable) {
ThreadTools.submitTask(runnable, false);
}
public void createAlarm(CreateAlarmRequest.CreateAlarmRequestPayloadScheduleInfo scheduleInfo,
CreateAlarmRequest.CreateAlarmRequestPayloadMusicInfo musicInfo,
int volume,
OnResponseListener<CreateAlarmResponse> listener) {
CreateAlarmRequest request = new CreateAlarmRequest();
CreateAlarmRequest.CreateAlarmRequestPayload payload = new CreateAlarmRequest.CreateAlarmRequestPayload();
payload.setScheduleInfo(scheduleInfo)
.setMusicInfo(musicInfo)
.setVolume(volume);
CreateAlarmRequest.CreateAlarmRequestUserInfo userInfo = new CreateAlarmRequest.CreateAlarmRequestUserInfo();
userInfo.setId(getUserId())
.setIdType(KeyConstant.OPEN_ID)
.setEncodeType(KeyConstant.PROJECT_ID)
.setEncodeKey(BuildConfig.PROJECT_ID);
CreateAlarmRequest.CreateAlarmRequestDeviceInfo deviceInfo = new CreateAlarmRequest.CreateAlarmRequestDeviceInfo();
deviceInfo.setId(getDeviceId())
.setIdType(KeyConstant.OPEN_ID)
.setEncodeType(KeyConstant.PROJECT_ID)
.setEncodeKey(BuildConfig.PROJECT_ID);
request.setPayload(payload)
.setUserInfo(userInfo)
.setDeviceInfo(deviceInfo);
execute(() -> {
try {
CreateAlarmResponse response = createClient().createAlarm(request);
listener.onSuccess(response);
} catch (Exception e) {
e.printStackTrace();
TeaException err = new TeaException(e.getMessage(), e);
listener.onError(err.code, err.message);
}
});
}
public void deleteAlarms(List<Long> ids, OnResponseListener<DeleteAlarmsResponse> listener) {
DeleteAlarmsRequest request = new DeleteAlarmsRequest();
DeleteAlarmsRequest.DeleteAlarmsRequestPayload payload = new DeleteAlarmsRequest.DeleteAlarmsRequestPayload();
payload.setAlarmIds(ids);
DeleteAlarmsRequest.DeleteAlarmsRequestUserInfo userInfo = new DeleteAlarmsRequest.DeleteAlarmsRequestUserInfo();
userInfo.setId(getUserId())
.setIdType(KeyConstant.OPEN_ID)
.setEncodeType(KeyConstant.PROJECT_ID)
.setEncodeKey(BuildConfig.PROJECT_ID);
DeleteAlarmsRequest.DeleteAlarmsRequestDeviceInfo deviceInfo = new DeleteAlarmsRequest.DeleteAlarmsRequestDeviceInfo();
deviceInfo.setId(getDeviceId())
.setIdType(KeyConstant.OPEN_ID)
.setEncodeType(KeyConstant.PROJECT_ID)
.setEncodeKey(BuildConfig.PROJECT_ID);
request.setPayload(payload)
.setUserInfo(userInfo)
.setDeviceInfo(deviceInfo);
execute(() -> {
try {
DeleteAlarmsResponse response = createClient().deleteAlarms(request);
listener.onSuccess(response);
} catch (Exception e) {
e.printStackTrace();
TeaException err = new TeaException(e.getMessage(), e);
listener.onError(err.code, err.message);
}
});
}
public void updateAlarm(Long id,
UpdateAlarmRequest.UpdateAlarmRequestPayloadScheduleInfo scheduleInfo,
UpdateAlarmRequest.UpdateAlarmRequestPayloadMusicInfo musicInfo,
int volume,
OnResponseListener<UpdateAlarmResponse> listener) {
UpdateAlarmRequest request = new UpdateAlarmRequest();
UpdateAlarmRequest.UpdateAlarmRequestPayload payload = new UpdateAlarmRequest.UpdateAlarmRequestPayload();
payload.setAlarmId(id)
.setVolume(volume)
.setScheduleInfo(scheduleInfo)
.setMusicInfo(musicInfo);
UpdateAlarmRequest.UpdateAlarmRequestUserInfo userInfo = new UpdateAlarmRequest.UpdateAlarmRequestUserInfo();
userInfo.setId(getUserId())
.setIdType(KeyConstant.OPEN_ID)
.setEncodeType(KeyConstant.PROJECT_ID)
.setEncodeKey(BuildConfig.PROJECT_ID);
UpdateAlarmRequest.UpdateAlarmRequestDeviceInfo deviceInfo = new UpdateAlarmRequest.UpdateAlarmRequestDeviceInfo();
deviceInfo.setId(getDeviceId())
.setIdType(KeyConstant.OPEN_ID)
.setEncodeType(KeyConstant.PROJECT_ID)
.setEncodeKey(BuildConfig.PROJECT_ID);
request.setPayload(payload)
.setUserInfo(userInfo)
.setDeviceInfo(deviceInfo);
execute(() -> {
try {
UpdateAlarmResponse response = createClient().updateAlarm(request);
listener.onSuccess(response);
} catch (Exception e) {
e.printStackTrace();
TeaException err = new TeaException(e.getMessage(), e);
listener.onError(err.code, err.message);
}
});
}
public void getAlarm(Long id, OnResponseListener<GetAlarmResponse> listener) {
GetAlarmRequest request = new GetAlarmRequest();
GetAlarmRequest.GetAlarmRequestPayload payload = new GetAlarmRequest.GetAlarmRequestPayload();
payload.setAlarmId(id);
GetAlarmRequest.GetAlarmRequestUserInfo userInfo = new GetAlarmRequest.GetAlarmRequestUserInfo();
userInfo.setId(getUserId())
.setIdType(KeyConstant.OPEN_ID)
.setEncodeType(KeyConstant.PROJECT_ID)
.setEncodeKey(BuildConfig.PROJECT_ID);
GetAlarmRequest.GetAlarmRequestDeviceInfo deviceInfo = new GetAlarmRequest.GetAlarmRequestDeviceInfo();
deviceInfo.setId(getDeviceId())
.setIdType(KeyConstant.OPEN_ID)
.setEncodeType(KeyConstant.PROJECT_ID)
.setEncodeKey(BuildConfig.PROJECT_ID);
request.setPayload(payload)
.setUserInfo(userInfo)
.setDeviceInfo(deviceInfo);
execute(() -> {
try {
GetAlarmResponse response = createClient().getAlarm(request);
listener.onSuccess(response);
} catch (Exception e) {
e.printStackTrace();
TeaException err = new TeaException(e.getMessage(), e);
listener.onError(err.code, err.message);
}
});
}
public void getListAlarms(final int currentPage,
final int pageSize,
final OnResponseListener<ListAlarmsResponse> listener) {
ListAlarmsRequest request = new ListAlarmsRequest();
ListAlarmsRequest.ListAlarmsRequestPayload payload = new ListAlarmsRequest.ListAlarmsRequestPayload();
payload.setCurrentPage(currentPage)
.setPageSize(pageSize);
ListAlarmsRequest.ListAlarmsRequestUserInfo userInfo = new ListAlarmsRequest.ListAlarmsRequestUserInfo();
userInfo.setId(getUserId())
.setIdType(KeyConstant.OPEN_ID)
.setEncodeType(KeyConstant.PROJECT_ID)
.setEncodeKey(BuildConfig.PROJECT_ID);
ListAlarmsRequest.ListAlarmsRequestDeviceInfo deviceInfo = new ListAlarmsRequest.ListAlarmsRequestDeviceInfo();
deviceInfo.setId(getDeviceId())
.setIdType(KeyConstant.OPEN_ID)
.setEncodeType(KeyConstant.PROJECT_ID)
.setEncodeKey(BuildConfig.PROJECT_ID);
request.setPayload(payload)
.setUserInfo(userInfo)
.setDeviceInfo(deviceInfo);
execute(() -> {
try {
ListAlarmsResponse response = createClient().listAlarms(request);
listener.onSuccess(response);
} catch (Exception e) {
e.printStackTrace();
TeaException err = new TeaException(e.getMessage(), e);
listener.onError(err.code, err.message);
}
});
}
public void getMusicList(Long musicType,
String musicTypeName,
int currentPage,
int pageSize,
OnResponseListener<ListMusicResponse> listener) {
ListMusicRequest request = new ListMusicRequest();
ListMusicRequest.ListMusicRequestPayload payload = new ListMusicRequest.ListMusicRequestPayload();
payload.setMusicType(musicType)
.setMusicTypeName(musicTypeName)
.setCurrentPage(currentPage)
.setPageSize(pageSize);
ListMusicRequest.ListMusicRequestUserInfo userInfo = new ListMusicRequest.ListMusicRequestUserInfo();
userInfo.setId(getUserId())
.setIdType(KeyConstant.OPEN_ID)
.setEncodeType(KeyConstant.PROJECT_ID)
.setEncodeKey(BuildConfig.PROJECT_ID);
ListMusicRequest.ListMusicRequestDeviceInfo deviceInfo = new ListMusicRequest.ListMusicRequestDeviceInfo();
deviceInfo.setId(getDeviceId())
.setIdType(KeyConstant.OPEN_ID)
.setEncodeType(KeyConstant.PROJECT_ID)
.setEncodeKey(BuildConfig.PROJECT_ID);
request.setPayload(payload)
.setUserInfo(userInfo)
.setDeviceInfo(deviceInfo);
execute(() -> {
try {
ListMusicResponse response = createClient().listMusic(request);
listener.onSuccess(response);
} catch (Exception e) {
e.printStackTrace();
TeaException err = new TeaException(e.getMessage(), e);
listener.onError(err.code, err.message);
}
});
}
public void queryMusicType(OnResponseListener<QueryMusicTypeResponse> listener) {
QueryMusicTypeRequest request = new QueryMusicTypeRequest();
QueryMusicTypeRequest.QueryMusicTypeRequestUserInfo userInfo = new QueryMusicTypeRequest.QueryMusicTypeRequestUserInfo();
userInfo.setId(getUserId())
.setIdType(KeyConstant.OPEN_ID)
.setEncodeType(KeyConstant.PROJECT_ID)
.setEncodeKey(BuildConfig.PROJECT_ID);
QueryMusicTypeRequest.QueryMusicTypeRequestDeviceInfo deviceInfo = new QueryMusicTypeRequest.QueryMusicTypeRequestDeviceInfo();
deviceInfo.setId(getDeviceId())
.setIdType(KeyConstant.OPEN_ID)
.setEncodeType(KeyConstant.PROJECT_ID)
.setEncodeKey(BuildConfig.PROJECT_ID);
request.setUserInfo(userInfo)
.setDeviceInfo(deviceInfo);
execute(() -> {
try {
QueryMusicTypeResponse response = createClient().queryMusicType(request);
listener.onSuccess(response);
} catch (Exception e) {
e.printStackTrace();
TeaException err = new TeaException(e.getMessage(), e);
listener.onError(err.code, err.message);
}
});
}
public interface OnResponseListener<T extends TeaModel> {
void onSuccess(T response);
void onError(String code, String message);
}
}