diff --git a/actor-sdk/sdk-core-android/android-sdk/src/main/java/im/actor/sdk/controllers/conversation/ChatFragment.java b/actor-sdk/sdk-core-android/android-sdk/src/main/java/im/actor/sdk/controllers/conversation/ChatFragment.java
index dd8ac7f636..870853a4e9 100644
--- a/actor-sdk/sdk-core-android/android-sdk/src/main/java/im/actor/sdk/controllers/conversation/ChatFragment.java
+++ b/actor-sdk/sdk-core-android/android-sdk/src/main/java/im/actor/sdk/controllers/conversation/ChatFragment.java
@@ -362,6 +362,15 @@ public void onAttachPressed() {
}
}
+ @Override
+ public void onSlashPressed() {
+ if (findInputBar().getText() == "/") {
+ findInputBar().setText("", true);
+ } else {
+ findInputBar().setText("/", true);
+ }
+ }
+
@Override
public void onAvatarClick(int uid) {
ActorSDKLauncher.startProfileActivity(getActivity(), uid);
@@ -474,6 +483,7 @@ private void hideQuote() {
findInputBar().setDisableOnEmptyText(true);
findInputBar().setAudioEnabled(true);
findInputBar().setAttachEnabled(true);
+ findInputBar().setSlashEnabled(true);
}
private void showQuote(String text, boolean isQuote) {
@@ -482,5 +492,6 @@ private void showQuote(String text, boolean isQuote) {
findInputBar().setDisableOnEmptyText(false);
findInputBar().setAudioEnabled(false);
findInputBar().setAttachEnabled(false);
+ findInputBar().setSlashEnabled(false);
}
}
diff --git a/actor-sdk/sdk-core-android/android-sdk/src/main/java/im/actor/sdk/controllers/conversation/inputbar/InputBarCallback.java b/actor-sdk/sdk-core-android/android-sdk/src/main/java/im/actor/sdk/controllers/conversation/inputbar/InputBarCallback.java
index 0a85d4d7f1..891333534e 100644
--- a/actor-sdk/sdk-core-android/android-sdk/src/main/java/im/actor/sdk/controllers/conversation/inputbar/InputBarCallback.java
+++ b/actor-sdk/sdk-core-android/android-sdk/src/main/java/im/actor/sdk/controllers/conversation/inputbar/InputBarCallback.java
@@ -19,4 +19,6 @@ public interface InputBarCallback {
void onStickerSent(Sticker sticker);
void onAttachPressed();
+
+ void onSlashPressed();
}
diff --git a/actor-sdk/sdk-core-android/android-sdk/src/main/java/im/actor/sdk/controllers/conversation/inputbar/InputBarFragment.java b/actor-sdk/sdk-core-android/android-sdk/src/main/java/im/actor/sdk/controllers/conversation/inputbar/InputBarFragment.java
index b4c8df0f88..d915f304b8 100644
--- a/actor-sdk/sdk-core-android/android-sdk/src/main/java/im/actor/sdk/controllers/conversation/inputbar/InputBarFragment.java
+++ b/actor-sdk/sdk-core-android/android-sdk/src/main/java/im/actor/sdk/controllers/conversation/inputbar/InputBarFragment.java
@@ -63,6 +63,7 @@ public class InputBarFragment extends BaseFragment implements MessagesDefaultFra
private boolean isAudioEnabled = true;
private boolean isAttachEnabled = true;
+ private boolean isSlashEnabled = true;
private boolean isDisableOnEmptyText = true;
//
@@ -72,6 +73,7 @@ public class InputBarFragment extends BaseFragment implements MessagesDefaultFra
protected BarEditText messageEditText;
protected TintImageView sendButton;
protected ImageButton attachButton;
+ protected ImageButton slashButton;
protected String lastWord = "";
//
@@ -194,6 +196,15 @@ public void afterTextChanged(Editable editable) {
});
+ //
+ // Slash Button
+ //
+ slashButton = (ImageButton) res.findViewById(R.id.ib_slash);
+ slashButton.setOnClickListener(v -> {
+ onSlashButtonClicked();
+ });
+
+
//
// Emoji keyboard
//
@@ -366,6 +377,16 @@ public void setAttachEnabled(boolean attachEnabled) {
checkSendButton();
}
+ public boolean isSlashEnabled() {
+ return isSlashEnabled;
+ }
+
+ public void setSlashEnabled(boolean slashEnabled) {
+ isSlashEnabled = slashEnabled;
+ hideAudio(true);
+ checkSendButton();
+ }
+
public boolean isDisableOnEmptyText() {
return isDisableOnEmptyText;
}
@@ -397,6 +418,13 @@ protected void onAttachButtonClicked() {
}
}
+ protected void onSlashButtonClicked() {
+ Fragment parent = getParentFragment();
+ if (parent instanceof InputBarCallback) {
+ ((InputBarCallback) parent).onSlashPressed();
+ }
+ }
+
protected void onBeforeTextChanged(CharSequence s, int start, int count, int after) {
Fragment parent = getParentFragment();
if (parent instanceof InputBarCallback) {
@@ -475,6 +503,7 @@ protected void checkSendButton(boolean hasText) {
} else {
zoomOutView(attachButton);
}
+ zoomOutView(slashButton);
zoomInView(sendButton);
zoomOutView(audioButton);
} else {
@@ -485,6 +514,11 @@ protected void checkSendButton(boolean hasText) {
} else {
zoomOutView(attachButton);
}
+ if (isSlashEnabled) {
+ zoomInView(slashButton);
+ } else {
+ zoomOutView(slashButton);
+ }
if (isAudioEnabled) {
zoomInView(audioButton);
zoomOutView(sendButton);
@@ -510,6 +544,7 @@ protected void showAudio() {
isAudioVisible = true;
hideView(attachButton);
+ hideView(slashButton);
hideView(messageEditText);
hideView(emojiButton);
@@ -552,6 +587,7 @@ protected void hideAudio(boolean cancel) {
isAudioVisible = false;
showView(attachButton);
+ showView(slashButton);
showView(messageEditText);
showView(emojiButton);
diff --git a/actor-sdk/sdk-core-android/android-sdk/src/main/java/im/actor/sdk/controllers/conversation/mentions/AutocompleteFragment.java b/actor-sdk/sdk-core-android/android-sdk/src/main/java/im/actor/sdk/controllers/conversation/mentions/AutocompleteFragment.java
index bf19a9a186..9745d2bf86 100644
--- a/actor-sdk/sdk-core-android/android-sdk/src/main/java/im/actor/sdk/controllers/conversation/mentions/AutocompleteFragment.java
+++ b/actor-sdk/sdk-core-android/android-sdk/src/main/java/im/actor/sdk/controllers/conversation/mentions/AutocompleteFragment.java
@@ -144,9 +144,13 @@ public void onDestroyView() {
private void expandMentions(final BottomSheetListView list, final int oldRowsCount, final int newRowsCount) {
list.post(() -> {
- if (newRowsCount == oldRowsCount) {
- return;
- }
+
+ // I dont understand for what it.
+ // But when its not comment, not work first time typing "/", only next.
+ //
+ //if (newRowsCount == oldRowsCount) {
+ // return;
+ //}
list.setMinHeight(newRowsCount == 0 ? 0 : newRowsCount == 1 ? Screen.dp(48) + 1 : newRowsCount == 2 ? Screen.dp(96) + 2 : Screen.dp(122));
list.setVisibility(View.VISIBLE);
diff --git a/actor-sdk/sdk-core-android/android-sdk/src/main/res/drawable-hdpi/conv_slash.png b/actor-sdk/sdk-core-android/android-sdk/src/main/res/drawable-hdpi/conv_slash.png
new file mode 100644
index 0000000000..05010ad37f
Binary files /dev/null and b/actor-sdk/sdk-core-android/android-sdk/src/main/res/drawable-hdpi/conv_slash.png differ
diff --git a/actor-sdk/sdk-core-android/android-sdk/src/main/res/drawable-mdpi/conv_slash.png b/actor-sdk/sdk-core-android/android-sdk/src/main/res/drawable-mdpi/conv_slash.png
new file mode 100644
index 0000000000..18e63837e7
Binary files /dev/null and b/actor-sdk/sdk-core-android/android-sdk/src/main/res/drawable-mdpi/conv_slash.png differ
diff --git a/actor-sdk/sdk-core-android/android-sdk/src/main/res/drawable-xhdpi/conv_slash.png b/actor-sdk/sdk-core-android/android-sdk/src/main/res/drawable-xhdpi/conv_slash.png
new file mode 100644
index 0000000000..9b0c640a08
Binary files /dev/null and b/actor-sdk/sdk-core-android/android-sdk/src/main/res/drawable-xhdpi/conv_slash.png differ
diff --git a/actor-sdk/sdk-core-android/android-sdk/src/main/res/drawable-xxhdpi/conv_slash.png b/actor-sdk/sdk-core-android/android-sdk/src/main/res/drawable-xxhdpi/conv_slash.png
new file mode 100644
index 0000000000..2cad763677
Binary files /dev/null and b/actor-sdk/sdk-core-android/android-sdk/src/main/res/drawable-xxhdpi/conv_slash.png differ
diff --git a/actor-sdk/sdk-core-android/android-sdk/src/main/res/drawable/button_slash.xml b/actor-sdk/sdk-core-android/android-sdk/src/main/res/drawable/button_slash.xml
new file mode 100644
index 0000000000..5216486905
--- /dev/null
+++ b/actor-sdk/sdk-core-android/android-sdk/src/main/res/drawable/button_slash.xml
@@ -0,0 +1,10 @@
+
+
+
+ -
+
+
+ -
+
+
+
\ No newline at end of file
diff --git a/actor-sdk/sdk-core-android/android-sdk/src/main/res/layout/fragment_inputbar.xml b/actor-sdk/sdk-core-android/android-sdk/src/main/res/layout/fragment_inputbar.xml
index 26ecd31934..52d03bf305 100644
--- a/actor-sdk/sdk-core-android/android-sdk/src/main/res/layout/fragment_inputbar.xml
+++ b/actor-sdk/sdk-core-android/android-sdk/src/main/res/layout/fragment_inputbar.xml
@@ -23,6 +23,28 @@
android:textCursorDrawable="@null"
android:textSize="16sp" />
+
+
+
+
+
+
+