Merge "Not to update IME when Settings version is older than the last updated version." into honeycomb
This commit is contained in:
@ -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.
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user