Remove KeyboardSwitcher reference from ResearchLogger

Change-Id: I671a83c19977fda358c8e8a730e22ee155f65512
main
Tadashi G. Takaoka 2012-08-21 15:11:02 +09:00
parent eb59a87a07
commit c3f78c9057
3 changed files with 24 additions and 15 deletions

View File

@ -528,7 +528,17 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key
// to properly show the splash screen, which requires that the window token of the // to properly show the splash screen, which requires that the window token of the
// KeyboardView be non-null. // KeyboardView be non-null.
if (ProductionFlag.IS_EXPERIMENTAL) { if (ProductionFlag.IS_EXPERIMENTAL) {
ResearchLogger.getInstance().mainKeyboardView_onAttachedToWindow(); ResearchLogger.getInstance().mainKeyboardView_onAttachedToWindow(this);
}
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
// Notify the research logger that the keyboard view has been detached. This is needed
// to invalidate the reference of {@link MainKeyboardView} to null.
if (ProductionFlag.IS_EXPERIMENTAL) {
ResearchLogger.getInstance().mainKeyboardView_onDetachedFromWindow();
} }
} }

View File

@ -361,7 +361,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
mPrefs = prefs; mPrefs = prefs;
LatinImeLogger.init(this, prefs); LatinImeLogger.init(this, prefs);
if (ProductionFlag.IS_EXPERIMENTAL) { if (ProductionFlag.IS_EXPERIMENTAL) {
ResearchLogger.getInstance().init(this, prefs, mKeyboardSwitcher); ResearchLogger.getInstance().init(this, prefs);
} }
InputMethodManagerCompatWrapper.init(this); InputMethodManagerCompatWrapper.init(this);
SubtypeSwitcher.init(this); SubtypeSwitcher.init(this);

View File

@ -54,7 +54,6 @@ import android.widget.Toast;
import com.android.inputmethod.keyboard.Key; import com.android.inputmethod.keyboard.Key;
import com.android.inputmethod.keyboard.Keyboard; import com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.keyboard.KeyboardId; import com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.KeyboardSwitcher;
import com.android.inputmethod.keyboard.KeyboardView; import com.android.inputmethod.keyboard.KeyboardView;
import com.android.inputmethod.keyboard.MainKeyboardView; import com.android.inputmethod.keyboard.MainKeyboardView;
import com.android.inputmethod.latin.CollectionUtils; import com.android.inputmethod.latin.CollectionUtils;
@ -138,7 +137,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
// used to check whether words are not unique // used to check whether words are not unique
private Suggest mSuggest; private Suggest mSuggest;
private Dictionary mDictionary; private Dictionary mDictionary;
private KeyboardSwitcher mKeyboardSwitcher; private MainKeyboardView mMainKeyboardView;
private InputMethodService mInputMethodService; private InputMethodService mInputMethodService;
private final Statistics mStatistics; private final Statistics mStatistics;
@ -152,8 +151,7 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
return sInstance; return sInstance;
} }
public void init(final InputMethodService ims, final SharedPreferences prefs, public void init(final InputMethodService ims, final SharedPreferences prefs) {
KeyboardSwitcher keyboardSwitcher) {
assert ims != null; assert ims != null;
if (ims == null) { if (ims == null) {
Log.w(TAG, "IMS is null; logging is off"); Log.w(TAG, "IMS is null; logging is off");
@ -185,7 +183,6 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
} }
mResearchLogUploader = new ResearchLogUploader(ims, mFilesDir); mResearchLogUploader = new ResearchLogUploader(ims, mFilesDir);
mResearchLogUploader.start(); mResearchLogUploader.start();
mKeyboardSwitcher = keyboardSwitcher;
mInputMethodService = ims; mInputMethodService = ims;
mPrefs = prefs; mPrefs = prefs;
} }
@ -199,10 +196,15 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
} }
} }
public void mainKeyboardView_onAttachedToWindow() { public void mainKeyboardView_onAttachedToWindow(final MainKeyboardView mainKeyboardView) {
mMainKeyboardView = mainKeyboardView;
maybeShowSplashScreen(); maybeShowSplashScreen();
} }
public void mainKeyboardView_onDetachedFromWindow() {
mMainKeyboardView = null;
}
private boolean hasSeenSplash() { private boolean hasSeenSplash() {
return mPrefs.getBoolean(PREF_RESEARCH_HAS_SEEN_SPLASH, false); return mPrefs.getBoolean(PREF_RESEARCH_HAS_SEEN_SPLASH, false);
} }
@ -216,7 +218,8 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
if (mSplashDialog != null && mSplashDialog.isShowing()) { if (mSplashDialog != null && mSplashDialog.isShowing()) {
return; return;
} }
final IBinder windowToken = mKeyboardSwitcher.getMainKeyboardView().getWindowToken(); final IBinder windowToken = mMainKeyboardView != null
? mMainKeyboardView.getWindowToken() : null;
if (windowToken == null) { if (windowToken == null) {
return; return;
} }
@ -593,14 +596,10 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
if (!IS_SHOWING_INDICATOR) { if (!IS_SHOWING_INDICATOR) {
return; return;
} }
if (mKeyboardSwitcher == null) { if (mMainKeyboardView == null) {
return; return;
} }
final KeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView(); mMainKeyboardView.invalidateAllKeys();
if (mainKeyboardView == null) {
return;
}
mainKeyboardView.invalidateAllKeys();
} }