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