120680c49584c26f7818c2dec8fb00633af753e4aChris Banes/* 220680c49584c26f7818c2dec8fb00633af753e4aChris Banes * Copyright (C) 2015 The Android Open Source Project 320680c49584c26f7818c2dec8fb00633af753e4aChris Banes * 420680c49584c26f7818c2dec8fb00633af753e4aChris Banes * Licensed under the Apache License, Version 2.0 (the "License"); 520680c49584c26f7818c2dec8fb00633af753e4aChris Banes * you may not use this file except in compliance with the License. 620680c49584c26f7818c2dec8fb00633af753e4aChris Banes * You may obtain a copy of the License at 720680c49584c26f7818c2dec8fb00633af753e4aChris Banes * 820680c49584c26f7818c2dec8fb00633af753e4aChris Banes * http://www.apache.org/licenses/LICENSE-2.0 920680c49584c26f7818c2dec8fb00633af753e4aChris Banes * 1020680c49584c26f7818c2dec8fb00633af753e4aChris Banes * Unless required by applicable law or agreed to in writing, software 1120680c49584c26f7818c2dec8fb00633af753e4aChris Banes * distributed under the License is distributed on an "AS IS" BASIS, 1220680c49584c26f7818c2dec8fb00633af753e4aChris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1320680c49584c26f7818c2dec8fb00633af753e4aChris Banes * See the License for the specific language governing permissions and 1420680c49584c26f7818c2dec8fb00633af753e4aChris Banes * limitations under the License. 1520680c49584c26f7818c2dec8fb00633af753e4aChris Banes */ 1620680c49584c26f7818c2dec8fb00633af753e4aChris Banes 1720680c49584c26f7818c2dec8fb00633af753e4aChris Banespackage android.support.v4.app; 1820680c49584c26f7818c2dec8fb00633af753e4aChris Banes 1920680c49584c26f7818c2dec8fb00633af753e4aChris Banesimport android.app.Activity; 2020680c49584c26f7818c2dec8fb00633af753e4aChris Banesimport android.content.Context; 2120680c49584c26f7818c2dec8fb00633af753e4aChris Banesimport android.os.Build; 2220680c49584c26f7818c2dec8fb00633af753e4aChris Banesimport android.os.Bundle; 2320680c49584c26f7818c2dec8fb00633af753e4aChris Banesimport android.util.AttributeSet; 2420680c49584c26f7818c2dec8fb00633af753e4aChris Banesimport android.view.View; 2520680c49584c26f7818c2dec8fb00633af753e4aChris Banes 2620680c49584c26f7818c2dec8fb00633af753e4aChris Banes/** 2720680c49584c26f7818c2dec8fb00633af753e4aChris Banes * Base class for {@code FragmentActivity} to be able to use Donut APIs. 2820680c49584c26f7818c2dec8fb00633af753e4aChris Banes */ 2920680c49584c26f7818c2dec8fb00633af753e4aChris Banesabstract class BaseFragmentActivityDonut extends Activity { 3020680c49584c26f7818c2dec8fb00633af753e4aChris Banes 3120680c49584c26f7818c2dec8fb00633af753e4aChris Banes @Override 3220680c49584c26f7818c2dec8fb00633af753e4aChris Banes protected void onCreate(Bundle savedInstanceState) { 3320680c49584c26f7818c2dec8fb00633af753e4aChris Banes if (Build.VERSION.SDK_INT < 11 && getLayoutInflater().getFactory() == null) { 3420680c49584c26f7818c2dec8fb00633af753e4aChris Banes // On pre-HC devices we need to manually install ourselves as a Factory. 3520680c49584c26f7818c2dec8fb00633af753e4aChris Banes // On HC and above, we are automatically installed as a private factory 3620680c49584c26f7818c2dec8fb00633af753e4aChris Banes getLayoutInflater().setFactory(this); 3720680c49584c26f7818c2dec8fb00633af753e4aChris Banes } 3820680c49584c26f7818c2dec8fb00633af753e4aChris Banes 3920680c49584c26f7818c2dec8fb00633af753e4aChris Banes super.onCreate(savedInstanceState); 4020680c49584c26f7818c2dec8fb00633af753e4aChris Banes } 4120680c49584c26f7818c2dec8fb00633af753e4aChris Banes 4220680c49584c26f7818c2dec8fb00633af753e4aChris Banes @Override 4320680c49584c26f7818c2dec8fb00633af753e4aChris Banes public View onCreateView(String name, Context context, AttributeSet attrs) { 4420680c49584c26f7818c2dec8fb00633af753e4aChris Banes final View v = dispatchFragmentsOnCreateView(null, name, context, attrs); 4520680c49584c26f7818c2dec8fb00633af753e4aChris Banes if (v == null) { 4620680c49584c26f7818c2dec8fb00633af753e4aChris Banes return super.onCreateView(name, context, attrs); 4720680c49584c26f7818c2dec8fb00633af753e4aChris Banes } 4820680c49584c26f7818c2dec8fb00633af753e4aChris Banes return v; 4920680c49584c26f7818c2dec8fb00633af753e4aChris Banes } 5020680c49584c26f7818c2dec8fb00633af753e4aChris Banes 5120680c49584c26f7818c2dec8fb00633af753e4aChris Banes abstract View dispatchFragmentsOnCreateView(View parent, String name, 5220680c49584c26f7818c2dec8fb00633af753e4aChris Banes Context context, AttributeSet attrs); 5320680c49584c26f7818c2dec8fb00633af753e4aChris Banes 5420680c49584c26f7818c2dec8fb00633af753e4aChris Banes} 55