AppCompatDelegateImplV7.java revision bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17f
1bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell/*
2bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * Copyright (C) 2012 The Android Open Source Project
3bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell *
4bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * Licensed under the Apache License, Version 2.0 (the "License");
5bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * you may not use this file except in compliance with the License.
6bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * You may obtain a copy of the License at
7bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell *
8bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell *      http://www.apache.org/licenses/LICENSE-2.0
9bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell *
10bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * Unless required by applicable law or agreed to in writing, software
11bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * distributed under the License is distributed on an "AS IS" BASIS,
12bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * See the License for the specific language governing permissions and
14bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell * limitations under the License.
15bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell */
16bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
17bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellpackage android.support.appcompat.app;
18bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
19bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.content.res.TypedArray;
20bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.os.Bundle;
21bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.support.appcompat.R;
22bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.support.v4.app.FragmentActivity;
23bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.view.LayoutInflater;
24bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.view.View;
25bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellimport android.view.ViewGroup;
26bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
27bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powellpublic class ActionBarActivity extends FragmentActivity implements ActionBar.Callback {
28bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
29bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    private static final int FEATURE_ACTION_BAR = 8;
30bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    private static final int FEATURE_ACTION_BAR_OVERLAY = 9;
31bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
32bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    interface ActionBarActivityImpl {
33bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        void onCreate(ActionBarActivity activity, Bundle savedInstanceState);
34bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        void setContentView(ActionBarActivity activity, View v);
35bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        void setContentView(ActionBarActivity activity, int resId);
36bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        void setContentView(ActionBarActivity activity, View v, ViewGroup.LayoutParams lp);
37bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        void addContentView(ActionBarActivity activity, View v, ViewGroup.LayoutParams lp);
38bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        ActionBar createActionBar(ActionBarActivity activity);
39bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        void requestWindowFeature(ActionBarActivity activity, int feature);
40bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    }
41bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
42bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    static class ActionBarActivityImplBase implements ActionBarActivityImpl {
43bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
44bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        @Override
45bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        public void onCreate(ActionBarActivity activity, Bundle savedInstanceState) {
46bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            TypedArray a = activity.obtainStyledAttributes(R.styleable.ActionBarWindow);
47bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            activity.mHasActionBar = a.getBoolean(
48bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                    R.styleable.ActionBarWindow_windowActionBar, false);
49bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            activity.mOverlayActionBar = a.getBoolean(
50bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                    R.styleable.ActionBarWindow_windowActionBarOverlay, false);
51bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            a.recycle();
52bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        }
53bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
54bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        private void ensureSubDecor(ActionBarActivity activity) {
55bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            if (activity.mHasActionBar && !activity.mSubDecorInstalled) {
56bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                if (activity.mOverlayActionBar) {
57bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                    activity.setContentView(R.layout.action_bar_decor_overlay);
58bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                } else {
59bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                    activity.setContentView(R.layout.action_bar_decor);
60bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                }
61bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            }
62bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        }
63bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
64bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        @Override
65bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        public void setContentView(ActionBarActivity activity, View v) {
66bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            ensureSubDecor(activity);
67bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            if (activity.mHasActionBar) {
68bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                final ViewGroup contentParent =
69bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                        (ViewGroup) activity.findViewById(R.id.action_bar_activity_content);
70bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                contentParent.removeAllViews();
71bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                contentParent.addView(v);
72bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            } else {
73bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                activity.setContentView(v);
74bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            }
75bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        }
76bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
77bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        @Override
78bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        public void setContentView(ActionBarActivity activity, int resId) {
79bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            ensureSubDecor(activity);
80bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            if (activity.mHasActionBar) {
81bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                final ViewGroup contentParent =
82bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                        (ViewGroup) activity.findViewById(R.id.action_bar_activity_content);
83bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                contentParent.removeAllViews();
84bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                final LayoutInflater inflater = activity.getLayoutInflater();
85bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                inflater.inflate(resId, contentParent);
86bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            } else {
87bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                activity.setContentView(resId);
88bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            }
89bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        }
90bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
91bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        @Override
92bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        public void setContentView(ActionBarActivity activity, View v, ViewGroup.LayoutParams lp) {
93bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            ensureSubDecor(activity);
94bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            if (activity.mHasActionBar) {
95bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                final ViewGroup contentParent =
96bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                        (ViewGroup) activity.findViewById(R.id.action_bar_activity_content);
97bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                contentParent.removeAllViews();
98bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                contentParent.addView(v, lp);
99bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            } else {
100bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                activity.setContentView(v, lp);
101bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            }
102bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        }
103bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
104bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        @Override
105bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        public void addContentView(ActionBarActivity activity, View v, ViewGroup.LayoutParams lp) {
106bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            ensureSubDecor(activity);
107bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            if (activity.mHasActionBar) {
108bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                final ViewGroup contentParent =
109bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                        (ViewGroup) activity.findViewById(R.id.action_bar_activity_content);
110bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                contentParent.addView(v, lp);
111bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            } else {
112bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                activity.setContentView(v, lp);
113bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            }
114bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        }
115bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
116bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        @Override
117bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        public ActionBar createActionBar(ActionBarActivity activity) {
118bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            return new ActionBarImplCompat(activity, activity);
119bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        }
120bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
121bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        @Override
122bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        public void requestWindowFeature(ActionBarActivity activity, int feature) {
123bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            if (feature == FEATURE_ACTION_BAR) {
124bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                activity.mHasActionBar = true;
125bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            } else if (feature == FEATURE_ACTION_BAR_OVERLAY) {
126bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell                activity.mOverlayActionBar = true;
127bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            }
128bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        }
129bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
130bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    }
131bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
132bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    static class ActionBarActivityImplHC implements ActionBarActivityImpl {
133bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
134bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        @Override
135bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        public void onCreate(ActionBarActivity activity, Bundle savedInstanceState) {
136bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            // Not needed; the native action bar will take care of things.
137bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        }
138bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
139bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        @Override
140bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        public void setContentView(ActionBarActivity activity, View v) {
141bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            activity.setContentView(v);
142bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        }
143bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
144bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        @Override
145bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        public void setContentView(ActionBarActivity activity, int resId) {
146bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            activity.setContentView(resId);
147bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        }
148bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
149bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        @Override
150bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        public void setContentView(ActionBarActivity activity, View v, ViewGroup.LayoutParams lp) {
151bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            activity.setContentView(v, lp);
152bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        }
153bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
154bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        @Override
155bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        public void addContentView(ActionBarActivity activity, View v, ViewGroup.LayoutParams lp) {
156bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            activity.addContentView(v, lp);
157bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        }
158bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
159bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        @Override
160bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        public ActionBar createActionBar(ActionBarActivity activity) {
161bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            return new ActionBarImplHC(activity, activity);
162bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        }
163bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
164bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        @Override
165bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        public void requestWindowFeature(ActionBarActivity activity, int feature) {
166bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            activity.requestWindowFeature(feature);
167bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        }
168bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
169bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    }
170bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
171bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    static class ActionBarActivityImplICS extends ActionBarActivityImplHC {
172bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        @Override
173bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        public ActionBar createActionBar(ActionBarActivity activity) {
174bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            return new ActionBarImplICS(activity, activity);
175bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        }
176bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    }
177bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
178bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    static final ActionBarActivityImpl IMPL;
179bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    static {
180bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        final int version = android.os.Build.VERSION.SDK_INT;
181bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        if (version >= 14) {
182bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            IMPL = new ActionBarActivityImplICS();
183bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        } else if (version >= 11) {
184bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            IMPL = new ActionBarActivityImplHC();
185bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        } else {
186bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            IMPL = new ActionBarActivityImplBase();
187bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        }
188bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    }
189bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
190bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    private ActionBar mActionBar;
191bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
192bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    // true if the compatibility implementation has installed a window sub-decor layout.
193bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    boolean mSubDecorInstalled;
194bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
195bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    // true if this activity has an action bar.
196bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    boolean mHasActionBar;
197bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
198bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    // true if this activity's action bar overlays other activity content.
199bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    boolean mOverlayActionBar;
200bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
201bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    protected void onCreate(Bundle savedInstanceState) {
202bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        super.onCreate(savedInstanceState);
203bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        IMPL.onCreate(this, savedInstanceState);
204bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    }
205bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
206bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    public ActionBar getSupportActionBar() {
207bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        initActionBar();
208bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        return mActionBar;
209bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    }
210bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell
211bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    private void initActionBar() {
212bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        if (mActionBar == null && mHasActionBar) {
213bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell            mActionBar = IMPL.createActionBar(this);
214bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell        }
215bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell    }
216bbbb8f39d1b1d1b317c5f9237f20fe6b1d9eb17fAdam Powell}
217