130 lines
3.3 KiB
Java
130 lines
3.3 KiB
Java
package com.uiuios.aios.base;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import androidx.annotation.CallSuper;
|
|
import androidx.annotation.CheckResult;
|
|
import androidx.annotation.ContentView;
|
|
import androidx.annotation.LayoutRes;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
import com.trello.rxlifecycle4.LifecycleProvider;
|
|
import com.trello.rxlifecycle4.LifecycleTransformer;
|
|
import com.trello.rxlifecycle4.RxLifecycle;
|
|
import com.trello.rxlifecycle4.android.ActivityEvent;
|
|
import com.trello.rxlifecycle4.android.RxLifecycleAndroid;
|
|
import com.uiuios.aios.R;
|
|
import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX;
|
|
|
|
import io.reactivex.rxjava3.core.Observable;
|
|
import io.reactivex.rxjava3.subjects.BehaviorSubject;
|
|
|
|
|
|
public abstract class BaseActivity extends AppCompatActivity implements LifecycleProvider<ActivityEvent> {
|
|
public final BehaviorSubject<ActivityEvent> lifecycleSubject = BehaviorSubject.create();
|
|
|
|
public BaseActivity() {
|
|
super();
|
|
}
|
|
|
|
@ContentView
|
|
public BaseActivity(@LayoutRes int contentLayoutId) {
|
|
super(contentLayoutId);
|
|
}
|
|
|
|
@Override
|
|
@NonNull
|
|
@CheckResult
|
|
public final Observable<ActivityEvent> lifecycle() {
|
|
return lifecycleSubject.hide();
|
|
}
|
|
|
|
@Override
|
|
@NonNull
|
|
@CheckResult
|
|
public final <T> LifecycleTransformer<T> bindUntilEvent(@NonNull ActivityEvent event) {
|
|
return RxLifecycle.bindUntilEvent(lifecycleSubject, event);
|
|
}
|
|
|
|
@Override
|
|
@NonNull
|
|
@CheckResult
|
|
public final <T> LifecycleTransformer<T> bindToLifecycle() {
|
|
return RxLifecycleAndroid.bindActivity(lifecycleSubject);
|
|
}
|
|
|
|
@Override
|
|
@CallSuper
|
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
lifecycleSubject.onNext(ActivityEvent.CREATE);
|
|
// StatusBarUtil.init(this);
|
|
UltimateBarX.statusBar(this)
|
|
.transparent()
|
|
.colorRes(R.color.colorPrimaryDark)
|
|
// .light(true)
|
|
.apply();
|
|
UltimateBarX.navigationBar(this)
|
|
.transparent()
|
|
.colorRes(R.color.colorPrimaryDark)
|
|
// .light(true)
|
|
.apply();
|
|
setContentView(this.getLayoutId());
|
|
initView();
|
|
initData();
|
|
}
|
|
|
|
/**
|
|
* 设置布局
|
|
*/
|
|
public abstract int getLayoutId();
|
|
|
|
/**
|
|
* 初始化视图
|
|
*/
|
|
public abstract void initView();
|
|
|
|
|
|
/**
|
|
* 初始化数据
|
|
*/
|
|
public abstract void initData();
|
|
|
|
@Override
|
|
@CallSuper
|
|
protected void onStart() {
|
|
super.onStart();
|
|
lifecycleSubject.onNext(ActivityEvent.START);
|
|
}
|
|
|
|
@Override
|
|
@CallSuper
|
|
protected void onResume() {
|
|
super.onResume();
|
|
lifecycleSubject.onNext(ActivityEvent.RESUME);
|
|
}
|
|
|
|
@Override
|
|
@CallSuper
|
|
protected void onPause() {
|
|
lifecycleSubject.onNext(ActivityEvent.PAUSE);
|
|
super.onPause();
|
|
}
|
|
|
|
@Override
|
|
@CallSuper
|
|
protected void onStop() {
|
|
lifecycleSubject.onNext(ActivityEvent.STOP);
|
|
super.onStop();
|
|
}
|
|
|
|
@Override
|
|
@CallSuper
|
|
protected void onDestroy() {
|
|
lifecycleSubject.onNext(ActivityEvent.DESTROY);
|
|
super.onDestroy();
|
|
}
|
|
}
|