Submit video posts with text content (without embedded images).

This commit is contained in:
Docile-Alligator
2024-03-14 22:41:21 -04:00
parent 70672fdc40
commit da6191f60f
7 changed files with 433 additions and 428 deletions

View File

@ -560,7 +560,9 @@ public class PostImageActivity extends BaseActivity implements FlairBottomSheetF
if (isPosting) {
promptAlertDialog(R.string.exit_when_submit, R.string.exit_when_submit_post_detail);
} else {
if (!binding.postTitleEditTextPostImageActivity.getText().toString().isEmpty() || imageUri != null) {
if (!binding.postTitleEditTextPostImageActivity.getText().toString().isEmpty()
|| !binding.postContentEditTextPostImageActivity.getText().toString().isEmpty()
|| imageUri != null) {
promptAlertDialog(R.string.discard, R.string.discard_detail);
} else {
finish();

View File

@ -488,7 +488,9 @@ public class PostLinkActivity extends BaseActivity implements FlairBottomSheetFr
promptAlertDialog(R.string.exit_when_submit, R.string.exit_when_submit_post_detail);
return true;
} else {
if (!binding.postTitleEditTextPostLinkActivity.getText().toString().isEmpty() || !binding.postLinkEditTextPostLinkActivity.getText().toString().isEmpty()) {
if (!binding.postTitleEditTextPostLinkActivity.getText().toString().isEmpty()
|| !binding.postContentEditTextPostLinkActivity.getText().toString().isEmpty()
|| !binding.postLinkEditTextPostLinkActivity.getText().toString().isEmpty()) {
promptAlertDialog(R.string.discard, R.string.discard_detail);
return true;
}
@ -550,7 +552,9 @@ public class PostLinkActivity extends BaseActivity implements FlairBottomSheetFr
if (isPosting) {
promptAlertDialog(R.string.exit_when_submit, R.string.exit_when_submit_post_detail);
} else {
if (!binding.postTitleEditTextPostLinkActivity.getText().toString().isEmpty() || !binding.postLinkEditTextPostLinkActivity.getText().toString().isEmpty()) {
if (!binding.postTitleEditTextPostLinkActivity.getText().toString().isEmpty()
|| !binding.postContentEditTextPostLinkActivity.getText().toString().isEmpty()
|| !binding.postLinkEditTextPostLinkActivity.getText().toString().isEmpty()) {
promptAlertDialog(R.string.discard, R.string.discard_detail);
} else {
finish();

View File

@ -486,7 +486,7 @@ public class PostPollActivity extends BaseActivity implements FlairBottomSheetFr
}
private void displaySubredditIcon() {
if (iconUrl != null && !iconUrl.equals("")) {
if (iconUrl != null && !iconUrl.isEmpty()) {
mGlide.load(iconUrl)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
.error(mGlide.load(R.drawable.subreddit_default_icon)
@ -538,13 +538,14 @@ public class PostPollActivity extends BaseActivity implements FlairBottomSheetFr
promptAlertDialog(R.string.exit_when_submit, R.string.exit_when_submit_post_detail);
return true;
} else {
if (!binding.postTitleEditTextPostPollActivity.getText().toString().equals("")
|| !binding.option1TextInputLayoutEditTextPostPollActivity.getText().toString().equals("")
|| !binding.option2TextInputLayoutEditTextPostPollActivity.getText().toString().equals("")
|| !binding.option3TextInputLayoutEditTextPostPollActivity.getText().toString().equals("")
|| !binding.option4TextInputLayoutEditTextPostPollActivity.getText().toString().equals("")
|| !binding.option5TextInputLayoutEditTextPostPollActivity.getText().toString().equals("")
|| !binding.option6TextInputLayoutEditTextPostPollActivity.getText().toString().equals("")) {
if (!binding.postTitleEditTextPostPollActivity.getText().toString().isEmpty()
|| !binding.postContentEditTextPostPollActivity.getText().toString().isEmpty()
|| !binding.option1TextInputLayoutEditTextPostPollActivity.getText().toString().isEmpty()
|| !binding.option2TextInputLayoutEditTextPostPollActivity.getText().toString().isEmpty()
|| !binding.option3TextInputLayoutEditTextPostPollActivity.getText().toString().isEmpty()
|| !binding.option4TextInputLayoutEditTextPostPollActivity.getText().toString().isEmpty()
|| !binding.option5TextInputLayoutEditTextPostPollActivity.getText().toString().isEmpty()
|| !binding.option6TextInputLayoutEditTextPostPollActivity.getText().toString().isEmpty()) {
promptAlertDialog(R.string.discard, R.string.discard_detail);
return true;
}
@ -570,22 +571,22 @@ public class PostPollActivity extends BaseActivity implements FlairBottomSheetFr
}
ArrayList<String> optionList = new ArrayList<>();
if (!binding.option1TextInputLayoutEditTextPostPollActivity.getText().toString().equals("")) {
if (!binding.option1TextInputLayoutEditTextPostPollActivity.getText().toString().isEmpty()) {
optionList.add(binding.option1TextInputLayoutEditTextPostPollActivity.getText().toString());
}
if (!binding.option2TextInputLayoutEditTextPostPollActivity.getText().toString().equals("")) {
if (!binding.option2TextInputLayoutEditTextPostPollActivity.getText().toString().isEmpty()) {
optionList.add(binding.option2TextInputLayoutEditTextPostPollActivity.getText().toString());
}
if (!binding.option3TextInputLayoutEditTextPostPollActivity.getText().toString().equals("")) {
if (!binding.option3TextInputLayoutEditTextPostPollActivity.getText().toString().isEmpty()) {
optionList.add(binding.option3TextInputLayoutEditTextPostPollActivity.getText().toString());
}
if (!binding.option4TextInputLayoutEditTextPostPollActivity.getText().toString().equals("")) {
if (!binding.option4TextInputLayoutEditTextPostPollActivity.getText().toString().isEmpty()) {
optionList.add(binding.option4TextInputLayoutEditTextPostPollActivity.getText().toString());
}
if (!binding.option5TextInputLayoutEditTextPostPollActivity.getText().toString().equals("")) {
if (!binding.option5TextInputLayoutEditTextPostPollActivity.getText().toString().isEmpty()) {
optionList.add(binding.option5TextInputLayoutEditTextPostPollActivity.getText().toString());
}
if (!binding.option6TextInputLayoutEditTextPostPollActivity.getText().toString().equals("")) {
if (!binding.option6TextInputLayoutEditTextPostPollActivity.getText().toString().isEmpty()) {
optionList.add(binding.option6TextInputLayoutEditTextPostPollActivity.getText().toString());
}
@ -647,13 +648,14 @@ public class PostPollActivity extends BaseActivity implements FlairBottomSheetFr
if (isPosting) {
promptAlertDialog(R.string.exit_when_submit, R.string.exit_when_submit_post_detail);
} else {
if (!binding.postTitleEditTextPostPollActivity.getText().toString().equals("")
|| !binding.option1TextInputLayoutEditTextPostPollActivity.getText().toString().equals("")
|| !binding.option2TextInputLayoutEditTextPostPollActivity.getText().toString().equals("")
|| !binding.option3TextInputLayoutEditTextPostPollActivity.getText().toString().equals("")
|| !binding.option4TextInputLayoutEditTextPostPollActivity.getText().toString().equals("")
|| !binding.option5TextInputLayoutEditTextPostPollActivity.getText().toString().equals("")
|| !binding.option6TextInputLayoutEditTextPostPollActivity.getText().toString().equals("")) {
if (!binding.postTitleEditTextPostPollActivity.getText().toString().isEmpty()
|| !binding.postContentEditTextPostPollActivity.getText().toString().isEmpty()
|| !binding.option1TextInputLayoutEditTextPostPollActivity.getText().toString().isEmpty()
|| !binding.option2TextInputLayoutEditTextPostPollActivity.getText().toString().isEmpty()
|| !binding.option3TextInputLayoutEditTextPostPollActivity.getText().toString().isEmpty()
|| !binding.option4TextInputLayoutEditTextPostPollActivity.getText().toString().isEmpty()
|| !binding.option5TextInputLayoutEditTextPostPollActivity.getText().toString().isEmpty()
|| !binding.option6TextInputLayoutEditTextPostPollActivity.getText().toString().isEmpty()) {
promptAlertDialog(R.string.discard, R.string.discard_detail);
} else {
finish();
@ -791,7 +793,7 @@ public class PostPollActivity extends BaseActivity implements FlairBottomSheetFr
} else {
mMemu.findItem(R.id.action_send_post_poll_activity).setEnabled(true);
mMemu.findItem(R.id.action_send_post_poll_activity).getIcon().setAlpha(255);
if (submitPollPostEvent.errorMessage == null || submitPollPostEvent.errorMessage.equals("")) {
if (submitPollPostEvent.errorMessage == null || submitPollPostEvent.errorMessage.isEmpty()) {
Snackbar.make(binding.coordinatorLayoutPostPollActivity, R.string.post_failed, Snackbar.LENGTH_SHORT).show();
} else {
Snackbar.make(binding.coordinatorLayoutPostPollActivity, submitPollPostEvent.errorMessage.substring(0, 1).toUpperCase()

View File

@ -12,17 +12,12 @@ import android.provider.MediaStore;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.bumptech.glide.Glide;
import com.bumptech.glide.RequestManager;
@ -31,18 +26,11 @@ import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.source.ProgressiveMediaSource;
import com.google.android.exoplayer2.ui.PlayerView;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
import com.google.android.exoplayer2.util.Util;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.divider.MaterialDivider;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.materialswitch.MaterialSwitch;
import com.google.android.material.snackbar.Snackbar;
import com.libRG.CustomTextView;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@ -52,23 +40,23 @@ import java.util.concurrent.Executor;
import javax.inject.Inject;
import javax.inject.Named;
import butterknife.BindView;
import butterknife.ButterKnife;
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
import ml.docilealligator.infinityforreddit.Flair;
import ml.docilealligator.infinityforreddit.Infinity;
import ml.docilealligator.infinityforreddit.R;
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
import ml.docilealligator.infinityforreddit.account.Account;
import ml.docilealligator.infinityforreddit.adapters.MarkdownBottomBarRecyclerViewAdapter;
import ml.docilealligator.infinityforreddit.asynctasks.LoadSubredditIcon;
import ml.docilealligator.infinityforreddit.bottomsheetfragments.AccountChooserBottomSheetFragment;
import ml.docilealligator.infinityforreddit.bottomsheetfragments.FlairBottomSheetFragment;
import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper;
import ml.docilealligator.infinityforreddit.customviews.LinearLayoutManagerBugFixed;
import ml.docilealligator.infinityforreddit.databinding.ActivityPostVideoBinding;
import ml.docilealligator.infinityforreddit.events.SubmitVideoOrGifPostEvent;
import ml.docilealligator.infinityforreddit.events.SwitchAccountEvent;
import ml.docilealligator.infinityforreddit.services.SubmitPostService;
import ml.docilealligator.infinityforreddit.utils.SharedPreferencesUtils;
import pl.droidsonroids.gif.GifImageView;
import retrofit2.Retrofit;
public class PostVideoActivity extends BaseActivity implements FlairBottomSheetFragment.FlairSelectionCallback,
@ -92,52 +80,6 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
private static final int PICK_VIDEO_REQUEST_CODE = 1;
private static final int CAPTURE_VIDEO_REQUEST_CODE = 2;
@BindView(R.id.coordinator_layout_post_video_activity)
CoordinatorLayout coordinatorLayout;
@BindView(R.id.appbar_layout_post_video_activity)
AppBarLayout appBarLayout;
@BindView(R.id.toolbar_post_video_activity)
Toolbar toolbar;
@BindView(R.id.account_linear_layout_post_video_activity)
LinearLayout accountLinearLayout;
@BindView(R.id.account_icon_gif_image_view_post_video_activity)
GifImageView accountIconImageView;
@BindView(R.id.account_name_text_view_post_video_activity)
TextView accountNameTextView;
@BindView(R.id.subreddit_icon_gif_image_view_post_video_activity)
GifImageView iconGifImageView;
@BindView(R.id.subreddit_name_text_view_post_video_activity)
TextView subredditNameTextView;
@BindView(R.id.rules_button_post_video_activity)
MaterialButton rulesButton;
@BindView(R.id.divider_1_post_video_activity)
MaterialDivider divider1;
@BindView(R.id.flair_custom_text_view_post_video_activity)
CustomTextView flairTextView;
@BindView(R.id.spoiler_custom_text_view_post_video_activity)
CustomTextView spoilerTextView;
@BindView(R.id.nsfw_custom_text_view_post_video_activity)
CustomTextView nsfwTextView;
@BindView(R.id.receive_post_reply_notifications_linear_layout_post_video_activity)
LinearLayout receivePostReplyNotificationsLinearLayout;
@BindView(R.id.receive_post_reply_notifications_text_view_post_video_activity)
TextView receivePostReplyNotificationsTextView;
@BindView(R.id.receive_post_reply_notifications_switch_material_post_video_activity)
MaterialSwitch receivePostReplyNotificationsSwitchMaterial;
@BindView(R.id.divider_2_post_video_activity)
MaterialDivider divider2;
@BindView(R.id.post_title_edit_text_post_video_activity)
EditText titleEditText;
@BindView(R.id.select_video_constraint_layout_post_video_activity)
ConstraintLayout constraintLayout;
@BindView(R.id.capture_fab_post_video_activity)
FloatingActionButton captureFab;
@BindView(R.id.select_from_library_fab_post_video_activity)
FloatingActionButton selectFromLibraryFab;
@BindView(R.id.select_again_text_view_post_video_activity)
TextView selectAgainTextView;
@BindView(R.id.player_view_post_video_activity)
PlayerView videoPlayerView;
@Inject
@Named("no_oauth")
Retrofit mRetrofit;
@ -188,6 +130,7 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
private Snackbar mPostingSnackbar;
private DataSource.Factory dataSourceFactory;
private ExoPlayer player;
private ActivityPostVideoBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -197,25 +140,24 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_post_video);
ButterKnife.bind(this);
binding = ActivityPostVideoBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
EventBus.getDefault().register(this);
applyCustomTheme();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && isChangeStatusBarIconColor()) {
addOnOffsetChangedListener(appBarLayout);
addOnOffsetChangedListener(binding.appbarLayoutPostVideoActivity);
}
setSupportActionBar(toolbar);
setSupportActionBar(binding.toolbarPostVideoActivity);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mGlide = Glide.with(this);
player = new ExoPlayer.Builder(this).build();
videoPlayerView.setPlayer(player);
binding.playerViewPostVideoActivity.setPlayer(player);
dataSourceFactory = new DefaultDataSourceFactory(this,
Util.getUserAgent(this, "Infinity"));
if (mSharedPreferences.getBoolean(SharedPreferencesUtils.LOOP_VIDEO, true)) {
@ -224,7 +166,7 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
player.setRepeatMode(Player.REPEAT_MODE_OFF);
}
mPostingSnackbar = Snackbar.make(coordinatorLayout, R.string.posting, Snackbar.LENGTH_INDEFINITE);
mPostingSnackbar = Snackbar.make(binding.coordinatorLayoutPostVideoActivity, R.string.posting, Snackbar.LENGTH_INDEFINITE);
resources = getResources();
@ -245,9 +187,9 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
.error(mGlide.load(R.drawable.subreddit_default_icon)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0))))
.into(accountIconImageView);
.into(binding.accountIconGifImageViewPostVideoActivity);
accountNameTextView.setText(selectedAccount.getAccountName());
binding.accountNameTextViewPostVideoActivity.setText(selectedAccount.getAccountName());
} else {
loadCurrentAccount();
}
@ -258,9 +200,9 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
}
if (subredditName != null) {
subredditNameTextView.setTextColor(primaryTextColor);
subredditNameTextView.setText(subredditName);
flairTextView.setVisibility(View.VISIBLE);
binding.subredditNameTextViewPostVideoActivity.setTextColor(primaryTextColor);
binding.subredditNameTextViewPostVideoActivity.setText(subredditName);
binding.flairCustomTextViewPostVideoActivity.setVisibility(View.VISIBLE);
if (!loadSubredditIconSuccessful) {
loadSubredditIcon();
}
@ -272,20 +214,20 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
}
if (flair != null) {
flairTextView.setText(flair.getText());
flairTextView.setBackgroundColor(flairBackgroundColor);
flairTextView.setBorderColor(flairBackgroundColor);
flairTextView.setTextColor(flairTextColor);
binding.flairCustomTextViewPostVideoActivity.setText(flair.getText());
binding.flairCustomTextViewPostVideoActivity.setBackgroundColor(flairBackgroundColor);
binding.flairCustomTextViewPostVideoActivity.setBorderColor(flairBackgroundColor);
binding.flairCustomTextViewPostVideoActivity.setTextColor(flairTextColor);
}
if (isSpoiler) {
spoilerTextView.setBackgroundColor(spoilerBackgroundColor);
spoilerTextView.setBorderColor(spoilerBackgroundColor);
spoilerTextView.setTextColor(spoilerTextColor);
binding.spoilerCustomTextViewPostVideoActivity.setBackgroundColor(spoilerBackgroundColor);
binding.spoilerCustomTextViewPostVideoActivity.setBorderColor(spoilerBackgroundColor);
binding.spoilerCustomTextViewPostVideoActivity.setTextColor(spoilerTextColor);
}
if (isNSFW) {
nsfwTextView.setBackgroundColor(nsfwBackgroundColor);
nsfwTextView.setBorderColor(nsfwBackgroundColor);
nsfwTextView.setTextColor(nsfwTextColor);
binding.nsfwCustomTextViewPostVideoActivity.setBackgroundColor(nsfwBackgroundColor);
binding.nsfwCustomTextViewPostVideoActivity.setBorderColor(nsfwBackgroundColor);
binding.nsfwCustomTextViewPostVideoActivity.setTextColor(nsfwTextColor);
}
} else {
isPosting = false;
@ -296,14 +238,14 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
loadSubredditIconSuccessful = false;
subredditName = getIntent().getStringExtra(EXTRA_SUBREDDIT_NAME);
subredditSelected = true;
subredditNameTextView.setTextColor(primaryTextColor);
subredditNameTextView.setText(subredditName);
flairTextView.setVisibility(View.VISIBLE);
binding.subredditNameTextViewPostVideoActivity.setTextColor(primaryTextColor);
binding.subredditNameTextViewPostVideoActivity.setText(subredditName);
binding.flairCustomTextViewPostVideoActivity.setVisibility(View.VISIBLE);
loadSubredditIcon();
} else {
mGlide.load(R.drawable.subreddit_default_icon)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
.into(iconGifImageView);
.into(binding.subredditIconGifImageViewPostVideoActivity);
}
videoUri = getIntent().getData();
@ -312,24 +254,24 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
}
}
accountLinearLayout.setOnClickListener(view -> {
binding.accountLinearLayoutPostVideoActivity.setOnClickListener(view -> {
AccountChooserBottomSheetFragment fragment = new AccountChooserBottomSheetFragment();
fragment.show(getSupportFragmentManager(), fragment.getTag());
});
iconGifImageView.setOnClickListener(view -> {
subredditNameTextView.performClick();
binding.subredditIconGifImageViewPostVideoActivity.setOnClickListener(view -> {
binding.subredditNameTextViewPostVideoActivity.performClick();
});
subredditNameTextView.setOnClickListener(view -> {
binding.subredditNameTextViewPostVideoActivity.setOnClickListener(view -> {
Intent intent = new Intent(this, SubredditSelectionActivity.class);
intent.putExtra(SubredditSelectionActivity.EXTRA_SPECIFIED_ACCOUNT, selectedAccount);
startActivityForResult(intent, SUBREDDIT_SELECTION_REQUEST_CODE);
});
rulesButton.setOnClickListener(view -> {
binding.rulesButtonPostVideoActivity.setOnClickListener(view -> {
if (subredditName == null) {
Snackbar.make(coordinatorLayout, R.string.select_a_subreddit, Snackbar.LENGTH_SHORT).show();
Snackbar.make(binding.coordinatorLayoutPostVideoActivity, R.string.select_a_subreddit, Snackbar.LENGTH_SHORT).show();
} else {
Intent intent = new Intent(this, RulesActivity.class);
if (subredditIsUser) {
@ -341,7 +283,7 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
}
});
flairTextView.setOnClickListener(view -> {
binding.flairCustomTextViewPostVideoActivity.setOnClickListener(view -> {
if (flair == null) {
mFlairSelectionBottomSheetFragment = new FlairBottomSheetFragment();
Bundle bundle = new Bundle();
@ -349,44 +291,44 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
mFlairSelectionBottomSheetFragment.setArguments(bundle);
mFlairSelectionBottomSheetFragment.show(getSupportFragmentManager(), mFlairSelectionBottomSheetFragment.getTag());
} else {
flairTextView.setBackgroundColor(resources.getColor(android.R.color.transparent));
flairTextView.setTextColor(primaryTextColor);
flairTextView.setText(getString(R.string.flair));
binding.flairCustomTextViewPostVideoActivity.setBackgroundColor(resources.getColor(android.R.color.transparent));
binding.flairCustomTextViewPostVideoActivity.setTextColor(primaryTextColor);
binding.flairCustomTextViewPostVideoActivity.setText(getString(R.string.flair));
flair = null;
}
});
spoilerTextView.setOnClickListener(view -> {
binding.spoilerCustomTextViewPostVideoActivity.setOnClickListener(view -> {
if (!isSpoiler) {
spoilerTextView.setBackgroundColor(spoilerBackgroundColor);
spoilerTextView.setBorderColor(spoilerBackgroundColor);
spoilerTextView.setTextColor(spoilerTextColor);
binding.spoilerCustomTextViewPostVideoActivity.setBackgroundColor(spoilerBackgroundColor);
binding.spoilerCustomTextViewPostVideoActivity.setBorderColor(spoilerBackgroundColor);
binding.spoilerCustomTextViewPostVideoActivity.setTextColor(spoilerTextColor);
isSpoiler = true;
} else {
spoilerTextView.setBackgroundColor(resources.getColor(android.R.color.transparent));
spoilerTextView.setTextColor(primaryTextColor);
binding.spoilerCustomTextViewPostVideoActivity.setBackgroundColor(resources.getColor(android.R.color.transparent));
binding.spoilerCustomTextViewPostVideoActivity.setTextColor(primaryTextColor);
isSpoiler = false;
}
});
nsfwTextView.setOnClickListener(view -> {
binding.nsfwCustomTextViewPostVideoActivity.setOnClickListener(view -> {
if (!isNSFW) {
nsfwTextView.setBackgroundColor(nsfwBackgroundColor);
nsfwTextView.setBorderColor(nsfwBackgroundColor);
nsfwTextView.setTextColor(nsfwTextColor);
binding.nsfwCustomTextViewPostVideoActivity.setBackgroundColor(nsfwBackgroundColor);
binding.nsfwCustomTextViewPostVideoActivity.setBorderColor(nsfwBackgroundColor);
binding.nsfwCustomTextViewPostVideoActivity.setTextColor(nsfwTextColor);
isNSFW = true;
} else {
nsfwTextView.setBackgroundColor(resources.getColor(android.R.color.transparent));
nsfwTextView.setTextColor(primaryTextColor);
binding.nsfwCustomTextViewPostVideoActivity.setBackgroundColor(resources.getColor(android.R.color.transparent));
binding.nsfwCustomTextViewPostVideoActivity.setTextColor(primaryTextColor);
isNSFW = false;
}
});
receivePostReplyNotificationsLinearLayout.setOnClickListener(view -> {
receivePostReplyNotificationsSwitchMaterial.performClick();
binding.receivePostReplyNotificationsLinearLayoutPostVideoActivity.setOnClickListener(view -> {
binding.receivePostReplyNotificationsSwitchMaterialPostVideoActivity.performClick();
});
captureFab.setOnClickListener(view -> {
binding.captureFabPostVideoActivity.setOnClickListener(view -> {
Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
try {
startActivityForResult(takeVideoIntent, CAPTURE_VIDEO_REQUEST_CODE);
@ -395,21 +337,39 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
}
});
selectFromLibraryFab.setOnClickListener(view -> {
binding.selectFromLibraryFabPostVideoActivity.setOnClickListener(view -> {
Intent intent = new Intent();
intent.setType("video/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, resources.getString(R.string.select_from_gallery)), PICK_VIDEO_REQUEST_CODE);
});
selectAgainTextView.setOnClickListener(view -> {
binding.selectAgainTextViewPostVideoActivity.setOnClickListener(view -> {
wasPlaying = false;
player.setPlayWhenReady(false);
videoUri = null;
videoPlayerView.setVisibility(View.GONE);
selectAgainTextView.setVisibility(View.GONE);
constraintLayout.setVisibility(View.VISIBLE);
binding.playerViewPostVideoActivity.setVisibility(View.GONE);
binding.selectAgainTextViewPostVideoActivity.setVisibility(View.GONE);
binding.selectVideoConstraintLayoutPostVideoActivity.setVisibility(View.VISIBLE);
});
MarkdownBottomBarRecyclerViewAdapter adapter = new MarkdownBottomBarRecyclerViewAdapter(
mCustomThemeWrapper, new MarkdownBottomBarRecyclerViewAdapter.ItemClickListener() {
@Override
public void onClick(int item) {
MarkdownBottomBarRecyclerViewAdapter.bindEditTextWithItemClickListener(
PostVideoActivity.this, binding.postContentEditTextPostVideoActivity, item);
}
@Override
public void onUploadImage() {
}
});
binding.markdownBottomBarRecyclerViewPostVideoActivity.setLayoutManager(new LinearLayoutManagerBugFixed(this,
LinearLayoutManager.HORIZONTAL, false));
binding.markdownBottomBarRecyclerViewPostVideoActivity.setAdapter(adapter);
}
private void loadCurrentAccount() {
@ -423,9 +383,9 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
.error(mGlide.load(R.drawable.subreddit_default_icon)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0))))
.into(accountIconImageView);
.into(binding.accountIconGifImageViewPostVideoActivity);
accountNameTextView.setText(account.getAccountName());
binding.accountNameTextViewPostVideoActivity.setText(account.getAccountName());
}
});
});
@ -448,64 +408,66 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
@Override
protected void applyCustomTheme() {
coordinatorLayout.setBackgroundColor(mCustomThemeWrapper.getBackgroundColor());
applyAppBarLayoutAndCollapsingToolbarLayoutAndToolbarTheme(appBarLayout, null, toolbar);
binding.coordinatorLayoutPostVideoActivity.setBackgroundColor(mCustomThemeWrapper.getBackgroundColor());
applyAppBarLayoutAndCollapsingToolbarLayoutAndToolbarTheme(binding.appbarLayoutPostVideoActivity, null, binding.toolbarPostVideoActivity);
primaryTextColor = mCustomThemeWrapper.getPrimaryTextColor();
accountNameTextView.setTextColor(primaryTextColor);
binding.accountNameTextViewPostVideoActivity.setTextColor(primaryTextColor);
int secondaryTextColor = mCustomThemeWrapper.getSecondaryTextColor();
subredditNameTextView.setTextColor(secondaryTextColor);
rulesButton.setTextColor(mCustomThemeWrapper.getButtonTextColor());
rulesButton.setBackgroundColor(mCustomThemeWrapper.getColorPrimaryLightTheme());
receivePostReplyNotificationsTextView.setTextColor(primaryTextColor);
binding.subredditNameTextViewPostVideoActivity.setTextColor(secondaryTextColor);
binding.rulesButtonPostVideoActivity.setTextColor(mCustomThemeWrapper.getButtonTextColor());
binding.rulesButtonPostVideoActivity.setBackgroundColor(mCustomThemeWrapper.getColorPrimaryLightTheme());
binding.receivePostReplyNotificationsTextViewPostVideoActivity.setTextColor(primaryTextColor);
int dividerColor = mCustomThemeWrapper.getDividerColor();
divider1.setDividerColor(dividerColor);
divider2.setDividerColor(dividerColor);
binding.divider1PostVideoActivity.setDividerColor(dividerColor);
binding.divider2PostVideoActivity.setDividerColor(dividerColor);
flairBackgroundColor = mCustomThemeWrapper.getFlairBackgroundColor();
flairTextColor = mCustomThemeWrapper.getFlairTextColor();
spoilerBackgroundColor = mCustomThemeWrapper.getSpoilerBackgroundColor();
spoilerTextColor = mCustomThemeWrapper.getSpoilerTextColor();
nsfwBackgroundColor = mCustomThemeWrapper.getNsfwBackgroundColor();
nsfwTextColor = mCustomThemeWrapper.getNsfwTextColor();
flairTextView.setTextColor(primaryTextColor);
spoilerTextView.setTextColor(primaryTextColor);
nsfwTextView.setTextColor(primaryTextColor);
titleEditText.setTextColor(primaryTextColor);
titleEditText.setHintTextColor(secondaryTextColor);
applyFABTheme(captureFab);
applyFABTheme(selectFromLibraryFab);
selectAgainTextView.setTextColor(mCustomThemeWrapper.getColorAccent());
binding.flairCustomTextViewPostVideoActivity.setTextColor(primaryTextColor);
binding.spoilerCustomTextViewPostVideoActivity.setTextColor(primaryTextColor);
binding.nsfwCustomTextViewPostVideoActivity.setTextColor(primaryTextColor);
binding.postTitleEditTextPostVideoActivity.setTextColor(primaryTextColor);
binding.postTitleEditTextPostVideoActivity.setHintTextColor(secondaryTextColor);
binding.postContentEditTextPostVideoActivity.setTextColor(primaryTextColor);
binding.postContentEditTextPostVideoActivity.setHintTextColor(secondaryTextColor);
applyFABTheme(binding.captureFabPostVideoActivity);
applyFABTheme(binding.selectFromLibraryFabPostVideoActivity);
binding.selectAgainTextViewPostVideoActivity.setTextColor(mCustomThemeWrapper.getColorAccent());
if (typeface != null) {
subredditNameTextView.setTypeface(typeface);
rulesButton.setTypeface(typeface);
receivePostReplyNotificationsTextView.setTypeface(typeface);
flairTextView.setTypeface(typeface);
spoilerTextView.setTypeface(typeface);
nsfwTextView.setTypeface(typeface);
titleEditText.setTypeface(typeface);
selectAgainTextView.setTypeface(typeface);
binding.subredditNameTextViewPostVideoActivity.setTypeface(typeface);
binding.rulesButtonPostVideoActivity.setTypeface(typeface);
binding.receivePostReplyNotificationsTextViewPostVideoActivity.setTypeface(typeface);
binding.flairCustomTextViewPostVideoActivity.setTypeface(typeface);
binding.spoilerCustomTextViewPostVideoActivity.setTypeface(typeface);
binding.nsfwCustomTextViewPostVideoActivity.setTypeface(typeface);
binding.postTitleEditTextPostVideoActivity.setTypeface(typeface);
binding.selectAgainTextViewPostVideoActivity.setTypeface(typeface);
}
}
private void loadVideo() {
constraintLayout.setVisibility(View.GONE);
selectAgainTextView.setVisibility(View.VISIBLE);
videoPlayerView.setVisibility(View.VISIBLE);
binding.selectVideoConstraintLayoutPostVideoActivity.setVisibility(View.GONE);
binding.selectAgainTextViewPostVideoActivity.setVisibility(View.VISIBLE);
binding.playerViewPostVideoActivity.setVisibility(View.VISIBLE);
player.prepare(new ProgressiveMediaSource.Factory(dataSourceFactory).createMediaSource(MediaItem.fromUri(videoUri)));
player.setPlayWhenReady(true);
wasPlaying = true;
}
private void displaySubredditIcon() {
if (iconUrl != null && !iconUrl.equals("")) {
if (iconUrl != null && !iconUrl.isEmpty()) {
mGlide.load(iconUrl)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
.error(mGlide.load(R.drawable.subreddit_default_icon)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0))))
.into(iconGifImageView);
.into(binding.subredditIconGifImageViewPostVideoActivity);
} else {
mGlide.load(R.drawable.subreddit_default_icon)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
.into(iconGifImageView);
.into(binding.subredditIconGifImageViewPostVideoActivity);
}
}
@ -547,7 +509,9 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
promptAlertDialog(R.string.exit_when_submit, R.string.exit_when_submit_post_detail);
return true;
} else {
if (!titleEditText.getText().toString().equals("") || videoUri != null) {
if (!binding.postTitleEditTextPostVideoActivity.getText().toString().isEmpty()
|| !binding.postContentEditTextPostVideoActivity.getText().toString().isEmpty()
|| videoUri != null) {
promptAlertDialog(R.string.discard, R.string.discard_detail);
return true;
}
@ -556,17 +520,17 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
return true;
} else if (itemId == R.id.action_send_post_video_activity) {
if (!subredditSelected) {
Snackbar.make(coordinatorLayout, R.string.select_a_subreddit, Snackbar.LENGTH_SHORT).show();
Snackbar.make(binding.coordinatorLayoutPostVideoActivity, R.string.select_a_subreddit, Snackbar.LENGTH_SHORT).show();
return true;
}
if (titleEditText.getText() == null || titleEditText.getText().toString().equals("")) {
Snackbar.make(coordinatorLayout, R.string.title_required, Snackbar.LENGTH_SHORT).show();
if (binding.postTitleEditTextPostVideoActivity.getText() == null || binding.postTitleEditTextPostVideoActivity.getText().toString().isEmpty()) {
Snackbar.make(binding.coordinatorLayoutPostVideoActivity, R.string.title_required, Snackbar.LENGTH_SHORT).show();
return true;
}
if (videoUri == null) {
Snackbar.make(coordinatorLayout, R.string.select_an_image, Snackbar.LENGTH_SHORT).show();
Snackbar.make(binding.coordinatorLayoutPostVideoActivity, R.string.select_an_image, Snackbar.LENGTH_SHORT).show();
return true;
}
@ -579,20 +543,21 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
String subredditName;
if (subredditIsUser) {
subredditName = "u_" + subredditNameTextView.getText().toString();
subredditName = "u_" + binding.subredditNameTextViewPostVideoActivity.getText().toString();
} else {
subredditName = subredditNameTextView.getText().toString();
subredditName = binding.subredditNameTextViewPostVideoActivity.getText().toString();
}
Intent intent = new Intent(this, SubmitPostService.class);
intent.setData(videoUri);
intent.putExtra(SubmitPostService.EXTRA_ACCOUNT, selectedAccount);
intent.putExtra(SubmitPostService.EXTRA_SUBREDDIT_NAME, subredditName);
intent.putExtra(SubmitPostService.EXTRA_TITLE, titleEditText.getText().toString());
intent.putExtra(SubmitPostService.EXTRA_TITLE, binding.postTitleEditTextPostVideoActivity.getText().toString());
intent.putExtra(SubmitPostService.EXTRA_CONTENT, binding.postContentEditTextPostVideoActivity.getText().toString());
intent.putExtra(SubmitPostService.EXTRA_FLAIR, flair);
intent.putExtra(SubmitPostService.EXTRA_IS_SPOILER, isSpoiler);
intent.putExtra(SubmitPostService.EXTRA_IS_NSFW, isNSFW);
intent.putExtra(SubmitPostService.EXTRA_RECEIVE_POST_REPLY_NOTIFICATIONS, receivePostReplyNotificationsSwitchMaterial.isChecked());
intent.putExtra(SubmitPostService.EXTRA_RECEIVE_POST_REPLY_NOTIFICATIONS, binding.receivePostReplyNotificationsSwitchMaterialPostVideoActivity.isChecked());
intent.putExtra(SubmitPostService.EXTRA_POST_TYPE, SubmitPostService.EXTRA_POST_TYPE_VIDEO);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
@ -609,7 +574,9 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
if (isPosting) {
promptAlertDialog(R.string.exit_when_submit, R.string.exit_when_submit_post_detail);
} else {
if (!titleEditText.getText().toString().equals("") || videoUri != null) {
if (!binding.postTitleEditTextPostVideoActivity.getText().toString().isEmpty()
|| !binding.postContentEditTextPostVideoActivity.getText().toString().isEmpty()
|| videoUri != null) {
promptAlertDialog(R.string.discard, R.string.discard_detail);
} else {
finish();
@ -660,21 +627,21 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
subredditSelected = true;
subredditIsUser = data.getBooleanExtra(SubredditSelectionActivity.EXTRA_RETURN_SUBREDDIT_IS_USER, false);
subredditNameTextView.setTextColor(primaryTextColor);
subredditNameTextView.setText(subredditName);
binding.subredditNameTextViewPostVideoActivity.setTextColor(primaryTextColor);
binding.subredditNameTextViewPostVideoActivity.setText(subredditName);
displaySubredditIcon();
flairTextView.setVisibility(View.VISIBLE);
flairTextView.setBackgroundColor(resources.getColor(android.R.color.transparent));
flairTextView.setTextColor(primaryTextColor);
flairTextView.setText(getString(R.string.flair));
binding.flairCustomTextViewPostVideoActivity.setVisibility(View.VISIBLE);
binding.flairCustomTextViewPostVideoActivity.setBackgroundColor(resources.getColor(android.R.color.transparent));
binding.flairCustomTextViewPostVideoActivity.setTextColor(primaryTextColor);
binding.flairCustomTextViewPostVideoActivity.setText(getString(R.string.flair));
flair = null;
}
}
} else if (requestCode == PICK_VIDEO_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
if (data == null) {
Snackbar.make(coordinatorLayout, R.string.error_getting_video, Snackbar.LENGTH_SHORT).show();
Snackbar.make(binding.coordinatorLayoutPostVideoActivity, R.string.error_getting_video, Snackbar.LENGTH_SHORT).show();
return;
}
@ -687,7 +654,7 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
videoUri = data.getData();
loadVideo();
} else {
Snackbar.make(coordinatorLayout, R.string.error_getting_video, Snackbar.LENGTH_SHORT).show();
Snackbar.make(binding.coordinatorLayoutPostVideoActivity, R.string.error_getting_video, Snackbar.LENGTH_SHORT).show();
}
}
}
@ -705,10 +672,10 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
@Override
public void flairSelected(Flair flair) {
this.flair = flair;
flairTextView.setText(flair.getText());
flairTextView.setBackgroundColor(flairBackgroundColor);
flairTextView.setBorderColor(flairBackgroundColor);
flairTextView.setTextColor(flairTextColor);
binding.flairCustomTextViewPostVideoActivity.setText(flair.getText());
binding.flairCustomTextViewPostVideoActivity.setBackgroundColor(flairBackgroundColor);
binding.flairCustomTextViewPostVideoActivity.setBorderColor(flairBackgroundColor);
binding.flairCustomTextViewPostVideoActivity.setTextColor(flairTextColor);
}
@Override
@ -720,9 +687,9 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
.error(mGlide.load(R.drawable.subreddit_default_icon)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0))))
.into(accountIconImageView);
.into(binding.accountIconGifImageViewPostVideoActivity);
accountNameTextView.setText(selectedAccount.getAccountName());
binding.accountNameTextViewPostVideoActivity.setText(selectedAccount.getAccountName());
}
}
@ -745,12 +712,12 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
startActivity(intent);
finish();
} else if (submitVideoOrGifPostEvent.errorProcessingVideoOrGif) {
Snackbar.make(coordinatorLayout, R.string.error_processing_video, Snackbar.LENGTH_SHORT).show();
Snackbar.make(binding.coordinatorLayoutPostVideoActivity, R.string.error_processing_video, Snackbar.LENGTH_SHORT).show();
} else {
if (submitVideoOrGifPostEvent.errorMessage == null || submitVideoOrGifPostEvent.errorMessage.equals("")) {
Snackbar.make(coordinatorLayout, R.string.post_failed, Snackbar.LENGTH_SHORT).show();
if (submitVideoOrGifPostEvent.errorMessage == null || submitVideoOrGifPostEvent.errorMessage.isEmpty()) {
Snackbar.make(binding.coordinatorLayoutPostVideoActivity, R.string.post_failed, Snackbar.LENGTH_SHORT).show();
} else {
Snackbar.make(coordinatorLayout, submitVideoOrGifPostEvent.errorMessage.substring(0, 1).toUpperCase()
Snackbar.make(binding.coordinatorLayoutPostVideoActivity, submitVideoOrGifPostEvent.errorMessage.substring(0, 1).toUpperCase()
+ submitVideoOrGifPostEvent.errorMessage.substring(1), Snackbar.LENGTH_SHORT).show();
}
}

View File

@ -61,7 +61,7 @@ public class SubmitPost {
public static void submitVideoPost(Executor executor, Handler handler, Retrofit oauthRetrofit, Retrofit uploadMediaRetrofit,
Retrofit uploadVideoRetrofit, String accessToken,
String subredditName, String title, File buffer, String mimeType,
String subredditName, String title, String content, File buffer, String mimeType,
Bitmap posterBitmap, Flair flair, boolean isSpoiler, boolean isNSFW,
boolean receivePostReplyNotifications, SubmitPostListener submitPostListener) {
RedditAPI api = oauthRetrofit.create(RedditAPI.class);
@ -99,12 +99,12 @@ public class SubmitPost {
if (imageUrlOrError != null && !imageUrlOrError.startsWith("Error: ")) {
if (fileType.equals("gif")) {
submitPost(executor, handler, oauthRetrofit, accessToken,
subredditName, title, null, url, flair, isSpoiler, isNSFW,
subredditName, title, content, url, flair, isSpoiler, isNSFW,
receivePostReplyNotifications, false, APIUtils.KIND_VIDEOGIF, imageUrlOrError,
submitPostListener);
} else {
submitPost(executor, handler, oauthRetrofit, accessToken,
subredditName, title, null, url, flair, isSpoiler, isNSFW,
subredditName, title, content, url, flair, isSpoiler, isNSFW,
receivePostReplyNotifications, false, APIUtils.KIND_VIDEO, imageUrlOrError,
submitPostListener);
}
@ -159,11 +159,13 @@ public class SubmitPost {
params.put(APIUtils.URL_KEY, url);
break;
case APIUtils.KIND_VIDEOGIF:
params.put(APIUtils.TEXT_KEY, content);
params.put(APIUtils.KIND_KEY, APIUtils.KIND_IMAGE);
params.put(APIUtils.URL_KEY, url);
params.put(APIUtils.VIDEO_POSTER_URL_KEY, posterUrl);
break;
case APIUtils.KIND_VIDEO:
params.put(APIUtils.TEXT_KEY, content);
params.put(APIUtils.URL_KEY, url);
params.put(APIUtils.VIDEO_POSTER_URL_KEY, posterUrl);
break;

View File

@ -176,8 +176,8 @@ public class SubmitPostService extends Service {
bundle.getString(EXTRA_CONTENT), flair, isSpoiler, isNSFW, receivePostReplyNotifications);
} else if (postType == EXTRA_POST_TYPE_VIDEO) {
Uri mediaUri = Uri.parse(bundle.getString(EXTRA_MEDIA_URI));
submitVideoPost(newAuthenticatorOauthRetrofit, account, mediaUri, subredditName, title, flair,
isSpoiler, isNSFW, receivePostReplyNotifications);
submitVideoPost(newAuthenticatorOauthRetrofit, account, mediaUri, subredditName, title,
bundle.getString(EXTRA_CONTENT), flair, isSpoiler, isNSFW, receivePostReplyNotifications);
} else if (postType == EXTRA_POST_TYPE_GALLERY) {
submitGalleryPost(newAuthenticatorOauthRetrofit, account, bundle.getString(EXTRA_REDDIT_GALLERY_PAYLOAD));
} else {
@ -327,8 +327,9 @@ public class SubmitPostService extends Service {
}
}
private void submitVideoPost(Retrofit newAuthenticatorOauthRetrofit, Account selectedAccount, Uri mediaUri, String subredditName, String title,
Flair flair, boolean isSpoiler, boolean isNSFW, boolean receivePostReplyNotifications) {
private void submitVideoPost(Retrofit newAuthenticatorOauthRetrofit, Account selectedAccount, Uri mediaUri,
String subredditName, String title, String content, Flair flair,
boolean isSpoiler, boolean isNSFW, boolean receivePostReplyNotifications) {
try {
InputStream in = getContentResolver().openInputStream(mediaUri);
String type = getContentResolver().getType(mediaUri);
@ -345,8 +346,8 @@ public class SubmitPostService extends Service {
if (type != null) {
SubmitPost.submitVideoPost(mExecutor, handler, newAuthenticatorOauthRetrofit, mUploadMediaRetrofit,
mUploadVideoRetrofit, selectedAccount.getAccessToken(), subredditName, title, new File(cacheFilePath),
type, resource, flair, isSpoiler, isNSFW, receivePostReplyNotifications,
mUploadVideoRetrofit, selectedAccount.getAccessToken(), subredditName, title, content,
new File(cacheFilePath), type, resource, flair, isSpoiler, isNSFW, receivePostReplyNotifications,
new SubmitPost.SubmitPostListener() {
@Override
public void submitSuccessful(Post post) {

View File

@ -23,239 +23,266 @@
</com.google.android.material.appbar.AppBarLayout>
<androidx.core.widget.NestedScrollView
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/account_linear_layout_post_video_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground">
<pl.droidsonroids.gif.GifImageView
android:id="@+id/account_icon_gif_image_view_post_video_activity"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginStart="16dp" />
<TextView
android:id="@+id/account_name_text_view_post_video_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="32dp"
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:paddingBottom="8dp">
<pl.droidsonroids.gif.GifImageView
android:id="@+id/subreddit_icon_gif_image_view_post_video_activity"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginStart="16dp" />
<TextView
android:id="@+id/subreddit_name_text_view_post_video_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="32dp"
android:layout_toStartOf="@id/rules_button_post_video_activity"
android:layout_toEndOf="@id/subreddit_icon_gif_image_view_post_video_activity"
android:text="@string/choose_a_subreddit"
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family" />
<com.google.android.material.button.MaterialButton
android:id="@+id/rules_button_post_video_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/rules"
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family" />
</RelativeLayout>
<com.google.android.material.divider.MaterialDivider
android:id="@+id/divider_1_post_video_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:layout_height="0dp"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="match_parent"
android:orientation="vertical">
<com.libRG.CustomTextView
android:id="@+id/flair_custom_text_view_post_video_activity"
android:layout_width="wrap_content"
<LinearLayout
android:id="@+id/account_linear_layout_post_video_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:padding="4dp"
android:text="@string/flair"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground">
<pl.droidsonroids.gif.GifImageView
android:id="@+id/account_icon_gif_image_view_post_video_activity"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginStart="16dp" />
<TextView
android:id="@+id/account_name_text_view_post_video_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="32dp"
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:paddingBottom="8dp">
<pl.droidsonroids.gif.GifImageView
android:id="@+id/subreddit_icon_gif_image_view_post_video_activity"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginStart="16dp" />
<TextView
android:id="@+id/subreddit_name_text_view_post_video_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="32dp"
android:layout_toStartOf="@id/rules_button_post_video_activity"
android:layout_toEndOf="@id/subreddit_icon_gif_image_view_post_video_activity"
android:text="@string/choose_a_subreddit"
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family" />
<com.google.android.material.button.MaterialButton
android:id="@+id/rules_button_post_video_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="@string/rules"
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family" />
</RelativeLayout>
<com.google.android.material.divider.MaterialDivider
android:id="@+id/divider_1_post_video_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.libRG.CustomTextView
android:id="@+id/flair_custom_text_view_post_video_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="6dp"
app:lib_setRoundedView="true"
app:lib_setShape="rectangle" />
<com.libRG.CustomTextView
android:id="@+id/spoiler_custom_text_view_post_video_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="6dp"
app:lib_setRoundedView="true"
app:lib_setShape="rectangle" />
<com.libRG.CustomTextView
android:id="@+id/nsfw_custom_text_view_post_video_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="6dp"
app:lib_setRoundedView="true"
app:lib_setShape="rectangle" />
</LinearLayout>
<LinearLayout
android:id="@+id/receive_post_reply_notifications_linear_layout_post_video_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground">
<TextView
android:id="@+id/receive_post_reply_notifications_text_view_post_video_activity"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center_vertical"
android:layout_marginEnd="16dp"
android:text="@string/receive_post_reply_notifications"
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/receive_post_reply_notifications_switch_material_post_video_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:checked="true" />
</LinearLayout>
<com.google.android.material.divider.MaterialDivider
android:id="@+id/divider_2_post_video_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/post_title_edit_text_post_video_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#00000000"
android:gravity="top"
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" />
<EditText
android:id="@+id/post_content_edit_text_post_video_activity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"
android:gravity="top"
android:hint="@string/post_optional_text_content_hint"
android:inputType="textCapSentences|textMultiLine"
android:padding="16dp"
android:textSize="?attr/content_font_18"
android:fontFamily="?attr/content_font_family" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/select_video_constraint_layout_post_video_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="32dp">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/capture_fab_post_video_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
android:src="@drawable/ic_outline_add_a_photo_24dp"
app:useCompatPadding="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/select_from_library_fab_post_video_activity"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/select_from_library_fab_post_video_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
android:src="@drawable/ic_outline_select_photo_24dp"
app:useCompatPadding="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintStart_toEndOf="@+id/capture_fab_post_video_activity"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/select_again_text_view_post_video_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="@string/select_again"
android:textColor="?attr/colorAccent"
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family"
android:visibility="gone" />
<com.google.android.exoplayer2.ui.PlayerView
android:id="@+id/player_view_post_video_activity"
android:layout_width="match_parent"
android:layout_height="400dp"
android:visibility="gone"
app:lib_setRadius="6dp"
app:lib_setRoundedView="true"
app:lib_setShape="rectangle" />
<com.libRG.CustomTextView
android:id="@+id/spoiler_custom_text_view_post_video_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="6dp"
app:lib_setRoundedView="true"
app:lib_setShape="rectangle" />
<com.libRG.CustomTextView
android:id="@+id/nsfw_custom_text_view_post_video_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="6dp"
app:lib_setRoundedView="true"
app:lib_setShape="rectangle" />
app:controller_layout_id="@layout/exo_playback_control_view" />
</LinearLayout>
<LinearLayout
android:id="@+id/receive_post_reply_notifications_linear_layout_post_video_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground">
</androidx.core.widget.NestedScrollView>
<TextView
android:id="@+id/receive_post_reply_notifications_text_view_post_video_activity"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center_vertical"
android:layout_marginEnd="16dp"
android:text="@string/receive_post_reply_notifications"
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/markdown_bottom_bar_recycler_view_post_video_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="horizontal"
android:layout_gravity="bottom" />
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/receive_post_reply_notifications_switch_material_post_video_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:checked="true" />
</LinearLayout>
<com.google.android.material.divider.MaterialDivider
android:id="@+id/divider_2_post_video_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/post_title_edit_text_post_video_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#00000000"
android:gravity="top"
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" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/select_video_constraint_layout_post_video_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="32dp">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/capture_fab_post_video_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
android:src="@drawable/ic_outline_add_a_photo_24dp"
app:useCompatPadding="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/select_from_library_fab_post_video_activity"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/select_from_library_fab_post_video_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
android:src="@drawable/ic_outline_select_photo_24dp"
app:useCompatPadding="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintStart_toEndOf="@+id/capture_fab_post_video_activity"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/select_again_text_view_post_video_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="@string/select_again"
android:textColor="?attr/colorAccent"
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family"
android:visibility="gone" />
<com.google.android.exoplayer2.ui.PlayerView
android:id="@+id/player_view_post_video_activity"
android:layout_width="match_parent"
android:layout_height="400dp"
android:visibility="gone"
app:controller_layout_id="@layout/exo_playback_control_view" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>