Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1a711f48 authored by Michael W's avatar Michael W
Browse files

LatinIME: Properly refresh summary

* onResume() of AppearanceSettingsFragment gets called
  before onPause() of CustomInputStyleSettingsFragment
* Instead, save after each modification so the lifecycle
  doesn't matter

Change-Id: If5c5df8b589c08df61eea2643c217e9665a01002
parent 1d65e9d9
Loading
Loading
Loading
Loading
+19 −12
Original line number Diff line number Diff line
@@ -172,7 +172,8 @@ public final class CustomInputStyleSettingsFragment extends CustomPreferenceFrag
            return;
        }
        if (findDuplicatedSubtype(subtype) == null) {
            mRichImm.setAdditionalInputMethodSubtypes(getSubtypes());
            final InputMethodSubtype[] subTypes = saveAndGetSubTypes();
            mRichImm.setAdditionalInputMethodSubtypes(subTypes);
            return;
        }

@@ -189,7 +190,8 @@ public final class CustomInputStyleSettingsFragment extends CustomPreferenceFrag
        mIsAddingNewSubtype = false;
        final InputMethodSubtype subtype = stylePref.getSubtype();
        if (findDuplicatedSubtype(subtype) == null) {
            mRichImm.setAdditionalInputMethodSubtypes(getSubtypes());
            final InputMethodSubtype[] subTypes = saveAndGetSubTypes();
            mRichImm.setAdditionalInputMethodSubtypes(subTypes);
            mSubtypePreferenceKeyForSubtypeEnabler = stylePref.getKey();
            mSubtypeEnablerNotificationDialog = createDialog();
            mSubtypeEnablerNotificationDialog.show();
@@ -283,16 +285,7 @@ public final class CustomInputStyleSettingsFragment extends CustomPreferenceFrag
    @Override
    public void onPause() {
        super.onPause();
        final String oldSubtypes = Settings.readPrefAdditionalSubtypes(mPrefs, getResources());
        final InputMethodSubtype[] subtypes = getSubtypes();
        final String prefSubtypes = AdditionalSubtypeUtils.createPrefSubtypes(subtypes);
        if (DEBUG_CUSTOM_INPUT_STYLES) {
            Log.i(TAG, "Save custom input styles: " + prefSubtypes);
        }
        if (prefSubtypes.equals(oldSubtypes)) {
            return;
        }
        Settings.writePrefAdditionalSubtypes(mPrefs, prefSubtypes);
        final InputMethodSubtype[] subtypes = saveAndGetSubTypes();
        mRichImm.setAdditionalInputMethodSubtypes(subtypes);
    }

@@ -314,4 +307,18 @@ public final class CustomInputStyleSettingsFragment extends CustomPreferenceFrag
        }
        return super.onOptionsItemSelected(item);
    }

    private InputMethodSubtype[] saveAndGetSubTypes() {
        final String oldSubtypes = Settings.readPrefAdditionalSubtypes(mPrefs, getResources());
        final InputMethodSubtype[] subtypes = getSubtypes();
        final String prefSubtypes = AdditionalSubtypeUtils.createPrefSubtypes(subtypes);
        if (DEBUG_CUSTOM_INPUT_STYLES) {
            Log.i(TAG, "Save custom input styles: " + prefSubtypes);
        }
        if (prefSubtypes.equals(oldSubtypes)) {
            return null;
        }
        Settings.writePrefAdditionalSubtypes(mPrefs, prefSubtypes);
        return subtypes;
    }
}