diff options
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> |