package com.hdl.linkpm.sdk.core.response; import android.content.pm.ApplicationInfo; import android.provider.Settings; import android.widget.Toast; import com.hdl.hdlhttp.callback.HxException; import com.hdl.hdlhttp.response.GsonSubscribe; import com.hdl.hdlhttp.utils.ParameterizedTypeImpl; import com.hdl.linkpm.sdk.HDLLinkPMSdk; import com.hdl.linkpm.sdk.core.code.HDLCloudCode; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.linkpm.sdk.utils.HDLGsonUtils; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; /** * Created by Tong on 2021/11/8. */ public abstract class HDLResponse extends GsonSubscribe> { public abstract void onResponse(K response); public abstract void onFailure(HDLException e); @Override public void onNext(String s) { try { Type type = getClass().getGenericSuperclass(); if (type instanceof ParameterizedType) { Type[] types = ((ParameterizedType) type).getActualTypeArguments(); Type parameterizedType = new ParameterizedTypeImpl(BaseInfo.class, types, BaseInfo.class); BaseInfo data = HDLGsonUtils.fromJson(s, parameterizedType); onSuccess(data); } } catch (Exception e) { e.printStackTrace(); this.onError(HxException.handleException(e)); } } @Override public final void onSuccess(BaseInfo response) { if (response.getCode() == HDLCloudCode.SUCCEED) { onResponse(response.getData()); } else { // if(HDLLinkPMSdk.isDebugVersion()){ // HDLLinkPMSdk.showToast(response.getMessage()); // } onFailure(new HDLException(response.getCode(), response.getMessage())); } } @Override public final void onError(HxException e) { // if(HDLLinkPMSdk.isDebugVersion()){ // HDLLinkPMSdk.showToast(e.getRawThrowable().getMessage()); // } onFailure(new HDLException(e.getCode(),e.getRawThrowable().getMessage())); } }