mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-14 19:59:05 +01:00
Emoji Support for all user input
All text that can be generated by users will show emoji from the shipped sprites. For all messages and posts, the custom emoji keyboard is now available. This also disables menu actions rather than hiding them and thus closes #677 Included is a fix for a regression that was not showing the keyboard automatically in forums and thus closes #676
This commit is contained in:
@@ -144,7 +144,7 @@ public class BlogFragment extends BaseFragment implements
|
||||
writeButton = menu.findItem(R.id.action_write_blog_post);
|
||||
if (isMyBlog) writeButton.setVisible(true);
|
||||
deleteButton = menu.findItem(R.id.action_blog_delete);
|
||||
if (canDeleteBlog) deleteButton.setVisible(true);
|
||||
if (canDeleteBlog) deleteButton.setEnabled(true);
|
||||
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
}
|
||||
@@ -196,7 +196,7 @@ public class BlogFragment extends BaseFragment implements
|
||||
displaySnackbar(R.string.blogs_blog_post_created, true);
|
||||
loadBlogPosts(true);
|
||||
} else if (request == REQUEST_SHARE && result == RESULT_OK) {
|
||||
displaySnackbar(R.string.blogs_sharing_snackbar, true);
|
||||
displaySnackbar(R.string.blogs_sharing_snackbar, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -261,7 +261,7 @@ public class BlogFragment extends BaseFragment implements
|
||||
if (blog.isOurs())
|
||||
showWriteButton();
|
||||
if (blog.canBeRemoved())
|
||||
showDeleteButton();
|
||||
enableDeleteButton();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -287,10 +287,10 @@ public class BlogFragment extends BaseFragment implements
|
||||
writeButton.setVisible(true);
|
||||
}
|
||||
|
||||
private void showDeleteButton() {
|
||||
private void enableDeleteButton() {
|
||||
canDeleteBlog = true;
|
||||
if (deleteButton != null)
|
||||
deleteButton.setVisible(true);
|
||||
deleteButton.setEnabled(true);
|
||||
}
|
||||
|
||||
private void displaySnackbar(int stringId, boolean scroll) {
|
||||
|
||||
@@ -5,10 +5,7 @@ import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.ScrollView;
|
||||
|
||||
@@ -16,6 +13,8 @@ import org.briarproject.R;
|
||||
import org.briarproject.android.ActivityComponent;
|
||||
import org.briarproject.android.controller.handler.UiResultExceptionHandler;
|
||||
import org.briarproject.android.fragment.BaseFragment;
|
||||
import org.briarproject.android.view.TextInputView;
|
||||
import org.briarproject.android.view.TextInputView.TextInputListener;
|
||||
import org.briarproject.api.db.DbException;
|
||||
import org.briarproject.api.sync.GroupId;
|
||||
import org.briarproject.api.sync.MessageId;
|
||||
@@ -29,7 +28,7 @@ import static android.view.View.VISIBLE;
|
||||
import static org.briarproject.android.BriarActivity.GROUP_ID;
|
||||
import static org.briarproject.android.blogs.BasePostPagerFragment.POST_ID;
|
||||
|
||||
public class ReblogFragment extends BaseFragment {
|
||||
public class ReblogFragment extends BaseFragment implements TextInputListener {
|
||||
|
||||
public static final String TAG = ReblogFragment.class.getName();
|
||||
|
||||
@@ -88,6 +87,7 @@ public class ReblogFragment extends BaseFragment {
|
||||
false);
|
||||
ui = new ViewHolder(v);
|
||||
ui.post.setTransitionName(postId);
|
||||
ui.input.setSendButtonEnabled(false);
|
||||
showProgressBar();
|
||||
|
||||
return v;
|
||||
@@ -129,14 +129,8 @@ public class ReblogFragment extends BaseFragment {
|
||||
ui.post.bindItem(item);
|
||||
ui.post.hideReblogButton();
|
||||
|
||||
ui.publish.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
send();
|
||||
finish();
|
||||
}
|
||||
});
|
||||
ui.publish.setEnabled(true);
|
||||
ui.input.setListener(this);
|
||||
ui.input.setSendButtonEnabled(true);
|
||||
ui.scrollView.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
@@ -145,7 +139,8 @@ public class ReblogFragment extends BaseFragment {
|
||||
});
|
||||
}
|
||||
|
||||
private void send() {
|
||||
@Override
|
||||
public void onSendClick(String text) {
|
||||
String comment = getComment();
|
||||
feedController.repeatPost(item, comment,
|
||||
new UiResultExceptionHandler<Void, DbException>(listener) {
|
||||
@@ -159,6 +154,7 @@ public class ReblogFragment extends BaseFragment {
|
||||
// do nothing, this fragment is gone already
|
||||
}
|
||||
});
|
||||
finish();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -170,13 +166,11 @@ public class ReblogFragment extends BaseFragment {
|
||||
private void showProgressBar() {
|
||||
ui.progressBar.setVisibility(VISIBLE);
|
||||
ui.input.setVisibility(GONE);
|
||||
ui.publish.setVisibility(GONE);
|
||||
}
|
||||
|
||||
private void hideProgressBar() {
|
||||
ui.progressBar.setVisibility(INVISIBLE);
|
||||
ui.input.setVisibility(VISIBLE);
|
||||
ui.publish.setVisibility(VISIBLE);
|
||||
}
|
||||
|
||||
private static class ViewHolder {
|
||||
@@ -184,15 +178,13 @@ public class ReblogFragment extends BaseFragment {
|
||||
private final ScrollView scrollView;
|
||||
private final ProgressBar progressBar;
|
||||
private final BlogPostViewHolder post;
|
||||
private final EditText input;
|
||||
private final Button publish;
|
||||
private final TextInputView input;
|
||||
|
||||
private ViewHolder(View v) {
|
||||
scrollView = (ScrollView) v.findViewById(R.id.scrollView);
|
||||
progressBar = (ProgressBar) v.findViewById(R.id.progressBar);
|
||||
post = new BlogPostViewHolder(v.findViewById(R.id.postLayout));
|
||||
input = (EditText) v.findViewById(R.id.inputText);
|
||||
publish = (Button) v.findViewById(R.id.publishButton);
|
||||
input = (TextInputView) v.findViewById(R.id.inputText);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,9 +6,6 @@ import android.text.Editable;
|
||||
import android.text.TextWatcher;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.TextView.OnEditorActionListener;
|
||||
@@ -17,6 +14,8 @@ import org.briarproject.R;
|
||||
import org.briarproject.android.ActivityComponent;
|
||||
import org.briarproject.android.BriarActivity;
|
||||
import org.briarproject.android.api.AndroidNotificationManager;
|
||||
import org.briarproject.android.view.TextInputView;
|
||||
import org.briarproject.android.view.TextInputView.TextInputListener;
|
||||
import org.briarproject.api.FormatException;
|
||||
import org.briarproject.api.blogs.BlogManager;
|
||||
import org.briarproject.api.blogs.BlogPost;
|
||||
@@ -39,7 +38,7 @@ import static java.util.logging.Level.WARNING;
|
||||
import static org.briarproject.api.blogs.BlogConstants.MAX_BLOG_POST_BODY_LENGTH;
|
||||
|
||||
public class WriteBlogPostActivity extends BriarActivity
|
||||
implements OnEditorActionListener {
|
||||
implements OnEditorActionListener, TextInputListener {
|
||||
|
||||
private static final Logger LOG =
|
||||
Logger.getLogger(WriteBlogPostActivity.class.getName());
|
||||
@@ -47,8 +46,7 @@ public class WriteBlogPostActivity extends BriarActivity
|
||||
@Inject
|
||||
protected AndroidNotificationManager notificationManager;
|
||||
|
||||
private EditText bodyInput;
|
||||
private Button publishButton;
|
||||
private TextInputView input;
|
||||
private ProgressBar progressBar;
|
||||
|
||||
// Fields that are accessed from background threads must be volatile
|
||||
@@ -60,6 +58,7 @@ public class WriteBlogPostActivity extends BriarActivity
|
||||
@Inject
|
||||
volatile BlogManager blogManager;
|
||||
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
@Override
|
||||
public void onCreate(Bundle state) {
|
||||
super.onCreate(state);
|
||||
@@ -71,8 +70,9 @@ public class WriteBlogPostActivity extends BriarActivity
|
||||
|
||||
setContentView(R.layout.activity_write_blog_post);
|
||||
|
||||
bodyInput = (EditText) findViewById(R.id.bodyInput);
|
||||
bodyInput.addTextChangedListener(new TextWatcher() {
|
||||
input = (TextInputView) findViewById(R.id.bodyInput);
|
||||
input.setSendButtonEnabled(false);
|
||||
input.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count,
|
||||
int after) {
|
||||
@@ -88,14 +88,7 @@ public class WriteBlogPostActivity extends BriarActivity
|
||||
enableOrDisablePublishButton();
|
||||
}
|
||||
});
|
||||
|
||||
publishButton = (Button) findViewById(R.id.publishButton);
|
||||
publishButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
publish();
|
||||
}
|
||||
});
|
||||
input.setListener(this);
|
||||
|
||||
progressBar = (ProgressBar) findViewById(R.id.progressBar);
|
||||
}
|
||||
@@ -130,25 +123,23 @@ public class WriteBlogPostActivity extends BriarActivity
|
||||
|
||||
@Override
|
||||
public boolean onEditorAction(TextView textView, int actionId, KeyEvent e) {
|
||||
bodyInput.requestFocus();
|
||||
input.requestFocus();
|
||||
return true;
|
||||
}
|
||||
|
||||
private void enableOrDisablePublishButton() {
|
||||
int bodyLength =
|
||||
StringUtils.toUtf8(bodyInput.getText().toString()).length;
|
||||
StringUtils.toUtf8(input.getText().toString()).length;
|
||||
if (bodyLength > 0 && bodyLength <= MAX_BLOG_POST_BODY_LENGTH)
|
||||
publishButton.setEnabled(true);
|
||||
input.setSendButtonEnabled(true);
|
||||
else
|
||||
publishButton.setEnabled(false);
|
||||
input.setSendButtonEnabled(false);
|
||||
}
|
||||
|
||||
private void publish() {
|
||||
// body
|
||||
String body = bodyInput.getText().toString();
|
||||
|
||||
@Override
|
||||
public void onSendClick(String body) {
|
||||
// hide publish button, show progress bar
|
||||
publishButton.setVisibility(GONE);
|
||||
input.setVisibility(GONE);
|
||||
progressBar.setVisibility(VISIBLE);
|
||||
|
||||
storePost(body);
|
||||
@@ -192,10 +183,9 @@ public class WriteBlogPostActivity extends BriarActivity
|
||||
public void run() {
|
||||
// hide progress bar, show publish button
|
||||
progressBar.setVisibility(GONE);
|
||||
publishButton.setVisibility(VISIBLE);
|
||||
input.setVisibility(VISIBLE);
|
||||
// TODO show error
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user