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; 22a76a4339be2f27431a167381187c3f0b0d08f1b7Daniel Resnickimport android.support.annotation.Nullable; 23d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport android.support.v4.util.SimpleArrayMap; 24d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport android.util.AttributeSet; 25d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport android.view.Menu; 26d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport android.view.MenuInflater; 27d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport android.view.MenuItem; 28d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport android.view.View; 29d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 30d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport java.io.FileDescriptor; 31d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport java.io.PrintWriter; 32d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport java.util.ArrayList; 33d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedyimport java.util.List; 34d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 35d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy/** 368491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Provides integration points with a {@link FragmentManager} for a fragment host. 378491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * <p> 388491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * It is the responsibility of the host to take care of the Fragment's lifecycle. 398491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * The methods provided by {@link FragmentController} are for that purpose. 40d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy */ 41d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedypublic class FragmentController { 428491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy private final FragmentHostCallback<?> mHost; 43d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 44d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy /** 45d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * Returns a {@link FragmentController}. 46d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy */ 478491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy public static final FragmentController createController(FragmentHostCallback<?> callbacks) { 48d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy return new FragmentController(callbacks); 49d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 50d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 518491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy private FragmentController(FragmentHostCallback<?> callbacks) { 52d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost = callbacks; 53d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 54d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 558491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 568491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Returns a {@link FragmentManager} for this controller. 578491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 58d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public FragmentManager getSupportFragmentManager() { 59d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy return mHost.getFragmentManagerImpl(); 60d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 61d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 628491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 638491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Returns a {@link LoaderManager}. 648491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 65d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public LoaderManager getSupportLoaderManager() { 66d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy return mHost.getLoaderManagerImpl(); 67d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 68d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 698491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 70a76a4339be2f27431a167381187c3f0b0d08f1b7Daniel Resnick * Returns a fragment with the given identifier. 71a76a4339be2f27431a167381187c3f0b0d08f1b7Daniel Resnick */ 72a76a4339be2f27431a167381187c3f0b0d08f1b7Daniel Resnick @Nullable 73a76a4339be2f27431a167381187c3f0b0d08f1b7Daniel Resnick Fragment findFragmentByWho(String who) { 74a76a4339be2f27431a167381187c3f0b0d08f1b7Daniel Resnick return mHost.mFragmentManager.findFragmentByWho(who); 75a76a4339be2f27431a167381187c3f0b0d08f1b7Daniel Resnick } 76a76a4339be2f27431a167381187c3f0b0d08f1b7Daniel Resnick 77a76a4339be2f27431a167381187c3f0b0d08f1b7Daniel Resnick /** 788491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Returns the number of active fragments. 798491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 80d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public int getActiveFragmentsCount() { 81d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy final List<Fragment> actives = mHost.mFragmentManager.mActive; 82d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy return actives == null ? 0 : actives.size(); 83d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 84d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 858491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 868491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Returns the list of active fragments. 878491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 88d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public List<Fragment> getActiveFragments(List<Fragment> actives) { 89d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy if (mHost.mFragmentManager.mActive == null) { 90d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy return null; 91d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 92d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy if (actives == null) { 93d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy actives = new ArrayList<Fragment>(getActiveFragmentsCount()); 94d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 95d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy actives.addAll(mHost.mFragmentManager.mActive); 96d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy return actives; 97d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 98d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 998491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 1008491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Attaches the host to the FragmentManager for this controller. The host must be 1018491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * attached before the FragmentManager can be used to manage Fragments. 1028491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 103d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public void attachHost(Fragment parent) { 104d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.mFragmentManager.attachController( 105d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost, mHost /*container*/, parent); 106d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 107d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 1088491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 1098491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Instantiates a Fragment's view. 1108491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * 1118491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @param parent The parent that the created view will be placed 1128491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * in; <em>note that this may be null</em>. 1138491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @param name Tag name to be inflated. 1148491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @param context The context the view is being created in. 1158491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @param attrs Inflation attributes as specified in XML file. 1168491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * 1178491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @return view the newly created view 1188491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 119d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public View onCreateView(View parent, String name, Context context, AttributeSet attrs) { 120d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy return mHost.mFragmentManager.onCreateView(parent, name, context, attrs); 121d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 122d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 123d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy /** 124d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * Marks the fragment state as unsaved. This allows for "state loss" detection. 125d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy */ 126d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public void noteStateNotSaved() { 127d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.mFragmentManager.noteStateNotSaved(); 128d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 129d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 130d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy /** 131d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * Saves the state for all Fragments. 132d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy */ 133d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public Parcelable saveAllState() { 134d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy return mHost.mFragmentManager.saveAllState(); 135d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 136d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 137d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy /** 138d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * Restores the saved state for all Fragments. The given Fragment list are Fragment 139d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * instances retained across configuration changes. 140d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * 141d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * @see #retainNonConfig() 142c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell * 143c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell * @deprecated use {@link #restoreAllState(Parcelable, FragmentManagerNonConfig)} 144d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy */ 145d805095048f6be52cddbd572ee343c4639ba8187Alan Viverette @Deprecated 1468491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy public void restoreAllState(Parcelable state, List<Fragment> nonConfigList) { 147c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell mHost.mFragmentManager.restoreAllState(state, 148c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell new FragmentManagerNonConfig(nonConfigList, null)); 149c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell } 150c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell 151c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell /** 152c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell * Restores the saved state for all Fragments. The given FragmentManagerNonConfig are Fragment 153c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell * instances retained across configuration changes, including nested fragments 154c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell * 155c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell * @see #retainNestedNonConfig() 156c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell */ 157c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell public void restoreAllState(Parcelable state, FragmentManagerNonConfig nonConfig) { 158c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell mHost.mFragmentManager.restoreAllState(state, nonConfig); 159d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 160d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 161d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy /** 162d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * Returns a list of Fragments that have opted to retain their instance across 163d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * configuration changes. 164c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell * 165c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell * @deprecated use {@link #retainNestedNonConfig()} to also track retained 166c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell * nested child fragments 167d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy */ 168d805095048f6be52cddbd572ee343c4639ba8187Alan Viverette @Deprecated 1698491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy public List<Fragment> retainNonConfig() { 170c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell FragmentManagerNonConfig nonconf = mHost.mFragmentManager.retainNonConfig(); 171c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell return nonconf != null ? nonconf.getFragments() : null; 172c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell } 173c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell 174c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell /** 175c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell * Returns a nested tree of Fragments that have opted to retain their instance across 176c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell * configuration changes. 177c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell */ 178c077b4cd990a9f220a27ad5eca04828e17136064Adam Powell public FragmentManagerNonConfig retainNestedNonConfig() { 179d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy return mHost.mFragmentManager.retainNonConfig(); 180d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 181d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 1828491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 1838491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Moves all Fragments managed by the controller's FragmentManager 1848491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * into the create state. 1858491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * <p>Call when Fragments should be created. 1868491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * 1878491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @see Fragment#onCreate(Bundle) 1888491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 189d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public void dispatchCreate() { 190d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.mFragmentManager.dispatchCreate(); 191d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 192d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 1938491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 1948491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Moves all Fragments managed by the controller's FragmentManager 1958491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * into the activity created state. 1968491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * <p>Call when Fragments should be informed their host has been created. 1978491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * 1988491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @see Fragment#onActivityCreated(Bundle) 1998491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 200d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public void dispatchActivityCreated() { 201d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.mFragmentManager.dispatchActivityCreated(); 202d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 203d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 2048491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 2058491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Moves all Fragments managed by the controller's FragmentManager 2068491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * into the start state. 2078491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * <p>Call when Fragments should be started. 2088491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * 2098491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @see Fragment#onStart() 2108491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 211d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public void dispatchStart() { 212d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.mFragmentManager.dispatchStart(); 213d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 214d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 2158491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 2168491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Moves all Fragments managed by the controller's FragmentManager 2178491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * into the resume state. 2188491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * <p>Call when Fragments should be resumed. 2198491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * 2208491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @see Fragment#onResume() 2218491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 222d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public void dispatchResume() { 223d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.mFragmentManager.dispatchResume(); 224d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 225d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 2268491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 2278491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Moves all Fragments managed by the controller's FragmentManager 2288491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * into the pause state. 2298491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * <p>Call when Fragments should be paused. 2308491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * 2318491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @see Fragment#onPause() 2328491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 233d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public void dispatchPause() { 234d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.mFragmentManager.dispatchPause(); 235d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 236d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 2378491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 2388491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Moves all Fragments managed by the controller's FragmentManager 2398491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * into the stop state. 2408491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * <p>Call when Fragments should be stopped. 2418491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * 2428491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @see Fragment#onStop() 2438491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 244d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public void dispatchStop() { 245d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.mFragmentManager.dispatchStop(); 246d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 247d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 248d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public void dispatchReallyStop() { 249d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.mFragmentManager.dispatchReallyStop(); 250d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 251d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 2528491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 2538491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Moves all Fragments managed by the controller's FragmentManager 2548491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * into the destroy view state. 2558491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * <p>Call when the Fragment's views should be destroyed. 2568491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * 2578491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @see Fragment#onDestroyView() 2588491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 259d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public void dispatchDestroyView() { 260d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.mFragmentManager.dispatchDestroyView(); 261d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 262d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 2638491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 2648491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Moves all Fragments managed by the controller's FragmentManager 2658491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * into the destroy state. 2668491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * <p>Call when Fragments should be destroyed. 2678491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * 2688491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @see Fragment#onDestroy() 2698491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 270d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public void dispatchDestroy() { 271d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.mFragmentManager.dispatchDestroy(); 272d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 273d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 2748491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 2755fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian * Lets all Fragments managed by the controller's FragmentManager know the multi-window mode of 2765fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian * the activity changed. 2775fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian * <p>Call when the multi-window mode of the activity changed. 2785fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian * 2795fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian * @see Fragment#onMultiWindowModeChanged 2805fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian */ 2815fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian public void dispatchMultiWindowModeChanged(boolean isInMultiWindowMode) { 2825fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian mHost.mFragmentManager.dispatchMultiWindowModeChanged(isInMultiWindowMode); 2835fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian } 2845fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian 2855fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian /** 2865fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian * Lets all Fragments managed by the controller's FragmentManager know the picture-in-picture 2875fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian * mode of the activity changed. 2885fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian * <p>Call when the picture-in-picture mode of the activity changed. 2895fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian * 2905fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian * @see Fragment#onPictureInPictureModeChanged 2915fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian */ 2925fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian public void dispatchPictureInPictureModeChanged(boolean isInPictureInPictureMode) { 2935fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian mHost.mFragmentManager.dispatchPictureInPictureModeChanged(isInPictureInPictureMode); 2945fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian } 2955fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian 2965fa6d3dd3f408ceb2ff7368fd0259713d9382ad8Andrii Kulian /** 2978491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Lets all Fragments managed by the controller's FragmentManager 2988491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * know a configuration change occurred. 2998491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * <p>Call when there is a configuration change. 3008491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * 3018491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @see Fragment#onConfigurationChanged(Configuration) 3028491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 303d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public void dispatchConfigurationChanged(Configuration newConfig) { 304d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.mFragmentManager.dispatchConfigurationChanged(newConfig); 305d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 306d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 3078491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 3088491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Lets all Fragments managed by the controller's FragmentManager 3098491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * know the device is in a low memory condition. 3108491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * <p>Call when the device is low on memory and Fragment's should trim 3118491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * their memory usage. 3128491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * 3138491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @see Fragment#onLowMemory() 3148491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 315d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public void dispatchLowMemory() { 316d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.mFragmentManager.dispatchLowMemory(); 317d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 318d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 3198491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 3208491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Lets all Fragments managed by the controller's FragmentManager 3218491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * know they should create an options menu. 3228491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * <p>Call when the Fragment should create an options menu. 3238491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * 3248491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @return {@code true} if the options menu contains items to display 3258491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @see Fragment#onCreateOptionsMenu(Menu, MenuInflater) 3268491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 327d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public boolean dispatchCreateOptionsMenu(Menu menu, MenuInflater inflater) { 328d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy return mHost.mFragmentManager.dispatchCreateOptionsMenu(menu, inflater); 329d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 330d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 3318491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 3328491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Lets all Fragments managed by the controller's FragmentManager 3338491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * know they should prepare their options menu for display. 3348491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * <p>Call immediately before displaying the Fragment's options menu. 3358491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * 3368491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @return {@code true} if the options menu contains items to display 3378491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @see Fragment#onPrepareOptionsMenu(Menu) 3388491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 339d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public boolean dispatchPrepareOptionsMenu(Menu menu) { 340d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy return mHost.mFragmentManager.dispatchPrepareOptionsMenu(menu); 341d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 342d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 3438491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 3448491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Sends an option item selection event to the Fragments managed by the 3458491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * controller's FragmentManager. Once the event has been consumed, 3468491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * no additional handling will be performed. 3478491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * <p>Call immediately after an options menu item has been selected 3488491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * 3498491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @return {@code true} if the options menu selection event was consumed 3508491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @see Fragment#onOptionsItemSelected(MenuItem) 3518491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 352d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public boolean dispatchOptionsItemSelected(MenuItem item) { 353d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy return mHost.mFragmentManager.dispatchOptionsItemSelected(item); 354d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 355d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 3568491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 3578491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Sends a context item selection event to the Fragments managed by the 3588491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * controller's FragmentManager. Once the event has been consumed, 3598491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * no additional handling will be performed. 3608491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * <p>Call immediately after an options menu item has been selected 3618491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * 3628491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @return {@code true} if the context menu selection event was consumed 3638491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @see Fragment#onContextItemSelected(MenuItem) 3648491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 365d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public boolean dispatchContextItemSelected(MenuItem item) { 366d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy return mHost.mFragmentManager.dispatchContextItemSelected(item); 367d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 368d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 3698491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 3708491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Lets all Fragments managed by the controller's FragmentManager 3718491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * know their options menu has closed. 3728491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * <p>Call immediately after closing the Fragment's options menu. 3738491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * 3748491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @see Fragment#onOptionsMenuClosed(Menu) 3758491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 376d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public void dispatchOptionsMenuClosed(Menu menu) { 377d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.mFragmentManager.dispatchOptionsMenuClosed(menu); 378d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 379d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 3808491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 3818491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Execute any pending actions for the Fragments managed by the 3828491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * controller's FragmentManager. 3838491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * <p>Call when queued actions can be performed [eg when the 3848491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Fragment moves into a start or resume state]. 3858491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * @return {@code true} if queued actions were performed 3868491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 387d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public boolean execPendingActions() { 388d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy return mHost.mFragmentManager.execPendingActions(); 389d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 390d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 391edaa101bfa72b5e5a5b14b9e6c66579eaed5e8ccTodd Kennedy /** 392edaa101bfa72b5e5a5b14b9e6c66579eaed5e8ccTodd Kennedy * Starts the loaders. 393edaa101bfa72b5e5a5b14b9e6c66579eaed5e8ccTodd Kennedy */ 394edaa101bfa72b5e5a5b14b9e6c66579eaed5e8ccTodd Kennedy public void doLoaderStart() { 395d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.doLoaderStart(); 396d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 397d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 398d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy /** 399d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * Stops the loaders, optionally retaining their state. This is useful for keeping the 400d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * loader state across configuration changes. 401d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * 402d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * @param retain When {@code true}, the loaders aren't stopped, but, their instances 403d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * are retained in a started state 404d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy */ 405edaa101bfa72b5e5a5b14b9e6c66579eaed5e8ccTodd Kennedy public void doLoaderStop(boolean retain) { 406d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.doLoaderStop(retain); 407d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 408d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 409edaa101bfa72b5e5a5b14b9e6c66579eaed5e8ccTodd Kennedy /** 410edaa101bfa72b5e5a5b14b9e6c66579eaed5e8ccTodd Kennedy * Retains the state of each of the loaders. 411edaa101bfa72b5e5a5b14b9e6c66579eaed5e8ccTodd Kennedy */ 412edaa101bfa72b5e5a5b14b9e6c66579eaed5e8ccTodd Kennedy public void doLoaderRetain() { 413d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.doLoaderRetain(); 414d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 415d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 416edaa101bfa72b5e5a5b14b9e6c66579eaed5e8ccTodd Kennedy /** 4178491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Destroys the loaders and, if their state is not being retained, removes them. 418edaa101bfa72b5e5a5b14b9e6c66579eaed5e8ccTodd Kennedy */ 419edaa101bfa72b5e5a5b14b9e6c66579eaed5e8ccTodd Kennedy public void doLoaderDestroy() { 420d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.doLoaderDestroy(); 421d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 422d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 423edaa101bfa72b5e5a5b14b9e6c66579eaed5e8ccTodd Kennedy /** 4248491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Lets the loaders know the host is ready to receive notifications. 425edaa101bfa72b5e5a5b14b9e6c66579eaed5e8ccTodd Kennedy */ 426edaa101bfa72b5e5a5b14b9e6c66579eaed5e8ccTodd Kennedy public void reportLoaderStart() { 427d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.reportLoaderStart(); 428d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 429d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 430d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy /** 431d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * Returns a list of LoaderManagers that have opted to retain their instance across 432d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * configuration changes. 433d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy */ 434d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public SimpleArrayMap<String, LoaderManager> retainLoaderNonConfig() { 435d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy return mHost.retainLoaderNonConfig(); 436d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 437d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 438d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy /** 439d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * Restores the saved state for all LoaderManagers. The given LoaderManager list are 440d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * LoaderManager instances retained across configuration changes. 441d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * 442d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy * @see #retainLoaderNonConfig() 443d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy */ 444d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public void restoreLoaderNonConfig(SimpleArrayMap<String, LoaderManager> loaderManagers) { 445d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.restoreLoaderNonConfig(loaderManagers); 446d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 447d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy 4488491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy /** 4498491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy * Dumps the current state of the loaders. 4508491eb62f621cd5de4b4caed839be09c77011f53Todd Kennedy */ 451d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy public void dumpLoaders(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) { 452d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy mHost.dumpLoaders(prefix, fd, writer, args); 453d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy } 454d608cf6e08769bf320c1b595cbbd9a7664160449Todd Kennedy} 455