OSDN Git Service

Merge "Re-evaluate scrim color on keyguard vis event"
[android-x86/frameworks-base.git] / packages / SettingsLib / src / com / android / settingslib / core / lifecycle / ObservableFragment.java
1 /*
2  * Copyright (C) 2016 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package com.android.settingslib.core.lifecycle;
18
19 import static androidx.lifecycle.Lifecycle.Event.ON_CREATE;
20 import static androidx.lifecycle.Lifecycle.Event.ON_DESTROY;
21 import static androidx.lifecycle.Lifecycle.Event.ON_PAUSE;
22 import static androidx.lifecycle.Lifecycle.Event.ON_RESUME;
23 import static androidx.lifecycle.Lifecycle.Event.ON_START;
24 import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
25
26 import android.annotation.CallSuper;
27 import android.content.Context;
28 import android.os.Bundle;
29 import android.view.Menu;
30 import android.view.MenuInflater;
31 import android.view.MenuItem;
32
33 import androidx.fragment.app.Fragment;
34 import androidx.lifecycle.LifecycleOwner;
35
36 public class ObservableFragment extends Fragment implements LifecycleOwner {
37
38     private final Lifecycle mLifecycle = new Lifecycle(this);
39
40     public Lifecycle getSettingsLifecycle() {
41         return mLifecycle;
42     }
43
44     @CallSuper
45     @Override
46     public void onAttach(Context context) {
47         super.onAttach(context);
48         mLifecycle.onAttach(context);
49     }
50
51     @CallSuper
52     @Override
53     public void onCreate(Bundle savedInstanceState) {
54         mLifecycle.onCreate(savedInstanceState);
55         mLifecycle.handleLifecycleEvent(ON_CREATE);
56         super.onCreate(savedInstanceState);
57     }
58
59     @CallSuper
60     @Override
61     public void onSaveInstanceState(Bundle outState) {
62         super.onSaveInstanceState(outState);
63         mLifecycle.onSaveInstanceState(outState);
64     }
65
66     @CallSuper
67     @Override
68     public void onStart() {
69         mLifecycle.handleLifecycleEvent(ON_START);
70         super.onStart();
71     }
72
73     @CallSuper
74     @Override
75     public void onResume() {
76         mLifecycle.handleLifecycleEvent(ON_RESUME);
77         super.onResume();
78     }
79
80     @CallSuper
81     @Override
82     public void onPause() {
83         mLifecycle.handleLifecycleEvent(ON_PAUSE);
84         super.onPause();
85     }
86
87     @CallSuper
88     @Override
89     public void onStop() {
90         mLifecycle.handleLifecycleEvent(ON_STOP);
91         super.onStop();
92     }
93
94     @CallSuper
95     @Override
96     public void onDestroy() {
97         mLifecycle.handleLifecycleEvent(ON_DESTROY);
98         super.onDestroy();
99     }
100
101     @CallSuper
102     @Override
103     public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
104         mLifecycle.onCreateOptionsMenu(menu, inflater);
105         super.onCreateOptionsMenu(menu, inflater);
106     }
107
108     @CallSuper
109     @Override
110     public void onPrepareOptionsMenu(final Menu menu) {
111         mLifecycle.onPrepareOptionsMenu(menu);
112         super.onPrepareOptionsMenu(menu);
113     }
114
115     @CallSuper
116     @Override
117     public boolean onOptionsItemSelected(final MenuItem menuItem) {
118         boolean lifecycleHandled = mLifecycle.onOptionsItemSelected(menuItem);
119         if (!lifecycleHandled) {
120             return super.onOptionsItemSelected(menuItem);
121         }
122         return lifecycleHandled;
123     }
124 }