diff options
author | Christian Schneppe <christian@pix-art.de> | 2018-08-30 20:45:09 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2018-08-30 20:45:09 +0200 |
commit | 18cf7c40c27fdd255ed8b71dd49343438982024e (patch) | |
tree | 2315078f749eec09ffe36bace571da67eda2df74 | |
parent | c1060dc1fea516e71b139eff157ad43f9ebb224e (diff) |
hide record voice button if keyboard is open
Diffstat (limited to '')
-rw-r--r-- | build.gradle | 1 | ||||
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/ConversationFragment.java | 25 | ||||
-rw-r--r-- | src/main/res/layout/fragment_conversation.xml | 2 | ||||
-rw-r--r-- | src/main/res/values/defaults.xml | 1 |
4 files changed, 19 insertions, 10 deletions
diff --git a/build.gradle b/build.gradle index aa6c0a122..4e89fb79e 100644 --- a/build.gradle +++ b/build.gradle @@ -76,6 +76,7 @@ dependencies { implementation 'in.championswimmer:SimpleFingerGestures_Android_Library:1.2' implementation 'rocks.xmpp:xmpp-addr:0.8.0' implementation 'org.hsluv:hsluv:0.2' + implementation 'net.yslibrary.keyboardvisibilityevent:keyboardvisibilityevent:2.1.0' } ext { diff --git a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java index ec9dcf8f0..14a2f4608 100644 --- a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java +++ b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java @@ -60,6 +60,7 @@ import android.widget.TextView.OnEditorActionListener; import android.widget.Toast; import net.java.otr4j.session.SessionStatus; +import net.yslibrary.android.keyboardvisibilityevent.KeyboardVisibilityEvent; import java.io.File; import java.io.IOException; @@ -176,6 +177,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke private Toast messageLoaderToast; private ConversationsActivity activity; private boolean reInitRequiredOnStart = true; + private boolean KeyboardOpen = false; private SimpleFingerGestures gesturesDetector = new SimpleFingerGestures(); @@ -445,13 +447,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke } }; - private OnClickListener mRecordVoiceButtonListener = new OnClickListener() { - - @Override - public void onClick(View v) { - attachFile(ATTACHMENT_CHOICE_RECORD_VOICE); - } - }; + private OnClickListener mRecordVoiceButtonListener = v -> attachFile(ATTACHMENT_CHOICE_RECORD_VOICE); private OnClickListener mSendButtonListener = new OnClickListener() { @@ -1167,6 +1163,13 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); + KeyboardVisibilityEvent.setEventListener( + getActivity(), + isOpen -> { + Log.d(Config.LOGTAG, "Keyboard open " + isOpen); + KeyboardOpen = isOpen; + showRecordVoiceButton(); + }); } @Override @@ -1302,11 +1305,15 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke } private void showRecordVoiceButton() { + if (!isAdded()) { + return; + } SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(activity); final boolean ShowRecordVoiceButton = p.getBoolean("show_record_voice_btn", activity.getResources().getBoolean(R.bool.show_record_voice_btn)); - Log.d(Config.LOGTAG, "Recorder " + ShowRecordVoiceButton); - if (ShowRecordVoiceButton) { + if (ShowRecordVoiceButton && !KeyboardOpen) { binding.recordVoiceButton.setVisibility(View.VISIBLE); + } else if (KeyboardOpen) { + binding.recordVoiceButton.setVisibility(View.GONE); } else { binding.recordVoiceButton.setVisibility(View.GONE); } diff --git a/src/main/res/layout/fragment_conversation.xml b/src/main/res/layout/fragment_conversation.xml index d081b6543..4bec6d9e1 100644 --- a/src/main/res/layout/fragment_conversation.xml +++ b/src/main/res/layout/fragment_conversation.xml @@ -57,7 +57,7 @@ <RelativeLayout android:id="@+id/textsend" - + android:animateLayoutChanges="true" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" diff --git a/src/main/res/values/defaults.xml b/src/main/res/values/defaults.xml index 214dbe642..e766d101c 100644 --- a/src/main/res/values/defaults.xml +++ b/src/main/res/values/defaults.xml @@ -52,6 +52,7 @@ \n\nhttps://www.openstreetmap.org/\n(Open Database License) \n\nhttp://xmpp.rocks/\n(The MIT License (MIT)) \n\nhttps://github.com/championswimmer/SimpleFingerGestures_Android_Library/\n(Apache License, Version 2.0) + \n\nhttps://github.com/yshrsmz/KeyboardVisibilityEvent/\n(Apache License, Version 2.0) </string> <string name="default_resource" translatable="false">Phone</string> |