FragmentController.java revision d608cf6e08769bf320c1b595cbbd9a7664160449
1d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy/*
2d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * Copyright (C) 2015 The Android Open Source Project
3d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy *
4d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * Licensed under the Apache License, Version 2.0 (the "License");
5d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * you may not use this file except in compliance with the License.
6d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * You may obtain a copy of the License at
7d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy *
8d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy *      http://www.apache.org/licenses/LICENSE-2.0
9d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy *
10d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * Unless required by applicable law or agreed to in writing, software
11d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * distributed under the License is distributed on an "AS IS" BASIS,
12d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * See the License for the specific language governing permissions and
14d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * limitations under the License.
15d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy */
16d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
17d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedypackage android.support.v4.app;
18d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
19d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport android.content.Context;
20d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport android.content.res.Configuration;
21d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport android.os.Parcelable;
22d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport android.support.v4.util.SimpleArrayMap;
23d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport android.util.AttributeSet;
24d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport android.view.Menu;
25d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport android.view.MenuInflater;
26d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport android.view.MenuItem;
27d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport android.view.View;
28d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
29d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport java.io.FileDescriptor;
30d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport java.io.PrintWriter;
31d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport java.util.ArrayList;
32d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport java.util.List;
33d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
34d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy/**
35d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * Provides integration points with a {@link FragmentManager}. For example, a fragment
36d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * host, such as {@link FragmentActivity}, uses the {@link FragmentController} to control
37d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * the {@link Fragment} lifecycle.
38d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy */
39d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedypublic class FragmentController {
40d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    private final FragmentHostCallbacks mHost;
41d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
42d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    /**
43d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     * Returns a {@link FragmentController}.
44d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     */
45d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public static final FragmentController createController(FragmentHostCallbacks callbacks) {
46d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        return new FragmentController(callbacks);
47d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
48d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
49d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    private FragmentController(FragmentHostCallbacks callbacks) {
50d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost = callbacks;
51d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
52d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
53d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public FragmentManager getSupportFragmentManager() {
54d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        return mHost.getFragmentManagerImpl();
55d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
56d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
57d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public LoaderManager getSupportLoaderManager() {
58d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        return mHost.getLoaderManagerImpl();
59d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
60d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
61d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    /** Returns the number of active fragments. */
62d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public int getActiveFragmentsCount() {
63d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        final List<Fragment> actives = mHost.mFragmentManager.mActive;
64d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        return actives == null ? 0 : actives.size();
65d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
66d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
67d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    /** Returns the list of active fragments. */
68d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public List<Fragment> getActiveFragments(List<Fragment> actives) {
69d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        if (mHost.mFragmentManager.mActive == null) {
70d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy            return null;
71d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        }
72d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        if (actives == null) {
73d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy            actives = new ArrayList<Fragment>(getActiveFragmentsCount());
74d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        }
75d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        actives.addAll(mHost.mFragmentManager.mActive);
76d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        return actives;
77d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
78d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
79d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    /** Attaches the host to the FragmentManager. */
80d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public void attachHost(Fragment parent) {
81d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.mFragmentManager.attachController(
82d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy                mHost, mHost /*container*/, parent);
83d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
84d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
85d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public View onCreateView(View parent, String name, Context context, AttributeSet attrs) {
86d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        return mHost.mFragmentManager.onCreateView(parent, name, context, attrs);
87d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
88d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
89d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    /**
90d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     * Marks the fragment state as unsaved. This allows for "state loss" detection.
91d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     */
92d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public void noteStateNotSaved() {
93d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.mFragmentManager.noteStateNotSaved();
94d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
95d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
96d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    /**
97d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     * Saves the state for all Fragments.
98d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     */
99d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public Parcelable saveAllState() {
100d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        return mHost.mFragmentManager.saveAllState();
101d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
102d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
103d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    /**
104d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     * Restores the saved state for all Fragments. The given Fragment list are Fragment
105d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     * instances retained across configuration changes.
106d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     *
107d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     * @see #retainNonConfig()
108d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     */
109d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public void restoreAllState(Parcelable state, ArrayList<Fragment> nonConfigList) {
110d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.mFragmentManager.restoreAllState(state, nonConfigList);
111d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
112d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
113d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    /**
114d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     * Returns a list of Fragments that have opted to retain their instance across
115d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     * configuration changes.
116d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     */
117d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public ArrayList<Fragment> retainNonConfig() {
118d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        return mHost.mFragmentManager.retainNonConfig();
119d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
120d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
121d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public void dispatchCreate() {
122d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.mFragmentManager.dispatchCreate();
123d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
124d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
125d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public void dispatchActivityCreated() {
126d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.mFragmentManager.dispatchActivityCreated();
127d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
128d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
129d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public void dispatchStart() {
130d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.mFragmentManager.dispatchStart();
131d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
132d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
133d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public void dispatchResume() {
134d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.mFragmentManager.dispatchResume();
135d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
136d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
137d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public void dispatchPause() {
138d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.mFragmentManager.dispatchPause();
139d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
140d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
141d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public void dispatchStop() {
142d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.mFragmentManager.dispatchStop();
143d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
144d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
145d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public void dispatchReallyStop() {
146d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.mFragmentManager.dispatchReallyStop();
147d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
148d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
149d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public void dispatchDestroyView() {
150d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.mFragmentManager.dispatchDestroyView();
151d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
152d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
153d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public void dispatchDestroy() {
154d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.mFragmentManager.dispatchDestroy();
155d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
156d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
157d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public void dispatchConfigurationChanged(Configuration newConfig) {
158d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.mFragmentManager.dispatchConfigurationChanged(newConfig);
159d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
160d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
161d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public void dispatchLowMemory() {
162d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.mFragmentManager.dispatchLowMemory();
163d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
164d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
165d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public boolean dispatchCreateOptionsMenu(Menu menu, MenuInflater inflater) {
166d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        return mHost.mFragmentManager.dispatchCreateOptionsMenu(menu, inflater);
167d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
168d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
169d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public boolean dispatchPrepareOptionsMenu(Menu menu) {
170d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        return mHost.mFragmentManager.dispatchPrepareOptionsMenu(menu);
171d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
172d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
173d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public boolean dispatchOptionsItemSelected(MenuItem item) {
174d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        return mHost.mFragmentManager.dispatchOptionsItemSelected(item);
175d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
176d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
177d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public boolean dispatchContextItemSelected(MenuItem item) {
178d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        return mHost.mFragmentManager.dispatchContextItemSelected(item);
179d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
180d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
181d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public void dispatchOptionsMenuClosed(Menu menu) {
182d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.mFragmentManager.dispatchOptionsMenuClosed(menu);
183d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
184d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
185d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public boolean execPendingActions() {
186d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        return mHost.mFragmentManager.execPendingActions();
187d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
188d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
189d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    void doLoaderStart() {
190d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.doLoaderStart();
191d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
192d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
193d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    /**
194d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     * Stops the loaders, optionally retaining their state. This is useful for keeping the
195d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     * loader state across configuration changes.
196d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     *
197d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     * @param retain When {@code true}, the loaders aren't stopped, but, their instances
198d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     * are retained in a started state
199d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     */
200d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    void doLoaderStop(boolean retain) {
201d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.doLoaderStop(retain);
202d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
203d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
204d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    void doLoaderRetain() {
205d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.doLoaderRetain();
206d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
207d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
208d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    void doLoaderDestroy() {
209d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.doLoaderDestroy();
210d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
211d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
212d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    void reportLoaderStart() {
213d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.reportLoaderStart();
214d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
215d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
216d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    /**
217d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     * Returns a list of LoaderManagers that have opted to retain their instance across
218d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     * configuration changes.
219d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     */
220d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public SimpleArrayMap<String, LoaderManager> retainLoaderNonConfig() {
221d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        return mHost.retainLoaderNonConfig();
222d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
223d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
224d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    /**
225d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     * Restores the saved state for all LoaderManagers. The given LoaderManager list are
226d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     * LoaderManager instances retained across configuration changes.
227d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     *
228d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     * @see #retainLoaderNonConfig()
229d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy     */
230d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public void restoreLoaderNonConfig(SimpleArrayMap<String, LoaderManager> loaderManagers) {
231d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.restoreLoaderNonConfig(loaderManagers);
232d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
233d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy
234d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    public void dumpLoaders(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) {
235d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy        mHost.dumpLoaders(prefix, fd, writer, args);
236d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy    }
237d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy}
238