Replace Hauler with Slidr to avoid weird behaviour in SubsamplingScaleImageView.

This commit is contained in:
Alex Ning 2020-07-14 22:45:21 +08:00
parent 19c2d0b979
commit 67cb832c46
9 changed files with 94 additions and 150 deletions

View File

@ -93,7 +93,6 @@ dependencies {
implementation 'com.atlassian.commonmark:commonmark:0.13.1'
implementation 'com.google.code.gson:gson:2.8.6'
implementation 'me.zhanghai.android.fastscroll:library:1.1.2'
implementation "com.thefuntasty.hauler:core:3.1.0"
// androidX startup for auto-init
implementation "androidx.startup:startup-runtime:1.0.0-alpha01"
//crashy

View File

@ -43,7 +43,7 @@
android:name=".Activity.ViewImgurMediaActivity"
android:configChanges="orientation|screenSize|layoutDirection"
android:parentActivityName=".Activity.MainActivity"
android:theme="@style/AppTheme.Draggable" />
android:theme="@style/AppTheme.SlidableWithActionBar" />
<activity
android:name=".Activity.ReportActivity"
android:label="@string/report_activity_label"
@ -294,12 +294,12 @@
<activity
android:name=".Activity.ViewImageOrGifActivity"
android:parentActivityName=".Activity.MainActivity"
android:theme="@style/AppTheme.Draggable" />
android:theme="@style/AppTheme.SlidableWithActionBar" />
<activity
android:name=".Activity.ViewVideoActivity"
android:configChanges="orientation|screenSize|layoutDirection"
android:parentActivityName=".Activity.MainActivity"
android:theme="@style/AppTheme.Draggable" />
android:theme="@style/AppTheme.SlidableWithActionBar" />
<activity
android:name=".Activity.ViewPostDetailActivity"
android:parentActivityName=".Activity.MainActivity"

View File

@ -42,8 +42,9 @@ import com.github.piasy.biv.loader.ImageLoader;
import com.github.piasy.biv.loader.glide.GlideImageLoader;
import com.github.piasy.biv.view.BigImageView;
import com.github.piasy.biv.view.GlideImageViewFactory;
import com.thefuntasty.hauler.DragDirection;
import com.thefuntasty.hauler.HaulerView;
import com.r0adkll.slidr.Slidr;
import com.r0adkll.slidr.model.SlidrConfig;
import com.r0adkll.slidr.model.SlidrPosition;
import java.io.File;
@ -77,8 +78,8 @@ public class ViewImageOrGifActivity extends AppCompatActivity implements SetAsWa
public static final String FILE_NAME_KEY = "FNK";
public static final String POST_TITLE_KEY = "PTK";
private static final int PERMISSION_REQUEST_WRITE_EXTERNAL_STORAGE = 0;
@BindView(R.id.hauler_view_view_image_or_gif_activity)
HaulerView mHaulerView;
/*@BindView(R.id.hauler_view_view_image_or_gif_activity)
HaulerView mHaulerView;*/
@BindView(R.id.progress_bar_view_image_or_gif_activity)
ProgressBar mProgressBar;
@BindView(R.id.image_view_view_image_or_gif_activity)
@ -133,7 +134,7 @@ public class ViewImageOrGifActivity extends AppCompatActivity implements SetAsWa
actionBar.setHomeAsUpIndicator(upArrow);
actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.transparentActionBarAndExoPlayerControllerColor)));
mHaulerView.setOnDragDismissedListener(dragDirection -> finish());
Slidr.attach(this, new SlidrConfig.Builder().position(SlidrPosition.VERTICAL).build());
mediaDownloader = new MediaDownloaderImpl();
@ -158,11 +159,11 @@ public class ViewImageOrGifActivity extends AppCompatActivity implements SetAsWa
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int windowHeight = displayMetrics.heightPixels;
mHaulerView.setOnDragDismissedListener(dragDirection -> {
/*mHaulerView.setOnDragDismissedListener(dragDirection -> {
int slide = dragDirection == DragDirection.UP ? R.anim.slide_out_up : R.anim.slide_out_down;
finish();
overridePendingTransition(0, slide);
});
});*/
mLoadErrorLinearLayout.setOnClickListener(view -> {
mProgressBar.setVisibility(View.VISIBLE);

View File

@ -20,8 +20,9 @@ import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.thefuntasty.hauler.DragDirection;
import com.thefuntasty.hauler.HaulerView;
import com.r0adkll.slidr.Slidr;
import com.r0adkll.slidr.model.SlidrConfig;
import com.r0adkll.slidr.model.SlidrPosition;
import org.json.JSONArray;
import org.json.JSONException;
@ -65,8 +66,6 @@ public class ViewImgurMediaActivity extends AppCompatActivity implements SetAsWa
public static final int IMGUR_TYPE_IMAGE = 2;
private static final String IMGUR_IMAGES_STATE = "IIS";
@BindView(R.id.hauler_view_view_imgur_media_activity)
HaulerView haulerView;
@BindView(R.id.progress_bar_view_imgur_media_activity)
ProgressBar progressBar;
@BindView(R.id.view_pager_view_imgur_media_activity)
@ -129,11 +128,7 @@ public class ViewImgurMediaActivity extends AppCompatActivity implements SetAsWa
images = savedInstanceState.getParcelableArrayList(IMGUR_IMAGES_STATE);
}
haulerView.setOnDragDismissedListener(dragDirection -> {
int slide = dragDirection == DragDirection.UP ? R.anim.slide_out_up : R.anim.slide_out_down;
finish();
overridePendingTransition(0, slide);
});
Slidr.attach(this, new SlidrConfig.Builder().position(SlidrPosition.VERTICAL).build());
if (images == null) {
fetchImgurMedia(imgurId);

View File

@ -46,8 +46,9 @@ import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory;
import com.google.android.exoplayer2.util.Util;
import com.google.android.material.snackbar.Snackbar;
import com.thefuntasty.hauler.DragDirection;
import com.thefuntasty.hauler.HaulerView;
import com.r0adkll.slidr.Slidr;
import com.r0adkll.slidr.model.SlidrConfig;
import com.r0adkll.slidr.model.SlidrPosition;
import javax.inject.Inject;
import javax.inject.Named;
@ -84,8 +85,6 @@ public class ViewVideoActivity extends AppCompatActivity {
private static final String IS_MUTE_STATE = "IMS";
private static final String VIDEO_DOWNLOAD_URL_STATE = "VDUS";
private static final String VIDEO_URI_STATE = "VUS";
@BindView(R.id.hauler_view_view_video_activity)
HaulerView haulerView;
@BindView(R.id.coordinator_layout_view_video_activity)
CoordinatorLayout coordinatorLayout;
@BindView(R.id.progress_bar_view_video_activity)
@ -165,11 +164,7 @@ public class ViewVideoActivity extends AppCompatActivity {
params.rightMargin = getResources().getDimensionPixelSize(resourceId);
}
haulerView.setOnDragDismissedListener(dragDirection -> {
int slide = dragDirection == DragDirection.UP ? R.anim.slide_out_up : R.anim.slide_out_down;
finish();
overridePendingTransition(0, slide);
});
Slidr.attach(this, new SlidrConfig.Builder().position(SlidrPosition.VERTICAL).build());
mediaDownloader = new MediaDownloaderImpl();

View File

@ -1,22 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<com.thefuntasty.hauler.HaulerView xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/hauler_view_view_image_or_gif_activity"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:dragUpEnabled="true"
android:background="@android:color/black"
tools:application="ml.docilealligator.infinityforreddit.Activity.ViewImageActivity">
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
android:id="@+id/progress_bar_view_image_or_gif_activity"
android:layout_width="wrap_content"
@ -50,8 +41,4 @@
</LinearLayout>
</RelativeLayout>
</androidx.core.widget.NestedScrollView>
</com.thefuntasty.hauler.HaulerView>
</RelativeLayout>

View File

@ -1,22 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<com.thefuntasty.hauler.HaulerView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/hauler_view_view_imgur_media_activity"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:dragUpEnabled="true"
tools:context=".Activity.ViewImgurMediaActivity">
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
android:id="@+id/progress_bar_view_imgur_media_activity"
android:layout_width="wrap_content"
@ -47,8 +36,4 @@
</LinearLayout>
</RelativeLayout>
</androidx.core.widget.NestedScrollView>
</com.thefuntasty.hauler.HaulerView>
</RelativeLayout>

View File

@ -1,24 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<com.thefuntasty.hauler.HaulerView
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/hauler_view_view_video_activity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true"
app:dragUpEnabled="true"
tools:application="ml.docilealligator.infinityforreddit.Activity.ViewVideoActivity">
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/coordinator_layout_view_video_activity"
android:layout_width="match_parent"
android:layout_height="match_parent">
tools:application="ml.docilealligator.infinityforreddit.Activity.ViewVideoActivity">
<com.google.android.exoplayer2.ui.PlayerView
android:id="@+id/player_view_view_video_activity"
@ -33,8 +22,4 @@
android:layout_gravity="center"
android:visibility="gone" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.core.widget.NestedScrollView>
</com.thefuntasty.hauler.HaulerView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -32,6 +32,13 @@
<item name="android:windowBackground">@android:color/transparent</item>
</style>
<style name="AppTheme.SlidableWithActionBar">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowBackground">@android:color/black</item>
<item name="android:fontFamily">?attr/font_family</item>
</style>
<style name="AppTheme.SlidableWithTranslucentWindow" parent="AppTheme.Slidable">
<item name="android:windowTranslucentStatus">true</item>
</style>
@ -40,16 +47,6 @@
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
<style name="AppTheme.Draggable" parent="AppTheme">
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowBackground">@android:color/black</item>
<item name="android:fontFamily">?attr/font_family</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.DayNight.ActionBar">
<item name="android:fontFamily">?attr/font_family</item>
</style>