aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/ViewImageActivity.java109
-rw-r--r--app/src/main/res/drawable/ic_error_outline_white_24dp.xml5
-rw-r--r--app/src/main/res/layout/activity_view_image.xml17
-rw-r--r--app/src/main/res/layout/item_post.xml20
4 files changed, 114 insertions, 37 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/ViewImageActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/ViewImageActivity.java
index af75b8b2..de897af7 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/ViewImageActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/ViewImageActivity.java
@@ -24,10 +24,12 @@ import android.support.v7.app.AppCompatActivity;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ForegroundColorSpan;
+import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
+import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.Toast;
@@ -59,6 +61,10 @@ public class ViewImageActivity extends AppCompatActivity {
static final String IMAGE_URL_KEY = "IUK";
static final String FILE_NAME_KEY = "FNK";
+ private ProgressBar mProgressBar;
+ private GestureImageView mImageView;
+ private LinearLayout mLoadErrorLinearLayout;
+
private boolean isActionBarHidden = false;
private boolean isDownloading = false;
@@ -72,6 +78,8 @@ public class ViewImageActivity extends AppCompatActivity {
private float touchY = -1.0f;
private float zoom = 1.0f;
+ private boolean isSwiping = false;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -88,8 +96,20 @@ public class ViewImageActivity extends AppCompatActivity {
setTitle(text);
final RelativeLayout relativeLayout = findViewById(R.id.parent_relative_layout_view_image_activity);
- final GestureImageView imageView = findViewById(R.id.image_view_view_image_activity);
- final ProgressBar progressBar = findViewById(R.id.progress_bar_view_image_activity);
+ mImageView = findViewById(R.id.image_view_view_image_activity);
+ mProgressBar = findViewById(R.id.progress_bar_view_image_activity);
+ mLoadErrorLinearLayout = findViewById(R.id.load_image_error_linear_layout_view_image_activity);
+
+ mLoadErrorLinearLayout.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if(!isSwiping) {
+ mProgressBar.setVisibility(View.VISIBLE);
+ mLoadErrorLinearLayout.setVisibility(View.GONE);
+ loadImage();
+ }
+ }
+ });
final float pxHeight = getResources().getDisplayMetrics().heightPixels;
@@ -134,10 +154,13 @@ public class ViewImageActivity extends AppCompatActivity {
}
});
+ loadImage();
+
swipe = new Swipe();
swipe.setListener(new SimpleSwipeListener() {
@Override
public void onSwipingUp(final MotionEvent event) {
+ isSwiping = true;
float nowY = event.getY();
float offset;
if (touchY == -1.0f) {
@@ -147,21 +170,22 @@ public class ViewImageActivity extends AppCompatActivity {
}
totalLengthY += offset;
touchY = nowY;
- imageView.animate()
+ mImageView.animate()
+ .y(totalLengthY)
+ .setDuration(0)
+ .start();
+ mLoadErrorLinearLayout.animate()
.y(totalLengthY)
.setDuration(0)
.start();
+ Log.i("total length", Float.toString(totalLengthY));
}
@Override
public boolean onSwipedUp(final MotionEvent event) {
- imageView.animate()
- .y(0)
- .setDuration(300)
- .start();
-
+ Log.i("total length", Float.toString(totalLengthY));
if (totalLengthY < -pxHeight / 8) {
- imageView.animate()
+ mImageView.animate()
.y(-pxHeight)
.setDuration(300)
.setListener(new Animator.AnimatorListener() {
@@ -186,8 +210,17 @@ public class ViewImageActivity extends AppCompatActivity {
}
})
.start();
+ mLoadErrorLinearLayout.animate()
+ .y(-pxHeight)
+ .setDuration(300)
+ .start();
} else {
- imageView.animate()
+ isSwiping = false;
+ mImageView.animate()
+ .y(0)
+ .setDuration(300)
+ .start();
+ mLoadErrorLinearLayout.animate()
.y(0)
.setDuration(300)
.start();
@@ -200,6 +233,7 @@ public class ViewImageActivity extends AppCompatActivity {
@Override
public void onSwipingDown(final MotionEvent event) {
+ isSwiping = true;
float nowY = event.getY();
float offset;
if (touchY == -1.0f) {
@@ -209,7 +243,11 @@ public class ViewImageActivity extends AppCompatActivity {
}
totalLengthY += offset;
touchY = nowY;
- imageView.animate()
+ mImageView.animate()
+ .y(totalLengthY)
+ .setDuration(0)
+ .start();
+ mLoadErrorLinearLayout.animate()
.y(totalLengthY)
.setDuration(0)
.start();
@@ -218,7 +256,7 @@ public class ViewImageActivity extends AppCompatActivity {
@Override
public boolean onSwipedDown(final MotionEvent event) {
if (totalLengthY > pxHeight / 8) {
- imageView.animate()
+ mImageView.animate()
.y(pxHeight)
.setDuration(300)
.setListener(new Animator.AnimatorListener() {
@@ -243,8 +281,17 @@ public class ViewImageActivity extends AppCompatActivity {
}
})
.start();
+ mLoadErrorLinearLayout.animate()
+ .y(pxHeight)
+ .setDuration(300)
+ .start();
} else {
- imageView.animate()
+ isSwiping = false;
+ mImageView.animate()
+ .y(0)
+ .setDuration(300)
+ .start();
+ mLoadErrorLinearLayout.animate()
.y(0)
.setDuration(300)
.start();
@@ -257,7 +304,7 @@ public class ViewImageActivity extends AppCompatActivity {
}
});
- imageView.getController().addOnStateChangeListener(new GestureController.OnStateChangeListener() {
+ mImageView.getController().addOnStateChangeListener(new GestureController.OnStateChangeListener() {
@Override
public void onStateChanged(State state) {
zoom = state.getZoom();
@@ -269,22 +316,9 @@ public class ViewImageActivity extends AppCompatActivity {
}
});
- imageView.getController().getSettings().setPanEnabled(true);
-
- Glide.with(this).load(mImageUrl).listener(new RequestListener<Drawable>() {
- @Override
- public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
- return false;
- }
-
- @Override
- public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
- progressBar.setVisibility(View.GONE);
- return false;
- }
- }).apply(new RequestOptions().fitCenter()).into(imageView);
+ mImageView.getController().getSettings().setPanEnabled(true);
- imageView.setOnClickListener(new View.OnClickListener() {
+ mImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (isActionBarHidden) {
@@ -307,6 +341,23 @@ public class ViewImageActivity extends AppCompatActivity {
});
}
+ private void loadImage() {
+ Glide.with(this).load(mImageUrl).listener(new RequestListener<Drawable>() {
+ @Override
+ public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
+ mProgressBar.setVisibility(View.GONE);
+ mLoadErrorLinearLayout.setVisibility(View.VISIBLE);
+ return false;
+ }
+
+ @Override
+ public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
+ mProgressBar.setVisibility(View.GONE);
+ return false;
+ }
+ }).apply(new RequestOptions().fitCenter()).into(mImageView);
+ }
+
@Override
public boolean onCreateOptionsMenu(Menu menu) {
mMenu = menu;
diff --git a/app/src/main/res/drawable/ic_error_outline_white_24dp.xml b/app/src/main/res/drawable/ic_error_outline_white_24dp.xml
new file mode 100644
index 00000000..93db1791
--- /dev/null
+++ b/app/src/main/res/drawable/ic_error_outline_white_24dp.xml
@@ -0,0 +1,5 @@
+<vector android:height="24dp" android:tint="#FFFFFF"
+ android:viewportHeight="24.0" android:viewportWidth="24.0"
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="#FF000000" android:pathData="M11,15h2v2h-2zM11,7h2v6h-2zM11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8z"/>
+</vector>
diff --git a/app/src/main/res/layout/activity_view_image.xml b/app/src/main/res/layout/activity_view_image.xml
index 066557bd..3ffcb7ff 100644
--- a/app/src/main/res/layout/activity_view_image.xml
+++ b/app/src/main/res/layout/activity_view_image.xml
@@ -20,4 +20,21 @@
android:layout_height="match_parent"
app:gest_fillViewport="true" />
+ <LinearLayout
+ android:id="@+id/load_image_error_linear_layout_view_image_activity"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:visibility="gone">
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:drawableTop="@drawable/ic_error_outline_white_24dp"
+ android:layout_gravity="center"
+ android:gravity="center"
+ android:textColor="@android:color/white"
+ android:text="@string/tap_to_retry" />
+
+ </LinearLayout>
+
</RelativeLayout>
diff --git a/app/src/main/res/layout/item_post.xml b/app/src/main/res/layout/item_post.xml
index c34ee582..2813669a 100644
--- a/app/src/main/res/layout/item_post.xml
+++ b/app/src/main/res/layout/item_post.xml
@@ -11,6 +11,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
+ android:background="#FFFFFF"
android:id="@+id/linear_layout_view_post_detail">
<RelativeLayout
@@ -18,9 +19,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
- android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
- android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="16dp">
@@ -34,11 +33,13 @@
<TextView
android:id="@+id/subreddit_text_view_best_post_item"
android:layout_width="wrap_content"
- android:layout_height="wrap_content"
+ android:layout_height="match_parent"
android:layout_marginStart="16dp"
+ android:layout_marginEnd="8dp"
android:layout_toStartOf="@id/stickied_post_image_view_best_post_item"
android:layout_toEndOf="@id/subreddit_icon_circle_image_view_best_post_item"
android:layout_centerVertical="true"
+ android:gravity="center_vertical"
android:textColor="#E91E63"/>
<ImageView
@@ -48,14 +49,16 @@
android:layout_toStartOf="@id/post_time_text_view_best_post_item"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
- android:tint="@color/colorPrimary"/>
+ android:tint="@color/colorPrimary"
+ android:visibility="gone"/>
<TextView
android:id="@+id/post_time_text_view_best_post_item"
android:layout_width="wrap_content"
- android:layout_height="wrap_content"
+ android:layout_height="match_parent"
android:layout_alignParentEnd="true"
- android:layout_centerVertical="true"/>
+ android:layout_centerVertical="true"
+ android:gravity="center_vertical"/>
</RelativeLayout>
@@ -82,7 +85,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/rounded_corner"
- android:layout_marginEnd="16dp"
+ android:layout_marginEnd="8dp"
android:layout_centerVertical="true"
android:textColor="@android:color/white"/>
@@ -92,6 +95,7 @@
android:layout_height="24dp"
android:layout_toEndOf="@id/type_text_view_item_best_post"
android:layout_centerVertical="true"
+ android:layout_marginStart="8dp"
android:visibility="gone"/>
<TextView
@@ -224,6 +228,6 @@
<View
android:layout_width="match_parent"
android:layout_height="1dp"
- android:background="#E0E0E0"/>
+ android:background="#F0F0F0"/>
</LinearLayout> \ No newline at end of file