115 lines
2.9 KiB
Java
115 lines
2.9 KiB
Java
package com.uiui.aios.base;
|
|
|
|
import android.os.Bundle;
|
|
import android.view.View;
|
|
|
|
import androidx.annotation.CallSuper;
|
|
import androidx.annotation.CheckResult;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.fragment.app.Fragment;
|
|
|
|
import com.trello.rxlifecycle4.LifecycleProvider;
|
|
import com.trello.rxlifecycle4.LifecycleTransformer;
|
|
import com.trello.rxlifecycle4.RxLifecycle;
|
|
import com.trello.rxlifecycle4.android.FragmentEvent;
|
|
import com.trello.rxlifecycle4.android.RxLifecycleAndroid;
|
|
|
|
import io.reactivex.rxjava3.core.Observable;
|
|
import io.reactivex.rxjava3.subjects.BehaviorSubject;
|
|
|
|
public class BaseFragment extends Fragment implements LifecycleProvider<FragmentEvent> {
|
|
public final BehaviorSubject<FragmentEvent> lifecycleSubject = BehaviorSubject.create();
|
|
|
|
@Override
|
|
@NonNull
|
|
@CheckResult
|
|
public final Observable<FragmentEvent> lifecycle() {
|
|
return lifecycleSubject.hide();
|
|
}
|
|
|
|
@Override
|
|
@NonNull
|
|
@CheckResult
|
|
public final <T> LifecycleTransformer<T> bindUntilEvent(@NonNull FragmentEvent event) {
|
|
return RxLifecycle.bindUntilEvent(lifecycleSubject, event);
|
|
}
|
|
|
|
@Override
|
|
@NonNull
|
|
@CheckResult
|
|
public final <T> LifecycleTransformer<T> bindToLifecycle() {
|
|
return RxLifecycleAndroid.bindFragment(lifecycleSubject);
|
|
}
|
|
|
|
@Override
|
|
@CallSuper
|
|
public void onAttach(android.app.Activity activity) {
|
|
super.onAttach(activity);
|
|
lifecycleSubject.onNext(FragmentEvent.ATTACH);
|
|
}
|
|
|
|
@Override
|
|
@CallSuper
|
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
lifecycleSubject.onNext(FragmentEvent.CREATE);
|
|
}
|
|
|
|
@Override
|
|
@CallSuper
|
|
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
|
|
super.onViewCreated(view, savedInstanceState);
|
|
lifecycleSubject.onNext(FragmentEvent.CREATE_VIEW);
|
|
}
|
|
|
|
@Override
|
|
@CallSuper
|
|
public void onStart() {
|
|
super.onStart();
|
|
lifecycleSubject.onNext(FragmentEvent.START);
|
|
}
|
|
|
|
@Override
|
|
@CallSuper
|
|
public void onResume() {
|
|
super.onResume();
|
|
lifecycleSubject.onNext(FragmentEvent.RESUME);
|
|
}
|
|
|
|
@Override
|
|
@CallSuper
|
|
public void onPause() {
|
|
lifecycleSubject.onNext(FragmentEvent.PAUSE);
|
|
super.onPause();
|
|
}
|
|
|
|
@Override
|
|
@CallSuper
|
|
public void onStop() {
|
|
lifecycleSubject.onNext(FragmentEvent.STOP);
|
|
super.onStop();
|
|
}
|
|
|
|
@Override
|
|
@CallSuper
|
|
public void onDestroyView() {
|
|
lifecycleSubject.onNext(FragmentEvent.DESTROY_VIEW);
|
|
super.onDestroyView();
|
|
}
|
|
|
|
@Override
|
|
@CallSuper
|
|
public void onDestroy() {
|
|
lifecycleSubject.onNext(FragmentEvent.DESTROY);
|
|
super.onDestroy();
|
|
}
|
|
|
|
@Override
|
|
@CallSuper
|
|
public void onDetach() {
|
|
lifecycleSubject.onNext(FragmentEvent.DETACH);
|
|
super.onDetach();
|
|
}
|
|
}
|