1a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy/*
2a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy * Copyright (C) 2015 The Android Open Source Project
3a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy *
4a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy * Licensed under the Apache License, Version 2.0 (the "License");
5a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy * you may not use this file except in compliance with the License.
6a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy * You may obtain a copy of the License at
7a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy *
8a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy *      http://www.apache.org/licenses/LICENSE-2.0
9a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy *
10a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy * Unless required by applicable law or agreed to in writing, software
11a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy * distributed under the License is distributed on an "AS IS" BASIS,
12a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy * See the License for the specific language governing permissions and
14a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy * limitations under the License.
15a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy */
16a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
17a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedypackage android.app;
18a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
19a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedyimport android.annotation.Nullable;
20a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedyimport android.content.Context;
21a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedyimport android.content.res.Configuration;
22a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedyimport android.os.Bundle;
23a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedyimport android.os.Parcelable;
24a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedyimport android.util.ArrayMap;
25a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedyimport android.util.AttributeSet;
26a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedyimport android.view.Menu;
27a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedyimport android.view.MenuInflater;
28a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedyimport android.view.MenuItem;
29a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedyimport android.view.View;
30a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
31a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedyimport java.io.FileDescriptor;
32a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedyimport java.io.PrintWriter;
33a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedyimport java.util.List;
34a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
35a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy/**
36a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy * Provides integration points with a {@link FragmentManager} for a fragment host.
37a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy * <p>
38a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy * It is the responsibility of the host to take care of the Fragment's lifecycle.
39a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy * The methods provided by {@link FragmentController} are for that purpose.
400a1feb819234ae7fc8cc32aa1dc5929823b0a5bcIan Lake *
411f4e67b6e17e9b86151140174491b2360bac82d9Ian Lake * @deprecated Use the <a href="{@docRoot}tools/extras/support-library.html">Support Library</a>
421f4e67b6e17e9b86151140174491b2360bac82d9Ian Lake *      {@link android.support.v4.app.FragmentController}
43a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy */
440a1feb819234ae7fc8cc32aa1dc5929823b0a5bcIan Lake@Deprecated
45a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedypublic class FragmentController {
46a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    private final FragmentHostCallback<?> mHost;
47a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
48a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
49a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Returns a {@link FragmentController}.
50a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
51a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public static final FragmentController createController(FragmentHostCallback<?> callbacks) {
52a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        return new FragmentController(callbacks);
53a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
54a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
55a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    private FragmentController(FragmentHostCallback<?> callbacks) {
56a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost = callbacks;
57a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
58a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
59a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
60a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Returns a {@link FragmentManager} for this controller.
61a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
62a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public FragmentManager getFragmentManager() {
63a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        return mHost.getFragmentManagerImpl();
64a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
65a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
66a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
67a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Returns a {@link LoaderManager}.
68a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
69a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public LoaderManager getLoaderManager() {
70a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        return mHost.getLoaderManagerImpl();
71a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
72a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
73a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
74a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Returns a fragment with the given identifier.
75a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
76a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    @Nullable
77a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public Fragment findFragmentByWho(String who) {
78a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        return mHost.mFragmentManager.findFragmentByWho(who);
79a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
80a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
81a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
82a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Attaches the host to the FragmentManager for this controller. The host must be
83a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * attached before the FragmentManager can be used to manage Fragments.
84a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * */
85a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void attachHost(Fragment parent) {
86a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.mFragmentManager.attachController(
87a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy                mHost, mHost /*container*/, parent);
88a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
89a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
90a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
91a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Instantiates a Fragment's view.
92a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
93a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @param parent The parent that the created view will be placed
94a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * in; <em>note that this may be null</em>.
95a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @param name Tag name to be inflated.
96a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @param context The context the view is being created in.
97a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @param attrs Inflation attributes as specified in XML file.
98a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
99a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @return view the newly created view
100a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
101a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public View onCreateView(View parent, String name, Context context, AttributeSet attrs) {
102a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        return mHost.mFragmentManager.onCreateView(parent, name, context, attrs);
103a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
104a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
105a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
106a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Marks the fragment state as unsaved. This allows for "state loss" detection.
107a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
108a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void noteStateNotSaved() {
109a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.mFragmentManager.noteStateNotSaved();
110a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
111a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
112a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
113a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Saves the state for all Fragments.
114a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
115a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public Parcelable saveAllState() {
116a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        return mHost.mFragmentManager.saveAllState();
117a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
118a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
119a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
120a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Restores the saved state for all Fragments. The given Fragment list are Fragment
121a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * instances retained across configuration changes.
122a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
123a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @see #retainNonConfig()
12444ba79e47d6db54e5501f994880fa09eb880c185Adam Powell     *
12544ba79e47d6db54e5501f994880fa09eb880c185Adam Powell     * @deprecated use {@link #restoreAllState(Parcelable, FragmentManagerNonConfig)}
126a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
127514c5ef8d5774d8820ed1bf90fe53af1606cf106Aurimas Liutikas    @Deprecated
128a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void restoreAllState(Parcelable state, List<Fragment> nonConfigList) {
12944ba79e47d6db54e5501f994880fa09eb880c185Adam Powell        mHost.mFragmentManager.restoreAllState(state,
13044ba79e47d6db54e5501f994880fa09eb880c185Adam Powell                new FragmentManagerNonConfig(nonConfigList, null));
13144ba79e47d6db54e5501f994880fa09eb880c185Adam Powell    }
13244ba79e47d6db54e5501f994880fa09eb880c185Adam Powell
13344ba79e47d6db54e5501f994880fa09eb880c185Adam Powell    /**
13444ba79e47d6db54e5501f994880fa09eb880c185Adam Powell     * Restores the saved state for all Fragments. The given FragmentManagerNonConfig are Fragment
13544ba79e47d6db54e5501f994880fa09eb880c185Adam Powell     * instances retained across configuration changes, including nested fragments
13644ba79e47d6db54e5501f994880fa09eb880c185Adam Powell     *
13744ba79e47d6db54e5501f994880fa09eb880c185Adam Powell     * @see #retainNestedNonConfig()
13844ba79e47d6db54e5501f994880fa09eb880c185Adam Powell     */
13944ba79e47d6db54e5501f994880fa09eb880c185Adam Powell    public void restoreAllState(Parcelable state, FragmentManagerNonConfig nonConfig) {
14044ba79e47d6db54e5501f994880fa09eb880c185Adam Powell        mHost.mFragmentManager.restoreAllState(state, nonConfig);
141a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
142a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
143a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
144a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Returns a list of Fragments that have opted to retain their instance across
145a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * configuration changes.
14644ba79e47d6db54e5501f994880fa09eb880c185Adam Powell     *
14744ba79e47d6db54e5501f994880fa09eb880c185Adam Powell     * @deprecated use {@link #retainNestedNonConfig()} to also track retained
14844ba79e47d6db54e5501f994880fa09eb880c185Adam Powell     *             nested child fragments
149a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
150514c5ef8d5774d8820ed1bf90fe53af1606cf106Aurimas Liutikas    @Deprecated
151a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public List<Fragment> retainNonConfig() {
15244ba79e47d6db54e5501f994880fa09eb880c185Adam Powell        return mHost.mFragmentManager.retainNonConfig().getFragments();
15344ba79e47d6db54e5501f994880fa09eb880c185Adam Powell    }
15444ba79e47d6db54e5501f994880fa09eb880c185Adam Powell
15544ba79e47d6db54e5501f994880fa09eb880c185Adam Powell    /**
15644ba79e47d6db54e5501f994880fa09eb880c185Adam Powell     * Returns a nested tree of Fragments that have opted to retain their instance across
15744ba79e47d6db54e5501f994880fa09eb880c185Adam Powell     * configuration changes.
15844ba79e47d6db54e5501f994880fa09eb880c185Adam Powell     */
15944ba79e47d6db54e5501f994880fa09eb880c185Adam Powell    public FragmentManagerNonConfig retainNestedNonConfig() {
160a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        return mHost.mFragmentManager.retainNonConfig();
161a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
162a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
163a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
164a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Moves all Fragments managed by the controller's FragmentManager
165a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * into the create state.
166a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * <p>Call when Fragments should be created.
167a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
168a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @see Fragment#onCreate(Bundle)
169a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
170a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void dispatchCreate() {
171a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.mFragmentManager.dispatchCreate();
172a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
173a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
174a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
175a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Moves all Fragments managed by the controller's FragmentManager
176a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * into the activity created state.
177a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * <p>Call when Fragments should be informed their host has been created.
178a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
179a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @see Fragment#onActivityCreated(Bundle)
180a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
181a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void dispatchActivityCreated() {
182a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.mFragmentManager.dispatchActivityCreated();
183a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
184a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
185a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
186a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Moves all Fragments managed by the controller's FragmentManager
187a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * into the start state.
188a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * <p>Call when Fragments should be started.
189a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
190a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @see Fragment#onStart()
191a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
192a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void dispatchStart() {
193a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.mFragmentManager.dispatchStart();
194a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
195a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
196a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
197a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Moves all Fragments managed by the controller's FragmentManager
198a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * into the resume state.
199a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * <p>Call when Fragments should be resumed.
200a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
201a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @see Fragment#onResume()
202a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
203a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void dispatchResume() {
204a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.mFragmentManager.dispatchResume();
205a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
206a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
207a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
208a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Moves all Fragments managed by the controller's FragmentManager
209a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * into the pause state.
210a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * <p>Call when Fragments should be paused.
211a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
212a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @see Fragment#onPause()
213a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
214a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void dispatchPause() {
215a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.mFragmentManager.dispatchPause();
216a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
217a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
218a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
219a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Moves all Fragments managed by the controller's FragmentManager
220a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * into the stop state.
221a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * <p>Call when Fragments should be stopped.
222a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
223a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @see Fragment#onStop()
224a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
225a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void dispatchStop() {
226a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.mFragmentManager.dispatchStop();
227a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
228a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
229a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
230a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Moves all Fragments managed by the controller's FragmentManager
231a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * into the destroy view state.
232a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * <p>Call when the Fragment's views should be destroyed.
233a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
234a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @see Fragment#onDestroyView()
235a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
236a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void dispatchDestroyView() {
237a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.mFragmentManager.dispatchDestroyView();
238a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
239a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
240a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
241a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Moves all Fragments managed by the controller's FragmentManager
242a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * into the destroy state.
243a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * <p>Call when Fragments should be destroyed.
244a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
245a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @see Fragment#onDestroy()
246a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
247a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void dispatchDestroy() {
248a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.mFragmentManager.dispatchDestroy();
249a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
250a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
251a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
2527c796811c040a3b9c189d49f138028c5e44466a4Wale Ogunwale     * Lets all Fragments managed by the controller's FragmentManager know the multi-window mode of
2537c796811c040a3b9c189d49f138028c5e44466a4Wale Ogunwale     * the activity changed.
2547c796811c040a3b9c189d49f138028c5e44466a4Wale Ogunwale     * <p>Call when the multi-window mode of the activity changed.
2557c796811c040a3b9c189d49f138028c5e44466a4Wale Ogunwale     *
256933076d80561751618f462b26309ce9e4c3ff3bfAndrii Kulian     * @see Fragment#onMultiWindowModeChanged
2575af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung     * @deprecated use {@link #dispatchMultiWindowModeChanged(boolean, Configuration)}
2587c796811c040a3b9c189d49f138028c5e44466a4Wale Ogunwale     */
2595af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung    @Deprecated
260933076d80561751618f462b26309ce9e4c3ff3bfAndrii Kulian    public void dispatchMultiWindowModeChanged(boolean isInMultiWindowMode) {
261933076d80561751618f462b26309ce9e4c3ff3bfAndrii Kulian        mHost.mFragmentManager.dispatchMultiWindowModeChanged(isInMultiWindowMode);
2627c796811c040a3b9c189d49f138028c5e44466a4Wale Ogunwale    }
2637c796811c040a3b9c189d49f138028c5e44466a4Wale Ogunwale
2647c796811c040a3b9c189d49f138028c5e44466a4Wale Ogunwale    /**
2655af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung     * Lets all Fragments managed by the controller's FragmentManager know the multi-window mode of
2665af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung     * the activity changed.
2675af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung     * <p>Call when the multi-window mode of the activity changed.
2685af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung     *
2695af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung     * @see Fragment#onMultiWindowModeChanged
2705af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung     */
2715af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung    public void dispatchMultiWindowModeChanged(boolean isInMultiWindowMode,
2725af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung            Configuration newConfig) {
2735af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung        mHost.mFragmentManager.dispatchMultiWindowModeChanged(isInMultiWindowMode, newConfig);
2745af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung    }
2755af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung
2765af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung    /**
2777c796811c040a3b9c189d49f138028c5e44466a4Wale Ogunwale     * Lets all Fragments managed by the controller's FragmentManager know the picture-in-picture
2787c796811c040a3b9c189d49f138028c5e44466a4Wale Ogunwale     * mode of the activity changed.
2797c796811c040a3b9c189d49f138028c5e44466a4Wale Ogunwale     * <p>Call when the picture-in-picture mode of the activity changed.
2807c796811c040a3b9c189d49f138028c5e44466a4Wale Ogunwale     *
281933076d80561751618f462b26309ce9e4c3ff3bfAndrii Kulian     * @see Fragment#onPictureInPictureModeChanged
2825af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung     * @deprecated use {@link #dispatchPictureInPictureModeChanged(boolean, Configuration)}
2837c796811c040a3b9c189d49f138028c5e44466a4Wale Ogunwale     */
2845af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung    @Deprecated
285933076d80561751618f462b26309ce9e4c3ff3bfAndrii Kulian    public void dispatchPictureInPictureModeChanged(boolean isInPictureInPictureMode) {
286933076d80561751618f462b26309ce9e4c3ff3bfAndrii Kulian        mHost.mFragmentManager.dispatchPictureInPictureModeChanged(isInPictureInPictureMode);
2877c796811c040a3b9c189d49f138028c5e44466a4Wale Ogunwale    }
2887c796811c040a3b9c189d49f138028c5e44466a4Wale Ogunwale
2897c796811c040a3b9c189d49f138028c5e44466a4Wale Ogunwale    /**
2905af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung     * Lets all Fragments managed by the controller's FragmentManager know the picture-in-picture
2915af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung     * mode of the activity changed.
2925af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung     * <p>Call when the picture-in-picture mode of the activity changed.
2935af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung     *
2945af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung     * @see Fragment#onPictureInPictureModeChanged
2955af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung     */
2965af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung    public void dispatchPictureInPictureModeChanged(boolean isInPictureInPictureMode,
2975af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung            Configuration newConfig) {
2985af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung        mHost.mFragmentManager.dispatchPictureInPictureModeChanged(isInPictureInPictureMode,
2995af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung                newConfig);
3005af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung    }
3015af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung
3025af42fc3052ecaf35c937278a986143a65f6ce5fWinson Chung    /**
303a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Lets all Fragments managed by the controller's FragmentManager
304a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * know a configuration change occurred.
305a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * <p>Call when there is a configuration change.
306a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
307a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @see Fragment#onConfigurationChanged(Configuration)
308a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
309a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void dispatchConfigurationChanged(Configuration newConfig) {
310a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.mFragmentManager.dispatchConfigurationChanged(newConfig);
311a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
312a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
313a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
314a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Lets all Fragments managed by the controller's FragmentManager
315a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * know the device is in a low memory condition.
316a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * <p>Call when the device is low on memory and Fragment's should trim
317a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * their memory usage.
318a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
319a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @see Fragment#onLowMemory()
320a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
321a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void dispatchLowMemory() {
322a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.mFragmentManager.dispatchLowMemory();
323a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
324a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
325a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
326a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Lets all Fragments managed by the controller's FragmentManager
327a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * know they should trim their memory usage.
328a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * <p>Call when the Fragment can release allocated memory [such as if
329a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * the Fragment is in the background].
330a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
331a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @see Fragment#onTrimMemory(int)
332a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
333a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void dispatchTrimMemory(int level) {
334a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.mFragmentManager.dispatchTrimMemory(level);
335a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
336a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
337a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
338a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Lets all Fragments managed by the controller's FragmentManager
339a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * know they should create an options menu.
340a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * <p>Call when the Fragment should create an options menu.
341a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
342a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @return {@code true} if the options menu contains items to display
343a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @see Fragment#onCreateOptionsMenu(Menu, MenuInflater)
344a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
345a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public boolean dispatchCreateOptionsMenu(Menu menu, MenuInflater inflater) {
346a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        return mHost.mFragmentManager.dispatchCreateOptionsMenu(menu, inflater);
347a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
348a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
349a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
350a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Lets all Fragments managed by the controller's FragmentManager
351a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * know they should prepare their options menu for display.
352a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * <p>Call immediately before displaying the Fragment's options menu.
353a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
354a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @return {@code true} if the options menu contains items to display
355a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @see Fragment#onPrepareOptionsMenu(Menu)
356a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
357a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public boolean dispatchPrepareOptionsMenu(Menu menu) {
358a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        return mHost.mFragmentManager.dispatchPrepareOptionsMenu(menu);
359a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
360a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
361a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
362a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Sends an option item selection event to the Fragments managed by the
363a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * controller's FragmentManager. Once the event has been consumed,
364a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * no additional handling will be performed.
365a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * <p>Call immediately after an options menu item has been selected
366a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
367a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @return {@code true} if the options menu selection event was consumed
368a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @see Fragment#onOptionsItemSelected(MenuItem)
369a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
370a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public boolean dispatchOptionsItemSelected(MenuItem item) {
371a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        return mHost.mFragmentManager.dispatchOptionsItemSelected(item);
372a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
373a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
374a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
375a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Sends a context item selection event to the Fragments managed by the
376a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * controller's FragmentManager. Once the event has been consumed,
377a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * no additional handling will be performed.
378a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * <p>Call immediately after an options menu item has been selected
379a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
380a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @return {@code true} if the context menu selection event was consumed
381a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @see Fragment#onContextItemSelected(MenuItem)
382a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
383a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public boolean dispatchContextItemSelected(MenuItem item) {
384a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        return mHost.mFragmentManager.dispatchContextItemSelected(item);
385a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
386a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
387a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
388a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Lets all Fragments managed by the controller's FragmentManager
389a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * know their options menu has closed.
390a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * <p>Call immediately after closing the Fragment's options menu.
391a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
392a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @see Fragment#onOptionsMenuClosed(Menu)
393a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
394a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void dispatchOptionsMenuClosed(Menu menu) {
395a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.mFragmentManager.dispatchOptionsMenuClosed(menu);
396a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
397a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
398a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
399a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Execute any pending actions for the Fragments managed by the
400a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * controller's FragmentManager.
401a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * <p>Call when queued actions can be performed [eg when the
402a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Fragment moves into a start or resume state].
403a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @return {@code true} if queued actions were performed
404a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
405a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public boolean execPendingActions() {
406a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        return mHost.mFragmentManager.execPendingActions();
407a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
408a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
409a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
410a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Starts the loaders.
411a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
412a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void doLoaderStart() {
413a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.doLoaderStart();
414a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
415a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
416a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
417a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Stops the loaders, optionally retaining their state. This is useful for keeping the
418a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * loader state across configuration changes.
419a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
420a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @param retain When {@code true}, the loaders aren't stopped, but, their instances
421a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * are retained in a started state
422a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
423a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void doLoaderStop(boolean retain) {
424a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.doLoaderStop(retain);
425a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
426a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
427a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
428a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Destroys the loaders and, if their state is not being retained, removes them.
429a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
430a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void doLoaderDestroy() {
431a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.doLoaderDestroy();
432a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
433a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
434a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
435a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Lets the loaders know the host is ready to receive notifications.
436a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
437a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void reportLoaderStart() {
438a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.reportLoaderStart();
439a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
440a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
441a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
442a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Returns a list of LoaderManagers that have opted to retain their instance across
443a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * configuration changes.
444a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
445a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public ArrayMap<String, LoaderManager> retainLoaderNonConfig() {
446a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        return mHost.retainLoaderNonConfig();
447a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
448a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
449a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
450a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Restores the saved state for all LoaderManagers. The given LoaderManager list are
451a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * LoaderManager instances retained across configuration changes.
452a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     *
453a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * @see #retainLoaderNonConfig()
454a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
455a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void restoreLoaderNonConfig(ArrayMap<String, LoaderManager> loaderManagers) {
456a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.restoreLoaderNonConfig(loaderManagers);
457a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
458a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy
459a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    /**
460a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     * Dumps the current state of the loaders.
461a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy     */
462a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    public void dumpLoaders(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) {
463a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy        mHost.dumpLoaders(prefix, fd, writer, args);
464a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy    }
465a5fc6f006f67867417b7a427de6e7394c4312decTodd Kennedy}
466