diff options
author | ByteHamster <info@bytehamster.com> | 2021-10-14 21:40:12 +0200 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2021-10-14 21:40:12 +0200 |
commit | e734d43e7287a0f0f3f678c5875a34bf6bc75716 (patch) | |
tree | 7feb076b68c10f804c4784c10c498d750d72f0b9 /app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java | |
parent | 66250bebea5e2bef515651d310811ea7682a3c13 (diff) | |
parent | f4d3ebb22de54985466c5776e22ca4da8b3c7acc (diff) | |
download | AntennaPod-e734d43e7287a0f0f3f678c5875a34bf6bc75716.zip |
Merge branch 'master' into develop
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java index dffd49c45..5d13f6f00 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java @@ -1,15 +1,17 @@ package de.danoeh.antennapod.dialog; -import android.app.Dialog; +import android.os.Build; import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; +import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; -import androidx.fragment.app.DialogFragment; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.bottomsheet.BottomSheetDialogFragment; import com.google.android.material.chip.Chip; import com.google.android.material.snackbar.Snackbar; import de.danoeh.antennapod.R; @@ -25,7 +27,7 @@ import java.util.Collections; import java.util.List; import java.util.Locale; -public class VariableSpeedDialog extends DialogFragment { +public class VariableSpeedDialog extends BottomSheetDialogFragment { private SpeedSelectionAdapter adapter; private final DecimalFormat speedFormat; private PlaybackController controller; @@ -70,12 +72,10 @@ public class VariableSpeedDialog extends DialogFragment { controller = null; } - @NonNull + @Nullable @Override - public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { - AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); - builder.setPositiveButton(R.string.close_label, null); - + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { View root = View.inflate(getContext(), R.layout.speed_select_dialog, null); speedSeekBar = root.findViewById(R.id.speed_seek_bar); speedSeekBar.setProgressChangedListener(multiplier -> { @@ -95,9 +95,7 @@ public class VariableSpeedDialog extends DialogFragment { addCurrentSpeedChip.setCloseIconResource(R.drawable.ic_add); addCurrentSpeedChip.setOnCloseIconClickListener(v -> addCurrentSpeed()); addCurrentSpeedChip.setOnClickListener(v -> addCurrentSpeed()); - - builder.setView(root); - return builder.create(); + return root; } private void addCurrentSpeed() { @@ -119,8 +117,9 @@ public class VariableSpeedDialog extends DialogFragment { @NonNull public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { Chip chip = new Chip(getContext()); - chip.setCloseIconVisible(true); - chip.setCloseIconResource(R.drawable.ic_delete); + if (Build.VERSION.SDK_INT >= 17) { + chip.setTextAlignment(View.TEXT_ALIGNMENT_CENTER); + } return new ViewHolder(chip); } @@ -129,16 +128,19 @@ public class VariableSpeedDialog extends DialogFragment { float speed = selectedSpeeds.get(position); holder.chip.setText(speedFormat.format(speed)); - holder.chip.setOnCloseIconClickListener(v -> { + holder.chip.setOnLongClickListener(v -> { selectedSpeeds.remove(speed); UserPreferences.setPlaybackSpeedArray(selectedSpeeds); notifyDataSetChanged(); + return true; }); holder.chip.setOnClickListener(v -> { - if (controller != null) { - dismiss(); - controller.setPlaybackSpeed(speed); - } + new Handler(Looper.getMainLooper()).postDelayed(() -> { + if (controller != null) { + dismiss(); + controller.setPlaybackSpeed(speed); + } + }, 200); }); } |