refactor(contact): 重构 ViewModel 为标准 MVVM 架构
将网络优先/本地降级策略下沉至 ContactDataRepository,ViewModel 仅负责状态分发;引入 Resource 包装类与 SWR 多级缓存机制,简化 RxJava 链式调用并移除冗余的 Observer/RxLifecycle 代码。
This commit is contained in:
1 parent
6bb9f25600
commit
de1ce76fdf
22 files changed
+1497
-480
No files matched your search
@@ -7,10 +7,31 @@ import androidx.lifecycle.ViewModel;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
import io.reactivex.rxjava3.disposables.CompositeDisposable;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.subjects.BehaviorSubject;
|
||||
|
||||
public abstract class BaseViewModel<VDB extends ViewDataBinding, T> extends ViewModel {
|
||||
|
||||
/**
|
||||
* Google 标准写法:ViewModel 内统一管理 Rx 订阅,
|
||||
* onCleared 时自动取消,防止内存泄漏。
|
||||
*/
|
||||
protected final CompositeDisposable mDisposables = new CompositeDisposable();
|
||||
|
||||
/**
|
||||
* 将订阅托管给 ViewModel 生命周期
|
||||
*/
|
||||
protected void addDisposable(Disposable disposable) {
|
||||
mDisposables.add(disposable);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCleared() {
|
||||
mDisposables.clear();
|
||||
super.onCleared();
|
||||
}
|
||||
|
||||
/**
|
||||
* 当前viewmodel对应的页面binding
|
||||
*/
|
||||
|
||||
Reference in new issue
Block a user