package me.sergiotarxz.openmg.x11; import android.content.SharedPreferences; import android.inputmethodservice.Keyboard; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceFragment; import android.preference.PreferenceScreen; import android.provider.Settings; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.util.Log; import android.view.MenuItem; public class LoriePreferences extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener { static final String SHOW_IME_WITH_HARD_KEYBOARD = "show_ime_with_hard_keyboard"; LoriePreferenceFragment loriePreferenceFragment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); loriePreferenceFragment = new LoriePreferenceFragment(); getFragmentManager().beginTransaction().replace(android.R.id.content, loriePreferenceFragment).commit(); ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeButtonEnabled(true); actionBar.setTitle("Preferences"); } } @Override public void onResume() { super.onResume(); if (loriePreferenceFragment != null) loriePreferenceFragment.getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); } @Override public void onPause() { if (loriePreferenceFragment != null) loriePreferenceFragment.getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); super.onPause(); } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == android.R.id.home) { finish(); return true; } return super.onOptionsItemSelected(item); } @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { LorieService.start(LorieService.ACTION_PREFERENCES_CHAGED); } public static class LoriePreferenceFragment extends PreferenceFragment implements PreferenceScreen.OnPreferenceClickListener, Preference.OnPreferenceChangeListener { @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); String showImeEnabled = Settings.Secure.getString(getActivity().getContentResolver(), SHOW_IME_WITH_HARD_KEYBOARD); if (showImeEnabled == null) showImeEnabled = "0"; SharedPreferences.Editor p = getPreferenceManager().getSharedPreferences().edit(); p.putBoolean("showIMEWhileExternalConnected", showImeEnabled.equals("1")); p.apply(); PreferenceScreen s = getPreferenceScreen(); for (int i=0; i