aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2018-08-05 18:13:19 +0200
committerChristian Schneppe <christian@pix-art.de>2018-08-05 18:13:19 +0200
commitbbb53526f80c14d9ddc0f25ad5516a600e1868fa (patch)
treeb2493a52a8eefd377e2b5986f42a82886d2b3247 /src/main/java/de/pixart
parentb890f6e78f69f55a553d2fff92b0e82e10d97af2 (diff)
add a quick action for voice recording
* is enabled as default * can be disabled in settings
Diffstat (limited to '')
-rw-r--r--src/main/java/de/pixart/messenger/ui/ConversationFragment.java27
-rw-r--r--src/main/java/de/pixart/messenger/ui/util/ConversationMenuConfigurator.java5
2 files changed, 29 insertions, 3 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
index 743c96826..0374e643c 100644
--- a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
+++ b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
@@ -444,6 +444,14 @@ 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 mSendButtonListener = new OnClickListener() {
@Override
@@ -485,10 +493,12 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
@SuppressLint("RestrictedApi")
private void choose_attachment(View v) {
+ SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(activity);
+ final boolean hideVoice = p.getBoolean("show_record_voice_btn", activity.getResources().getBoolean(R.bool.show_record_voice_btn));
PopupMenu popup = new PopupMenu(activity, v);
popup.inflate(R.menu.choose_attachment);
Menu menu = popup.getMenu();
- ConversationMenuConfigurator.configureQuickShareAttachmentMenu(conversation, menu);
+ ConversationMenuConfigurator.configureQuickShareAttachmentMenu(conversation, menu, hideVoice);
popup.setOnMenuItemClickListener(attachmentItem -> {
switch (attachmentItem.getItemId()) {
case R.id.attach_choose_picture:
@@ -496,7 +506,6 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
case R.id.attach_choose_file:
case R.id.attach_record_voice:
case R.id.attach_location:
- Log.d(Config.LOGTAG, "ATTACHMENT: " + attachmentItem.getTitle());
handleAttachmentSelection(attachmentItem);
default:
return false;
@@ -1199,6 +1208,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
binding.textSendButton.setOnClickListener(this.mSendButtonListener);
binding.textSendButton.setOnLongClickListener(this.mSendButtonLongListener);
binding.scrollToBottomButton.setOnClickListener(this.mScrollButtonListener);
+ binding.recordVoiceButton.setOnClickListener(this.mRecordVoiceButtonListener);
binding.messagesView.setOnScrollListener(mOnScrollListener);
binding.messagesView.setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL);
@@ -1289,6 +1299,18 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
}
}
+ private void showRecordVoiceButton() {
+ 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) {
+ binding.recordVoiceButton.setVisibility(View.VISIBLE);
+ } else {
+ binding.recordVoiceButton.setVisibility(View.GONE);
+ }
+ binding.recordVoiceButton.setImageResource(activity.getThemeResource(R.attr.ic_send_voice_offline, R.drawable.ic_send_voice_offline));
+ }
+
private void quoteMessage(Message message) {
quoteText(MessageUtils.prepareQuote(message));
}
@@ -2178,6 +2200,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
this.binding.textSendButton.setContentDescription(activity.getString(R.string.send_message_to_x, conversation.getName()));
this.binding.textinput.setKeyboardListener(null);
this.binding.textinput.setText("");
+ showRecordVoiceButton();
final boolean participating = conversation.getMode() == Conversational.MODE_SINGLE || conversation.getMucOptions().participating();
if (participating) {
this.binding.textinput.append(this.conversation.getNextMessage());
diff --git a/src/main/java/de/pixart/messenger/ui/util/ConversationMenuConfigurator.java b/src/main/java/de/pixart/messenger/ui/util/ConversationMenuConfigurator.java
index 98a73addc..5c86b4a1b 100644
--- a/src/main/java/de/pixart/messenger/ui/util/ConversationMenuConfigurator.java
+++ b/src/main/java/de/pixart/messenger/ui/util/ConversationMenuConfigurator.java
@@ -53,11 +53,14 @@ public class ConversationMenuConfigurator {
locationAvailable = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS) || context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_LOCATION_NETWORK);
}
- public static void configureQuickShareAttachmentMenu(@NonNull Conversation conversation, Menu menu) {
+ public static void configureQuickShareAttachmentMenu(@NonNull Conversation conversation, Menu menu, boolean hideVoice) {
final boolean visible = SendButtonTool.AttachmentsVisible(conversation);
if (!visible) {
return;
}
+ if (hideVoice) {
+ microphoneAvailable = false;
+ }
menu.findItem(R.id.attach_record_voice).setVisible(microphoneAvailable);
menu.findItem(R.id.attach_location).setVisible(locationAvailable);
}