-Expanded minimize to exit to allow resuming on background player.
-Modified minimize to exit toggle to selection dialog.
This commit is contained in:
parent
4fc37a7321
commit
e1df4757e4
5 changed files with 75 additions and 18 deletions
|
|
@ -213,12 +213,7 @@ public final class MainVideoPlayer extends AppCompatActivity
|
|||
|
||||
isInMultiWindow = false;
|
||||
|
||||
if (playerImpl == null) return;
|
||||
if (PlayerHelper.isMinimizeOnExitEnabled(this)) {
|
||||
playerImpl.onFullScreenButtonClicked();
|
||||
} else {
|
||||
playerImpl.destroy();
|
||||
}
|
||||
if (playerImpl != null) playerImpl.terminate();
|
||||
}
|
||||
|
||||
/*//////////////////////////////////////////////////////////////////////////
|
||||
|
|
@ -448,6 +443,20 @@ public final class MainVideoPlayer extends AppCompatActivity
|
|||
switchPopupButton.setOnClickListener(this);
|
||||
}
|
||||
|
||||
public void terminate() {
|
||||
switch (PlayerHelper.getMinimizeOnExitAction(context)) {
|
||||
case PlayerHelper.MinimizeMode.MINIMIZE_ON_EXIT_MODE_BACKGROUND:
|
||||
onPlayBackgroundButtonClicked();
|
||||
break;
|
||||
case PlayerHelper.MinimizeMode.MINIMIZE_ON_EXIT_MODE_POPUP:
|
||||
onFullScreenButtonClicked();
|
||||
break;
|
||||
case PlayerHelper.MinimizeMode.MINIMIZE_ON_EXIT_MODE_NONE:
|
||||
destroy();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*//////////////////////////////////////////////////////////////////////////
|
||||
// ExoPlayer Video Listener
|
||||
//////////////////////////////////////////////////////////////////////////*/
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import android.content.Context;
|
|||
import android.content.SharedPreferences;
|
||||
import android.os.Build;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.annotation.IntDef;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.view.accessibility.CaptioningManager;
|
||||
|
|
@ -28,6 +29,7 @@ import org.schabi.newpipe.player.playqueue.PlayQueue;
|
|||
import org.schabi.newpipe.player.playqueue.PlayQueueItem;
|
||||
import org.schabi.newpipe.player.playqueue.SinglePlayQueue;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.NumberFormat;
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -42,6 +44,8 @@ import java.util.concurrent.TimeUnit;
|
|||
import static com.google.android.exoplayer2.ui.AspectRatioFrameLayout.RESIZE_MODE_FILL;
|
||||
import static com.google.android.exoplayer2.ui.AspectRatioFrameLayout.RESIZE_MODE_FIT;
|
||||
import static com.google.android.exoplayer2.ui.AspectRatioFrameLayout.RESIZE_MODE_ZOOM;
|
||||
import static java.lang.annotation.RetentionPolicy.SOURCE;
|
||||
import static org.schabi.newpipe.player.helper.PlayerHelper.MinimizeMode.*;
|
||||
|
||||
public class PlayerHelper {
|
||||
private PlayerHelper() {}
|
||||
|
|
@ -51,6 +55,14 @@ public class PlayerHelper {
|
|||
private static final NumberFormat speedFormatter = new DecimalFormat("0.##x");
|
||||
private static final NumberFormat pitchFormatter = new DecimalFormat("##%");
|
||||
|
||||
@Retention(SOURCE)
|
||||
@IntDef({MINIMIZE_ON_EXIT_MODE_NONE, MINIMIZE_ON_EXIT_MODE_BACKGROUND,
|
||||
MINIMIZE_ON_EXIT_MODE_POPUP})
|
||||
public @interface MinimizeMode {
|
||||
int MINIMIZE_ON_EXIT_MODE_NONE = 0;
|
||||
int MINIMIZE_ON_EXIT_MODE_BACKGROUND = 1;
|
||||
int MINIMIZE_ON_EXIT_MODE_POPUP = 2;
|
||||
}
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// Exposed helpers
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
|
@ -173,8 +185,20 @@ public class PlayerHelper {
|
|||
return isAutoQueueEnabled(context, false);
|
||||
}
|
||||
|
||||
public static boolean isMinimizeOnExitEnabled(@NonNull final Context context) {
|
||||
return isMinimizeOnExitEnabled(context, false);
|
||||
@MinimizeMode
|
||||
public static int getMinimizeOnExitAction(@NonNull final Context context) {
|
||||
final String defaultAction = context.getString(R.string.minimize_on_exit_none_key);
|
||||
final String popupAction = context.getString(R.string.minimize_on_exit_popup_key);
|
||||
final String backgroundAction = context.getString(R.string.minimize_on_exit_background_key);
|
||||
|
||||
final String action = getMinimizeOnExitAction(context, defaultAction);
|
||||
if (action.equals(popupAction)) {
|
||||
return MINIMIZE_ON_EXIT_MODE_POPUP;
|
||||
} else if (action.equals(backgroundAction)) {
|
||||
return MINIMIZE_ON_EXIT_MODE_BACKGROUND;
|
||||
} else {
|
||||
return MINIMIZE_ON_EXIT_MODE_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
|
@ -326,7 +350,9 @@ public class PlayerHelper {
|
|||
}
|
||||
}
|
||||
|
||||
private static boolean isMinimizeOnExitEnabled(@NonNull final Context context, final boolean b) {
|
||||
return getPreferences(context).getBoolean(context.getString(R.string.minimize_on_exit_key), b);
|
||||
private static String getMinimizeOnExitAction(@NonNull final Context context,
|
||||
final String key) {
|
||||
return getPreferences(context).getString(context.getString(R.string.minimize_on_exit_key),
|
||||
key);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue