1 /*
2  * Copyright (C) 2011 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License
15  */
16 
17 package com.android.dialer.util;
18 
19 import android.app.LoaderManager.LoaderCallbacks;
20 import android.content.Context;
21 import android.content.Loader;
22 import android.os.Bundle;
23 
24 /**
25  * A {@link Loader} only used to make use of the {@link android.app.Fragment#setStartDeferred}
26  * feature from an old-style fragment which doesn't use {@link Loader}s to load data.
27  *
28  * This loader never delivers results.  A caller fragment must destroy it when deferred fragments
29  * should be started.
30  */
31 public class EmptyLoader extends Loader<Object> {
EmptyLoader(Context context)32     public EmptyLoader(Context context) {
33         super(context);
34     }
35 
36     /**
37      * {@link LoaderCallbacks} which just generates {@link EmptyLoader}.  {@link #onLoadFinished}
38      * and {@link #onLoaderReset} are no-op.
39      */
40     public static class Callback implements LoaderCallbacks<Object> {
41         private final Context mContext;
42 
Callback(Context context)43         public Callback(Context context) {
44             mContext = context.getApplicationContext();
45         }
46 
47         @Override
onCreateLoader(int id, Bundle args)48         public Loader<Object> onCreateLoader(int id, Bundle args) {
49             return new EmptyLoader(mContext);
50         }
51 
52         @Override
onLoadFinished(Loader<Object> loader, Object data)53         public void onLoadFinished(Loader<Object> loader, Object data) {
54         }
55 
56         @Override
onLoaderReset(Loader<Object> loader)57         public void onLoaderReset(Loader<Object> loader) {
58         }
59     }
60 }
61