diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/main/MainView.java b/app/src/main/java/io/github/sspanak/tt9/ui/main/MainView.java index 340dee00..34ce8b66 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/main/MainView.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/main/MainView.java @@ -2,6 +2,8 @@ package io.github.sspanak.tt9.ui.main; import android.view.View; +import androidx.annotation.Nullable; + import io.github.sspanak.tt9.ime.TraditionalT9; import io.github.sspanak.tt9.preferences.settings.SettingsStore; import io.github.sspanak.tt9.util.Logger; @@ -10,7 +12,7 @@ public class MainView { private final static String LOG_TAG = MainView.class.getSimpleName(); protected final TraditionalT9 tt9; - protected BaseMainLayout main; + @Nullable protected BaseMainLayout main; private boolean darkTheme; @@ -60,8 +62,9 @@ public class MainView { } } + @Nullable public View getView() { - return main.getView(); + return main != null ? main.getView() : null; } public void render() { diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/main/ResizableMainView.java b/app/src/main/java/io/github/sspanak/tt9/ui/main/ResizableMainView.java index 8fd18823..a4e0710d 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/main/ResizableMainView.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/main/ResizableMainView.java @@ -43,6 +43,10 @@ public class ResizableMainView extends MainView implements View.OnAttachStateCha return false; } + if (main == null) { + return false; + } + main.getView().removeOnAttachStateChangeListener(this); main.getView().addOnAttachStateChangeListener(this); @@ -63,8 +67,10 @@ public class ResizableMainView extends MainView implements View.OnAttachStateCha @Override public void onViewDetachedFromWindow(@NonNull View v) {} @Override public void onViewAttachedToWindow(@NonNull View v) { - main.preventEdgeToEdge(); - setHeight(height, heightSmall, heightNumpad); + if (main != null) { + main.preventEdgeToEdge(); + setHeight(height, heightSmall, heightNumpad); + } } @@ -136,6 +142,10 @@ public class ResizableMainView extends MainView implements View.OnAttachStateCha private void expand(int delta) { + if (main == null) { + return; + } + SettingsStore settings = tt9.getSettings(); if (settings.isMainLayoutTray()) { @@ -159,7 +169,7 @@ public class ResizableMainView extends MainView implements View.OnAttachStateCha private void shrink(int delta) { SettingsStore settings = tt9.getSettings(); - if (settings.isMainLayoutTray()) { + if (main == null || settings.isMainLayoutTray()) { return; } @@ -180,7 +190,7 @@ public class ResizableMainView extends MainView implements View.OnAttachStateCha private boolean changeHeight(int delta, int minHeight, int maxHeight) { - int keyboardHeight = main.getKeyboardHeight(); + int keyboardHeight = main != null ? main.getKeyboardHeight() : -1; if (keyboardHeight == 0) { return false; } @@ -190,7 +200,7 @@ public class ResizableMainView extends MainView implements View.OnAttachStateCha private boolean setHeight(int height, int minHeight, int maxHeight) { - if (main == null || main.getView() == null || height < minHeight) { + if (main == null || height < minHeight) { return false; } @@ -204,6 +214,10 @@ public class ResizableMainView extends MainView implements View.OnAttachStateCha } private void fitMain() { + if (main == null || main instanceof MainLayoutStealth) { + return; + } + calculateSnapHeights(); int heightLow, heightHigh, heightMain = main.getHeight(true); diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/tray/StatusBar.java b/app/src/main/java/io/github/sspanak/tt9/ui/tray/StatusBar.java index 53219398..c636376c 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/tray/StatusBar.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/tray/StatusBar.java @@ -3,18 +3,20 @@ package io.github.sspanak.tt9.ui.tray; import android.view.View; import android.widget.TextView; +import androidx.annotation.Nullable; + import io.github.sspanak.tt9.R; import io.github.sspanak.tt9.ime.modes.InputMode; import io.github.sspanak.tt9.ime.voice.VoiceInputOps; import io.github.sspanak.tt9.util.Logger; public class StatusBar { - private final TextView statusView; - private String statusText; + @Nullable private final TextView statusView; + @Nullable private String statusText; - public StatusBar(View mainView) { - statusView = mainView.findViewById(R.id.status_bar); + public StatusBar(@Nullable View mainView) { + statusView = mainView != null ? mainView.findViewById(R.id.status_bar) : null; }