hide record voice button if keyboard is open

This commit is contained in:
Christian Schneppe 2018-08-30 20:45:09 +02:00
parent c1060dc1fe
commit 18cf7c40c2
4 changed files with 19 additions and 10 deletions

View file

@ -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 {

View file

@ -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);
}

View file

@ -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"

View file

@ -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>