summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java3
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/ItemSortDialog.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java13
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/SubscriptionsFilterDialog.java117
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java9
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java41
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java5
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/preferences/UserInterfacePreferencesFragment.java2
-rw-r--r--app/src/main/res/layout/audio_controls.xml13
-rw-r--r--app/src/main/res/layout/speed_select_dialog.xml64
-rw-r--r--app/src/main/res/menu/mediaplayer.xml7
13 files changed, 157 insertions, 125 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java
index e3473937e..fc371090e 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java
@@ -567,7 +567,8 @@ public class VideoplayerActivity extends CastEnabledActivity implements SeekBar.
menu.findItem(R.id.disable_sleeptimer_item).setVisible(controller.sleepTimerActive());
menu.findItem(R.id.player_switch_to_audio_only).setVisible(true);
- menu.findItem(R.id.audio_controls).setIcon(R.drawable.ic_sliders);
+
+ menu.findItem(R.id.audio_controls).setVisible(controller.getAudioTracks().size() >= 2);
menu.findItem(R.id.playback_speed).setVisible(true);
menu.findItem(R.id.player_show_chapters).setVisible(true);
return true;
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/ItemSortDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/ItemSortDialog.java
index 3090dd6a5..cd6cc4b0a 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/ItemSortDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/ItemSortDialog.java
@@ -27,6 +27,8 @@ public class ItemSortDialog extends BottomSheetDialogFragment {
@Nullable Bundle savedInstanceState) {
viewBinding = SortDialogBinding.inflate(inflater);
populateList();
+ viewBinding.keepSortedCheckbox.setOnCheckedChangeListener(
+ (buttonView, isChecked) -> ItemSortDialog.this.onSelectionChanged());
return viewBinding.getRoot();
}
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java
index a87dccdf5..009f33fe2 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java
@@ -10,9 +10,7 @@ import androidx.appcompat.app.AlertDialog;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import androidx.fragment.app.DialogFragment;
import android.widget.Button;
-import android.widget.CheckBox;
import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.core.util.playback.PlaybackController;
import java.util.List;
@@ -37,12 +35,10 @@ public class PlaybackControlsDialog extends DialogFragment {
controller = new PlaybackController(getActivity()) {
@Override
public void loadMediaInfo() {
- setupUi();
setupAudioTracks();
}
};
controller.init();
- setupUi();
}
@Override
@@ -62,15 +58,6 @@ public class PlaybackControlsDialog extends DialogFragment {
return dialog;
}
- private void setupUi() {
- final CheckBox skipSilence = dialog.findViewById(R.id.skipSilence);
- skipSilence.setChecked(UserPreferences.isSkipSilence());
- skipSilence.setOnCheckedChangeListener((buttonView, isChecked) -> {
- UserPreferences.setSkipSilence(isChecked);
- controller.setSkipSilence(isChecked);
- });
- }
-
private void setupAudioTracks() {
List<String> audioTracks = controller.getAudioTracks();
int selectedAudioTrack = controller.getSelectedAudioTrack();
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/SubscriptionsFilterDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/SubscriptionsFilterDialog.java
index cf77c2838..929e6b1ad 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/SubscriptionsFilterDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/SubscriptionsFilterDialog.java
@@ -1,42 +1,49 @@
package de.danoeh.antennapod.dialog;
-import android.content.Context;
+import android.app.Dialog;
+import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.FrameLayout;
import android.widget.LinearLayout;
-
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import com.google.android.material.bottomsheet.BottomSheetBehavior;
+import com.google.android.material.bottomsheet.BottomSheetDialog;
+import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.google.android.material.button.MaterialButtonToggleGroup;
-import com.google.android.material.dialog.MaterialAlertDialogBuilder;
-
-import org.greenrobot.eventbus.EventBus;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.core.feed.SubscriptionsFilterGroup;
+import de.danoeh.antennapod.databinding.FilterDialogBinding;
import de.danoeh.antennapod.databinding.FilterDialogRowBinding;
import de.danoeh.antennapod.event.UnreadItemsUpdateEvent;
import de.danoeh.antennapod.model.feed.SubscriptionsFilter;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
+import org.greenrobot.eventbus.EventBus;
-public class SubscriptionsFilterDialog {
- public static void showDialog(Context context) {
- SubscriptionsFilter subscriptionsFilter = UserPreferences.getSubscriptionsFilter();
- final Set<String> filterValues = new HashSet<>(Arrays.asList(subscriptionsFilter.getValues()));
- MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context);
- builder.setTitle(context.getString(R.string.pref_filter_feed_title));
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
- LayoutInflater inflater = LayoutInflater.from(context);
- View layout = inflater.inflate(R.layout.filter_dialog, null, false);
- LinearLayout rows = layout.findViewById(R.id.filter_rows);
- builder.setView(layout);
+public class SubscriptionsFilterDialog extends BottomSheetDialogFragment {
+ private LinearLayout rows;
+
+ @Nullable
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
+ @Nullable Bundle savedInstanceState) {
+ SubscriptionsFilter subscriptionsFilter = UserPreferences.getSubscriptionsFilter();
+ FilterDialogBinding dialogBinding = FilterDialogBinding.inflate(inflater);
+ rows = dialogBinding.filterRows;
for (SubscriptionsFilterGroup item : SubscriptionsFilterGroup.values()) {
FilterDialogRowBinding binding = FilterDialogRowBinding.inflate(inflater);
+ binding.getRoot().addOnButtonCheckedListener(
+ (group, checkedId, isChecked) -> updateFilter(getFilterValues()));
binding.buttonGroup.setWeightSum(item.values.length);
binding.filterButton1.setText(item.values[0].displayName);
binding.filterButton1.setTag(item.values[0].filterId);
@@ -50,38 +57,72 @@ public class SubscriptionsFilterDialog {
binding.filterButton1.setSingleLine(false);
binding.filterButton2.setMaxLines(3);
binding.filterButton2.setSingleLine(false);
- rows.addView(binding.getRoot());
+ rows.addView(binding.getRoot(), rows.getChildCount() - 1);
}
+ final Set<String> filterValues = new HashSet<>(Arrays.asList(subscriptionsFilter.getValues()));
for (String filterId : filterValues) {
if (!TextUtils.isEmpty(filterId)) {
- Button button = layout.findViewWithTag(filterId);
+ Button button = dialogBinding.getRoot().findViewWithTag(filterId);
if (button != null) {
((MaterialButtonToggleGroup) button.getParent()).check(button.getId());
}
}
}
- builder.setPositiveButton(R.string.confirm_label, (dialog, which) -> {
- filterValues.clear();
+ dialogBinding.confirmFiltermenu.setOnClickListener(view -> {
+ updateFilter(getFilterValues());
+ dismiss();
+ });
+ dialogBinding.resetFiltermenu.setOnClickListener(view -> {
+ updateFilter(Collections.emptySet());
for (int i = 0; i < rows.getChildCount(); i++) {
- if (!(rows.getChildAt(i) instanceof MaterialButtonToggleGroup)) {
- continue;
- }
- MaterialButtonToggleGroup group = (MaterialButtonToggleGroup) rows.getChildAt(i);
- if (group.getCheckedButtonId() == View.NO_ID) {
- continue;
- }
- String tag = (String) group.findViewById(group.getCheckedButtonId()).getTag();
- if (tag == null) { // Clear buttons use no tag
- continue;
+ if (rows.getChildAt(i) instanceof MaterialButtonToggleGroup) {
+ ((MaterialButtonToggleGroup) rows.getChildAt(i)).clearChecked();
}
- filterValues.add(tag);
}
- updateFilter(filterValues);
});
- builder.setNegativeButton(R.string.cancel_label, null);
- builder.show();
+ return dialogBinding.getRoot();
+ }
+
+ private Set<String> getFilterValues() {
+ Set<String> filterValues = new HashSet<>();
+ for (int i = 0; i < rows.getChildCount(); i++) {
+ if (!(rows.getChildAt(i) instanceof MaterialButtonToggleGroup)) {
+ continue;
+ }
+ MaterialButtonToggleGroup group = (MaterialButtonToggleGroup) rows.getChildAt(i);
+ if (group.getCheckedButtonId() == View.NO_ID) {
+ continue;
+ }
+ String tag = (String) group.findViewById(group.getCheckedButtonId()).getTag();
+ if (tag == null) { // Clear buttons use no tag
+ continue;
+ }
+ filterValues.add(tag);
+ }
+ return filterValues;
+ }
+
+ @NonNull
+ @Override
+ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
+ Dialog dialog = super.onCreateDialog(savedInstanceState);
+ dialog.setOnShowListener(dialogInterface -> {
+ BottomSheetDialog bottomSheetDialog = (BottomSheetDialog) dialogInterface;
+ setupFullHeight(bottomSheetDialog);
+ });
+ return dialog;
+ }
+
+ private void setupFullHeight(BottomSheetDialog bottomSheetDialog) {
+ FrameLayout bottomSheet = bottomSheetDialog.findViewById(R.id.design_bottom_sheet);
+ if (bottomSheet != null) {
+ BottomSheetBehavior<FrameLayout> behavior = BottomSheetBehavior.from(bottomSheet);
+ ViewGroup.LayoutParams layoutParams = bottomSheet.getLayoutParams();
+ bottomSheet.setLayoutParams(layoutParams);
+ behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
+ }
}
private static void updateFilter(Set<String> filterValues) {
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 0367e717b..8de7dce04 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java
@@ -6,6 +6,8 @@ import android.os.Looper;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.CheckBox;
+
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.GridLayoutManager;
@@ -94,6 +96,13 @@ public class VariableSpeedDialog extends BottomSheetDialogFragment {
addCurrentSpeedChip.setOnCloseIconClickListener(v -> addCurrentSpeed());
addCurrentSpeedChip.setCloseIconContentDescription(getString(R.string.add_preset));
addCurrentSpeedChip.setOnClickListener(v -> addCurrentSpeed());
+
+ final CheckBox skipSilence = root.findViewById(R.id.skipSilence);
+ skipSilence.setChecked(UserPreferences.isSkipSilence());
+ skipSilence.setOnCheckedChangeListener((buttonView, isChecked) -> {
+ UserPreferences.setSkipSilence(isChecked);
+ controller.setSkipSilence(isChecked);
+ });
return root;
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java
index f2a53ab7e..8b25c0e6a 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java
@@ -15,25 +15,16 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import com.google.android.material.appbar.MaterialToolbar;
import androidx.cardview.widget.CardView;
import androidx.fragment.app.Fragment;
import androidx.interpolator.view.animation.FastOutSlowInInterpolator;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import androidx.viewpager2.widget.ViewPager2;
+import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.elevation.SurfaceColors;
-import de.danoeh.antennapod.core.receiver.MediaButtonReceiver;
-import de.danoeh.antennapod.core.util.playback.PlaybackController;
-import de.danoeh.antennapod.dialog.MediaPlayerErrorDialog;
-import de.danoeh.antennapod.event.playback.BufferUpdateEvent;
-import de.danoeh.antennapod.event.playback.PlaybackServiceEvent;
-import de.danoeh.antennapod.event.PlayerErrorEvent;
-import de.danoeh.antennapod.event.playback.SleepTimerUpdatedEvent;
-import de.danoeh.antennapod.event.playback.SpeedChangedEvent;
-import de.danoeh.antennapod.playback.cast.CastEnabledActivity;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@@ -44,23 +35,31 @@ import java.util.List;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.MainActivity;
-import de.danoeh.antennapod.event.FavoritesEvent;
-import de.danoeh.antennapod.event.playback.PlaybackPositionEvent;
-import de.danoeh.antennapod.model.feed.Chapter;
-import de.danoeh.antennapod.event.UnreadItemsUpdateEvent;
-import de.danoeh.antennapod.model.feed.FeedItem;
-import de.danoeh.antennapod.model.feed.FeedMedia;
import de.danoeh.antennapod.core.feed.util.PlaybackSpeedUtils;
-import de.danoeh.antennapod.storage.preferences.UserPreferences;
+import de.danoeh.antennapod.core.receiver.MediaButtonReceiver;
import de.danoeh.antennapod.core.util.ChapterUtils;
import de.danoeh.antennapod.core.util.Converter;
import de.danoeh.antennapod.core.util.TimeSpeedConverter;
-import de.danoeh.antennapod.model.playback.Playable;
-import de.danoeh.antennapod.dialog.PlaybackControlsDialog;
+import de.danoeh.antennapod.core.util.playback.PlaybackController;
+import de.danoeh.antennapod.dialog.MediaPlayerErrorDialog;
import de.danoeh.antennapod.dialog.SkipPreferenceDialog;
import de.danoeh.antennapod.dialog.SleepTimerDialog;
import de.danoeh.antennapod.dialog.VariableSpeedDialog;
+import de.danoeh.antennapod.event.FavoritesEvent;
+import de.danoeh.antennapod.event.PlayerErrorEvent;
+import de.danoeh.antennapod.event.UnreadItemsUpdateEvent;
+import de.danoeh.antennapod.event.playback.BufferUpdateEvent;
+import de.danoeh.antennapod.event.playback.PlaybackPositionEvent;
+import de.danoeh.antennapod.event.playback.PlaybackServiceEvent;
+import de.danoeh.antennapod.event.playback.SleepTimerUpdatedEvent;
+import de.danoeh.antennapod.event.playback.SpeedChangedEvent;
import de.danoeh.antennapod.menuhandler.FeedItemMenuHandler;
+import de.danoeh.antennapod.model.feed.Chapter;
+import de.danoeh.antennapod.model.feed.FeedItem;
+import de.danoeh.antennapod.model.feed.FeedMedia;
+import de.danoeh.antennapod.model.playback.Playable;
+import de.danoeh.antennapod.playback.cast.CastEnabledActivity;
+import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.ui.common.PlaybackSpeedIndicatorView;
import de.danoeh.antennapod.view.ChapterSeekBar;
import de.danoeh.antennapod.view.PlayButton;
@@ -503,10 +502,6 @@ public class AudioPlayerFragment extends Fragment implements
if (itemId == R.id.disable_sleeptimer_item || itemId == R.id.set_sleeptimer_item) {
new SleepTimerDialog().show(getChildFragmentManager(), "SleepTimerDialog");
return true;
- } else if (itemId == R.id.audio_controls) {
- PlaybackControlsDialog dialog = PlaybackControlsDialog.newInstance();
- dialog.show(getChildFragmentManager(), "playback_controls");
- return true;
} else if (itemId == R.id.open_feed_item) {
if (feedItem != null) {
Intent intent = MainActivity.getIntentToOpenFeed(getContext(), feedItem.getFeedId());
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java
index eeca181cf..636c0245b 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java
@@ -382,7 +382,7 @@ public class NavDrawerFragment extends Fragment implements SharedPreferences.OnS
}
} else if (UserPreferences.getSubscriptionsFilter().isEnabled()
&& navAdapter.showSubscriptionList) {
- SubscriptionsFilterDialog.showDialog(requireContext());
+ new SubscriptionsFilterDialog().show(getChildFragmentManager(), "filter");
}
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
index dbaeb836c..1e32ee465 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
@@ -546,9 +546,11 @@ public class QueueFragment extends Fragment implements MaterialToolbar.OnMenuIte
if (UserPreferences.isQueueKeepSorted()) {
sortOrder = UserPreferences.getQueueKeepSortedOrder();
}
- View view = super.onCreateView(inflater, container, savedInstanceState);
+ final View view = super.onCreateView(inflater, container, savedInstanceState);
viewBinding.keepSortedCheckbox.setVisibility(View.VISIBLE);
viewBinding.keepSortedCheckbox.setChecked(UserPreferences.isQueueKeepSorted());
+ // Disable until something gets selected
+ viewBinding.keepSortedCheckbox.setEnabled(UserPreferences.isQueueKeepSorted());
return view;
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java
index 93ed4c2c9..7006edca9 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java
@@ -166,7 +166,8 @@ public class SubscriptionFragment extends Fragment
});
feedsFilteredMsg = root.findViewById(R.id.feeds_filtered_message);
- feedsFilteredMsg.setOnClickListener((l) -> SubscriptionsFilterDialog.showDialog(requireContext()));
+ feedsFilteredMsg.setOnClickListener((l) ->
+ new SubscriptionsFilterDialog().show(getChildFragmentManager(), "filter"));
SwipeRefreshLayout swipeRefreshLayout = root.findViewById(R.id.swipeRefresh);
swipeRefreshLayout.setDistanceToTriggerSync(getResources().getInteger(R.integer.swipe_refresh_distance));
@@ -221,7 +222,7 @@ public class SubscriptionFragment extends Fragment
FeedUpdateManager.runOnceOrAsk(requireContext());
return true;
} else if (itemId == R.id.subscriptions_filter) {
- SubscriptionsFilterDialog.showDialog(requireContext());
+ new SubscriptionsFilterDialog().show(getChildFragmentManager(), "filter");
return true;
} else if (itemId == R.id.subscriptions_sort) {
FeedSortDialog.showDialog(requireContext());
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/UserInterfacePreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/UserInterfacePreferencesFragment.java
index 66f592af2..c8521caab 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/UserInterfacePreferencesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/UserInterfacePreferencesFragment.java
@@ -71,7 +71,7 @@ public class UserInterfacePreferencesFragment extends PreferenceFragmentCompat {
});
findPreference(UserPreferences.PREF_FILTER_FEED)
.setOnPreferenceClickListener((preference -> {
- SubscriptionsFilterDialog.showDialog(requireContext());
+ new SubscriptionsFilterDialog().show(getChildFragmentManager(), "filter");
return true;
}));
diff --git a/app/src/main/res/layout/audio_controls.xml b/app/src/main/res/layout/audio_controls.xml
index 3abb70961..25f38a63f 100644
--- a/app/src/main/res/layout/audio_controls.xml
+++ b/app/src/main/res/layout/audio_controls.xml
@@ -19,19 +19,6 @@
android:visibility="gone"
android:layout_marginBottom="8dp" />
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="20dp"
- android:text="@string/audio_effects"
- style="@style/AntennaPod.TextView.ListItemPrimaryTitle" />
-
- <CheckBox
- android:id="@+id/skipSilence"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="@string/pref_skip_silence_title" />
-
</LinearLayout>
</ScrollView>
diff --git a/app/src/main/res/layout/speed_select_dialog.xml b/app/src/main/res/layout/speed_select_dialog.xml
index e4d78c3fa..0b9e422a8 100644
--- a/app/src/main/res/layout/speed_select_dialog.xml
+++ b/app/src/main/res/layout/speed_select_dialog.xml
@@ -1,45 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:padding="16dp"
- android:orientation="vertical">
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:padding="16dp">
<LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
<TextView
- android:text="@string/playback_speed"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- style="@style/AntennaPod.TextView.ListItemPrimaryTitle"/>
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="@string/playback_speed"
+ style="@style/AntennaPod.TextView.ListItemPrimaryTitle" />
<com.google.android.material.chip.Chip
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/add_current_speed_chip"/>
+ android:id="@+id/add_current_speed_chip"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+
</LinearLayout>
<de.danoeh.antennapod.view.PlaybackSpeedSeekBar
- android:id="@+id/speed_seek_bar"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="8dp">
- </de.danoeh.antennapod.view.PlaybackSpeedSeekBar>
+ android:id="@+id/speed_seek_bar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="8dp" />
<TextView
- android:text="@string/speed_presets"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- style="@style/AntennaPod.TextView.ListItemPrimaryTitle"
- android:layout_marginBottom="8dp"/>
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="8dp"
+ android:text="@string/speed_presets"
+ style="@style/AntennaPod.TextView.ListItemPrimaryTitle" />
<androidx.recyclerview.widget.RecyclerView
- android:id="@+id/selected_speeds_grid"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" />
+ android:id="@+id/selected_speeds_grid"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <CheckBox
+ android:id="@+id/skipSilence"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/pref_skip_silence_title" />
-</LinearLayout> \ No newline at end of file
+</LinearLayout>
diff --git a/app/src/main/res/menu/mediaplayer.xml b/app/src/main/res/menu/mediaplayer.xml
index 5f60fe6f5..a99151ac8 100644
--- a/app/src/main/res/menu/mediaplayer.xml
+++ b/app/src/main/res/menu/mediaplayer.xml
@@ -30,9 +30,9 @@
<item
android:id="@+id/audio_controls"
- android:icon="@drawable/ic_sliders"
android:title="@string/audio_controls"
- custom:showAsAction="always">
+ android:visible="false"
+ custom:showAsAction="never">
</item>
<item
@@ -74,8 +74,9 @@
<item
android:id="@+id/share_item"
+ android:icon="@drawable/ic_share"
android:menuCategory="container"
- custom:showAsAction="never"
+ custom:showAsAction="always"
android:title="@string/share_label">
</item>
</menu> \ No newline at end of file