package mil.nga.giat.mage.preferences; import android.content.Context; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v7.app.AppCompatActivity; import android.support.v7.preference.PreferenceFragmentCompat; import android.support.v7.view.ContextThemeWrapper; import android.support.v7.widget.SwitchCompat; import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.CompoundButton; import mil.nga.giat.mage.R; public class FetchPreferencesActivity extends AppCompatActivity { private final FetchPreferenceFragment preference = new FetchPreferenceFragment(); private Toolbar toolbar; private View noContentView; public static class FetchPreferenceFragment extends PreferenceFragmentCompat { @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { addPreferencesFromResource(R.xml.fetchpreferences); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.AppTheme_PrimaryAccent); LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper); return super.onCreateView(localInflater, container, savedInstanceState); } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fetch_preferences); toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar.inflateMenu(R.menu.fetch_preferences_menu); noContentView = findViewById(R.id.no_content_frame); boolean fetchEnabled = PreferenceManager.getDefaultSharedPreferences(this).getBoolean(getResources().getString(R.string.dataFetchEnabledKey), false); SwitchCompat dataEnabledSwitch = (SwitchCompat) toolbar.findViewById(R.id.toolbar_switch); dataEnabledSwitch.setChecked(fetchEnabled); dataEnabledSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { PreferenceManager.getDefaultSharedPreferences(FetchPreferencesActivity.this).edit().putBoolean(getResources().getString(R.string.dataFetchEnabledKey), isChecked).commit(); updateView(isChecked); } }); updateView(fetchEnabled); getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, preference).commit(); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); return true; default: return super.onOptionsItemSelected(item); } } private void updateView(boolean fetchEnabled) { toolbar.setTitle(fetchEnabled ? "On" : "Off"); noContentView.setVisibility(fetchEnabled ? View.GONE : View.VISIBLE); } }