Convert newpipe/util/PlayButtonHelper to kotlin
This commit is contained in:
parent
13186c0b15
commit
780e6a4848
@ -1,94 +0,0 @@
|
||||
package org.schabi.newpipe.util;
|
||||
|
||||
import android.content.Context;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.preference.PreferenceManager;
|
||||
|
||||
import org.schabi.newpipe.R;
|
||||
import org.schabi.newpipe.databinding.PlaylistControlBinding;
|
||||
import org.schabi.newpipe.fragments.list.playlist.PlaylistControlViewHolder;
|
||||
import org.schabi.newpipe.player.PlayerType;
|
||||
|
||||
/**
|
||||
* Utility class for play buttons and their respective click listeners.
|
||||
*/
|
||||
public final class PlayButtonHelper {
|
||||
|
||||
private PlayButtonHelper() {
|
||||
// utility class
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize {@link android.view.View.OnClickListener OnClickListener}
|
||||
* and {@link android.view.View.OnLongClickListener OnLongClickListener} for playlist control
|
||||
* buttons defined in {@link R.layout#playlist_control}.
|
||||
*
|
||||
* @param activity The activity to use for the {@link android.widget.Toast Toast}.
|
||||
* @param playlistControlBinding The binding of the
|
||||
* {@link R.layout#playlist_control playlist control layout}.
|
||||
* @param fragment The fragment to get the play queue from.
|
||||
*/
|
||||
public static void initPlaylistControlClickListener(
|
||||
@NonNull final AppCompatActivity activity,
|
||||
@NonNull final PlaylistControlBinding playlistControlBinding,
|
||||
@NonNull final PlaylistControlViewHolder fragment) {
|
||||
// click listener
|
||||
playlistControlBinding.playlistCtrlPlayAllButton.setOnClickListener(view -> {
|
||||
NavigationHelper.playOnMainPlayer(activity, fragment.getPlayQueue());
|
||||
showHoldToAppendToastIfNeeded(activity);
|
||||
});
|
||||
playlistControlBinding.playlistCtrlPlayPopupButton.setOnClickListener(view -> {
|
||||
NavigationHelper.playOnPopupPlayer(activity, fragment.getPlayQueue(), false);
|
||||
showHoldToAppendToastIfNeeded(activity);
|
||||
});
|
||||
playlistControlBinding.playlistCtrlPlayBgButton.setOnClickListener(view -> {
|
||||
NavigationHelper.playOnBackgroundPlayer(activity, fragment.getPlayQueue(), false);
|
||||
showHoldToAppendToastIfNeeded(activity);
|
||||
});
|
||||
|
||||
// long click listener
|
||||
playlistControlBinding.playlistCtrlPlayAllButton.setOnLongClickListener(view -> {
|
||||
NavigationHelper.enqueueOnPlayer(activity, fragment.getPlayQueue(), PlayerType.MAIN);
|
||||
return true;
|
||||
});
|
||||
playlistControlBinding.playlistCtrlPlayPopupButton.setOnLongClickListener(view -> {
|
||||
NavigationHelper.enqueueOnPlayer(activity, fragment.getPlayQueue(), PlayerType.POPUP);
|
||||
return true;
|
||||
});
|
||||
playlistControlBinding.playlistCtrlPlayBgButton.setOnLongClickListener(view -> {
|
||||
NavigationHelper.enqueueOnPlayer(activity, fragment.getPlayQueue(), PlayerType.AUDIO);
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the "hold to append" toast if the corresponding preference is enabled.
|
||||
*
|
||||
* @param context The context to show the toast.
|
||||
*/
|
||||
private static void showHoldToAppendToastIfNeeded(@NonNull final Context context) {
|
||||
if (shouldShowHoldToAppendTip(context)) {
|
||||
Toast.makeText(context, R.string.hold_to_append, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the "hold to append" toast should be shown.
|
||||
*
|
||||
* <p>
|
||||
* The tip is shown if the corresponding preference is enabled.
|
||||
* This is the default behaviour.
|
||||
* </p>
|
||||
*
|
||||
* @param context The context to get the preference.
|
||||
* @return {@code true} if the tip should be shown, {@code false} otherwise.
|
||||
*/
|
||||
public static boolean shouldShowHoldToAppendTip(@NonNull final Context context) {
|
||||
return PreferenceManager.getDefaultSharedPreferences(context)
|
||||
.getBoolean(context.getString(R.string.show_hold_to_append_key), true);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,96 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023-2026 NewPipe contributors <https://newpipe.net>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
package org.schabi.newpipe.util
|
||||
|
||||
import android.content.Context
|
||||
import android.view.View
|
||||
import android.view.View.OnLongClickListener
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.preference.PreferenceManager
|
||||
import org.schabi.newpipe.R
|
||||
import org.schabi.newpipe.databinding.PlaylistControlBinding
|
||||
import org.schabi.newpipe.fragments.list.playlist.PlaylistControlViewHolder
|
||||
import org.schabi.newpipe.player.PlayerType
|
||||
|
||||
/**
|
||||
* Utility class for play buttons and their respective click listeners.
|
||||
*/
|
||||
object PlayButtonHelper {
|
||||
/**
|
||||
* Initialize [OnClickListener][View.OnClickListener]
|
||||
* and [OnLongClickListener][OnLongClickListener] for playlist control
|
||||
* buttons defined in [R.layout.playlist_control].
|
||||
*
|
||||
* @param activity The activity to use for the [Toast][Toast].
|
||||
* @param playlistControlBinding The binding of the
|
||||
* [playlist control layout][R.layout.playlist_control].
|
||||
* @param fragment The fragment to get the play queue from.
|
||||
*/
|
||||
@JvmStatic
|
||||
fun initPlaylistControlClickListener(
|
||||
activity: AppCompatActivity,
|
||||
playlistControlBinding: PlaylistControlBinding,
|
||||
fragment: PlaylistControlViewHolder
|
||||
) {
|
||||
// click listener
|
||||
playlistControlBinding.playlistCtrlPlayAllButton.setOnClickListener {
|
||||
NavigationHelper.playOnMainPlayer(activity, fragment.getPlayQueue())
|
||||
showHoldToAppendToastIfNeeded(activity)
|
||||
}
|
||||
playlistControlBinding.playlistCtrlPlayPopupButton.setOnClickListener {
|
||||
NavigationHelper.playOnPopupPlayer(activity, fragment.getPlayQueue(), false)
|
||||
showHoldToAppendToastIfNeeded(activity)
|
||||
}
|
||||
playlistControlBinding.playlistCtrlPlayBgButton.setOnClickListener {
|
||||
NavigationHelper.playOnBackgroundPlayer(activity, fragment.getPlayQueue(), false)
|
||||
showHoldToAppendToastIfNeeded(activity)
|
||||
}
|
||||
|
||||
// long click listener
|
||||
playlistControlBinding.playlistCtrlPlayAllButton.setOnLongClickListener {
|
||||
NavigationHelper.enqueueOnPlayer(activity, fragment.getPlayQueue(), PlayerType.MAIN)
|
||||
true
|
||||
}
|
||||
playlistControlBinding.playlistCtrlPlayPopupButton.setOnLongClickListener {
|
||||
NavigationHelper.enqueueOnPlayer(activity, fragment.getPlayQueue(), PlayerType.POPUP)
|
||||
true
|
||||
}
|
||||
playlistControlBinding.playlistCtrlPlayBgButton.setOnLongClickListener {
|
||||
NavigationHelper.enqueueOnPlayer(activity, fragment.getPlayQueue(), PlayerType.AUDIO)
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the "hold to append" toast if the corresponding preference is enabled.
|
||||
*
|
||||
* @param context The context to show the toast.
|
||||
*/
|
||||
private fun showHoldToAppendToastIfNeeded(context: Context) {
|
||||
if (shouldShowHoldToAppendTip(context)) {
|
||||
Toast.makeText(context, R.string.hold_to_append, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the "hold to append" toast should be shown.
|
||||
*
|
||||
*
|
||||
*
|
||||
* The tip is shown if the corresponding preference is enabled.
|
||||
* This is the default behaviour.
|
||||
*
|
||||
*
|
||||
* @param context The context to get the preference.
|
||||
* @return `true` if the tip should be shown, `false` otherwise.
|
||||
*/
|
||||
@JvmStatic
|
||||
fun shouldShowHoldToAppendTip(context: Context): Boolean {
|
||||
return PreferenceManager.getDefaultSharedPreferences(context)
|
||||
.getBoolean(context.getString(R.string.show_hold_to_append_key), true)
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user