Loading java/src/com/android/inputmethod/latin/LatinIME.java +6 −3 Original line number Diff line number Diff line Loading @@ -667,9 +667,12 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen Log.w(TAG, "Use EditorInfo.IME_FLAG_FORCE_ASCII flag instead"); } mTargetApplicationInfo = null; mTargetApplicationInfo = TargetApplicationGetter.getCachedApplicationInfo(editorInfo.packageName); if (null == mTargetApplicationInfo) { new TargetApplicationGetter(this /* context */, this /* listener */) .execute(editorInfo.packageName); } LatinImeLogger.onStartInputView(editorInfo); // In landscape mode, this method gets called without the input view being created. Loading java/src/com/android/inputmethod/latin/TargetApplicationGetter.java +11 −1 Original line number Diff line number Diff line Loading @@ -20,9 +20,19 @@ import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.os.AsyncTask; import android.util.LruCache; public class TargetApplicationGetter extends AsyncTask<String, Void, ApplicationInfo> { private static final int MAX_CACHE_ENTRIES = 64; // arbitrary private static LruCache<String, ApplicationInfo> sCache = new LruCache<String, ApplicationInfo>(MAX_CACHE_ENTRIES); public static ApplicationInfo getCachedApplicationInfo(final String packageName) { return sCache.get(packageName); } // TODO: Wipe the cache when new packages are installed. public interface OnTargetApplicationKnownListener { public void onTargetApplicationKnown(final ApplicationInfo info); } Loading @@ -38,12 +48,12 @@ public class TargetApplicationGetter extends AsyncTask<String, Void, Application @Override protected ApplicationInfo doInBackground(final String... packageName) { // TODO: cache app info. Wipe the cache when new packages are installed. final PackageManager pm = mContext.getPackageManager(); mContext = null; // Bazooka-powered anti-leak device try { final ApplicationInfo targetAppInfo = pm.getApplicationInfo(packageName[0], 0 /* flags */); sCache.put(packageName[0], targetAppInfo); return targetAppInfo; } catch (android.content.pm.PackageManager.NameNotFoundException e) { return null; Loading Loading
java/src/com/android/inputmethod/latin/LatinIME.java +6 −3 Original line number Diff line number Diff line Loading @@ -667,9 +667,12 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen Log.w(TAG, "Use EditorInfo.IME_FLAG_FORCE_ASCII flag instead"); } mTargetApplicationInfo = null; mTargetApplicationInfo = TargetApplicationGetter.getCachedApplicationInfo(editorInfo.packageName); if (null == mTargetApplicationInfo) { new TargetApplicationGetter(this /* context */, this /* listener */) .execute(editorInfo.packageName); } LatinImeLogger.onStartInputView(editorInfo); // In landscape mode, this method gets called without the input view being created. Loading
java/src/com/android/inputmethod/latin/TargetApplicationGetter.java +11 −1 Original line number Diff line number Diff line Loading @@ -20,9 +20,19 @@ import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.os.AsyncTask; import android.util.LruCache; public class TargetApplicationGetter extends AsyncTask<String, Void, ApplicationInfo> { private static final int MAX_CACHE_ENTRIES = 64; // arbitrary private static LruCache<String, ApplicationInfo> sCache = new LruCache<String, ApplicationInfo>(MAX_CACHE_ENTRIES); public static ApplicationInfo getCachedApplicationInfo(final String packageName) { return sCache.get(packageName); } // TODO: Wipe the cache when new packages are installed. public interface OnTargetApplicationKnownListener { public void onTargetApplicationKnown(final ApplicationInfo info); } Loading @@ -38,12 +48,12 @@ public class TargetApplicationGetter extends AsyncTask<String, Void, Application @Override protected ApplicationInfo doInBackground(final String... packageName) { // TODO: cache app info. Wipe the cache when new packages are installed. final PackageManager pm = mContext.getPackageManager(); mContext = null; // Bazooka-powered anti-leak device try { final ApplicationInfo targetAppInfo = pm.getApplicationInfo(packageName[0], 0 /* flags */); sCache.put(packageName[0], targetAppInfo); return targetAppInfo; } catch (android.content.pm.PackageManager.NameNotFoundException e) { return null; Loading