package com.application.zhangshi_app_android.data; import androidx.annotation.NonNull; import com.android.app_base.base.model.BaseModel; import com.android.app_base.http.ResultData; import com.application.zhangshi_app_android.bean.CaptchaImageBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaRequestBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean; import com.application.zhangshi_app_android.bean.LoginRequestBean; import com.application.zhangshi_app_android.bean.LoginResponseBean; import com.application.zhangshi_app_android.data.source.HttpDataSource; import com.application.zhangshi_app_android.data.source.LocalDataSource; import com.application.zhangshi_app_android.data.source.http.HttpDataSourceImpl; import com.application.zhangshi_app_android.data.source.local.LocalDataSourceImpl; import java.util.List; import java.util.Map; import io.reactivex.Observable; import io.reactivex.Observer; /** * @author Ljj * @date 2023.03.01. 20:58 * @desc 数据仓库,包含网络数据和本地数据 */ public class DataRepository extends BaseModel implements HttpDataSource, LocalDataSource { private volatile static DataRepository INSTANCE = null; private final HttpDataSource mHttpDataSource; private final LocalDataSource mLocalDataSource; private DataRepository(@NonNull HttpDataSource httpDataSource, @NonNull LocalDataSource localDataSource) { this.mHttpDataSource = httpDataSource; this.mLocalDataSource = localDataSource; } public static DataRepository getInstance() { if (INSTANCE == null) { synchronized (DataRepository.class) { if (INSTANCE == null) { INSTANCE = new DataRepository(HttpDataSourceImpl.getInstance(), LocalDataSourceImpl.getInstance()); } } } return INSTANCE; } @Override public void onCleared() { HttpDataSourceImpl.destroyInstance(); LocalDataSourceImpl.destroyInstance(); INSTANCE = null; } /** * @see HttpDataSourceImpl */ /** * 获取验证码图片 */ public Observable> getCaptchaImage(){ return mHttpDataSource.getCaptchaImage(); } /** * 登录 */ public Observable> login(LoginRequestBean loginRequestBean){ return mHttpDataSource.login(loginRequestBean); } /** * 注册 */ public Observable> register(LoginRequestBean loginRequestBean){ return mHttpDataSource.register(loginRequestBean); } /** * 获取家大事记 */ @Override public Observable> getFamilyMemorabilia(Map queryMap) { return mHttpDataSource.getFamilyMemorabilia(queryMap); } /** * 增加家大事记 */ @Override public Observable> addFamilyMemorabilia(FamilyMemorabiliaBean familyMemorabiliaBean) { return mHttpDataSource.addFamilyMemorabilia(familyMemorabiliaBean); } /** * 删除家大事记 */ @Override public Observable> deleteFamilyMemorabilia(String ids) { return mHttpDataSource.deleteFamilyMemorabilia(ids); } /** * 删除家大事记 */ @Override public Observable> updateFamilyMemorabilia(FamilyMemorabiliaBean familyMemorabiliaBean) { return mHttpDataSource.updateFamilyMemorabilia(familyMemorabiliaBean); } /** * @see LocalDataSourceImpl */ }