the main View is now explicitly destroyed when shutting down
This commit is contained in:
parent
1c7bbc7508
commit
9e4658d405
4 changed files with 15 additions and 5 deletions
|
|
@ -52,13 +52,13 @@ abstract public class MainViewHandler extends HotkeyHandler {
|
|||
|
||||
|
||||
protected void cleanUp() {
|
||||
if (mainView != null) {
|
||||
mainView.removeListeners();
|
||||
}
|
||||
if (orientationListener != null) {
|
||||
orientationListener.stop();
|
||||
orientationListener = null;
|
||||
}
|
||||
if (mainView != null) {
|
||||
mainView.destroy();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -49,6 +49,8 @@ public class TraditionalT9 extends MainViewHandler {
|
|||
|
||||
@Override
|
||||
public View onCreateInputView() {
|
||||
// This may get called even when not switching IMEs, but we can't reuse the previous view
|
||||
// because it will cause: "IllegalStateException: The specified child already has a parent"
|
||||
mainView.forceCreate();
|
||||
initTray();
|
||||
statusBar.setText(mInputMode);
|
||||
|
|
|
|||
|
|
@ -43,8 +43,12 @@ public class MainView {
|
|||
return true;
|
||||
}
|
||||
|
||||
public void forceCreate() {
|
||||
public void destroy() {
|
||||
main = null;
|
||||
}
|
||||
|
||||
public void forceCreate() {
|
||||
destroy();
|
||||
if (!create()) {
|
||||
Logger.w(getClass().getSimpleName(), "Invalid MainView setting. Creating default.");
|
||||
main = new MainLayoutSmall(tt9);
|
||||
|
|
|
|||
|
|
@ -51,12 +51,16 @@ public class ResizableMainView extends MainView implements View.OnAttachStateCha
|
|||
return true;
|
||||
}
|
||||
|
||||
public void removeListeners() {
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
if (main != null && main.getView() != null) {
|
||||
main.getView().removeOnAttachStateChangeListener(this);
|
||||
}
|
||||
super.destroy();
|
||||
}
|
||||
|
||||
|
||||
@Override public void onViewAttachedToWindow(@NonNull View v) { setHeight(height, heightSmall, heightNumpad); }
|
||||
@Override public void onViewDetachedFromWindow(@NonNull View v) {}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue