aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorAlex Ning <chineseperson5@gmail.com>2020-06-03 13:58:45 +0000
committerAlex Ning <chineseperson5@gmail.com>2020-06-03 13:58:45 +0000
commit470a59e104c07a58ad9859ec22f2734d337aa633 (patch)
tree8cd000e5f3c174ec37ab20f27425b5cb2c528337 /app
parent13d64eda146f8fcfe0572274b42db83e4ede7534 (diff)
downloadinfinity-for-reddit-470a59e104c07a58ad9859ec22f2734d337aa633.tar
infinity-for-reddit-470a59e104c07a58ad9859ec22f2734d337aa633.tar.gz
infinity-for-reddit-470a59e104c07a58ad9859ec22f2734d337aa633.tar.bz2
infinity-for-reddit-470a59e104c07a58ad9859ec22f2734d337aa633.tar.lz
infinity-for-reddit-470a59e104c07a58ad9859ec22f2734d337aa633.tar.xz
infinity-for-reddit-470a59e104c07a58ad9859ec22f2734d337aa633.tar.zst
infinity-for-reddit-470a59e104c07a58ad9859ec22f2734d337aa633.zip
Show a progress bar in ViewVideoActivity if it is a gfycat video and in ViewImgurMediaActivity.
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewImgurMediaActivity.java93
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewVideoActivity.java6
-rw-r--r--app/src/main/res/layout/activity_view_imgur_media.xml18
-rw-r--r--app/src/main/res/layout/activity_view_video.xml7
4 files changed, 84 insertions, 40 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewImgurMediaActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewImgurMediaActivity.java
index cf335696..30d49eb6 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewImgurMediaActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewImgurMediaActivity.java
@@ -8,8 +8,8 @@ import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
+import android.widget.LinearLayout;
import android.widget.ProgressBar;
-import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
@@ -61,6 +61,8 @@ public class ViewImgurMediaActivity extends AppCompatActivity {
ProgressBar progressBar;
@BindView(R.id.view_pager_view_imgur_media_activity)
ViewPager viewPager;
+ @BindView(R.id.load_image_error_linear_layout_view_imgur_media_activity)
+ LinearLayout errorLinearLayout;
private SectionsPagerAdapter sectionsPagerAdapter;
private ArrayList<ImgurMedia> images;
@Inject
@@ -109,49 +111,60 @@ public class ViewImgurMediaActivity extends AppCompatActivity {
}
if (images == null) {
- switch (getIntent().getIntExtra(EXTRA_IMGUR_TYPE, IMGUR_TYPE_IMAGE)) {
- case IMGUR_TYPE_GALLERY:
- imgurRetrofit.create(ImgurAPI.class).getGalleryImages(APIUtils.IMGUR_CLIENT_ID, imgurId)
- .enqueue(new Callback<String>() {
- @Override
- public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
- if (response.isSuccessful()) {
- new ParseImgurImagesAsyncTask(response.body(), new ParseImgurImagesAsyncTask.ParseImgurImagesAsyncTaskListener() {
- @Override
- public void success(ArrayList<ImgurMedia> images) {
- ViewImgurMediaActivity.this.images = images;
- progressBar.setVisibility(View.GONE);
- setupViewPager();
- }
-
- @Override
- public void failed() {
- progressBar.setVisibility(View.GONE);
- Toast.makeText(ViewImgurMediaActivity.this, R.string.error_fetching_imgur_media, Toast.LENGTH_SHORT).show();
- }
- }).execute();
- } else {
- progressBar.setVisibility(View.GONE);
- Toast.makeText(ViewImgurMediaActivity.this, R.string.error_fetching_imgur_media, Toast.LENGTH_SHORT).show();
- }
- }
-
- @Override
- public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
- progressBar.setVisibility(View.GONE);
- Toast.makeText(ViewImgurMediaActivity.this, R.string.error_fetching_imgur_media, Toast.LENGTH_SHORT).show();
- }
- });
- break;
- case IMGUR_TYPE_ALBUM:
- break;
- case IMGUR_TYPE_IMAGE:
- break;
- }
+ fetchImgurMedia(imgurId);
} else {
progressBar.setVisibility(View.GONE);
setupViewPager();
}
+
+ errorLinearLayout.setOnClickListener(view -> {
+ fetchImgurMedia(imgurId);
+ });
+ }
+
+ private void fetchImgurMedia(String imgurId) {
+ errorLinearLayout.setVisibility(View.GONE);
+ progressBar.setVisibility(View.VISIBLE);
+ switch (getIntent().getIntExtra(EXTRA_IMGUR_TYPE, IMGUR_TYPE_IMAGE)) {
+ case IMGUR_TYPE_GALLERY:
+ imgurRetrofit.create(ImgurAPI.class).getGalleryImages(APIUtils.IMGUR_CLIENT_ID, imgurId)
+ .enqueue(new Callback<String>() {
+ @Override
+ public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
+ if (response.isSuccessful()) {
+ new ParseImgurImagesAsyncTask(response.body(), new ParseImgurImagesAsyncTask.ParseImgurImagesAsyncTaskListener() {
+ @Override
+ public void success(ArrayList<ImgurMedia> images) {
+ ViewImgurMediaActivity.this.images = images;
+ progressBar.setVisibility(View.GONE);
+ errorLinearLayout.setVisibility(View.GONE);
+ setupViewPager();
+ }
+
+ @Override
+ public void failed() {
+ progressBar.setVisibility(View.GONE);
+ errorLinearLayout.setVisibility(View.VISIBLE);
+ }
+ }).execute();
+ } else {
+ progressBar.setVisibility(View.GONE);
+ errorLinearLayout.setVisibility(View.VISIBLE);
+ }
+ }
+
+ @Override
+ public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
+ progressBar.setVisibility(View.GONE);
+ errorLinearLayout.setVisibility(View.VISIBLE);
+ }
+ });
+ break;
+ case IMGUR_TYPE_ALBUM:
+ break;
+ case IMGUR_TYPE_IMAGE:
+ break;
+ }
}
private void setupViewPager() {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewVideoActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewVideoActivity.java
index 324acbfb..20941e54 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewVideoActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewVideoActivity.java
@@ -26,6 +26,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.LinearLayout;
+import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.Toast;
@@ -85,6 +86,8 @@ public class ViewVideoActivity extends AppCompatActivity {
private static final String VIDEO_URI_STATE = "VUS";
@BindView(R.id.relative_layout_view_video_activity)
RelativeLayout relativeLayout;
+ @BindView(R.id.progress_bar_view_video_activity)
+ ProgressBar progressBar;
@BindView(R.id.player_view_view_video_activity)
PlayerView videoPlayerView;
@BindView(R.id.mute_exo_playback_control_view)
@@ -342,6 +345,7 @@ public class ViewVideoActivity extends AppCompatActivity {
}
if (mVideoUri == null) {
+ progressBar.setVisibility(View.VISIBLE);
String gfycatId = intent.getStringExtra(EXTRA_GFYCAT_ID);
if (gfycatId != null && gfycatId.contains("-")) {
gfycatId = gfycatId.substring(0, gfycatId.indexOf('-'));
@@ -351,6 +355,7 @@ public class ViewVideoActivity extends AppCompatActivity {
new FetchGfycatVideoLinks.FetchGfycatVideoLinksListener() {
@Override
public void success(String webm, String mp4) {
+ progressBar.setVisibility(View.GONE);
mVideoUri = Uri.parse(webm);
videoDownloadUrl = mp4;
dataSourceFactory = new DefaultDataSourceFactory(ViewVideoActivity.this,
@@ -361,6 +366,7 @@ public class ViewVideoActivity extends AppCompatActivity {
@Override
public void failed() {
+ progressBar.setVisibility(View.GONE);
Toast.makeText(ViewVideoActivity.this, R.string.fetch_gfycat_video_failed, Toast.LENGTH_SHORT).show();
}
});
diff --git a/app/src/main/res/layout/activity_view_imgur_media.xml b/app/src/main/res/layout/activity_view_imgur_media.xml
index 8b6fa101..96936001 100644
--- a/app/src/main/res/layout/activity_view_imgur_media.xml
+++ b/app/src/main/res/layout/activity_view_imgur_media.xml
@@ -16,4 +16,22 @@
android:id="@+id/view_pager_view_imgur_media_activity"
tools:context=".Activity.ViewImgurMediaActivity" />
+ <LinearLayout
+ android:id="@+id/load_image_error_linear_layout_view_imgur_media_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/error_loading_image_tap_to_retry"
+ android:textSize="?attr/font_default" />
+
+ </LinearLayout>
+
</RelativeLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/activity_view_video.xml b/app/src/main/res/layout/activity_view_video.xml
index 8f23ea26..7d94d800 100644
--- a/app/src/main/res/layout/activity_view_video.xml
+++ b/app/src/main/res/layout/activity_view_video.xml
@@ -15,4 +15,11 @@
android:layout_height="match_parent"
app:controller_layout_id="@layout/exo_playback_control_view"/>
+ <ProgressBar
+ android:id="@+id/progress_bar_view_video_activity"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ android:visibility="gone" />
+
</RelativeLayout>