package org.softeg.slartus.forpdaplus.prefs; import android.content.Context; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.preference.PreferenceActivity; import android.support.v7.widget.AppCompatCheckBox; import android.support.v7.widget.AppCompatCheckedTextView; import android.support.v7.widget.AppCompatEditText; import android.support.v7.widget.AppCompatRadioButton; import android.support.v7.widget.AppCompatSpinner; import android.util.AttributeSet; import android.view.View; import org.softeg.slartus.forpdaplus.App; import java.util.ArrayList; import java.util.List; /* * Created by slinkin on 27.12.13. */ public class BasePreferencesActivity extends PreferenceActivity { protected Handler mHandler = new Handler(); @Override protected void onCreate(Bundle savedInstanceState) { setTheme(App.getInstance().getPrefsThemeStyleResID()); super.onCreate(savedInstanceState); if (App.getInstance().getPreferences().getBoolean("coloredNavBar", true) && android.os.Build.VERSION.SDK_INT >= 21) getWindow().setNavigationBarColor(App.getInstance().getResources().getColor(App.getInstance().getNavBarColor())); } @Override public View onCreateView(String name, Context context, AttributeSet attrs) { // Allow super to try and create a view first final View result = super.onCreateView(name, context, attrs); if (result != null) { return result; } if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { switch (name) { case "EditText": return new AppCompatEditText(this,attrs); case "Spinner": return new AppCompatSpinner(this,attrs); case "CheckBox": return new AppCompatCheckBox(this,attrs); case "RadioButton": return new AppCompatRadioButton(this,attrs); case "CheckedTextView": return new AppCompatCheckedTextView(this,attrs); } } return null; } private static List<String> fragments = new ArrayList<String>(); @Override public void loadHeadersFromResource(int resid, List<Header> target) { super.loadHeadersFromResource(resid, target); fragments.clear(); for (Header header : target) { fragments.add(header.fragment); } } @Override protected boolean isValidFragment(String fragmentName) { return fragments.contains(fragmentName); } }