package com.charlesmadere.android.classygames; import android.graphics.Shader; import android.graphics.drawable.BitmapDrawable; import android.os.Build; import android.os.Bundle; import android.widget.TextView; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.SherlockPreferenceActivity; import com.charlesmadere.android.classygames.settings.AboutPreferenceFragment; import com.charlesmadere.android.classygames.settings.BasePreferenceFragment; import com.charlesmadere.android.classygames.settings.GamePreferenceFragment; import com.charlesmadere.android.classygames.settings.NotificationPreferenceFragment; import com.charlesmadere.android.classygames.utilities.Utilities; public abstract class BasePreferenceActivity extends SherlockPreferenceActivity { protected CharSequence getActionBarTitle() { final TextView titleView = (TextView) findViewById(R.id.action_bar_title); return titleView.getText(); } protected void onCreate(final Bundle savedInstanceState, final int title, final boolean showBackArrow) { onCreate(savedInstanceState, getString(title), showBackArrow); } protected void onCreate(final Bundle savedInstanceState, final CharSequence title, final boolean showBackArrow) { super.onCreate(savedInstanceState); final ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) { final BitmapDrawable background = (BitmapDrawable) getResources().getDrawable(R.drawable.bg_action_bar); background.setAntiAlias(true); background.setDither(true); background.setFilterBitmap(true); background.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); actionBar.setBackgroundDrawable(background); } updateActionBar(title, showBackArrow); } } protected void updateActionBar(final int title, final boolean showBackArrow) { updateActionBar(getString(title), showBackArrow); } protected void updateActionBar(final CharSequence title, final boolean showBackArrow) { final ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(showBackArrow); final TextView titleView = (TextView) findViewById(R.id.action_bar_title); titleView.setText(title); } @Override protected boolean isValidFragment(final String fragmentName) { final boolean isValidFragment; // http://stackoverflow.com/questions/19973034/isvalidfragment-android-api-19 if (Utilities.validString(fragmentName) && (AboutPreferenceFragment.class.getName().equals(fragmentName) || BasePreferenceFragment.class.getName().equals(fragmentName) || GamePreferenceFragment.class.getName().equals(fragmentName) || NotificationPreferenceFragment.class.getName().equals(fragmentName))) { isValidFragment = true; } else { isValidFragment = false; } return isValidFragment; } }