diff --git a/app/build.gradle b/app/build.gradle
index 6fc471d..18a0f06 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -11,8 +11,8 @@ android {
minSdkVersion 21
targetSdkVersion 30
- versionCode 37
- versionName "1.12.1"
+ versionCode 38
+ versionName "1.13.0"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
diff --git a/app/src/google_cast_lib/AndroidManifest.xml b/app/src/google_cast_lib/AndroidManifest.xml
index 4e12e9a..ab8f612 100644
--- a/app/src/google_cast_lib/AndroidManifest.xml
+++ b/app/src/google_cast_lib/AndroidManifest.xml
@@ -11,6 +11,12 @@
android:name="android.support.PARENT_ACTIVITY"
android:value=".PeertubeActivity" />
+
+
diff --git a/app/src/google_cast_lib/java/app/fedilab/fedilabtube/BasePeertubeActivity.java b/app/src/google_cast_lib/java/app/fedilab/fedilabtube/BasePeertubeActivity.java
index 0c6e1eb..8475b78 100644
--- a/app/src/google_cast_lib/java/app/fedilab/fedilabtube/BasePeertubeActivity.java
+++ b/app/src/google_cast_lib/java/app/fedilab/fedilabtube/BasePeertubeActivity.java
@@ -99,7 +99,7 @@ public class BasePeertubeActivity extends AppCompatActivity {
@Override
public void onSessionStarted(CastSession castSession, String s) {
- onApplicationConnected(castSession);
+ onApplicationConnected(castSession, true);
}
@Override
@@ -123,7 +123,7 @@ public class BasePeertubeActivity extends AppCompatActivity {
@Override
public void onSessionResumed(CastSession castSession, boolean b) {
- onApplicationConnected(castSession);
+ onApplicationConnected(castSession, false);
}
@Override
@@ -136,16 +136,20 @@ public class BasePeertubeActivity extends AppCompatActivity {
onApplicationDisconnected();
}
- private void onApplicationConnected(CastSession castSession) {
+ private void onApplicationConnected(CastSession castSession, boolean hide) {
mCastSession = castSession;
supportInvalidateOptionsMenu();
player.setPlayWhenReady(false);
- binding.doubleTapPlayerView.setVisibility(View.INVISIBLE);
+ if (hide) {
+ binding.doubleTapPlayerView.setVisibility(View.INVISIBLE);
+ }
+ binding.minController.castMiniController.setVisibility(View.VISIBLE);
loadCast();
}
private void onApplicationDisconnected() {
binding.doubleTapPlayerView.setVisibility(View.VISIBLE);
+ binding.minController.castMiniController.setVisibility(View.GONE);
supportInvalidateOptionsMenu();
}
};
diff --git a/app/src/google_cast_lib/res/layout/min_controller.xml b/app/src/google_cast_lib/res/layout/min_controller.xml
new file mode 100644
index 0000000..cdfbb88
--- /dev/null
+++ b/app/src/google_cast_lib/res/layout/min_controller.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/app/fedilab/fedilabtube/PeertubeActivity.java b/app/src/main/java/app/fedilab/fedilabtube/PeertubeActivity.java
index b1cfba5..ff375be 100644
--- a/app/src/main/java/app/fedilab/fedilabtube/PeertubeActivity.java
+++ b/app/src/main/java/app/fedilab/fedilabtube/PeertubeActivity.java
@@ -1425,7 +1425,7 @@ public class PeertubeActivity extends BasePeertubeActivity implements CommentLis
@Override
public void onConfigurationChanged(@NotNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
- if (binding.castController.getVisibility() == View.VISIBLE) {
+ if (binding.minController.castMiniController.getVisibility() == View.VISIBLE) {
return;
}
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
@@ -1478,7 +1478,7 @@ public class PeertubeActivity extends BasePeertubeActivity implements CommentLis
public void onResume() {
super.onResume();
onStopCalled = false;
- if (player != null && !player.isPlaying()) {
+ if (player != null && !player.isPlaying() && binding.minController.castMiniController.getVisibility() != View.VISIBLE) {
player.setPlayWhenReady(autoPlay);
if (autoPlay) {
binding.doubleTapPlayerView.hideController();
@@ -1494,7 +1494,7 @@ public class PeertubeActivity extends BasePeertubeActivity implements CommentLis
}
if (player != null && (!isPlayInMinimized || !playInMinimized)) {
player.setPlayWhenReady(false);
- } else if (playInMinimized && binding.castController.getVisibility() != View.VISIBLE) {
+ } else if (playInMinimized && binding.minController.castMiniController.getVisibility() != View.VISIBLE) {
enterVideoMode();
}
}
diff --git a/app/src/main/java/app/fedilab/fedilabtube/fragment/DisplayVideosFragment.java b/app/src/main/java/app/fedilab/fedilabtube/fragment/DisplayVideosFragment.java
index 9ddde10..9c6047f 100644
--- a/app/src/main/java/app/fedilab/fedilabtube/fragment/DisplayVideosFragment.java
+++ b/app/src/main/java/app/fedilab/fedilabtube/fragment/DisplayVideosFragment.java
@@ -259,11 +259,9 @@ public class DisplayVideosFragment extends Fragment implements AccountsHorizonta
@Override
public void onPause() {
super.onPause();
- if (binding.swipeContainer != null) {
- binding.swipeContainer.setEnabled(false);
- binding.swipeContainer.setRefreshing(false);
- binding.swipeContainer.clearAnimation();
- }
+ binding.swipeContainer.setEnabled(false);
+ binding.swipeContainer.setRefreshing(false);
+ binding.swipeContainer.clearAnimation();
if (getActivity() != null) {
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null && getView() != null) {
@@ -431,7 +429,7 @@ public class DisplayVideosFragment extends Fragment implements AccountsHorizonta
}
public void manageVIewRelationship(APIResponse apiResponse) {
- if (apiResponse.getError() != null) {
+ if (apiResponse.getError() != null || apiResponse.getRelationships() == null) {
return;
}
if (relationship == null) {
diff --git a/app/src/main/res/layout/activity_peertube.xml b/app/src/main/res/layout/activity_peertube.xml
index 287458a..4264b46 100644
--- a/app/src/main/res/layout/activity_peertube.xml
+++ b/app/src/main/res/layout/activity_peertube.xml
@@ -75,58 +75,9 @@
android:scaleType="fitCenter"
android:visibility="gone" />
-
-
-
-
-
-
-
-
-
-
-
-
+
{
- binding.castLoader.setVisibility(View.VISIBLE);
+ binding.minController.castPlay.setOnClickListener(v -> {
+ binding.minController.castLoader.setVisibility(View.VISIBLE);
if (BaseMainActivity.chromeCast != null) {
new Thread(() -> {
try {
@@ -76,11 +75,11 @@ public class BasePeertubeActivity extends AppCompatActivity {
if (icon != -1) {
Handler mainHandler = new Handler(Looper.getMainLooper());
int finalIcon = icon;
- Runnable myRunnable = () -> binding.castPlay.setImageResource(finalIcon);
+ Runnable myRunnable = () -> binding.minController.castPlay.setImageResource(finalIcon);
mainHandler.post(myRunnable);
}
Handler mainHandler = new Handler(Looper.getMainLooper());
- Runnable myRunnable = () -> binding.castLoader.setVisibility(View.GONE);
+ Runnable myRunnable = () -> binding.minController.castLoader.setVisibility(View.GONE);
mainHandler.post(myRunnable);
} catch (IOException e) {
e.printStackTrace();
@@ -123,7 +122,7 @@ public class BasePeertubeActivity extends AppCompatActivity {
Handler mainHandler = new Handler(Looper.getMainLooper());
Runnable myRunnable = () -> {
binding.doubleTapPlayerView.setVisibility(View.VISIBLE);
- binding.castController.setVisibility(View.GONE);
+ binding.minController.castMiniController.setVisibility(View.GONE);
};
mainHandler.post(myRunnable);
@@ -136,14 +135,14 @@ public class BasePeertubeActivity extends AppCompatActivity {
Handler mainHandler = new Handler(Looper.getMainLooper());
Runnable myRunnable = () -> {
invalidateOptionsMenu();
- binding.castLoader.setVisibility(View.VISIBLE);
+ binding.minController.castLoader.setVisibility(View.VISIBLE);
player.setPlayWhenReady(false);
binding.doubleTapPlayerView.setVisibility(View.GONE);
- binding.castController.setVisibility(View.VISIBLE);
+ binding.minController.castMiniController.setVisibility(View.VISIBLE);
dialog.dismiss();
- if (chromeCastVideoURL != null) {
+ if (videoURL != null) {
if (player != null && player.getCurrentPosition() > 0) {
- chromeCastVideoURL += "?start=" + (player.getCurrentPosition() / 1000);
+ videoURL += "?start=" + (player.getCurrentPosition() / 1000);
}
}
};
@@ -157,14 +156,14 @@ public class BasePeertubeActivity extends AppCompatActivity {
if (BaseMainActivity.chromeCast.isAppAvailable(CAST_ID) && !status.isAppRunning(CAST_ID)) {
BaseMainActivity.chromeCast.launchApp(CAST_ID);
}
- if (chromeCastVideoURL != null) {
- String mime = MimeTypeMap.getFileExtensionFromUrl(chromeCastVideoURL);
+ if (videoURL != null) {
+ String mime = MimeTypeMap.getFileExtensionFromUrl(videoURL);
BaseMainActivity.chromeCast.setRequestTimeout(60000);
- BaseMainActivity.chromeCast.load(peertube.getTitle(), null, chromeCastVideoURL, mime);
+ BaseMainActivity.chromeCast.load(peertube.getTitle(), null, videoURL, mime);
BaseMainActivity.chromeCast.play();
- binding.castPlay.setImageResource(R.drawable.ic_baseline_pause_32);
+ binding.minController.castPlay.setImageResource(R.drawable.ic_baseline_pause_32);
}
- myRunnable = () -> binding.castLoader.setVisibility(View.GONE);
+ myRunnable = () -> binding.minController.castLoader.setVisibility(View.GONE);
mainHandler.post(myRunnable);
} catch (IOException | GeneralSecurityException e) {
e.printStackTrace();
diff --git a/app/src/no_google_cast_lib/res/layout/min_controller.xml b/app/src/no_google_cast_lib/res/layout/min_controller.xml
new file mode 100644
index 0000000..4ae6eaa
--- /dev/null
+++ b/app/src/no_google_cast_lib/res/layout/min_controller.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file