package com.automattic.simplenote; import android.os.Bundle; import android.support.v4.app.FragmentManager; import android.support.v7.app.AppCompatActivity; import android.support.v7.preference.Preference; import android.support.v7.widget.Toolbar; import android.view.MenuItem; import com.automattic.simplenote.utils.ThemeUtils; import org.wordpress.passcodelock.PasscodePreferenceFragment; import org.wordpress.passcodelock.PasscodePreferenceFragmentCompat; public class PreferencesActivity extends AppCompatActivity { private PasscodePreferenceFragmentCompat mPasscodePreferenceFragment; private PreferencesFragment mPreferencesFragment; @SuppressWarnings("deprecation") @Override protected void onCreate(Bundle savedInstanceState) { ThemeUtils.setTheme(this); super.onCreate(savedInstanceState); // if a new theme was picked, activity is recreated with theme changed intent // set result to notify the calling activity once this activity is complete if (ThemeUtils.themeWasChanged(getIntent())) setResult(RESULT_OK, getIntent()); setContentView(R.layout.activity_preferences); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); setTitle(R.string.settings); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); } String preferencesTag = "tag_preferences"; String passcodeTag = "tag_passcode"; if (savedInstanceState == null) { Bundle passcodeArgs = new Bundle(); passcodeArgs.putBoolean(PasscodePreferenceFragment.KEY_SHOULD_INFLATE, false); mPasscodePreferenceFragment = new PasscodePreferenceFragmentCompat(); mPasscodePreferenceFragment.setArguments(passcodeArgs); mPreferencesFragment = new PreferencesFragment(); getSupportFragmentManager().beginTransaction() .add(R.id.preferences_container, mPreferencesFragment, preferencesTag) .add(R.id.preferences_container, mPasscodePreferenceFragment, passcodeTag) .commit(); } else { FragmentManager fragmentManager = getSupportFragmentManager(); mPreferencesFragment = (PreferencesFragment) fragmentManager.findFragmentByTag(preferencesTag); mPasscodePreferenceFragment = (PasscodePreferenceFragmentCompat) fragmentManager.findFragmentByTag(passcodeTag); } } @Override public void onStart() { super.onStart(); Preference togglePref = mPreferencesFragment.findPreference(getString(R.string.pref_key_passcode_toggle)); Preference changePref = mPreferencesFragment.findPreference(getString(R.string.pref_key_change_passcode)); if (togglePref != null && changePref != null) { mPasscodePreferenceFragment.setPreferences(togglePref, changePref); } } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { finish(); return true; } return super.onOptionsItemSelected(item); } }