From 4204ce47737afc3a40e678688c3e168f8f2caa52 Mon Sep 17 00:00:00 2001 From: Alex Ning Date: Tue, 6 Jul 2021 08:36:53 +0800 Subject: Pause rpan broadcast when switching to anther ViewRPANBroadcastFragment. --- app/src/main/AndroidManifest.xml | 1 + .../infinityforreddit/activities/RPANActivity.java | 27 ++++++++++++++++++---- .../fragments/ViewRPANBroadcastFragment.java | 12 ++++------ app/src/main/res/layout/activity_rpanactivity.xml | 7 ++++++ .../res/layout/fragment_view_rpan_broadcast.xml | 7 ------ 5 files changed, 34 insertions(+), 20 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 12f354fc..66c76e03 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -33,6 +33,7 @@ android:usesCleartextTraffic="true" tools:replace="android:label"> diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/RPANActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/RPANActivity.java index 7d041d21..57b419ee 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/RPANActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/RPANActivity.java @@ -1,11 +1,14 @@ package ml.docilealligator.infinityforreddit.activities; import android.content.SharedPreferences; +import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.media.AudioManager; import android.os.Bundle; import android.os.Handler; +import android.view.View; +import android.widget.ProgressBar; import android.widget.Toast; import androidx.annotation.NonNull; @@ -18,6 +21,9 @@ import androidx.fragment.app.FragmentActivity; import androidx.viewpager2.adapter.FragmentStateAdapter; import androidx.viewpager2.widget.ViewPager2; +import com.evernote.android.state.State; +import com.livefront.bridge.Bridge; + import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -53,6 +59,8 @@ public class RPANActivity extends AppCompatActivity { CoordinatorLayout coordinatorLayout; @BindView(R.id.view_pager_2_rpan_activity) ViewPager2 viewPager2; + @BindView(R.id.progress_bar_rpan_activity) + ProgressBar progressBar; @Inject @Named("strapi") Retrofit strapiRetrofit; @@ -68,8 +76,10 @@ public class RPANActivity extends AppCompatActivity { Executor mExecutor; private String mAccessToken; private String mAccountName; - private ArrayList rpanBroadcasts; - private String nextCursor; + @State + ArrayList rpanBroadcasts; + @State + String nextCursor; private SectionsPagerAdapter sectionsPagerAdapter; @Override @@ -93,23 +103,30 @@ public class RPANActivity extends AppCompatActivity { setVolumeControlStream(AudioManager.STREAM_MUSIC); + Bridge.restoreInstanceState(this, savedInstanceState); + ButterKnife.bind(this); ActionBar actionBar = getSupportActionBar(); Drawable upArrow = getResources().getDrawable(R.drawable.ic_arrow_back_white_24dp); actionBar.setHomeAsUpIndicator(upArrow); - actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.transparentActionBarAndExoPlayerControllerColor))); + actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#00000000"))); mAccessToken = mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCESS_TOKEN, null); mAccountName = mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCOUNT_NAME, null); - loadRPANVideos(); + if (rpanBroadcasts == null) { + loadRPANVideos(); + } else { + initializeViewPager(); + } } private void loadRPANVideos() { strapiRetrofit.create(Strapi.class).getAllBroadcasts(APIUtils.getOAuthHeader(mAccessToken)).enqueue(new Callback() { @Override public void onResponse(@NonNull Call call, @NonNull Response response) { + progressBar.setVisibility(View.GONE); if (response.isSuccessful()) { parseRPANBroadcasts(response.body()); } else { @@ -120,6 +137,7 @@ public class RPANActivity extends AppCompatActivity { @Override public void onFailure(@NonNull Call call, @NonNull Throwable t) { + progressBar.setVisibility(View.GONE); Toast.makeText(RPANActivity.this, R.string.load_rpan_broadcasts_failed, Toast.LENGTH_SHORT).show(); } @@ -199,7 +217,6 @@ public class RPANActivity extends AppCompatActivity { sectionsPagerAdapter = new SectionsPagerAdapter(this); viewPager2.setAdapter(sectionsPagerAdapter); viewPager2.setOffscreenPageLimit(3); - viewPager2.setUserInputEnabled(!mSharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_SWIPING_BETWEEN_TABS, false)); //fixViewPager2Sensitivity(viewPager2); } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRPANBroadcastFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRPANBroadcastFragment.java index 468a931f..80f98cee 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRPANBroadcastFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRPANBroadcastFragment.java @@ -8,7 +8,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageButton; -import android.widget.ProgressBar; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; @@ -50,8 +49,6 @@ public class ViewRPANBroadcastFragment extends Fragment { @BindView(R.id.player_view_view_rpan_broadcast_fragment) PlayerView playerView; - @BindView(R.id.progress_bar_view_rpan_broadcast_fragment) - ProgressBar progressBar; @BindView(R.id.mute_exo_playback_control_view) ImageButton muteButton; @BindView(R.id.hd_exo_playback_control_view) @@ -124,7 +121,6 @@ public class ViewRPANBroadcastFragment extends Fragment { if (resumePosition > 0) { player.seekTo(resumePosition); } - player.setPlayWhenReady(true); wasPlaying = true; boolean muteVideo = mSharedPreferences.getBoolean(SharedPreferencesUtils.MUTE_VIDEO, false) || @@ -214,16 +210,16 @@ public class ViewRPANBroadcastFragment extends Fragment { } @Override - public void onStart() { - super.onStart(); + public void onResume() { + super.onResume(); if (wasPlaying) { player.setPlayWhenReady(true); } } @Override - public void onStop() { - super.onStop(); + public void onPause() { + super.onPause(); wasPlaying = player.getPlayWhenReady(); player.setPlayWhenReady(false); } diff --git a/app/src/main/res/layout/activity_rpanactivity.xml b/app/src/main/res/layout/activity_rpanactivity.xml index 570fddb2..b7e22b40 100644 --- a/app/src/main/res/layout/activity_rpanactivity.xml +++ b/app/src/main/res/layout/activity_rpanactivity.xml @@ -6,6 +6,7 @@ android:layout_height="match_parent" android:background="#000000" android:id="@+id/coordinator_layout_rpan_activity" + android:keepScreenOn="true" tools:context=".activities.RPANActivity"> + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_view_rpan_broadcast.xml b/app/src/main/res/layout/fragment_view_rpan_broadcast.xml index fdfe62c6..bab40403 100644 --- a/app/src/main/res/layout/fragment_view_rpan_broadcast.xml +++ b/app/src/main/res/layout/fragment_view_rpan_broadcast.xml @@ -12,11 +12,4 @@ android:layout_height="match_parent" app:controller_layout_id="@layout/exo_playback_control_view" /> - - \ No newline at end of file -- cgit v1.2.3