mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-11-10 12:47:26 +01:00
Support Markdown bottom bar in EditCommentActivity, EditPostActivity and PostTextActivity.
This commit is contained in:
parent
c809215759
commit
50a75ea4f9
@ -14,7 +14,6 @@ import android.view.MenuItem;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.SeekBar;
|
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
@ -263,165 +262,8 @@ public class CommentActivity extends BaseActivity {
|
|||||||
|
|
||||||
setSupportActionBar(toolbar);
|
setSupportActionBar(toolbar);
|
||||||
|
|
||||||
MarkdownBottomBarRecyclerViewAdapter adapter = new MarkdownBottomBarRecyclerViewAdapter(mCustomThemeWrapper, new MarkdownBottomBarRecyclerViewAdapter.ItemClickListener() {
|
MarkdownBottomBarRecyclerViewAdapter adapter = new MarkdownBottomBarRecyclerViewAdapter(mCustomThemeWrapper, item -> {
|
||||||
@Override
|
MarkdownBottomBarRecyclerViewAdapter.bindEditTextWithItemClickListener(this, commentEditText, item);
|
||||||
public void onClick(int item) {
|
|
||||||
switch (item) {
|
|
||||||
case MarkdownBottomBarRecyclerViewAdapter.BOLD: {
|
|
||||||
int start = Math.max(commentEditText.getSelectionStart(), 0);
|
|
||||||
int end = Math.max(commentEditText.getSelectionEnd(), 0);
|
|
||||||
if (end != start) {
|
|
||||||
String currentSelection = commentEditText.getText().subSequence(start, end).toString();
|
|
||||||
commentEditText.getText().replace(Math.min(start, end), Math.max(start, end),
|
|
||||||
"**" + currentSelection + "**", 0, "****".length() + currentSelection.length());
|
|
||||||
} else {
|
|
||||||
commentEditText.getText().replace(start, end,
|
|
||||||
"****", 0, "****".length());
|
|
||||||
commentEditText.setSelection(start + "**".length());
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case MarkdownBottomBarRecyclerViewAdapter.ITALIC: {
|
|
||||||
int start = Math.max(commentEditText.getSelectionStart(), 0);
|
|
||||||
int end = Math.max(commentEditText.getSelectionEnd(), 0);
|
|
||||||
if (end != start) {
|
|
||||||
String currentSelection = commentEditText.getText().subSequence(start, end).toString();
|
|
||||||
commentEditText.getText().replace(Math.min(start, end), Math.max(start, end),
|
|
||||||
"*" + currentSelection + "*", 0, "**".length() + currentSelection.length());
|
|
||||||
} else {
|
|
||||||
commentEditText.getText().replace(start, end,
|
|
||||||
"**", 0, "**".length());
|
|
||||||
commentEditText.setSelection(start + "*".length());
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case MarkdownBottomBarRecyclerViewAdapter.LINK: {
|
|
||||||
View dialogView = getLayoutInflater().inflate(R.layout.dialog_insert_link, null);
|
|
||||||
EditText textEditText = dialogView.findViewById(R.id.edit_text_insert_link_dialog);
|
|
||||||
EditText linkEditText = dialogView.findViewById(R.id.edit_link_insert_link_dialog);
|
|
||||||
|
|
||||||
int start = Math.max(commentEditText.getSelectionStart(), 0);
|
|
||||||
int end = Math.max(commentEditText.getSelectionEnd(), 0);
|
|
||||||
if (end != start) {
|
|
||||||
String currentSelection = commentEditText.getText().subSequence(start, end).toString();
|
|
||||||
textEditText.setText(currentSelection);
|
|
||||||
}
|
|
||||||
|
|
||||||
new MaterialAlertDialogBuilder(CommentActivity.this, R.style.MaterialAlertDialogTheme)
|
|
||||||
.setTitle(R.string.insert_link)
|
|
||||||
.setView(dialogView)
|
|
||||||
.setPositiveButton(R.string.ok, (editTextDialogInterface, i1)
|
|
||||||
-> {
|
|
||||||
String text = textEditText.getText().toString();
|
|
||||||
String link = linkEditText.getText().toString();
|
|
||||||
|
|
||||||
commentEditText.getText().replace(Math.min(start, end), Math.max(start, end),
|
|
||||||
"[" + text + "](" + link + ")", 0, "[]()".length() + text.length() + link.length());
|
|
||||||
})
|
|
||||||
.setNegativeButton(R.string.cancel, null)
|
|
||||||
.show();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case MarkdownBottomBarRecyclerViewAdapter.STRIKE_THROUGH: {
|
|
||||||
int start = Math.max(commentEditText.getSelectionStart(), 0);
|
|
||||||
int end = Math.max(commentEditText.getSelectionEnd(), 0);
|
|
||||||
if (end != start) {
|
|
||||||
String currentSelection = commentEditText.getText().subSequence(start, end).toString();
|
|
||||||
commentEditText.getText().replace(Math.min(start, end), Math.max(start, end),
|
|
||||||
"~~" + currentSelection + "~~", 0, "~~~~".length() + currentSelection.length());
|
|
||||||
} else {
|
|
||||||
commentEditText.getText().replace(start, end,
|
|
||||||
"~~~~", 0, "~~~~".length());
|
|
||||||
commentEditText.setSelection(start + "~~".length());
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case MarkdownBottomBarRecyclerViewAdapter.HEADER: {
|
|
||||||
View dialogView = getLayoutInflater().inflate(R.layout.dialog_select_header, null);
|
|
||||||
SeekBar seekBar = dialogView.findViewById(R.id.seek_bar_dialog_select_header);
|
|
||||||
new MaterialAlertDialogBuilder(CommentActivity.this, R.style.MaterialAlertDialogTheme)
|
|
||||||
.setTitle(R.string.select_header_size)
|
|
||||||
.setView(dialogView)
|
|
||||||
.setPositiveButton(R.string.ok, (editTextDialogInterface, i1)
|
|
||||||
-> {
|
|
||||||
int start = Math.max(commentEditText.getSelectionStart(), 0);
|
|
||||||
int end = Math.max(commentEditText.getSelectionEnd(), 0);
|
|
||||||
String hashTags;
|
|
||||||
switch (seekBar.getProgress()) {
|
|
||||||
case 0:
|
|
||||||
hashTags = "######";
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
hashTags = "#####";
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
hashTags = "####";
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
hashTags = "###";
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
hashTags = "##";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
hashTags = "#";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (end != start) {
|
|
||||||
String currentSelection = commentEditText.getText().subSequence(start, end).toString();
|
|
||||||
commentEditText.getText().replace(Math.min(start, end), Math.max(start, end),
|
|
||||||
hashTags + currentSelection, 0, hashTags.length() + currentSelection.length());
|
|
||||||
} else {
|
|
||||||
commentEditText.getText().replace(start, end,
|
|
||||||
hashTags, 0, hashTags.length());
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.setNegativeButton(R.string.cancel, null)
|
|
||||||
.show();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case MarkdownBottomBarRecyclerViewAdapter.ORDERED_LIST: {
|
|
||||||
int start = Math.max(commentEditText.getSelectionStart(), 0);
|
|
||||||
int end = Math.max(commentEditText.getSelectionEnd(), 0);
|
|
||||||
if (end != start) {
|
|
||||||
String currentSelection = commentEditText.getText().subSequence(start, end).toString();
|
|
||||||
commentEditText.getText().replace(Math.min(start, end), Math.max(start, end),
|
|
||||||
"1. " + currentSelection, 0, "1. ".length() + currentSelection.length());
|
|
||||||
} else {
|
|
||||||
commentEditText.getText().replace(start, end,
|
|
||||||
"1. ", 0, "1. ".length());
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case MarkdownBottomBarRecyclerViewAdapter.UNORDERED_LIST: {
|
|
||||||
int start = Math.max(commentEditText.getSelectionStart(), 0);
|
|
||||||
int end = Math.max(commentEditText.getSelectionEnd(), 0);
|
|
||||||
if (end != start) {
|
|
||||||
String currentSelection = commentEditText.getText().subSequence(start, end).toString();
|
|
||||||
commentEditText.getText().replace(Math.min(start, end), Math.max(start, end),
|
|
||||||
"* " + currentSelection, 0, "* ".length() + currentSelection.length());
|
|
||||||
} else {
|
|
||||||
commentEditText.getText().replace(start, end,
|
|
||||||
"* ", 0, "* ".length());
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case MarkdownBottomBarRecyclerViewAdapter.SPOILER: {
|
|
||||||
int start = Math.max(commentEditText.getSelectionStart(), 0);
|
|
||||||
int end = Math.max(commentEditText.getSelectionEnd(), 0);
|
|
||||||
if (end != start) {
|
|
||||||
String currentSelection = commentEditText.getText().subSequence(start, end).toString();
|
|
||||||
commentEditText.getText().replace(Math.min(start, end), Math.max(start, end),
|
|
||||||
">!" + currentSelection + "!<", 0, ">!!<".length() + currentSelection.length());
|
|
||||||
} else {
|
|
||||||
commentEditText.getText().replace(start, end,
|
|
||||||
">!!<", 0, ">!!<".length());
|
|
||||||
commentEditText.setSelection(start + ">!".length());
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
markdownBottomBarRecyclerView.setLayoutManager(new LinearLayoutManager(this,
|
markdownBottomBarRecyclerView.setLayoutManager(new LinearLayoutManager(this,
|
||||||
|
@ -14,6 +14,8 @@ import android.widget.Toast;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.google.android.material.appbar.AppBarLayout;
|
import com.google.android.material.appbar.AppBarLayout;
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
@ -31,6 +33,7 @@ import javax.inject.Named;
|
|||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import ml.docilealligator.infinityforreddit.API.RedditAPI;
|
import ml.docilealligator.infinityforreddit.API.RedditAPI;
|
||||||
|
import ml.docilealligator.infinityforreddit.Adapter.MarkdownBottomBarRecyclerViewAdapter;
|
||||||
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
|
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
|
||||||
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
@ -60,6 +63,8 @@ public class EditCommentActivity extends BaseActivity {
|
|||||||
Toolbar toolbar;
|
Toolbar toolbar;
|
||||||
@BindView(R.id.comment_edit_text_edit_comment_activity)
|
@BindView(R.id.comment_edit_text_edit_comment_activity)
|
||||||
EditText contentEditText;
|
EditText contentEditText;
|
||||||
|
@BindView(R.id.markdown_bottom_bar_recycler_view_edit_comment_activity)
|
||||||
|
RecyclerView markdownBottomBarRecyclerView;
|
||||||
@Inject
|
@Inject
|
||||||
@Named("oauth")
|
@Named("oauth")
|
||||||
Retrofit mOauthRetrofit;
|
Retrofit mOauthRetrofit;
|
||||||
@ -77,6 +82,8 @@ public class EditCommentActivity extends BaseActivity {
|
|||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
((Infinity) getApplication()).getAppComponent().inject(this);
|
((Infinity) getApplication()).getAppComponent().inject(this);
|
||||||
|
|
||||||
|
setImmersiveModeNotApplicable();
|
||||||
|
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
setContentView(R.layout.activity_edit_comment);
|
setContentView(R.layout.activity_edit_comment);
|
||||||
@ -99,6 +106,14 @@ public class EditCommentActivity extends BaseActivity {
|
|||||||
mCommentContent = getIntent().getStringExtra(EXTRA_CONTENT);
|
mCommentContent = getIntent().getStringExtra(EXTRA_CONTENT);
|
||||||
contentEditText.setText(mCommentContent);
|
contentEditText.setText(mCommentContent);
|
||||||
|
|
||||||
|
MarkdownBottomBarRecyclerViewAdapter adapter = new MarkdownBottomBarRecyclerViewAdapter(mCustomThemeWrapper, item -> {
|
||||||
|
MarkdownBottomBarRecyclerViewAdapter.bindEditTextWithItemClickListener(this, contentEditText, item);
|
||||||
|
});
|
||||||
|
|
||||||
|
markdownBottomBarRecyclerView.setLayoutManager(new LinearLayoutManager(this,
|
||||||
|
LinearLayoutManager.HORIZONTAL, false));
|
||||||
|
markdownBottomBarRecyclerView.setAdapter(adapter);
|
||||||
|
|
||||||
contentEditText.requestFocus();
|
contentEditText.requestFocus();
|
||||||
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
|
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||||
if (imm != null) {
|
if (imm != null) {
|
||||||
|
@ -16,6 +16,8 @@ import android.widget.Toast;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.google.android.material.appbar.AppBarLayout;
|
import com.google.android.material.appbar.AppBarLayout;
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
@ -33,11 +35,12 @@ import javax.inject.Named;
|
|||||||
|
|
||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
|
import ml.docilealligator.infinityforreddit.API.RedditAPI;
|
||||||
|
import ml.docilealligator.infinityforreddit.Adapter.MarkdownBottomBarRecyclerViewAdapter;
|
||||||
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
|
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
|
||||||
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.API.RedditAPI;
|
|
||||||
import ml.docilealligator.infinityforreddit.Utils.APIUtils;
|
import ml.docilealligator.infinityforreddit.Utils.APIUtils;
|
||||||
import ml.docilealligator.infinityforreddit.Utils.SharedPreferencesUtils;
|
import ml.docilealligator.infinityforreddit.Utils.SharedPreferencesUtils;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
@ -64,6 +67,8 @@ public class EditPostActivity extends BaseActivity {
|
|||||||
View divider;
|
View divider;
|
||||||
@BindView(R.id.post_text_content_edit_text_edit_post_activity)
|
@BindView(R.id.post_text_content_edit_text_edit_post_activity)
|
||||||
EditText contentEditText;
|
EditText contentEditText;
|
||||||
|
@BindView(R.id.markdown_bottom_bar_recycler_view_edit_post_activity)
|
||||||
|
RecyclerView markdownBottomBarRecyclerView;
|
||||||
@Inject
|
@Inject
|
||||||
@Named("oauth")
|
@Named("oauth")
|
||||||
Retrofit mOauthRetrofit;
|
Retrofit mOauthRetrofit;
|
||||||
@ -81,6 +86,8 @@ public class EditPostActivity extends BaseActivity {
|
|||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
((Infinity) getApplication()).getAppComponent().inject(this);
|
((Infinity) getApplication()).getAppComponent().inject(this);
|
||||||
|
|
||||||
|
setImmersiveModeNotApplicable();
|
||||||
|
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
setContentView(R.layout.activity_edit_post);
|
setContentView(R.layout.activity_edit_post);
|
||||||
@ -108,6 +115,14 @@ public class EditPostActivity extends BaseActivity {
|
|||||||
mPostContent = getIntent().getStringExtra(EXTRA_CONTENT);
|
mPostContent = getIntent().getStringExtra(EXTRA_CONTENT);
|
||||||
contentEditText.setText(mPostContent);
|
contentEditText.setText(mPostContent);
|
||||||
|
|
||||||
|
MarkdownBottomBarRecyclerViewAdapter adapter = new MarkdownBottomBarRecyclerViewAdapter(mCustomThemeWrapper, item -> {
|
||||||
|
MarkdownBottomBarRecyclerViewAdapter.bindEditTextWithItemClickListener(this, contentEditText, item);
|
||||||
|
});
|
||||||
|
|
||||||
|
markdownBottomBarRecyclerView.setLayoutManager(new LinearLayoutManager(this,
|
||||||
|
LinearLayoutManager.HORIZONTAL, false));
|
||||||
|
markdownBottomBarRecyclerView.setAdapter(adapter);
|
||||||
|
|
||||||
contentEditText.requestFocus();
|
contentEditText.requestFocus();
|
||||||
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
|
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||||
if (imm != null) {
|
if (imm != null) {
|
||||||
|
@ -17,6 +17,8 @@ import androidx.annotation.NonNull;
|
|||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.Glide;
|
||||||
import com.bumptech.glide.RequestManager;
|
import com.bumptech.glide.RequestManager;
|
||||||
@ -35,6 +37,7 @@ import javax.inject.Named;
|
|||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
||||||
|
import ml.docilealligator.infinityforreddit.Adapter.MarkdownBottomBarRecyclerViewAdapter;
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.LoadSubredditIconAsyncTask;
|
import ml.docilealligator.infinityforreddit.AsyncTask.LoadSubredditIconAsyncTask;
|
||||||
import ml.docilealligator.infinityforreddit.BottomSheetFragment.FlairBottomSheetFragment;
|
import ml.docilealligator.infinityforreddit.BottomSheetFragment.FlairBottomSheetFragment;
|
||||||
@ -97,6 +100,8 @@ public class PostTextActivity extends BaseActivity implements FlairBottomSheetFr
|
|||||||
View divider3;
|
View divider3;
|
||||||
@BindView(R.id.post_text_content_edit_text_post_text_activity)
|
@BindView(R.id.post_text_content_edit_text_post_text_activity)
|
||||||
EditText contentEditText;
|
EditText contentEditText;
|
||||||
|
@BindView(R.id.markdown_bottom_bar_recycler_view_post_text_activity)
|
||||||
|
RecyclerView markdownBottomBarRecyclerView;
|
||||||
@Inject
|
@Inject
|
||||||
@Named("no_oauth")
|
@Named("no_oauth")
|
||||||
Retrofit mRetrofit;
|
Retrofit mRetrofit;
|
||||||
@ -305,6 +310,14 @@ public class PostTextActivity extends BaseActivity implements FlairBottomSheetFr
|
|||||||
isNSFW = false;
|
isNSFW = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
MarkdownBottomBarRecyclerViewAdapter adapter = new MarkdownBottomBarRecyclerViewAdapter(mCustomThemeWrapper, item -> {
|
||||||
|
MarkdownBottomBarRecyclerViewAdapter.bindEditTextWithItemClickListener(this, contentEditText, item);
|
||||||
|
});
|
||||||
|
|
||||||
|
markdownBottomBarRecyclerView.setLayoutManager(new LinearLayoutManager(this,
|
||||||
|
LinearLayoutManager.HORIZONTAL, false));
|
||||||
|
markdownBottomBarRecyclerView.setAdapter(adapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,13 +1,18 @@
|
|||||||
package ml.docilealligator.infinityforreddit.Adapter;
|
package ml.docilealligator.infinityforreddit.Adapter;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.EditText;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
import android.widget.SeekBar;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
|
||||||
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
|
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
|
|
||||||
@ -80,6 +85,164 @@ public class MarkdownBottomBarRecyclerViewAdapter extends RecyclerView.Adapter<R
|
|||||||
return ITEM_COUNT;
|
return ITEM_COUNT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void bindEditTextWithItemClickListener(Activity activity, EditText commentEditText, int item) {
|
||||||
|
switch (item) {
|
||||||
|
case MarkdownBottomBarRecyclerViewAdapter.BOLD: {
|
||||||
|
int start = Math.max(commentEditText.getSelectionStart(), 0);
|
||||||
|
int end = Math.max(commentEditText.getSelectionEnd(), 0);
|
||||||
|
if (end != start) {
|
||||||
|
String currentSelection = commentEditText.getText().subSequence(start, end).toString();
|
||||||
|
commentEditText.getText().replace(Math.min(start, end), Math.max(start, end),
|
||||||
|
"**" + currentSelection + "**", 0, "****".length() + currentSelection.length());
|
||||||
|
} else {
|
||||||
|
commentEditText.getText().replace(start, end,
|
||||||
|
"****", 0, "****".length());
|
||||||
|
commentEditText.setSelection(start + "**".length());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case MarkdownBottomBarRecyclerViewAdapter.ITALIC: {
|
||||||
|
int start = Math.max(commentEditText.getSelectionStart(), 0);
|
||||||
|
int end = Math.max(commentEditText.getSelectionEnd(), 0);
|
||||||
|
if (end != start) {
|
||||||
|
String currentSelection = commentEditText.getText().subSequence(start, end).toString();
|
||||||
|
commentEditText.getText().replace(Math.min(start, end), Math.max(start, end),
|
||||||
|
"*" + currentSelection + "*", 0, "**".length() + currentSelection.length());
|
||||||
|
} else {
|
||||||
|
commentEditText.getText().replace(start, end,
|
||||||
|
"**", 0, "**".length());
|
||||||
|
commentEditText.setSelection(start + "*".length());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case MarkdownBottomBarRecyclerViewAdapter.LINK: {
|
||||||
|
View dialogView = activity.getLayoutInflater().inflate(R.layout.dialog_insert_link, null);
|
||||||
|
EditText textEditText = dialogView.findViewById(R.id.edit_text_insert_link_dialog);
|
||||||
|
EditText linkEditText = dialogView.findViewById(R.id.edit_link_insert_link_dialog);
|
||||||
|
|
||||||
|
int start = Math.max(commentEditText.getSelectionStart(), 0);
|
||||||
|
int end = Math.max(commentEditText.getSelectionEnd(), 0);
|
||||||
|
if (end != start) {
|
||||||
|
String currentSelection = commentEditText.getText().subSequence(start, end).toString();
|
||||||
|
textEditText.setText(currentSelection);
|
||||||
|
}
|
||||||
|
|
||||||
|
new MaterialAlertDialogBuilder(activity, R.style.MaterialAlertDialogTheme)
|
||||||
|
.setTitle(R.string.insert_link)
|
||||||
|
.setView(dialogView)
|
||||||
|
.setPositiveButton(R.string.ok, (editTextDialogInterface, i1)
|
||||||
|
-> {
|
||||||
|
String text = textEditText.getText().toString();
|
||||||
|
String link = linkEditText.getText().toString();
|
||||||
|
|
||||||
|
commentEditText.getText().replace(Math.min(start, end), Math.max(start, end),
|
||||||
|
"[" + text + "](" + link + ")", 0, "[]()".length() + text.length() + link.length());
|
||||||
|
})
|
||||||
|
.setNegativeButton(R.string.cancel, null)
|
||||||
|
.show();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case MarkdownBottomBarRecyclerViewAdapter.STRIKE_THROUGH: {
|
||||||
|
int start = Math.max(commentEditText.getSelectionStart(), 0);
|
||||||
|
int end = Math.max(commentEditText.getSelectionEnd(), 0);
|
||||||
|
if (end != start) {
|
||||||
|
String currentSelection = commentEditText.getText().subSequence(start, end).toString();
|
||||||
|
commentEditText.getText().replace(Math.min(start, end), Math.max(start, end),
|
||||||
|
"~~" + currentSelection + "~~", 0, "~~~~".length() + currentSelection.length());
|
||||||
|
} else {
|
||||||
|
commentEditText.getText().replace(start, end,
|
||||||
|
"~~~~", 0, "~~~~".length());
|
||||||
|
commentEditText.setSelection(start + "~~".length());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case MarkdownBottomBarRecyclerViewAdapter.HEADER: {
|
||||||
|
View dialogView = activity.getLayoutInflater().inflate(R.layout.dialog_select_header, null);
|
||||||
|
SeekBar seekBar = dialogView.findViewById(R.id.seek_bar_dialog_select_header);
|
||||||
|
new MaterialAlertDialogBuilder(activity, R.style.MaterialAlertDialogTheme)
|
||||||
|
.setTitle(R.string.select_header_size)
|
||||||
|
.setView(dialogView)
|
||||||
|
.setPositiveButton(R.string.ok, (editTextDialogInterface, i1)
|
||||||
|
-> {
|
||||||
|
int start = Math.max(commentEditText.getSelectionStart(), 0);
|
||||||
|
int end = Math.max(commentEditText.getSelectionEnd(), 0);
|
||||||
|
String hashTags;
|
||||||
|
switch (seekBar.getProgress()) {
|
||||||
|
case 0:
|
||||||
|
hashTags = "######";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
hashTags = "#####";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
hashTags = "####";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
hashTags = "###";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
hashTags = "##";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
hashTags = "#";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (end != start) {
|
||||||
|
String currentSelection = commentEditText.getText().subSequence(start, end).toString();
|
||||||
|
commentEditText.getText().replace(Math.min(start, end), Math.max(start, end),
|
||||||
|
hashTags + currentSelection, 0, hashTags.length() + currentSelection.length());
|
||||||
|
} else {
|
||||||
|
commentEditText.getText().replace(start, end,
|
||||||
|
hashTags, 0, hashTags.length());
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.setNegativeButton(R.string.cancel, null)
|
||||||
|
.show();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case MarkdownBottomBarRecyclerViewAdapter.ORDERED_LIST: {
|
||||||
|
int start = Math.max(commentEditText.getSelectionStart(), 0);
|
||||||
|
int end = Math.max(commentEditText.getSelectionEnd(), 0);
|
||||||
|
if (end != start) {
|
||||||
|
String currentSelection = commentEditText.getText().subSequence(start, end).toString();
|
||||||
|
commentEditText.getText().replace(Math.min(start, end), Math.max(start, end),
|
||||||
|
"1. " + currentSelection, 0, "1. ".length() + currentSelection.length());
|
||||||
|
} else {
|
||||||
|
commentEditText.getText().replace(start, end,
|
||||||
|
"1. ", 0, "1. ".length());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case MarkdownBottomBarRecyclerViewAdapter.UNORDERED_LIST: {
|
||||||
|
int start = Math.max(commentEditText.getSelectionStart(), 0);
|
||||||
|
int end = Math.max(commentEditText.getSelectionEnd(), 0);
|
||||||
|
if (end != start) {
|
||||||
|
String currentSelection = commentEditText.getText().subSequence(start, end).toString();
|
||||||
|
commentEditText.getText().replace(Math.min(start, end), Math.max(start, end),
|
||||||
|
"* " + currentSelection, 0, "* ".length() + currentSelection.length());
|
||||||
|
} else {
|
||||||
|
commentEditText.getText().replace(start, end,
|
||||||
|
"* ", 0, "* ".length());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case MarkdownBottomBarRecyclerViewAdapter.SPOILER: {
|
||||||
|
int start = Math.max(commentEditText.getSelectionStart(), 0);
|
||||||
|
int end = Math.max(commentEditText.getSelectionEnd(), 0);
|
||||||
|
if (end != start) {
|
||||||
|
String currentSelection = commentEditText.getText().subSequence(start, end).toString();
|
||||||
|
commentEditText.getText().replace(Math.min(start, end), Math.max(start, end),
|
||||||
|
">!" + currentSelection + "!<", 0, ">!!<".length() + currentSelection.length());
|
||||||
|
} else {
|
||||||
|
commentEditText.getText().replace(start, end,
|
||||||
|
">!!<", 0, ">!!<".length());
|
||||||
|
commentEditText.setSelection(start + ">!".length());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class MarkdownBottomBarItemViewHolder extends RecyclerView.ViewHolder {
|
class MarkdownBottomBarItemViewHolder extends RecyclerView.ViewHolder {
|
||||||
ImageView imageView;
|
ImageView imageView;
|
||||||
|
|
||||||
|
@ -23,18 +23,34 @@
|
|||||||
|
|
||||||
</com.google.android.material.appbar.AppBarLayout>
|
</com.google.android.material.appbar.AppBarLayout>
|
||||||
|
|
||||||
<EditText
|
<LinearLayout
|
||||||
android:id="@+id/comment_edit_text_edit_comment_activity"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="#00000000"
|
android:orientation="vertical"
|
||||||
android:gravity="top"
|
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||||
android:hint="@string/post_text_content_hint"
|
|
||||||
android:inputType="textCapSentences|textMultiLine"
|
<EditText
|
||||||
android:padding="16dp"
|
android:id="@+id/comment_edit_text_edit_comment_activity"
|
||||||
android:textColor="?attr/primaryTextColor"
|
android:layout_width="match_parent"
|
||||||
android:textSize="?attr/content_font_18"
|
android:layout_height="0dp"
|
||||||
android:fontFamily="?attr/content_font_family"
|
android:layout_weight="1"
|
||||||
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
android:background="#00000000"
|
||||||
|
android:gravity="top"
|
||||||
|
android:hint="@string/post_text_content_hint"
|
||||||
|
android:inputType="textCapSentences|textMultiLine"
|
||||||
|
android:padding="16dp"
|
||||||
|
android:textColor="?attr/primaryTextColor"
|
||||||
|
android:textSize="?attr/content_font_18"
|
||||||
|
android:fontFamily="?attr/content_font_family" />
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/markdown_bottom_bar_recycler_view_edit_comment_activity"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:scrollbars="horizontal"
|
||||||
|
android:layout_gravity="bottom" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
@ -13,65 +13,72 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:theme="@style/AppTheme.AppBarOverlay">
|
android:theme="@style/AppTheme.AppBarOverlay">
|
||||||
|
|
||||||
<com.google.android.material.appbar.CollapsingToolbarLayout
|
<androidx.appcompat.widget.Toolbar
|
||||||
|
android:id="@+id/toolbar_edit_post_activity"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content"
|
||||||
app:layout_scrollFlags="scroll|enterAlways"
|
android:minHeight="?attr/actionBarSize"
|
||||||
app:titleEnabled="false"
|
app:popupTheme="@style/AppTheme.PopupOverlay"
|
||||||
app:toolbarId="@+id/toolbar_edit_post_activity">
|
app:navigationIcon="?attr/homeAsUpIndicator" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.Toolbar
|
|
||||||
android:id="@+id/toolbar_edit_post_activity"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:minHeight="?attr/actionBarSize"
|
|
||||||
app:popupTheme="@style/AppTheme.PopupOverlay"
|
|
||||||
app:navigationIcon="?attr/homeAsUpIndicator" />
|
|
||||||
|
|
||||||
</com.google.android.material.appbar.CollapsingToolbarLayout>
|
|
||||||
|
|
||||||
</com.google.android.material.appbar.AppBarLayout>
|
</com.google.android.material.appbar.AppBarLayout>
|
||||||
|
|
||||||
<androidx.core.widget.NestedScrollView
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical"
|
||||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||||
|
|
||||||
<LinearLayout
|
<androidx.core.widget.NestedScrollView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="0dp"
|
||||||
android:orientation="vertical">
|
android:layout_weight="1">
|
||||||
|
|
||||||
<TextView
|
<LinearLayout
|
||||||
android:id="@+id/post_title_text_view_edit_post_activity"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:gravity="top"
|
|
||||||
android:padding="16dp"
|
|
||||||
android:textSize="?attr/title_font_18"
|
|
||||||
android:textColor="?attr/primaryTextColor"
|
|
||||||
android:fontFamily="?attr/title_font_family" />
|
|
||||||
|
|
||||||
<View
|
|
||||||
android:id="@+id/divider_edit_post_activity"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="1dp" />
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:id="@+id/post_text_content_edit_text_edit_post_activity"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:gravity="top"
|
android:orientation="vertical">
|
||||||
android:padding="16dp"
|
|
||||||
android:hint="@string/post_text_content_hint"
|
|
||||||
android:inputType="textCapSentences|textMultiLine"
|
|
||||||
android:textSize="?attr/content_font_18"
|
|
||||||
android:background="#00000000"
|
|
||||||
android:textColor="?attr/primaryTextColor"
|
|
||||||
android:fontFamily="?attr/content_font_family" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
<TextView
|
||||||
|
android:id="@+id/post_title_text_view_edit_post_activity"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="top"
|
||||||
|
android:padding="16dp"
|
||||||
|
android:textSize="?attr/title_font_18"
|
||||||
|
android:textColor="?attr/primaryTextColor"
|
||||||
|
android:fontFamily="?attr/title_font_family" />
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:id="@+id/divider_edit_post_activity"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/post_text_content_edit_text_edit_post_activity"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:gravity="top"
|
||||||
|
android:padding="16dp"
|
||||||
|
android:hint="@string/post_text_content_hint"
|
||||||
|
android:inputType="textCapSentences|textMultiLine"
|
||||||
|
android:textSize="?attr/content_font_18"
|
||||||
|
android:background="#00000000"
|
||||||
|
android:textColor="?attr/primaryTextColor"
|
||||||
|
android:fontFamily="?attr/content_font_family" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</androidx.core.widget.NestedScrollView>
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/markdown_bottom_bar_recycler_view_edit_post_activity"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:scrollbars="horizontal"
|
||||||
|
android:layout_gravity="bottom" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</androidx.core.widget.NestedScrollView>
|
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
@ -23,148 +23,163 @@
|
|||||||
|
|
||||||
</com.google.android.material.appbar.AppBarLayout>
|
</com.google.android.material.appbar.AppBarLayout>
|
||||||
|
|
||||||
<androidx.core.widget.NestedScrollView
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical"
|
||||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||||
|
|
||||||
<LinearLayout
|
<androidx.core.widget.NestedScrollView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="0dp"
|
||||||
android:orientation="vertical">
|
android:layout_weight="1">
|
||||||
|
|
||||||
<RelativeLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingStart="16dp"
|
|
||||||
android:paddingTop="8dp"
|
|
||||||
android:paddingEnd="16dp"
|
|
||||||
android:paddingBottom="8dp">
|
|
||||||
|
|
||||||
<pl.droidsonroids.gif.GifImageView
|
|
||||||
android:id="@+id/subreddit_icon_gif_image_view_search_activity"
|
|
||||||
android:layout_width="24dp"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:layout_alignParentStart="true"
|
|
||||||
android:layout_centerVertical="true" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/subreddit_name_text_view_search_activity"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_centerVertical="true"
|
|
||||||
android:layout_marginStart="32dp"
|
|
||||||
android:layout_marginEnd="16dp"
|
|
||||||
android:layout_toStartOf="@id/rules_button_post_text_activity"
|
|
||||||
android:layout_toEndOf="@id/subreddit_icon_gif_image_view_search_activity"
|
|
||||||
android:text="@string/choose_a_subreddit"
|
|
||||||
android:textSize="?attr/font_default"
|
|
||||||
android:fontFamily="?attr/font_family" />
|
|
||||||
|
|
||||||
<Button
|
|
||||||
android:id="@+id/rules_button_post_text_activity"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_alignParentEnd="true"
|
|
||||||
android:layout_centerVertical="true"
|
|
||||||
android:text="@string/rules"
|
|
||||||
android:textSize="?attr/font_default"
|
|
||||||
android:fontFamily="?attr/font_family" />
|
|
||||||
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
<View
|
|
||||||
android:id="@+id/divider_1_post_text_activity"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="1dp" />
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
<com.libRG.CustomTextView
|
<RelativeLayout
|
||||||
android:id="@+id/flair_custom_text_view_post_text_activity"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="16dp"
|
android:paddingStart="16dp"
|
||||||
android:padding="4dp"
|
android:paddingTop="8dp"
|
||||||
android:text="@string/flair"
|
android:paddingEnd="16dp"
|
||||||
android:textColor="?attr/primaryTextColor"
|
android:paddingBottom="8dp">
|
||||||
android:textSize="?attr/font_default"
|
|
||||||
android:fontFamily="?attr/font_family"
|
|
||||||
android:visibility="gone"
|
|
||||||
app:lib_setRadius="3dp"
|
|
||||||
app:lib_setRoundedView="true"
|
|
||||||
app:lib_setShape="rectangle" />
|
|
||||||
|
|
||||||
<com.libRG.CustomTextView
|
<pl.droidsonroids.gif.GifImageView
|
||||||
android:id="@+id/spoiler_custom_text_view_post_text_activity"
|
android:id="@+id/subreddit_icon_gif_image_view_search_activity"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="24dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="24dp"
|
||||||
android:layout_margin="16dp"
|
android:layout_alignParentStart="true"
|
||||||
android:padding="4dp"
|
android:layout_centerVertical="true" />
|
||||||
android:text="@string/spoiler"
|
|
||||||
android:textColor="?attr/primaryTextColor"
|
|
||||||
android:textSize="?attr/font_default"
|
|
||||||
android:fontFamily="?attr/font_family"
|
|
||||||
app:lib_setRadius="3dp"
|
|
||||||
app:lib_setRoundedView="true"
|
|
||||||
app:lib_setShape="rectangle" />
|
|
||||||
|
|
||||||
<com.libRG.CustomTextView
|
<TextView
|
||||||
android:id="@+id/nsfw_custom_text_view_post_text_activity"
|
android:id="@+id/subreddit_name_text_view_search_activity"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:layout_marginStart="32dp"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:layout_toStartOf="@id/rules_button_post_text_activity"
|
||||||
|
android:layout_toEndOf="@id/subreddit_icon_gif_image_view_search_activity"
|
||||||
|
android:text="@string/choose_a_subreddit"
|
||||||
|
android:textSize="?attr/font_default"
|
||||||
|
android:fontFamily="?attr/font_family" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/rules_button_post_text_activity"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:text="@string/rules"
|
||||||
|
android:textSize="?attr/font_default"
|
||||||
|
android:fontFamily="?attr/font_family" />
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:id="@+id/divider_1_post_text_activity"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<com.libRG.CustomTextView
|
||||||
|
android:id="@+id/flair_custom_text_view_post_text_activity"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="16dp"
|
||||||
|
android:padding="4dp"
|
||||||
|
android:text="@string/flair"
|
||||||
|
android:textColor="?attr/primaryTextColor"
|
||||||
|
android:textSize="?attr/font_default"
|
||||||
|
android:fontFamily="?attr/font_family"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:lib_setRadius="3dp"
|
||||||
|
app:lib_setRoundedView="true"
|
||||||
|
app:lib_setShape="rectangle" />
|
||||||
|
|
||||||
|
<com.libRG.CustomTextView
|
||||||
|
android:id="@+id/spoiler_custom_text_view_post_text_activity"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="16dp"
|
||||||
|
android:padding="4dp"
|
||||||
|
android:text="@string/spoiler"
|
||||||
|
android:textColor="?attr/primaryTextColor"
|
||||||
|
android:textSize="?attr/font_default"
|
||||||
|
android:fontFamily="?attr/font_family"
|
||||||
|
app:lib_setRadius="3dp"
|
||||||
|
app:lib_setRoundedView="true"
|
||||||
|
app:lib_setShape="rectangle" />
|
||||||
|
|
||||||
|
<com.libRG.CustomTextView
|
||||||
|
android:id="@+id/nsfw_custom_text_view_post_text_activity"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="16dp"
|
||||||
|
android:padding="4dp"
|
||||||
|
android:text="@string/nsfw"
|
||||||
|
android:textColor="?attr/primaryTextColor"
|
||||||
|
android:textSize="?attr/font_default"
|
||||||
|
android:fontFamily="?attr/font_family"
|
||||||
|
app:lib_setRadius="3dp"
|
||||||
|
app:lib_setRoundedView="true"
|
||||||
|
app:lib_setShape="rectangle" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:id="@+id/divider_2_post_text_activity"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/post_title_edit_text_post_text_activity"
|
||||||
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="16dp"
|
android:background="#00000000"
|
||||||
android:padding="4dp"
|
android:gravity="top"
|
||||||
android:text="@string/nsfw"
|
android:hint="@string/post_title_hint"
|
||||||
|
android:inputType="textCapSentences|textMultiLine"
|
||||||
|
android:padding="16dp"
|
||||||
android:textColor="?attr/primaryTextColor"
|
android:textColor="?attr/primaryTextColor"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/title_font_18"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/title_font_family" />
|
||||||
app:lib_setRadius="3dp"
|
|
||||||
app:lib_setRoundedView="true"
|
<View
|
||||||
app:lib_setShape="rectangle" />
|
android:id="@+id/divider_3_post_text_activity"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/post_text_content_edit_text_post_text_activity"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="#00000000"
|
||||||
|
android:gravity="top"
|
||||||
|
android:hint="@string/post_text_content_hint"
|
||||||
|
android:inputType="textCapSentences|textMultiLine"
|
||||||
|
android:padding="16dp"
|
||||||
|
android:textColor="?attr/primaryTextColor"
|
||||||
|
android:textSize="?attr/content_font_18"
|
||||||
|
android:fontFamily="?attr/content_font_family" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<View
|
</androidx.core.widget.NestedScrollView>
|
||||||
android:id="@+id/divider_2_post_text_activity"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="1dp" />
|
|
||||||
|
|
||||||
<EditText
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/post_title_edit_text_post_text_activity"
|
android:id="@+id/markdown_bottom_bar_recycler_view_post_text_activity"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="#00000000"
|
android:scrollbars="horizontal"
|
||||||
android:gravity="top"
|
android:layout_gravity="bottom" />
|
||||||
android:hint="@string/post_title_hint"
|
|
||||||
android:inputType="textCapSentences|textMultiLine"
|
|
||||||
android:padding="16dp"
|
|
||||||
android:textColor="?attr/primaryTextColor"
|
|
||||||
android:textSize="?attr/title_font_18"
|
|
||||||
android:fontFamily="?attr/title_font_family" />
|
|
||||||
|
|
||||||
<View
|
</LinearLayout>
|
||||||
android:id="@+id/divider_3_post_text_activity"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="1dp" />
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:id="@+id/post_text_content_edit_text_post_text_activity"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:background="#00000000"
|
|
||||||
android:gravity="top"
|
|
||||||
android:hint="@string/post_text_content_hint"
|
|
||||||
android:inputType="textCapSentences|textMultiLine"
|
|
||||||
android:padding="16dp"
|
|
||||||
android:textColor="?attr/primaryTextColor"
|
|
||||||
android:textSize="?attr/content_font_18"
|
|
||||||
android:fontFamily="?attr/content_font_family" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</androidx.core.widget.NestedScrollView>
|
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
Loading…
Reference in New Issue
Block a user