Welcome to mirror list, hosted at ThFree Co, Russian Federation.

Fragment.java « app « holoeverywhere « org « src « library « HoloEverywhere « 3rd_party « android - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 94e0eb5fc0e5bbb4d4200251cad8554a52a0aada (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146

package org.holoeverywhere.app;

import java.util.Collection;

import org.holoeverywhere.LayoutInflater;
import org.holoeverywhere.addon.IAddon;
import org.holoeverywhere.addon.IAddonBasicAttacher;
import org.holoeverywhere.addon.IAddonFragment;

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app._HoloFragment;
import android.view.View;

import com.actionbarsherlock.view.ActionMode;
import com.actionbarsherlock.view.ActionMode.Callback;

public class Fragment extends _HoloFragment {
    public static <T extends Fragment> T instantiate(Class<T> clazz) {
        return instantiate(clazz, null);
    }

    public static <T extends Fragment> T instantiate(Class<T> clazz, Bundle args) {
        try {
            T fragment = clazz.newInstance();
            if (args != null) {
                args.setClassLoader(clazz.getClassLoader());
                fragment.setArguments(args);
            }
            return fragment;
        } catch (Exception e) {
            throw new InstantiationException("Unable to instantiate fragment " + clazz
                    + ": make sure class name exists, is public, and has an"
                    + " empty constructor that is public", e);
        }
    }

    @Deprecated
    public static Fragment instantiate(Context context, String fname) {
        return instantiate(context, fname, null);
    }

    @SuppressWarnings("unchecked")
    @Deprecated
    public static Fragment instantiate(Context context, String fname, Bundle args) {
        try {
            return instantiate((Class<? extends Fragment>) Class.forName(fname, true,
                    context.getClassLoader()), args);
        } catch (Exception e) {
            throw new InstantiationException("Unable to instantiate fragment " + fname
                    + ": make sure class name exists, is public, and has an"
                    + " empty constructor that is public", e);
        }
    }

    private final IAddonBasicAttacher<IAddonFragment, Fragment> mAttacher =
            new IAddonBasicAttacher<IAddonFragment, Fragment>(this);

    private LayoutInflater mLayoutInflater;

    @Override
    public <T extends IAddonFragment> T addon(Class<? extends IAddon> clazz) {
        return mAttacher.addon(clazz);
    }

    @Override
    public void addon(Collection<Class<? extends IAddon>> classes) {
        mAttacher.addon(classes);
    }

    @Override
    public <T extends IAddonFragment> T addon(String classname) {
        return mAttacher.addon(classname);
    }

    @Override
    public LayoutInflater getLayoutInflater() {
        if (mLayoutInflater == null) {
            mLayoutInflater = getSupportActivity().getLayoutInflater().
                    obtainFragmentChildInflater(this);
        }
        return mLayoutInflater;
    }

    @Override
    public boolean isAddonAttached(Class<? extends IAddon> clazz) {
        return mAttacher.isAddonAttached(clazz);
    }

    @Override
    public void lockAttaching() {
        mAttacher.lockAttaching();
    }

    @Override
    public Collection<Class<? extends IAddon>> obtainAddonsList() {
        return mAttacher.obtainAddonsList();
    }

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        mAttacher.reset();
        mAttacher.inhert(activity);
    }

    @Override
    public void onCreate(final Bundle savedInstanceState) {
        lockAttaching();
        performAddonAction(new AddonCallback<IAddonFragment>() {
            @Override
            public void justAction(IAddonFragment addon) {
                addon.onPreCreate(savedInstanceState);
            }
        });
        super.onCreate(savedInstanceState);
        performAddonAction(new AddonCallback<IAddonFragment>() {
            @Override
            public void justAction(IAddonFragment addon) {
                addon.onCreate(savedInstanceState);
            }
        });
    }

    @Override
    public void onViewCreated(final View view, final Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        performAddonAction(new AddonCallback<IAddonFragment>() {
            @Override
            public void justAction(IAddonFragment addon) {
                addon.onViewCreated(view, savedInstanceState);
            }
        });
    }

    @Override
    public boolean performAddonAction(AddonCallback<IAddonFragment> callback) {
        return mAttacher.performAddonAction(callback);
    }

    @Override
    public ActionMode startActionMode(Callback callback) {
        return getSupportActivity().startActionMode(callback);
    }
}