Skip to content

Commit 5a97742

Browse files
author
Royce Whetstine
authored
Merge pull request #117 from ModdingFox/Issue_15
Issue 15 & 52
2 parents b35db82 + b088ce2 commit 5a97742

12 files changed

Lines changed: 180 additions & 79 deletions

File tree

.idea/jarRepositories.xml

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 15 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ android {
4141
dependencies {
4242
implementation fileTree(dir: 'libs', include: ['*.jar'])
4343

44+
implementation 'com.github.chrisbanes:PhotoView:2.0.0'
45+
4446
implementation 'androidx.appcompat:appcompat:1.1.0'
4547
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
4648
implementation 'com.google.android.material:material:1.1.0'

app/src/main/java/open/furaffinity/client/fragmentDrawers/view.java

Lines changed: 55 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,21 @@
88
import android.content.res.ColorStateList;
99
import android.database.sqlite.SQLiteDatabase;
1010
import android.os.Bundle;
11+
import android.view.MotionEvent;
1112
import android.view.View;
1213
import android.widget.ImageView;
1314
import android.widget.LinearLayout;
1415
import android.widget.TextView;
1516
import android.widget.Toast;
1617

1718
import androidx.annotation.NonNull;
19+
import androidx.constraintlayout.widget.ConstraintLayout;
1820
import androidx.coordinatorlayout.widget.CoordinatorLayout;
1921
import androidx.viewpager.widget.ViewPager;
2022

2123
import com.bumptech.glide.Glide;
2224
import com.bumptech.glide.load.engine.DiskCacheStrategy;
25+
import com.github.chrisbanes.photoview.OnSingleFlingListener;
2326
import com.google.android.material.floatingactionbutton.FloatingActionButton;
2427
import com.google.android.material.tabs.TabLayout;
2528

@@ -35,15 +38,17 @@
3538
import open.furaffinity.client.sqlite.historyContract.historyItemEntry;
3639
import open.furaffinity.client.sqlite.historyDBHelper;
3740
import open.furaffinity.client.utilities.fabCircular;
41+
import com.github.chrisbanes.photoview.PhotoView;
3842

3943
import static open.furaffinity.client.utilities.sendPm.sendPM;
4044

4145
public class view extends appFragment {
4246
@SuppressWarnings("FieldCanBeLocal")
43-
private CoordinatorLayout coordinatorLayout;
47+
private ConstraintLayout constraintLayout;
4448

4549
private TextView submissionTitle;
46-
private ImageView submissionImage;
50+
private PhotoView submissionImage;
51+
private ConstraintLayout submissionInfo;
4752
private LinearLayout submissionUserLinearLayout;
4853
private ImageView submissionUserIcon;
4954
private TextView submissionUser;
@@ -55,6 +60,7 @@ public class view extends appFragment {
5560
private FloatingActionButton submissionDownload;
5661
private FloatingActionButton sendNote;
5762
private FloatingActionButton shareLink;
63+
private FloatingActionButton imageInfoSwitch;
5864

5965
private loginCheck loginCheck;
6066
private open.furaffinity.client.pages.view page;
@@ -123,10 +129,11 @@ protected int getLayout() {
123129
}
124130

125131
protected void getElements(View rootView) {
126-
coordinatorLayout = rootView.findViewById(R.id.coordinatorLayout);
132+
constraintLayout = rootView.findViewById(R.id.constraintLayout);
127133

128134
submissionTitle = rootView.findViewById(R.id.submissionTitle);
129135
submissionImage = rootView.findViewById(R.id.submissionImage);
136+
submissionInfo = rootView.findViewById(R.id.submissionInfo);
130137
submissionUserLinearLayout = rootView.findViewById(R.id.submissionUserLinearLayout);
131138
submissionUserIcon = rootView.findViewById(R.id.submissionUserIcon);
132139
submissionUser = rootView.findViewById(R.id.submissionUser);
@@ -138,11 +145,13 @@ protected void getElements(View rootView) {
138145
submissionDownload = new FloatingActionButton(requireContext());
139146
sendNote = new FloatingActionButton(requireContext());
140147
shareLink = new FloatingActionButton(requireContext());
148+
imageInfoSwitch = new FloatingActionButton(requireContext());
141149

142150
submissionFavorite.setImageResource(R.drawable.ic_menu_favorite);
143151
submissionDownload.setImageResource(R.drawable.ic_menu_download);
144152
sendNote.setImageResource(R.drawable.ic_menu_newmessage);
145153
shareLink.setImageResource(R.drawable.ic_menu_send);
154+
imageInfoSwitch.setImageResource(R.drawable.ic_button_info);
146155

147156
//noinspection deprecation
148157
submissionFavorite.setBackgroundTintList(ColorStateList.valueOf(getResources().getColor(androidx.cardview.R.color.cardview_dark_background)));
@@ -152,17 +161,21 @@ protected void getElements(View rootView) {
152161
sendNote.setBackgroundTintList(ColorStateList.valueOf(getResources().getColor(androidx.cardview.R.color.cardview_dark_background)));
153162
//noinspection deprecation
154163
shareLink.setBackgroundTintList(ColorStateList.valueOf(getResources().getColor(androidx.cardview.R.color.cardview_dark_background)));
164+
//noinspection deprecation
165+
imageInfoSwitch.setBackgroundTintList(ColorStateList.valueOf(getResources().getColor(androidx.cardview.R.color.cardview_dark_background)));
155166

156-
coordinatorLayout.addView(submissionFavorite);
157-
coordinatorLayout.addView(submissionDownload);
158-
coordinatorLayout.addView(sendNote);
159-
coordinatorLayout.addView(shareLink);
167+
constraintLayout.addView(submissionFavorite);
168+
constraintLayout.addView(submissionDownload);
169+
constraintLayout.addView(sendNote);
170+
constraintLayout.addView(shareLink);
171+
constraintLayout.addView(imageInfoSwitch);
160172

161173
submissionFavorite.setVisibility(View.GONE);
162174
sendNote.setVisibility(View.GONE);
163175

164176
fab.addButton(submissionDownload, 1.5f, 270);
165177
fab.addButton(shareLink, 2.6f, 270);
178+
fab.addButton(imageInfoSwitch, 3.7f, 270);
166179
fab.setVisibility(View.GONE);
167180
}
168181

@@ -229,7 +242,31 @@ public void requestFailed(abstractPage abstractPage) {
229242
protected void updateUIElementListeners(View rootView) {
230243
submissionUserLinearLayout.setOnClickListener(v -> ((mainActivity) requireActivity()).setUserPath(page.getSubmissionUserPage()));
231244

232-
submissionImage.setOnTouchListener(new OnSwipeTouchListener(getActivity()) {
245+
submissionImage.setOnSingleFlingListener(new OnSingleFlingListener() {
246+
@Override
247+
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
248+
int SWIPE_THRESHOLD = 100;
249+
int SWIPE_VELOCITY_THRESHOLD = 100;
250+
boolean result = false;
251+
try {
252+
float diffY = e2.getY() - e1.getY();
253+
float diffX = e2.getX() - e1.getX();
254+
if (Math.abs(diffX) > Math.abs(diffY)) {
255+
if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) {
256+
if (diffX > 0) {
257+
onSwipeRight();
258+
} else {
259+
onSwipeLeft();
260+
}
261+
result = true;
262+
}
263+
}
264+
} catch (Exception exception) {
265+
exception.printStackTrace();
266+
}
267+
return result;
268+
}
269+
233270
public void onSwipeRight() {
234271
if (page.getNext() != null) {
235272
((mainActivity) requireActivity()).setViewPath(page.getNext());
@@ -268,6 +305,16 @@ public void requestFailed(abstractPage abstractPage) {
268305
sharingIntent.putExtra(Intent.EXTRA_TEXT, open.furaffinity.client.utilities.webClient.getBaseUrl() + page.getPagePath());
269306
startActivity(Intent.createChooser(sharingIntent, "Share via"));
270307
});
308+
309+
imageInfoSwitch.setOnClickListener(v -> {
310+
if(submissionImage.getVisibility() != View.GONE) {
311+
submissionImage.setVisibility(View.GONE);
312+
submissionInfo.setVisibility(View.VISIBLE);
313+
} else {
314+
submissionImage.setVisibility(View.VISIBLE);
315+
submissionInfo.setVisibility(View.GONE);
316+
}
317+
});
271318
}
272319

273320
@Override
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="24dp"
3+
android:height="24dp"
4+
android:viewportWidth="24"
5+
android:viewportHeight="24"
6+
android:tint="#FFFFFF"
7+
android:alpha="0.8">
8+
<path
9+
android:fillColor="@android:color/white"
10+
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-6h2v6zM13,9h-2L11,7h2v2z"/>
11+
</vector>
420 Bytes
Loading
276 Bytes
Loading
538 Bytes
Loading
797 Bytes
Loading

0 commit comments

Comments
 (0)