Android Open Source - xposed-keyboard-tweaks Current Google Keyboard Injector






From Project

Back to project page xposed-keyboard-tweaks.

License

The source code is released under:

Apache License

If you think the Android project xposed-keyboard-tweaks listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package ca.spacek.gkdd.blacklist.gk;
/*  w  w w  .j a  va 2s  .  c  om*/
import ca.spacek.gkdd.BlackList;
import ca.spacek.gkdd.CachedBlackList;
import ca.spacek.gkdd.Injector;
import ca.spacek.gkdd.blacklist.ReflectionException;
import ca.spacek.gkdd.blacklist.SuggestionBlackLister;
import ca.spacek.gkdd.blacklist.AddToBlackListHook;
import ca.spacek.gkdd.blacklist.ContextChangeHook;
import ca.spacek.gkdd.blacklist.gk.hook.ProfileAddToBlackListHook;
import ca.spacek.gkdd.blacklist.gk.hook.ProfileContextChangeHook;
import ca.spacek.gkdd.blacklist.gk.hook.ProfileGetSuggestedWordsHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.callbacks.XC_LoadPackage;

/**
 * Created by temp on 20/04/14.
 */
public class CurrentGoogleKeyboardInjector implements Injector {
    private ContextManager contextManager;

    private PackageReflection packageReflection;
    private ProfileGetSuggestedWordsHook getSuggestedWordsHook;
    private ContextChangeHook contextChangeHook;
    private AddToBlackListHook addToBlackListHook;

    @Override
    public boolean supports(XC_LoadPackage.LoadPackageParam loadPackageParam) {
        if (!PackageReflection.PACKAGE_NAME.equals(loadPackageParam.packageName)) {
            return false;
        }

        XposedBridge.log("Found the package, trying to reflect all the necessary classes");
        packageReflection = new PackageReflection();
        try {
            packageReflection.initialize(loadPackageParam.classLoader);
        } catch (ReflectionException e) {
            XposedBridge.log("Couldn't initialize: " + e.getCause());
            return false;
        }

        return true;
    }

    @Override
    public void inject(XC_LoadPackage.LoadPackageParam loadPackageParam) {
        XposedBridge.log("Initialized, hooking");

        contextManager = new ContextManager(null);

        contextChangeHook = new ProfileContextChangeHook(contextManager, packageReflection);
        contextChangeHook.hookContextChange();

        BlackList blackList = new CachedBlackList(contextManager);
        getSuggestedWordsHook = new ProfileGetSuggestedWordsHook(packageReflection, new OnSuggestedWordCallbackProxyFactory(new SuggestionBlackLister(blackList), packageReflection));
        getSuggestedWordsHook.hookSuggestWords();

        addToBlackListHook = new ProfileAddToBlackListHook(packageReflection);
        addToBlackListHook.hookKeyboard();
    }
}




Java Source Code List

ca.spacek.gkdd.BlackList.java
ca.spacek.gkdd.CachedBlackListDictionaryWordContentObserver.java
ca.spacek.gkdd.CachedBlackList.java
ca.spacek.gkdd.DictionaryWordsListActivity.java
ca.spacek.gkdd.Initialize.java
ca.spacek.gkdd.Injector.java
ca.spacek.gkdd.blacklist.AddToBlackListHook.java
ca.spacek.gkdd.blacklist.ContextChangeHook.java
ca.spacek.gkdd.blacklist.GetSuggestedWordsHook.java
ca.spacek.gkdd.blacklist.ReflectionException.java
ca.spacek.gkdd.blacklist.SuggestionBlackLister.java
ca.spacek.gkdd.blacklist.gk.ContextManager.java
ca.spacek.gkdd.blacklist.gk.CurrentGoogleKeyboardInjector.java
ca.spacek.gkdd.blacklist.gk.LongPressReplacementMethod.java
ca.spacek.gkdd.blacklist.gk.OnSuggestedWordCallbackHandler.java
ca.spacek.gkdd.blacklist.gk.OnSuggestedWordCallbackProxyFactory.java
ca.spacek.gkdd.blacklist.gk.PackageReflection.java
ca.spacek.gkdd.blacklist.gk.SuggestedWordInfoTransform.java
ca.spacek.gkdd.blacklist.gk.hook.ProfileAddToBlackListHook.java
ca.spacek.gkdd.blacklist.gk.hook.ProfileContextChangeHook.java
ca.spacek.gkdd.blacklist.gk.hook.ProfileGetSuggestedWordsHook.java
ca.spacek.gkdd.contentprovider.DictionaryWordContentProvider.java
ca.spacek.gkdd.data.DictionaryWordDatabaseHelper.java
ca.spacek.gkdd.data.DictionaryWordTable.java