package com.wigwamlabs.veckify; import android.content.Context; import android.content.res.Configuration; import android.os.Build; import android.os.Bundle; import android.preference.PreferenceActivity; import android.preference.PreferenceCategory; import android.preference.PreferenceFragment; import android.view.MenuItem; import com.wigwamlabs.spotify.ui.SpotifyPreferenceFragment; import java.util.List; public class SettingsActivity extends PreferenceActivity { private static final boolean ALWAYS_SIMPLE_PREFS = false; private static boolean isXLargeTablet(Context context) { return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE; } private static boolean isSimplePreferences(Context context) { return ALWAYS_SIMPLE_PREFS || Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB || !isXLargeTablet(context); } @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); setupSimplePreferencesScreen(); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: startActivity(getParentActivityIntent()); finish(); return true; } return super.onOptionsItemSelected(item); } private void setupSimplePreferencesScreen() { if (!isSimplePreferences(this)) { return; } // General GeneralPreferenceFragment.onCreateSimple(this); // Spotify PreferenceCategory header = new PreferenceCategory(this); header.setTitle(R.string.pref_header_spotify); getPreferenceScreen().addPreference(header); SpotifyPreferenceFragment.onCreateSimple(this); // Legal header = new PreferenceCategory(this); header.setTitle(R.string.pref_header_legal); getPreferenceScreen().addPreference(header); LegalPreferenceFragment.onCreateSimple(this); } @Override public boolean onIsMultiPane() { return isXLargeTablet(this) && !isSimplePreferences(this); } @Override public void onBuildHeaders(List<Header> target) { if (!isSimplePreferences(this)) { loadHeadersFromResource(R.xml.pref_headers, target); } } public static class GeneralPreferenceFragment extends PreferenceFragment { public static void onCreateSimple(SettingsActivity activity) { activity.addPreferencesFromResource(R.xml.pref_general); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.pref_general); } } }