mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-12-28 11:58:23 +01:00
Merge branch 'Docile-Alligator:master' into more-regex-fix
This commit is contained in:
commit
ea1501b5a4
@ -6,8 +6,8 @@ android {
|
||||
applicationId "ml.docilealligator.infinityforreddit"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 30
|
||||
versionCode 84
|
||||
versionName "5.1.0"
|
||||
versionCode 85
|
||||
versionName "5.1.1"
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
javaCompileOptions {
|
||||
annotationProcessorOptions {
|
||||
|
@ -25,7 +25,7 @@
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
|
||||
<application
|
||||
android:name=".Infinity"
|
||||
android:name="ml.docilealligator.infinityforreddit.Infinity"
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/application_name"
|
||||
|
@ -0,0 +1,29 @@
|
||||
package ml.docilealligator.infinityforreddit;
|
||||
|
||||
import com.bumptech.glide.load.resource.bitmap.DownsampleStrategy;
|
||||
|
||||
public class SaveMemoryCenterInisdeDownsampleStrategy extends DownsampleStrategy {
|
||||
|
||||
@Override
|
||||
public float getScaleFactor(int sourceWidth, int sourceHeight, int requestedWidth, int requestedHeight) {
|
||||
int originalSourceWidth = sourceWidth;
|
||||
int originalSourceHeight = sourceHeight;
|
||||
if (sourceWidth * sourceHeight > 5_000_000) {
|
||||
int divisor = 2;
|
||||
do {
|
||||
sourceWidth /= divisor;
|
||||
sourceHeight /= divisor;
|
||||
} while (sourceWidth * sourceHeight > 5_000_000);
|
||||
}
|
||||
|
||||
float widthPercentage = (float) requestedWidth / (float) sourceWidth;
|
||||
float heightPercentage = (float) requestedHeight / (float) sourceHeight;
|
||||
|
||||
return Math.min((float) sourceWidth / (float) originalSourceWidth, (float) sourceHeight / (float) originalSourceHeight) * Math.min(1.f, Math.min(widthPercentage, heightPercentage));
|
||||
}
|
||||
|
||||
@Override
|
||||
public SampleSizeRounding getSampleSizeRounding(int sourceWidth, int sourceHeight, int requestedWidth, int requestedHeight) {
|
||||
return SampleSizeRounding.MEMORY;
|
||||
}
|
||||
}
|
@ -129,10 +129,10 @@ public abstract class BaseActivity extends AppCompatActivity {
|
||||
}
|
||||
}
|
||||
|
||||
boolean userDefinedChangeSatusBarIconColorInImmersiveInterface =
|
||||
boolean userDefinedChangeStatusBarIconColorInImmersiveInterface =
|
||||
customThemeWrapper.isChangeStatusBarIconColorAfterToolbarCollapsedInImmersiveInterface();
|
||||
if (immersiveInterface && isImmersiveInterfaceApplicable) {
|
||||
changeStatusBarIconColor = userDefinedChangeSatusBarIconColorInImmersiveInterface;
|
||||
changeStatusBarIconColor = userDefinedChangeStatusBarIconColorInImmersiveInterface;
|
||||
} else {
|
||||
changeStatusBarIconColor = false;
|
||||
}
|
||||
|
@ -38,7 +38,6 @@ import androidx.drawerlayout.widget.DrawerLayout;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.lifecycle.Observer;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
||||
@ -270,9 +269,6 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||
drawer.setFitsSystemWindows(false);
|
||||
getWindow().setDecorFitsSystemWindows(false);
|
||||
/*drawer.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);*/
|
||||
} else {
|
||||
window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
|
||||
}
|
||||
@ -855,19 +851,6 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
tabLayout.setTabMode(TabLayout.MODE_FIXED);
|
||||
}
|
||||
new TabLayoutMediator(tabLayout, viewPager2, (tab, position) -> {
|
||||
if (mAccessToken == null) {
|
||||
switch (position) {
|
||||
case 0:
|
||||
tab.setText(R.string.home);
|
||||
break;
|
||||
case 1:
|
||||
tab.setText(R.string.popular);
|
||||
break;
|
||||
case 2:
|
||||
tab.setText(R.string.all);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch (position) {
|
||||
case 0:
|
||||
tab.setText(mMainActivityTabsSharedPreferences.getString((mAccountName == null ? "" : mAccountName) + SharedPreferencesUtils.MAIN_PAGE_TAB_1_TITLE, getString(R.string.home)));
|
||||
@ -901,7 +884,6 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
- sectionsPagerAdapter.favoriteSubscribedSubreddits.size()).getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}).attach();
|
||||
} else {
|
||||
tabLayout.setVisibility(View.GONE);
|
||||
@ -925,7 +907,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
loadSubscriptions();
|
||||
|
||||
multiRedditViewModel = new ViewModelProvider(this, new MultiRedditViewModel.Factory(getApplication(),
|
||||
mRedditDataRoomDatabase, mAccountName))
|
||||
mRedditDataRoomDatabase, mAccountName == null ? "-" : mAccountName))
|
||||
.get(MultiRedditViewModel.class);
|
||||
|
||||
multiRedditViewModel.getAllFavoriteMultiReddits().observe(this, multiReddits -> {
|
||||
@ -934,17 +916,14 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
}
|
||||
});
|
||||
|
||||
multiRedditViewModel.getAllMultiReddits().observe(this, new Observer<List<MultiReddit>>() {
|
||||
@Override
|
||||
public void onChanged(List<MultiReddit> multiReddits) {
|
||||
multiRedditViewModel.getAllMultiReddits().observe(this, multiReddits -> {
|
||||
if (mShowMultiReddits && sectionsPagerAdapter != null) {
|
||||
sectionsPagerAdapter.setMultiReddits(multiReddits);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
subscribedSubredditViewModel = new ViewModelProvider(this,
|
||||
new SubscribedSubredditViewModel.Factory(getApplication(), mRedditDataRoomDatabase, mAccountName))
|
||||
new SubscribedSubredditViewModel.Factory(getApplication(), mRedditDataRoomDatabase, mAccountName == null ? "-" : mAccountName))
|
||||
.get(SubscribedSubredditViewModel.class);
|
||||
subscribedSubredditViewModel.getAllSubscribedSubreddits().observe(this,
|
||||
subscribedSubredditData -> {
|
||||
@ -1696,9 +1675,6 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
if (mAccessToken == null) {
|
||||
return 3;
|
||||
}
|
||||
return tabCount + favoriteMultiReddits.size() + multiReddits.size() +
|
||||
favoriteSubscribedSubreddits.size() + subscribedSubreddits.size();
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.RequestManager;
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
import com.google.android.material.appbar.CollapsingToolbarLayout;
|
||||
import com.r0adkll.slidr.Slidr;
|
||||
@ -100,10 +101,10 @@ public class TrendingActivity extends BaseActivity {
|
||||
@Inject
|
||||
Executor mExecutor;
|
||||
private String mAccessToken;
|
||||
private String mAccountName;
|
||||
private boolean isRefreshing = false;
|
||||
private ArrayList<TrendingSearch> trendingSearches;
|
||||
private TrendingSearchRecyclerViewAdapter adapter;
|
||||
private RequestManager mGlide;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@ -151,7 +152,8 @@ public class TrendingActivity extends BaseActivity {
|
||||
setToolbarGoToTop(toolbar);
|
||||
|
||||
mAccessToken = mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCESS_TOKEN, null);
|
||||
mAccountName = mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCOUNT_NAME, null);
|
||||
|
||||
mGlide = Glide.with(this);
|
||||
|
||||
DisplayMetrics displayMetrics = new DisplayMetrics();
|
||||
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
|
||||
@ -277,7 +279,7 @@ public class TrendingActivity extends BaseActivity {
|
||||
|
||||
private void showErrorView(int stringId) {
|
||||
errorLinearLayout.setVisibility(View.VISIBLE);
|
||||
Glide.with(this).load(R.drawable.error_image).into(errorImageView);
|
||||
mGlide.load(R.drawable.error_image).into(errorImageView);
|
||||
errorTextView.setText(stringId);
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,12 @@
|
||||
package ml.docilealligator.infinityforreddit.activities;
|
||||
|
||||
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY;
|
||||
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM;
|
||||
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_NO;
|
||||
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.ActivityInfo;
|
||||
@ -32,6 +38,7 @@ import android.widget.Toast;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
@ -79,6 +86,7 @@ import ml.docilealligator.infinityforreddit.Infinity;
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
import ml.docilealligator.infinityforreddit.apis.VReddIt;
|
||||
import ml.docilealligator.infinityforreddit.bottomsheetfragments.PlaybackSpeedBottomSheetFragment;
|
||||
import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper;
|
||||
import ml.docilealligator.infinityforreddit.font.ContentFontFamily;
|
||||
import ml.docilealligator.infinityforreddit.font.ContentFontStyle;
|
||||
import ml.docilealligator.infinityforreddit.font.FontFamily;
|
||||
@ -150,6 +158,8 @@ public class ViewVideoActivity extends AppCompatActivity {
|
||||
TextView titleTextView;
|
||||
@BindView(R.id.download_image_view_exo_playback_control_view)
|
||||
ImageView downloadImageView;
|
||||
@BindView(R.id.playback_speed_image_view_exo_playback_control_view)
|
||||
ImageView playbackSpeedImageView;
|
||||
@BindView(R.id.lockable_nested_scroll_view_view_video_activity)
|
||||
LockableNestedScrollView nestedScrollView;
|
||||
|
||||
@ -194,6 +204,9 @@ public class ViewVideoActivity extends AppCompatActivity {
|
||||
@Named("default")
|
||||
SharedPreferences mSharedPreferences;
|
||||
|
||||
@Inject
|
||||
CustomThemeWrapper mCustomThemeWrapper;
|
||||
|
||||
@Inject
|
||||
Executor mExecutor;
|
||||
|
||||
@ -206,7 +219,37 @@ public class ViewVideoActivity extends AppCompatActivity {
|
||||
|
||||
((Infinity) getApplication()).getAppComponent().inject(this);
|
||||
|
||||
boolean systemDefault = Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q;
|
||||
int systemThemeType = Integer.parseInt(mSharedPreferences.getString(SharedPreferencesUtils.THEME_KEY, "2"));
|
||||
switch (systemThemeType) {
|
||||
case 0:
|
||||
AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_NO);
|
||||
getTheme().applyStyle(R.style.Theme_Normal, true);
|
||||
break;
|
||||
case 1:
|
||||
AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_YES);
|
||||
if(mSharedPreferences.getBoolean(SharedPreferencesUtils.AMOLED_DARK_KEY, false)) {
|
||||
getTheme().applyStyle(R.style.Theme_Normal_AmoledDark, true);
|
||||
} else {
|
||||
getTheme().applyStyle(R.style.Theme_Normal_NormalDark, true);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (systemDefault) {
|
||||
AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_FOLLOW_SYSTEM);
|
||||
} else {
|
||||
AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_AUTO_BATTERY);
|
||||
}
|
||||
if((getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_NO) {
|
||||
getTheme().applyStyle(R.style.Theme_Normal, true);
|
||||
} else {
|
||||
if(mSharedPreferences.getBoolean(SharedPreferencesUtils.AMOLED_DARK_KEY, false)) {
|
||||
getTheme().applyStyle(R.style.Theme_Normal_AmoledDark, true);
|
||||
} else {
|
||||
getTheme().applyStyle(R.style.Theme_Normal_NormalDark, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
getTheme().applyStyle(FontStyle.valueOf(mSharedPreferences
|
||||
.getString(SharedPreferencesUtils.FONT_SIZE_KEY, FontStyle.Normal.name())).getResId(), true);
|
||||
@ -250,6 +293,14 @@ public class ViewVideoActivity extends AppCompatActivity {
|
||||
isDownloading = true;
|
||||
requestPermissionAndDownload();
|
||||
});
|
||||
|
||||
playbackSpeedImageView.setOnClickListener(view -> {
|
||||
PlaybackSpeedBottomSheetFragment playbackSpeedBottomSheetFragment = new PlaybackSpeedBottomSheetFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(PlaybackSpeedBottomSheetFragment.EXTRA_PLAYBACK_SPEED, playbackSpeed);
|
||||
playbackSpeedBottomSheetFragment.setArguments(bundle);
|
||||
playbackSpeedBottomSheetFragment.show(getSupportFragmentManager(), playbackSpeedBottomSheetFragment.getTag());
|
||||
});
|
||||
} else {
|
||||
ActionBar actionBar = getSupportActionBar();
|
||||
Drawable upArrow = resources.getDrawable(R.drawable.ic_arrow_back_white_24dp);
|
||||
@ -520,10 +571,13 @@ public class ViewVideoActivity extends AppCompatActivity {
|
||||
|
||||
hdButton.setVisibility(View.VISIBLE);
|
||||
hdButton.setOnClickListener(view -> {
|
||||
TrackSelectionDialogBuilder build = new TrackSelectionDialogBuilder(ViewVideoActivity.this, getString(R.string.select_video_quality), trackSelector, 0);
|
||||
build.setShowDisableOption(true);
|
||||
build.setAllowAdaptiveSelections(false);
|
||||
build.build().show();
|
||||
TrackSelectionDialogBuilder builder = new TrackSelectionDialogBuilder(ViewVideoActivity.this, getString(R.string.select_video_quality), trackSelector, 0);
|
||||
builder.setShowDisableOption(true);
|
||||
builder.setAllowAdaptiveSelections(false);
|
||||
AlertDialog alertDialog = builder.build();
|
||||
alertDialog.show();
|
||||
alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(mCustomThemeWrapper.getPrimaryTextColor());
|
||||
alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(mCustomThemeWrapper.getPrimaryTextColor());
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -26,6 +26,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.RequestManager;
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
import com.google.android.material.appbar.CollapsingToolbarLayout;
|
||||
import com.r0adkll.slidr.Slidr;
|
||||
@ -115,6 +116,7 @@ public class WikiActivity extends BaseActivity {
|
||||
private Markwon markwon;
|
||||
private MarkwonAdapter markwonAdapter;
|
||||
private boolean isRefreshing = false;
|
||||
private RequestManager mGlide;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@ -156,6 +158,8 @@ public class WikiActivity extends BaseActivity {
|
||||
}
|
||||
}
|
||||
|
||||
mGlide = Glide.with(this);
|
||||
|
||||
swipeRefreshLayout.setEnabled(mSharedPreferences.getBoolean(SharedPreferencesUtils.PULL_TO_REFRESH, true));
|
||||
swipeRefreshLayout.setOnRefreshListener(this::loadWiki);
|
||||
|
||||
@ -286,7 +290,7 @@ public class WikiActivity extends BaseActivity {
|
||||
swipeRefreshLayout.setRefreshing(false);
|
||||
mFetchWikiInfoLinearLayout.setVisibility(View.VISIBLE);
|
||||
mFetchWikiInfoTextView.setText(stringResId);
|
||||
Glide.with(this).load(R.drawable.error_image).into(mFetchWikiInfoImageView);
|
||||
mGlide.load(R.drawable.error_image).into(mFetchWikiInfoImageView);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -87,6 +87,7 @@ import jp.wasabeef.glide.transformations.BlurTransformation;
|
||||
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
||||
import me.saket.bettermovementmethod.BetterLinkMovementMethod;
|
||||
import ml.docilealligator.infinityforreddit.FetchGfycatOrRedgifsVideoLinks;
|
||||
import ml.docilealligator.infinityforreddit.SaveMemoryCenterInisdeDownsampleStrategy;
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||
import ml.docilealligator.infinityforreddit.SaveThing;
|
||||
@ -142,7 +143,6 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
private RequestManager mGlide;
|
||||
private Markwon mPostDetailMarkwon;
|
||||
private final MarkwonAdapter mMarkwonAdapter;
|
||||
private int mImageViewWidth;
|
||||
private String mAccessToken;
|
||||
private String mAccountName;
|
||||
private Post mPost;
|
||||
@ -211,7 +211,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
Executor executor, CustomThemeWrapper customThemeWrapper,
|
||||
Retrofit retrofit, Retrofit oauthRetrofit, Retrofit gfycatRetrofit,
|
||||
Retrofit redgifsRetrofit, RedditDataRoomDatabase redditDataRoomDatabase,
|
||||
RequestManager glide, int imageViewWidth,
|
||||
RequestManager glide,
|
||||
boolean separatePostAndComments, String accessToken,
|
||||
String accountName, Post post, Locale locale,
|
||||
SharedPreferences sharedPreferences,
|
||||
@ -300,7 +300,6 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
.tableLayout(R.layout.adapter_table_block, R.id.table_layout)
|
||||
.textLayoutIsRoot(R.layout.view_table_entry_cell)))
|
||||
.build();
|
||||
mImageViewWidth = imageViewWidth;
|
||||
mSeparatePostAndComments = separatePostAndComments;
|
||||
mLegacyAutoplayVideoControllerUI = sharedPreferences.getBoolean(SharedPreferencesUtils.LEGACY_AUTOPLAY_VIDEO_CONTROLLER_UI, false);
|
||||
mAccessToken = accessToken;
|
||||
@ -634,11 +633,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
Post.Preview preview = getSuitablePreview(mPost.getPreviews());
|
||||
if (preview != null) {
|
||||
((PostDetailVideoAutoplayViewHolder) holder).aspectRatioFrameLayout.setAspectRatio((float) preview.getPreviewWidth() / preview.getPreviewHeight());
|
||||
if (mImageViewWidth > preview.getPreviewWidth()) {
|
||||
mGlide.load(preview.getPreviewUrl()).override(preview.getPreviewWidth(), preview.getPreviewHeight()).into(((PostDetailVideoAutoplayViewHolder) holder).previewImageView);
|
||||
} else {
|
||||
mGlide.load(preview.getPreviewUrl()).into(((PostDetailVideoAutoplayViewHolder) holder).previewImageView);
|
||||
}
|
||||
mGlide.load(preview.getPreviewUrl()).centerInside().downsample(new SaveMemoryCenterInisdeDownsampleStrategy()).into(((PostDetailVideoAutoplayViewHolder) holder).previewImageView);
|
||||
} else {
|
||||
((PostDetailVideoAutoplayViewHolder) holder).aspectRatioFrameLayout.setAspectRatio(1);
|
||||
}
|
||||
@ -694,8 +689,6 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
int height = (int) (400 * mScale);
|
||||
((PostDetailImageAndGifAutoplayViewHolder) holder).mImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
((PostDetailImageAndGifAutoplayViewHolder) holder).mImageView.getLayoutParams().height = height;
|
||||
preview.setPreviewWidth(mImageViewWidth);
|
||||
preview.setPreviewHeight(height);
|
||||
} else {
|
||||
((PostDetailImageAndGifAutoplayViewHolder) holder).mImageView.setRatio((float) preview.getPreviewHeight() / (float) preview.getPreviewWidth());
|
||||
}
|
||||
@ -812,30 +805,14 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
previewIndex = 0;
|
||||
}
|
||||
preview = previews.get(previewIndex);
|
||||
if (preview.getPreviewWidth() * preview.getPreviewHeight() > 10_000_000) {
|
||||
if (preview.getPreviewWidth() * preview.getPreviewHeight() > 5_000_000) {
|
||||
for (int i = previews.size() - 1; i >= 1; i--) {
|
||||
preview = previews.get(i);
|
||||
if (mImageViewWidth >= preview.getPreviewWidth()) {
|
||||
if (preview.getPreviewWidth() * preview.getPreviewHeight() <= 10_000_000) {
|
||||
return preview;
|
||||
}
|
||||
} else {
|
||||
int height = mImageViewWidth / preview.getPreviewWidth() * preview.getPreviewHeight();
|
||||
if (mImageViewWidth * height <= 10_000_000) {
|
||||
if (preview.getPreviewWidth() * preview.getPreviewHeight() <= 5_000_000) {
|
||||
return preview;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (preview.getPreviewWidth() * preview.getPreviewHeight() > 10_000_000) {
|
||||
int divisor = 2;
|
||||
do {
|
||||
preview.setPreviewWidth(preview.getPreviewWidth() / divisor);
|
||||
preview.setPreviewHeight(preview.getPreviewHeight() / divisor);
|
||||
divisor *= 2;
|
||||
} while (preview.getPreviewWidth() * preview.getPreviewHeight() > 10_000_000);
|
||||
}
|
||||
|
||||
return preview;
|
||||
}
|
||||
@ -848,7 +825,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
boolean blurImage = (mPost.isNSFW() && mNeedBlurNsfw && !(mDoNotBlurNsfwInNsfwSubreddits && mFragment != null && mFragment.getIsNsfwSubreddit()) && !(mPost.getPostType() == Post.GIF_TYPE && mAutoplayNsfwVideos)) || (mPost.isSpoiler() && mNeedBlurSpoiler);
|
||||
String url = mPost.getPostType() == Post.IMAGE_TYPE || blurImage ? preview.getPreviewUrl() : mPost.getUrl();
|
||||
RequestBuilder<Drawable> imageRequestBuilder = mGlide.load(url)
|
||||
.listener(new RequestListener<Drawable>() {
|
||||
.listener(new RequestListener<>() {
|
||||
@Override
|
||||
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
|
||||
((PostDetailImageAndGifAutoplayViewHolder) holder).mLoadImageProgressBar.setVisibility(View.GONE);
|
||||
@ -871,15 +848,11 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
if (blurImage) {
|
||||
imageRequestBuilder.apply(RequestOptions.bitmapTransform(new BlurTransformation(50, 10))).into(((PostDetailImageAndGifAutoplayViewHolder) holder).mImageView);
|
||||
} else {
|
||||
if (mImageViewWidth > preview.getPreviewWidth()) {
|
||||
imageRequestBuilder.override(preview.getPreviewWidth(), preview.getPreviewHeight()).into(((PostDetailImageAndGifAutoplayViewHolder) holder).mImageView);
|
||||
} else {
|
||||
imageRequestBuilder.into(((PostDetailImageAndGifAutoplayViewHolder) holder).mImageView);
|
||||
}
|
||||
imageRequestBuilder.centerInside().downsample(new SaveMemoryCenterInisdeDownsampleStrategy()).into(((PostDetailImageAndGifAutoplayViewHolder) holder).mImageView);
|
||||
}
|
||||
} else if (holder instanceof PostDetailVideoAndGifPreviewHolder) {
|
||||
RequestBuilder<Drawable> imageRequestBuilder = mGlide.load(preview.getPreviewUrl())
|
||||
.listener(new RequestListener<Drawable>() {
|
||||
.listener(new RequestListener<>() {
|
||||
@Override
|
||||
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
|
||||
((PostDetailVideoAndGifPreviewHolder) holder).mLoadImageProgressBar.setVisibility(View.GONE);
|
||||
@ -903,15 +876,11 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
imageRequestBuilder.apply(RequestOptions.bitmapTransform(new BlurTransformation(50, 10)))
|
||||
.into(((PostDetailVideoAndGifPreviewHolder) holder).mImageView);
|
||||
} else {
|
||||
if (mImageViewWidth > preview.getPreviewWidth()) {
|
||||
imageRequestBuilder.override(preview.getPreviewWidth(), preview.getPreviewHeight()).into(((PostDetailVideoAndGifPreviewHolder) holder).mImageView);
|
||||
} else {
|
||||
imageRequestBuilder.into(((PostDetailVideoAndGifPreviewHolder) holder).mImageView);
|
||||
}
|
||||
imageRequestBuilder.centerInside().downsample(new SaveMemoryCenterInisdeDownsampleStrategy()).into(((PostDetailVideoAndGifPreviewHolder) holder).mImageView);
|
||||
}
|
||||
} else if (holder instanceof PostDetailLinkViewHolder) {
|
||||
RequestBuilder<Drawable> imageRequestBuilder = mGlide.load(preview.getPreviewUrl())
|
||||
.listener(new RequestListener<Drawable>() {
|
||||
.listener(new RequestListener<>() {
|
||||
@Override
|
||||
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
|
||||
((PostDetailLinkViewHolder) holder).mLoadImageProgressBar.setVisibility(View.GONE);
|
||||
@ -935,15 +904,11 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
imageRequestBuilder.apply(RequestOptions.bitmapTransform(new BlurTransformation(50, 10)))
|
||||
.into(((PostDetailLinkViewHolder) holder).mImageView);
|
||||
} else {
|
||||
if (mImageViewWidth > preview.getPreviewWidth()) {
|
||||
imageRequestBuilder.override(preview.getPreviewWidth(), preview.getPreviewHeight()).into(((PostDetailLinkViewHolder) holder).mImageView);
|
||||
} else {
|
||||
imageRequestBuilder.into(((PostDetailLinkViewHolder) holder).mImageView);
|
||||
}
|
||||
imageRequestBuilder.centerInside().downsample(new SaveMemoryCenterInisdeDownsampleStrategy()).into(((PostDetailLinkViewHolder) holder).mImageView);
|
||||
}
|
||||
} else if (holder instanceof PostDetailGalleryViewHolder) {
|
||||
RequestBuilder<Drawable> imageRequestBuilder = mGlide.load(preview.getPreviewUrl())
|
||||
.listener(new RequestListener<Drawable>() {
|
||||
.listener(new RequestListener<>() {
|
||||
@Override
|
||||
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
|
||||
((PostDetailGalleryViewHolder) holder).mLoadImageProgressBar.setVisibility(View.GONE);
|
||||
@ -966,11 +931,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
if ((mPost.isNSFW() && mNeedBlurNsfw && !(mDoNotBlurNsfwInNsfwSubreddits && mFragment != null && mFragment.getIsNsfwSubreddit()) && !(mPost.getPostType() == Post.GIF_TYPE && mAutoplayNsfwVideos)) || (mPost.isSpoiler() && mNeedBlurSpoiler)) {
|
||||
imageRequestBuilder.apply(RequestOptions.bitmapTransform(new BlurTransformation(50, 10))).into(((PostDetailGalleryViewHolder) holder).mImageView);
|
||||
} else {
|
||||
if (mImageViewWidth > preview.getPreviewWidth()) {
|
||||
imageRequestBuilder.override(preview.getPreviewWidth(), preview.getPreviewHeight()).into(((PostDetailGalleryViewHolder) holder).mImageView);
|
||||
} else {
|
||||
imageRequestBuilder.into(((PostDetailGalleryViewHolder) holder).mImageView);
|
||||
}
|
||||
imageRequestBuilder.centerInside().downsample(new SaveMemoryCenterInisdeDownsampleStrategy()).into(((PostDetailGalleryViewHolder) holder).mImageView);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -69,6 +69,7 @@ import jp.wasabeef.glide.transformations.BlurTransformation;
|
||||
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
||||
import ml.docilealligator.infinityforreddit.FetchGfycatOrRedgifsVideoLinks;
|
||||
import ml.docilealligator.infinityforreddit.MarkPostAsReadInterface;
|
||||
import ml.docilealligator.infinityforreddit.SaveMemoryCenterInisdeDownsampleStrategy;
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
import ml.docilealligator.infinityforreddit.SaveThing;
|
||||
import ml.docilealligator.infinityforreddit.VoteThing;
|
||||
@ -126,7 +127,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
private Retrofit mOauthRetrofit;
|
||||
private Retrofit mGfycatRetrofit;
|
||||
private Retrofit mRedgifsRetrofit;
|
||||
private int mImageViewWidth;
|
||||
private String mAccessToken;
|
||||
private RequestManager mGlide;
|
||||
private Locale mLocale;
|
||||
@ -206,7 +206,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
|
||||
public PostRecyclerViewAdapter(AppCompatActivity activity, PostFragment fragment, Executor executor, Retrofit oauthRetrofit,
|
||||
Retrofit gfycatRetrofit, Retrofit redgifsRetrofit,
|
||||
CustomThemeWrapper customThemeWrapper, Locale locale, int imageViewWidth,
|
||||
CustomThemeWrapper customThemeWrapper, Locale locale,
|
||||
String accessToken, String accountName, int postType, int postLayout, boolean displaySubredditName,
|
||||
SharedPreferences sharedPreferences, SharedPreferences nsfwAndSpoilerSharedPreferences,
|
||||
SharedPreferences postHistorySharedPreferences,
|
||||
@ -220,7 +220,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
mOauthRetrofit = oauthRetrofit;
|
||||
mGfycatRetrofit = gfycatRetrofit;
|
||||
mRedgifsRetrofit = redgifsRetrofit;
|
||||
mImageViewWidth = imageViewWidth;
|
||||
mAccessToken = accessToken;
|
||||
mPostType = postType;
|
||||
mDisplaySubredditName = displaySubredditName;
|
||||
@ -676,11 +675,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
Post.Preview preview = getSuitablePreview(post.getPreviews());
|
||||
if (preview != null) {
|
||||
((PostVideoAutoplayViewHolder) holder).aspectRatioFrameLayout.setAspectRatio((float) preview.getPreviewWidth() / preview.getPreviewHeight());
|
||||
if (mImageViewWidth > preview.getPreviewWidth()) {
|
||||
mGlide.load(preview.getPreviewUrl()).override(Target.SIZE_ORIGINAL).into(((PostVideoAutoplayViewHolder) holder).previewImageView);
|
||||
} else {
|
||||
mGlide.load(preview.getPreviewUrl()).into(((PostVideoAutoplayViewHolder) holder).previewImageView);
|
||||
}
|
||||
mGlide.load(preview.getPreviewUrl()).centerInside().downsample(new SaveMemoryCenterInisdeDownsampleStrategy()).into(((PostVideoAutoplayViewHolder) holder).previewImageView);
|
||||
} else {
|
||||
((PostVideoAutoplayViewHolder) holder).aspectRatioFrameLayout.setAspectRatio(1);
|
||||
}
|
||||
@ -774,8 +769,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
int height = (int) (400 * mScale);
|
||||
((PostWithPreviewTypeViewHolder) holder).imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
((PostWithPreviewTypeViewHolder) holder).imageView.getLayoutParams().height = height;
|
||||
preview.setPreviewWidth(mImageViewWidth);
|
||||
preview.setPreviewHeight(height);
|
||||
} else {
|
||||
((PostWithPreviewTypeViewHolder) holder).imageView
|
||||
.setRatio((float) preview.getPreviewHeight() / preview.getPreviewWidth());
|
||||
@ -809,11 +802,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
Post.Preview preview = getSuitablePreview(post.getPreviews());
|
||||
if (preview != null) {
|
||||
((PostCard2VideoAutoplayViewHolder) holder).aspectRatioFrameLayout.setAspectRatio((float) preview.getPreviewWidth() / preview.getPreviewHeight());
|
||||
if (mImageViewWidth > preview.getPreviewWidth()) {
|
||||
mGlide.load(preview.getPreviewUrl()).override(Target.SIZE_ORIGINAL).into(((PostCard2VideoAutoplayViewHolder) holder).previewImageView);
|
||||
} else {
|
||||
mGlide.load(preview.getPreviewUrl()).into(((PostCard2VideoAutoplayViewHolder) holder).previewImageView);
|
||||
}
|
||||
mGlide.load(preview.getPreviewUrl()).centerInside().downsample(new SaveMemoryCenterInisdeDownsampleStrategy()).into(((PostCard2VideoAutoplayViewHolder) holder).previewImageView);
|
||||
} else {
|
||||
((PostCard2VideoAutoplayViewHolder) holder).aspectRatioFrameLayout.setAspectRatio(1);
|
||||
}
|
||||
@ -909,8 +898,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
int height = (int) (400 * mScale);
|
||||
((PostCard2WithPreviewViewHolder) holder).imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
((PostCard2WithPreviewViewHolder) holder).imageView.getLayoutParams().height = height;
|
||||
preview.setPreviewWidth(mImageViewWidth);
|
||||
preview.setPreviewHeight(height);
|
||||
} else {
|
||||
((PostCard2WithPreviewViewHolder) holder).imageView
|
||||
.setRatio((float) preview.getPreviewHeight() / preview.getPreviewWidth());
|
||||
@ -1291,8 +1278,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
int height = (int) (400 * mScale);
|
||||
((PostGalleryViewHolder) holder).imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
((PostGalleryViewHolder) holder).imageView.getLayoutParams().height = height;
|
||||
preview.setPreviewWidth(mImageViewWidth);
|
||||
preview.setPreviewHeight(height);
|
||||
} else {
|
||||
((PostGalleryViewHolder) holder).imageView
|
||||
.setRatio((float) preview.getPreviewHeight() / preview.getPreviewWidth());
|
||||
@ -1327,8 +1312,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
int height = (int) (400 * mScale);
|
||||
((PostGalleryViewHolder) holder).imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
((PostGalleryViewHolder) holder).imageView.getLayoutParams().height = height;
|
||||
preview.setPreviewWidth(mImageViewWidth);
|
||||
preview.setPreviewHeight(height);
|
||||
} else {
|
||||
((PostGalleryViewHolder) holder).imageView
|
||||
.setRatio((float) preview.getPreviewHeight() / preview.getPreviewWidth());
|
||||
@ -1353,8 +1336,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
int height = (int) (400 * mScale);
|
||||
((PostGalleryViewHolder) holder).imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
((PostGalleryViewHolder) holder).imageView.getLayoutParams().height = height;
|
||||
preview.setPreviewWidth(mImageViewWidth);
|
||||
preview.setPreviewHeight(height);
|
||||
} else {
|
||||
((PostGalleryViewHolder) holder).imageView
|
||||
.setRatio((float) preview.getPreviewHeight() / preview.getPreviewWidth());
|
||||
@ -1379,8 +1360,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
int height = (int) (400 * mScale);
|
||||
((PostGalleryViewHolder) holder).imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
((PostGalleryViewHolder) holder).imageView.getLayoutParams().height = height;
|
||||
preview.setPreviewWidth(mImageViewWidth);
|
||||
preview.setPreviewHeight(height);
|
||||
} else {
|
||||
((PostGalleryViewHolder) holder).imageView
|
||||
.setRatio((float) preview.getPreviewHeight() / preview.getPreviewWidth());
|
||||
@ -1415,8 +1394,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
int height = (int) (400 * mScale);
|
||||
((PostGalleryViewHolder) holder).imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
((PostGalleryViewHolder) holder).imageView.getLayoutParams().height = height;
|
||||
preview.setPreviewWidth(mImageViewWidth);
|
||||
preview.setPreviewHeight(height);
|
||||
} else {
|
||||
((PostGalleryViewHolder) holder).imageView
|
||||
.setRatio((float) preview.getPreviewHeight() / preview.getPreviewWidth());
|
||||
@ -1447,29 +1424,11 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
if (preview.getPreviewWidth() * preview.getPreviewHeight() > 5_000_000) {
|
||||
for (int i = previews.size() - 1; i >= 1; i--) {
|
||||
preview = previews.get(i);
|
||||
if (mImageViewWidth >= preview.getPreviewWidth()) {
|
||||
if (preview.getPreviewWidth() * preview.getPreviewHeight() <= 5_000_000) {
|
||||
return preview;
|
||||
}
|
||||
} else {
|
||||
int height = mImageViewWidth / preview.getPreviewWidth() * preview.getPreviewHeight();
|
||||
if (mImageViewWidth * height <= 5_000_000) {
|
||||
preview.setPreviewWidth(mImageViewWidth);
|
||||
preview.setPreviewHeight(height);
|
||||
return preview;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (preview.getPreviewWidth() * preview.getPreviewHeight() > 5_000_000) {
|
||||
int divisor = 2;
|
||||
do {
|
||||
preview.setPreviewWidth(preview.getPreviewWidth() / divisor);
|
||||
preview.setPreviewHeight(preview.getPreviewHeight() / divisor);
|
||||
divisor *= 2;
|
||||
} while (preview.getPreviewWidth() * preview.getPreviewHeight() > 5_000_000);
|
||||
}
|
||||
return preview;
|
||||
}
|
||||
|
||||
@ -1494,7 +1453,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
imageRequestBuilder.apply(RequestOptions.bitmapTransform(new BlurTransformation(50, 10)))
|
||||
.into(((PostWithPreviewTypeViewHolder) holder).imageView);
|
||||
} else {
|
||||
imageRequestBuilder.override(preview.getPreviewWidth(), preview.getPreviewHeight()).centerInside().into(((PostWithPreviewTypeViewHolder) holder).imageView);
|
||||
imageRequestBuilder.centerInside().downsample(new SaveMemoryCenterInisdeDownsampleStrategy()).into(((PostWithPreviewTypeViewHolder) holder).imageView);
|
||||
}
|
||||
}
|
||||
} else if (holder instanceof PostCompactBaseViewHolder) {
|
||||
@ -1534,11 +1493,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
imageRequestBuilder.apply(RequestOptions.bitmapTransform(new BlurTransformation(50, 10)))
|
||||
.into(((PostGalleryViewHolder) holder).imageView);
|
||||
} else {
|
||||
if (mImageViewWidth > preview.getPreviewWidth()) {
|
||||
imageRequestBuilder.override(preview.getPreviewWidth(), preview.getPreviewHeight()).into(((PostGalleryViewHolder) holder).imageView);
|
||||
} else {
|
||||
imageRequestBuilder.into(((PostGalleryViewHolder) holder).imageView);
|
||||
}
|
||||
imageRequestBuilder.centerInside().downsample(new SaveMemoryCenterInisdeDownsampleStrategy()).into(((PostGalleryViewHolder) holder).imageView);
|
||||
}
|
||||
}
|
||||
} else if (holder instanceof PostCard2WithPreviewViewHolder) {
|
||||
@ -1558,11 +1513,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
imageRequestBuilder.apply(RequestOptions.bitmapTransform(new BlurTransformation(50, 10)))
|
||||
.into(((PostCard2WithPreviewViewHolder) holder).imageView);
|
||||
} else {
|
||||
if (mImageViewWidth > preview.getPreviewWidth()) {
|
||||
imageRequestBuilder.override(preview.getPreviewWidth(), preview.getPreviewHeight()).into(((PostCard2WithPreviewViewHolder) holder).imageView);
|
||||
} else {
|
||||
imageRequestBuilder.into(((PostCard2WithPreviewViewHolder) holder).imageView);
|
||||
}
|
||||
imageRequestBuilder.centerInside().downsample(new SaveMemoryCenterInisdeDownsampleStrategy()).into(((PostCard2WithPreviewViewHolder) holder).imageView);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1916,6 +1867,8 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
}
|
||||
|
||||
private void openViewPostDetailActivity(Post post, int position) {
|
||||
if (canStartActivity) {
|
||||
canStartActivity = false;
|
||||
Intent intent = new Intent(mActivity, ViewPostDetailActivity.class);
|
||||
intent.putExtra(ViewPostDetailActivity.EXTRA_POST_DATA, post);
|
||||
intent.putExtra(ViewPostDetailActivity.EXTRA_POST_LIST_POSITION, position);
|
||||
@ -1923,6 +1876,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
intent.putExtra(ViewPostDetailActivity.EXTRA_IS_NSFW_SUBREDDIT, mFragment.getIsNsfwSubreddit());
|
||||
mActivity.startActivity(intent);
|
||||
}
|
||||
}
|
||||
|
||||
private void openMedia(Post post) {
|
||||
if (canStartActivity) {
|
||||
@ -2113,7 +2067,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
Post post = getItem(position);
|
||||
if (post != null) {
|
||||
markPostRead(post, true);
|
||||
canStartActivity = false;
|
||||
|
||||
openViewPostDetailActivity(post, getBindingAdapterPosition());
|
||||
}
|
||||
@ -3160,8 +3113,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
Post post = getItem(position);
|
||||
if (post != null && canStartActivity) {
|
||||
markPostRead(post, true);
|
||||
canStartActivity = false;
|
||||
|
||||
openViewPostDetailActivity(post, getBindingAdapterPosition());
|
||||
}
|
||||
});
|
||||
@ -3750,7 +3701,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
Post post = getItem(position);
|
||||
if (post != null) {
|
||||
markPostRead(post, true);
|
||||
canStartActivity = false;
|
||||
|
||||
if (post.getPostType() == Post.TEXT_TYPE || !mSharedPreferences.getBoolean(SharedPreferencesUtils.CLICK_TO_SHOW_MEDIA_IN_GALLERY_LAYOUT, false)) {
|
||||
openViewPostDetailActivity(post, getBindingAdapterPosition());
|
||||
@ -3767,7 +3717,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
Post post = getItem(position);
|
||||
if (post != null) {
|
||||
markPostRead(post, true);
|
||||
canStartActivity = false;
|
||||
|
||||
if (post.getPostType() == Post.TEXT_TYPE || mSharedPreferences.getBoolean(SharedPreferencesUtils.CLICK_TO_SHOW_MEDIA_IN_GALLERY_LAYOUT, false)) {
|
||||
openViewPostDetailActivity(post, getBindingAdapterPosition());
|
||||
|
@ -17,7 +17,6 @@ import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.CountDownTimer;
|
||||
import android.os.Handler;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.HapticFeedbackConstants;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
@ -338,10 +337,6 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
}
|
||||
}
|
||||
|
||||
DisplayMetrics displayMetrics = new DisplayMetrics();
|
||||
activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
|
||||
int windowWidth = displayMetrics.widthPixels;
|
||||
|
||||
mGlide = Glide.with(activity);
|
||||
|
||||
lazyModeRunnable = new LazyModeRunnable() {
|
||||
@ -452,7 +447,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mOauthRetrofit, mGfycatRetrofit,
|
||||
mRedgifsRetrofit, mCustomThemeWrapper, locale,
|
||||
windowWidth, accessToken, accountName, postType, postLayout, true,
|
||||
accessToken, accountName, postType, postLayout, true,
|
||||
mSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||
mExoCreator, new PostRecyclerViewAdapter.Callback() {
|
||||
@Override
|
||||
@ -529,7 +524,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mOauthRetrofit, mGfycatRetrofit,
|
||||
mRedgifsRetrofit, mCustomThemeWrapper, locale,
|
||||
windowWidth, accessToken, accountName, postType, postLayout, displaySubredditName,
|
||||
accessToken, accountName, postType, postLayout, displaySubredditName,
|
||||
mSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||
mExoCreator, new PostRecyclerViewAdapter.Callback() {
|
||||
@Override
|
||||
@ -600,7 +595,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mOauthRetrofit, mGfycatRetrofit,
|
||||
mRedgifsRetrofit, mCustomThemeWrapper, locale,
|
||||
windowWidth, accessToken, accountName, postType, postLayout, true,
|
||||
accessToken, accountName, postType, postLayout, true,
|
||||
mSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||
mExoCreator, new PostRecyclerViewAdapter.Callback() {
|
||||
@Override
|
||||
@ -665,7 +660,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mOauthRetrofit, mGfycatRetrofit,
|
||||
mRedgifsRetrofit, mCustomThemeWrapper, locale,
|
||||
windowWidth, accessToken, accountName, postType, postLayout, true,
|
||||
accessToken, accountName, postType, postLayout, true,
|
||||
mSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||
mExoCreator, new PostRecyclerViewAdapter.Callback() {
|
||||
@Override
|
||||
@ -726,7 +721,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mOauthRetrofit, mGfycatRetrofit,
|
||||
mRedgifsRetrofit, mCustomThemeWrapper, locale,
|
||||
windowWidth, accessToken, accountName, postType, postLayout, true,
|
||||
accessToken, accountName, postType, postLayout, true,
|
||||
mSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||
mExoCreator, new PostRecyclerViewAdapter.Callback() {
|
||||
@Override
|
||||
@ -786,7 +781,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mOauthRetrofit, mGfycatRetrofit,
|
||||
mRedgifsRetrofit, mCustomThemeWrapper, locale,
|
||||
windowWidth, accessToken, accountName, postType, postLayout, true,
|
||||
accessToken, accountName, postType, postLayout, true,
|
||||
mSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||
mExoCreator, new PostRecyclerViewAdapter.Callback() {
|
||||
@Override
|
||||
@ -840,7 +835,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mOauthRetrofit, mGfycatRetrofit,
|
||||
mRedgifsRetrofit, mCustomThemeWrapper, locale,
|
||||
windowWidth, accessToken, accountName, postType, postLayout, true,
|
||||
accessToken, accountName, postType, postLayout, true,
|
||||
mSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||
mExoCreator, new PostRecyclerViewAdapter.Callback() {
|
||||
@Override
|
||||
@ -891,7 +886,6 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
StaggeredGridLayoutManagerItemOffsetDecoration itemDecoration =
|
||||
new StaggeredGridLayoutManagerItemOffsetDecoration(activity, R.dimen.staggeredLayoutManagerItemOffset, nColumns);
|
||||
mPostRecyclerView.addItemDecoration(itemDecoration);
|
||||
windowWidth /= 2;
|
||||
}
|
||||
|
||||
if (recyclerViewPosition > 0) {
|
||||
|
@ -16,7 +16,6 @@ import android.graphics.drawable.ColorDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.HapticFeedbackConstants;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
@ -224,7 +223,6 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
private boolean mExpandChildren;
|
||||
private boolean mSeparatePostAndComments = false;
|
||||
private boolean mMarkPostsAsRead;
|
||||
private int mWindowWidth;
|
||||
private ConcatAdapter mConcatAdapter;
|
||||
private PostDetailRecyclerViewAdapter mPostAdapter;
|
||||
private CommentsRecyclerViewAdapter mCommentsAdapter;
|
||||
@ -290,10 +288,6 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
showToast = true;
|
||||
}
|
||||
|
||||
DisplayMetrics displayMetrics = new DisplayMetrics();
|
||||
activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
|
||||
mWindowWidth = displayMetrics.widthPixels;
|
||||
|
||||
mLockFab = mSharedPreferences.getBoolean(SharedPreferencesUtils.LOCK_JUMP_TO_NEXT_TOP_LEVEL_COMMENT_BUTTON, false);
|
||||
mSwipeUpToHideFab = mSharedPreferences.getBoolean(SharedPreferencesUtils.SWIPE_UP_TO_HIDE_JUMP_TO_NEXT_TOP_LEVEL_COMMENT_BUTTON, false);
|
||||
mExpandChildren = !mSharedPreferences.getBoolean(SharedPreferencesUtils.SHOW_TOP_LEVEL_COMMENTS_FIRST, false);
|
||||
@ -550,7 +544,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
mPostAdapter = new PostDetailRecyclerViewAdapter(activity,
|
||||
this, mExecutor, mCustomThemeWrapper, mRetrofit, mOauthRetrofit, mGfycatRetrofit,
|
||||
mRedgifsRetrofit, mRedditDataRoomDatabase, mGlide,
|
||||
mWindowWidth, mSeparatePostAndComments, mAccessToken, mAccountName, mPost, mLocale,
|
||||
mSeparatePostAndComments, mAccessToken, mAccountName, mPost, mLocale,
|
||||
mSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostDetailsSharedPreferences,
|
||||
mExoCreator, post -> EventBus.getDefault().post(new PostUpdateEventToPostList(mPost, postListPosition)));
|
||||
mCommentsAdapter = new CommentsRecyclerViewAdapter(activity,
|
||||
@ -1195,7 +1189,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
mPostAdapter = new PostDetailRecyclerViewAdapter(activity,
|
||||
ViewPostDetailFragment.this, mExecutor, mCustomThemeWrapper,
|
||||
mRetrofit, mOauthRetrofit, mGfycatRetrofit, mRedgifsRetrofit,
|
||||
mRedditDataRoomDatabase, mGlide, mWindowWidth, mSeparatePostAndComments,
|
||||
mRedditDataRoomDatabase, mGlide, mSeparatePostAndComments,
|
||||
mAccessToken, mAccountName, mPost, mLocale, mSharedPreferences,
|
||||
mNsfwAndSpoilerSharedPreferences, mPostDetailsSharedPreferences,
|
||||
mExoCreator,
|
||||
|
@ -1,5 +1,6 @@
|
||||
package ml.docilealligator.infinityforreddit.fragments;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.Configuration;
|
||||
@ -207,11 +208,14 @@ public class ViewRPANBroadcastFragment extends Fragment {
|
||||
|
||||
hdButton.setVisibility(View.VISIBLE);
|
||||
hdButton.setOnClickListener(view -> {
|
||||
TrackSelectionDialogBuilder build = new TrackSelectionDialogBuilder(mActivity,
|
||||
TrackSelectionDialogBuilder builder = new TrackSelectionDialogBuilder(mActivity,
|
||||
getString(R.string.select_video_quality), trackSelector, 0);
|
||||
build.setShowDisableOption(true);
|
||||
build.setAllowAdaptiveSelections(false);
|
||||
build.build().show();
|
||||
builder.setShowDisableOption(true);
|
||||
builder.setAllowAdaptiveSelections(false);
|
||||
AlertDialog alertDialog = builder.build();
|
||||
alertDialog.show();
|
||||
alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(mCustomThemeWrapper.getPrimaryTextColor());
|
||||
alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(mCustomThemeWrapper.getPrimaryTextColor());
|
||||
});
|
||||
|
||||
for (int i = 0; i < trackGroups.length; i++) {
|
||||
|
@ -492,26 +492,26 @@ public class CustomizeMainPageTabsFragment extends Fragment {
|
||||
|
||||
tab3AddImageView.setOnClickListener(view -> selectName(2));
|
||||
|
||||
showMultiredditsSwitchMaterial.setChecked(mainActivityTabsSharedPreferences.getBoolean(accountName + SharedPreferencesUtils.MAIN_PAGE_SHOW_MULTIREDDITS, false));
|
||||
showMultiredditsSwitchMaterial.setOnCheckedChangeListener((compoundButton, b) -> mainActivityTabsSharedPreferences.edit().putBoolean(accountName + SharedPreferencesUtils.MAIN_PAGE_SHOW_MULTIREDDITS, b).apply());
|
||||
showMultiredditsSwitchMaterial.setChecked(mainActivityTabsSharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.MAIN_PAGE_SHOW_MULTIREDDITS, false));
|
||||
showMultiredditsSwitchMaterial.setOnCheckedChangeListener((compoundButton, b) -> mainActivityTabsSharedPreferences.edit().putBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.MAIN_PAGE_SHOW_MULTIREDDITS, b).apply());
|
||||
showMultiredditsLinearLayout.setOnClickListener(view -> {
|
||||
showMultiredditsSwitchMaterial.performClick();
|
||||
});
|
||||
|
||||
showFavoriteMultiredditsSwitchMaterial.setChecked(mainActivityTabsSharedPreferences.getBoolean(accountName + SharedPreferencesUtils.MAIN_PAGE_SHOW_FAVORITE_MULTIREDDITS, false));
|
||||
showFavoriteMultiredditsSwitchMaterial.setOnCheckedChangeListener((compoundButton, b) -> mainActivityTabsSharedPreferences.edit().putBoolean(accountName + SharedPreferencesUtils.MAIN_PAGE_SHOW_FAVORITE_MULTIREDDITS, b).apply());
|
||||
showFavoriteMultiredditsSwitchMaterial.setChecked(mainActivityTabsSharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.MAIN_PAGE_SHOW_FAVORITE_MULTIREDDITS, false));
|
||||
showFavoriteMultiredditsSwitchMaterial.setOnCheckedChangeListener((compoundButton, b) -> mainActivityTabsSharedPreferences.edit().putBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.MAIN_PAGE_SHOW_FAVORITE_MULTIREDDITS, b).apply());
|
||||
showFavoriteMultiredditsLinearLayout.setOnClickListener(view -> {
|
||||
showFavoriteMultiredditsSwitchMaterial.performClick();
|
||||
});
|
||||
|
||||
showSubscribedSubredditsSwitchMaterial.setChecked(mainActivityTabsSharedPreferences.getBoolean(accountName + SharedPreferencesUtils.MAIN_PAGE_SHOW_SUBSCRIBED_SUBREDDITS, false));
|
||||
showSubscribedSubredditsSwitchMaterial.setOnCheckedChangeListener((compoundButton, b) -> mainActivityTabsSharedPreferences.edit().putBoolean(accountName + SharedPreferencesUtils.MAIN_PAGE_SHOW_SUBSCRIBED_SUBREDDITS, b).apply());
|
||||
showSubscribedSubredditsSwitchMaterial.setChecked(mainActivityTabsSharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.MAIN_PAGE_SHOW_SUBSCRIBED_SUBREDDITS, false));
|
||||
showSubscribedSubredditsSwitchMaterial.setOnCheckedChangeListener((compoundButton, b) -> mainActivityTabsSharedPreferences.edit().putBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.MAIN_PAGE_SHOW_SUBSCRIBED_SUBREDDITS, b).apply());
|
||||
showSubscribedSubredditsLinearLayout.setOnClickListener(view -> {
|
||||
showSubscribedSubredditsSwitchMaterial.performClick();
|
||||
});
|
||||
|
||||
showFavoriteSubscribedSubredditsSwitchMaterial.setChecked(mainActivityTabsSharedPreferences.getBoolean(accountName + SharedPreferencesUtils.MAIN_PAGE_SHOW_FAVORITE_SUBSCRIBED_SUBREDDITS, false));
|
||||
showFavoriteSubscribedSubredditsSwitchMaterial.setOnCheckedChangeListener((compoundButton, b) -> mainActivityTabsSharedPreferences.edit().putBoolean(accountName + SharedPreferencesUtils.MAIN_PAGE_SHOW_FAVORITE_SUBSCRIBED_SUBREDDITS, b).apply());
|
||||
showFavoriteSubscribedSubredditsSwitchMaterial.setChecked(mainActivityTabsSharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.MAIN_PAGE_SHOW_FAVORITE_SUBSCRIBED_SUBREDDITS, false));
|
||||
showFavoriteSubscribedSubredditsSwitchMaterial.setOnCheckedChangeListener((compoundButton, b) -> mainActivityTabsSharedPreferences.edit().putBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.MAIN_PAGE_SHOW_FAVORITE_SUBSCRIBED_SUBREDDITS, b).apply());
|
||||
showFavoriteSubscribedSubredditsLinearLayout.setOnClickListener(view -> {
|
||||
showFavoriteSubscribedSubredditsSwitchMaterial.performClick();
|
||||
});
|
||||
|
@ -119,6 +119,14 @@
|
||||
android:src="@drawable/ic_file_download_toolbar_white_24dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/playback_speed_image_view_exo_playback_control_view"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="16dp"
|
||||
android:src="@drawable/ic_playback_speed_toolbar_24dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</com.google.android.material.bottomappbar.BottomAppBar>
|
||||
|
@ -31,6 +31,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:show_timeout="1500"
|
||||
app:auto_show="false"
|
||||
app:controller_layout_id="@layout/exo_autoplay_playback_control_view" />
|
||||
|
||||
<pl.droidsonroids.gif.GifImageView
|
||||
|
@ -31,6 +31,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:show_timeout="1500"
|
||||
app:auto_show="false"
|
||||
app:controller_layout_id="@layout/exo_autoplay_playback_control_view_legacy" />
|
||||
|
||||
<pl.droidsonroids.gif.GifImageView
|
||||
|
@ -214,6 +214,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:show_timeout="1500"
|
||||
app:auto_show="false"
|
||||
app:controller_layout_id="@layout/exo_autoplay_playback_control_view" />
|
||||
|
||||
<pl.droidsonroids.gif.GifImageView
|
||||
|
@ -214,6 +214,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:show_timeout="1500"
|
||||
app:auto_show="false"
|
||||
app:controller_layout_id="@layout/exo_autoplay_playback_control_view_legacy" />
|
||||
|
||||
<pl.droidsonroids.gif.GifImageView
|
||||
|
@ -208,6 +208,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:show_timeout="1500"
|
||||
app:auto_show="false"
|
||||
app:controller_layout_id="@layout/exo_autoplay_playback_control_view" />
|
||||
|
||||
<pl.droidsonroids.gif.GifImageView
|
||||
|
@ -208,6 +208,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:show_timeout="1500"
|
||||
app:auto_show="false"
|
||||
app:controller_layout_id="@layout/exo_autoplay_playback_control_view_legacy" />
|
||||
|
||||
<pl.droidsonroids.gif.GifImageView
|
||||
|
@ -216,8 +216,7 @@
|
||||
android:id="@+id/image_view_item_post_with_preview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitStart" />
|
||||
android:adjustViewBounds="true" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/video_or_gif_indicator_image_view_item_post_with_preview"
|
||||
|
Loading…
Reference in New Issue
Block a user