refactor(contact): 重构 ViewModel 为标准 MVVM 架构

将网络优先/本地降级策略下沉至 ContactDataRepository,ViewModel 仅负责状态分发;引入 Resource 包装类与 SWR 多级缓存机制,简化 RxJava 链式调用并移除冗余的 Observer/RxLifecycle 代码。
This commit is contained in:
tongtong committed 2026-07-27 17:39:21 +08:00
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
*/