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

Commit c253fc0f authored by satok's avatar satok Committed by Android Git Automerger
Browse files

am 076d059b: Merge "Not to update IME when Settings version is older than the...

am 076d059b: Merge "Not to update IME when Settings version is older than the last updated version." into honeycomb

* commit '076d059b':
  Not to update IME when Settings version is older than the last updated version.
parents 35af96c7 076d059b
Loading
Loading
Loading
Loading
+17 −0
Original line number Original line Diff line number Diff line
@@ -60,6 +60,7 @@ import android.os.RemoteException;
import android.os.ResultReceiver;
import android.os.ResultReceiver;
import android.os.ServiceManager;
import android.os.ServiceManager;
import android.os.SystemClock;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.provider.Settings;
import android.provider.Settings;
import android.provider.Settings.Secure;
import android.provider.Settings.Secure;
import android.provider.Settings.SettingNotFoundException;
import android.provider.Settings.SettingNotFoundException;
@@ -314,6 +315,7 @@ public class InputMethodManagerService extends IInputMethodManager.Stub


    int mBackDisposition = InputMethodService.BACK_DISPOSITION_DEFAULT;
    int mBackDisposition = InputMethodService.BACK_DISPOSITION_DEFAULT;
    int mImeWindowVis;
    int mImeWindowVis;
    long mOldSystemSettingsVersion;


    AlertDialog.Builder mDialogBuilder;
    AlertDialog.Builder mDialogBuilder;
    AlertDialog mSwitchingDialog;
    AlertDialog mSwitchingDialog;
@@ -486,6 +488,8 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
                handleMessage(msg);
                handleMessage(msg);
            }
            }
        });
        });
        // Initialize the system settings version to undefined.
        mOldSystemSettingsVersion = -1;


        (new MyPackageMonitor()).register(mContext, true);
        (new MyPackageMonitor()).register(mContext, true);


@@ -1007,7 +1011,15 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
        }
        }
    }
    }


    // TODO: Investigate and fix why are settings changes getting processed before the settings seq
    // number is updated?
    // TODO: Change this stuff to not rely on modifying settings for normal user interactions.
    void updateFromSettingsLocked() {
    void updateFromSettingsLocked() {
        long newSystemSettingsVersion = getSystemSettingsVersion();
        // This is a workaround to avoid a situation that old cached value in Settings.Secure
        // will be handled.
        if (newSystemSettingsVersion == mOldSystemSettingsVersion) return;

        // We are assuming that whoever is changing DEFAULT_INPUT_METHOD and
        // We are assuming that whoever is changing DEFAULT_INPUT_METHOD and
        // ENABLED_INPUT_METHODS is taking care of keeping them correctly in
        // ENABLED_INPUT_METHODS is taking care of keeping them correctly in
        // sync, so we will never have a DEFAULT_INPUT_METHOD that is not
        // sync, so we will never have a DEFAULT_INPUT_METHOD that is not
@@ -1958,6 +1970,7 @@ public class InputMethodManagerService extends IInputMethodManager.Stub


    private void setSelectedInputMethodAndSubtypeLocked(InputMethodInfo imi, int subtypeId,
    private void setSelectedInputMethodAndSubtypeLocked(InputMethodInfo imi, int subtypeId,
            boolean setSubtypeOnly) {
            boolean setSubtypeOnly) {
        mOldSystemSettingsVersion = getSystemSettingsVersion();
        // Update the history of InputMethod and Subtype
        // Update the history of InputMethod and Subtype
        saveCurrentInputMethodAndSubtypeToHistory();
        saveCurrentInputMethodAndSubtypeToHistory();


@@ -2207,6 +2220,10 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
        }
        }
    }
    }


    private static long getSystemSettingsVersion() {
        return SystemProperties.getLong(Settings.Secure.SYS_PROP_SETTING_VERSION, 0);
    }

    /**
    /**
     * @return Return the current subtype of this input method.
     * @return Return the current subtype of this input method.
     */
     */