summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorByteHamster <ByteHamster@users.noreply.github.com>2021-07-24 17:47:09 +0200
committerGitHub <noreply@github.com>2021-07-24 17:47:09 +0200
commitdbac6cae4666f89e3ccb8ecbc2f1c5b06e381fa5 (patch)
tree092f2d6672d47631ddb1e84beca43cace03ae433 /app/src
parent210e32666824dc663100ff7f3999e0964b2f9d70 (diff)
parente7d9db0404076d7be6b4c8b461e71ee0a2b93f2c (diff)
downloadAntennaPod-dbac6cae4666f89e3ccb8ecbc2f1c5b06e381fa5.zip
Merge pull request #5200 from TacoTheDank/plugin-updates
Update plugins and Gradle
Diffstat (limited to 'app/src')
-rw-r--r--app/src/androidTest/java/de/test/antennapod/gpodnet/GPodnetServiceTest.java2
-rw-r--r--app/src/androidTest/java/de/test/antennapod/ui/VideoplayerActivityTest.java36
-rw-r--r--app/src/main/AndroidManifest.xml11
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/OpmlFeedChooserActivity.java25
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivity.java44
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java30
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java71
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java19
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java71
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java162
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java88
-rw-r--r--app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java115
-rw-r--r--app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java68
-rw-r--r--app/src/main/java/de/danoeh/antennapod/view/ShownotesWebView.java49
-rw-r--r--app/src/main/res/layout-sw720dp/main.xml39
-rw-r--r--app/src/main/res/layout/main.xml39
16 files changed, 405 insertions, 464 deletions
diff --git a/app/src/androidTest/java/de/test/antennapod/gpodnet/GPodnetServiceTest.java b/app/src/androidTest/java/de/test/antennapod/gpodnet/GPodnetServiceTest.java
index f1d71b07a..32ad5a694 100644
--- a/app/src/androidTest/java/de/test/antennapod/gpodnet/GPodnetServiceTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/gpodnet/GPodnetServiceTest.java
@@ -20,7 +20,7 @@ import static java.util.Collections.singletonList;
/**
* Test class for GpodnetService
*/
-@Ignore
+@Ignore("Needs valid credentials to run")
@RunWith(AndroidJUnit4.class)
public class GPodnetServiceTest {
diff --git a/app/src/androidTest/java/de/test/antennapod/ui/VideoplayerActivityTest.java b/app/src/androidTest/java/de/test/antennapod/ui/VideoplayerActivityTest.java
deleted file mode 100644
index 0dae22db1..000000000
--- a/app/src/androidTest/java/de/test/antennapod/ui/VideoplayerActivityTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package de.test.antennapod.ui;
-
-import android.content.Intent;
-import androidx.test.filters.MediumTest;
-import androidx.test.rule.ActivityTestRule;
-
-import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.activity.VideoplayerActivity;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.Test;
-
-import static androidx.test.espresso.Espresso.onView;
-import static androidx.test.espresso.assertion.ViewAssertions.matches;
-import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static androidx.test.espresso.matcher.ViewMatchers.withId;
-
-/**
- * Test class for VideoplayerActivity
- */
-@MediumTest
-@Ignore
-public class VideoplayerActivityTest {
-
- @Rule
- public ActivityTestRule<VideoplayerActivity> activityTestRule = new ActivityTestRule<>(VideoplayerActivity.class, false, false);
-
- /**
- * Test if activity can be started.
- */
- @Test
- public void testStartActivity() throws Exception {
- activityTestRule.launchActivity(new Intent());
- onView(withId(R.id.videoPlayerContainer)).check(matches(isDisplayed()));
- }
-}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 074ea0c1c..c03ff3a0a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,10 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
package="de.danoeh.antennapod"
android:installLocation="auto">
<uses-permission android:name="android.permission.INTERNET"/>
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
+ tools:ignore="ScopedStorage" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
@@ -353,4 +355,11 @@
android:resource="@xml/actions" />
</application>
+ <queries>
+ <intent>
+ <action android:name="android.intent.action.SEND" />
+ <data android:mimeType="text/*" />
+ </intent>
+ </queries>
+
</manifest>
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/OpmlFeedChooserActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/OpmlFeedChooserActivity.java
index 376074525..1c61fc15e 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/OpmlFeedChooserActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/OpmlFeedChooserActivity.java
@@ -119,20 +119,19 @@ public class OpmlFeedChooserActivity extends AppCompatActivity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case R.id.select_all_item:
- selectAll.setVisible(false);
- selectAllItems(true);
- deselectAll.setVisible(true);
- return true;
- case R.id.deselect_all_item:
- deselectAll.setVisible(false);
- selectAllItems(false);
- selectAll.setVisible(true);
- return true;
- default:
- return false;
+ final int itemId = item.getItemId();
+ if (itemId == R.id.select_all_item) {
+ selectAll.setVisible(false);
+ selectAllItems(true);
+ deselectAll.setVisible(true);
+ return true;
+ } else if (itemId == R.id.deselect_all_item) {
+ deselectAll.setVisible(false);
+ selectAllItems(false);
+ selectAll.setVisible(true);
+ return true;
}
+ return false;
}
private void selectAllItems(boolean b) {
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivity.java
index 4a37ec25f..157ad246f 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivity.java
@@ -88,30 +88,28 @@ public class PreferenceActivity extends AppCompatActivity implements SearchPrefe
}
public static int getTitleOfPage(int preferences) {
- switch (preferences) {
- case R.xml.preferences_network:
- return R.string.network_pref;
- case R.xml.preferences_autodownload:
- return R.string.pref_automatic_download_title;
- case R.xml.preferences_playback:
- return R.string.playback_pref;
- case R.xml.preferences_storage:
- return R.string.storage_pref;
- case R.xml.preferences_import_export:
- return R.string.import_export_pref;
- case R.xml.preferences_user_interface:
- return R.string.user_interface_label;
- case R.xml.preferences_gpodder:
- return R.string.gpodnet_main_label;
- case R.xml.preferences_notifications:
- return R.string.notification_pref_fragment;
- case R.xml.feed_settings:
- return R.string.feed_settings_label;
- case R.xml.preferences_swipe:
- return R.string.swipeactions_label;
- default:
- return R.string.settings_label;
+ if (preferences == R.xml.preferences_network) {
+ return R.string.network_pref;
+ } else if (preferences == R.xml.preferences_autodownload) {
+ return R.string.pref_automatic_download_title;
+ } else if (preferences == R.xml.preferences_playback) {
+ return R.string.playback_pref;
+ } else if (preferences == R.xml.preferences_storage) {
+ return R.string.storage_pref;
+ } else if (preferences == R.xml.preferences_import_export) {
+ return R.string.import_export_pref;
+ } else if (preferences == R.xml.preferences_user_interface) {
+ return R.string.user_interface_label;
+ } else if (preferences == R.xml.preferences_gpodder) {
+ return R.string.gpodnet_main_label;
+ } else if (preferences == R.xml.preferences_notifications) {
+ return R.string.notification_pref_fragment;
+ } else if (preferences == R.xml.feed_settings) {
+ return R.string.feed_settings_label;
+ } else if (preferences == R.xml.preferences_swipe) {
+ return R.string.swipeactions_label;
}
+ return R.string.settings_label;
}
public PreferenceFragmentCompat openScreen(int screen) {
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 ca6d28d67..86ab163e7 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java
@@ -507,21 +507,21 @@ public class AudioPlayerFragment extends Fragment implements
if (feedItem != null && FeedItemMenuHandler.onMenuItemClicked(this, item.getItemId(), feedItem)) {
return true;
}
- switch (item.getItemId()) {
- case R.id.disable_sleeptimer_item: // Fall-through
- case R.id.set_sleeptimer_item:
- new SleepTimerDialog().show(getChildFragmentManager(), "SleepTimerDialog");
- return true;
- case R.id.audio_controls:
- PlaybackControlsDialog dialog = PlaybackControlsDialog.newInstance();
- dialog.show(getChildFragmentManager(), "playback_controls");
- return true;
- case R.id.open_feed_item:
- if (feedItem != null) {
- Intent intent = MainActivity.getIntentToOpenFeed(getContext(), feedItem.getFeedId());
- startActivity(intent);
- }
- return true;
+
+ final int itemId = item.getItemId();
+ 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());
+ startActivity(intent);
+ }
+ return true;
}
return false;
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java
index 9e5600d76..59556a340 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/EpisodesListFragment.java
@@ -122,43 +122,42 @@ public abstract class EpisodesListFragment extends Fragment {
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (!super.onOptionsItemSelected(item)) {
- switch (item.getItemId()) {
- case R.id.refresh_item:
- AutoUpdateManager.runImmediate(requireContext());
- return true;
- case R.id.mark_all_read_item:
- ConfirmationDialog markAllReadConfirmationDialog = new ConfirmationDialog(getActivity(),
- R.string.mark_all_read_label,
- R.string.mark_all_read_confirmation_msg) {
-
- @Override
- public void onConfirmButtonPressed(DialogInterface dialog) {
- dialog.dismiss();
- DBWriter.markAllItemsRead();
- ((MainActivity) getActivity()).showSnackbarAbovePlayer(
- R.string.mark_all_read_msg, Toast.LENGTH_SHORT);
- }
- };
- markAllReadConfirmationDialog.createNewDialog().show();
- return true;
- case R.id.remove_all_new_flags_item:
- ConfirmationDialog removeAllNewFlagsConfirmationDialog = new ConfirmationDialog(getActivity(),
- R.string.remove_all_new_flags_label,
- R.string.remove_all_new_flags_confirmation_msg) {
-
- @Override
- public void onConfirmButtonPressed(DialogInterface dialog) {
- dialog.dismiss();
- DBWriter.removeAllNewFlags();
- ((MainActivity) getActivity()).showSnackbarAbovePlayer(
- R.string.removed_all_new_flags_msg, Toast.LENGTH_SHORT);
- }
- };
- removeAllNewFlagsConfirmationDialog.createNewDialog().show();
- return true;
- default:
- return false;
+ final int itemId = item.getItemId();
+ if (itemId == R.id.refresh_item) {
+ AutoUpdateManager.runImmediate(requireContext());
+ return true;
+ } else if (itemId == R.id.mark_all_read_item) {
+ ConfirmationDialog markAllReadConfirmationDialog = new ConfirmationDialog(getActivity(),
+ R.string.mark_all_read_label,
+ R.string.mark_all_read_confirmation_msg) {
+
+ @Override
+ public void onConfirmButtonPressed(DialogInterface dialog) {
+ dialog.dismiss();
+ DBWriter.markAllItemsRead();
+ ((MainActivity) getActivity()).showSnackbarAbovePlayer(
+ R.string.mark_all_read_msg, Toast.LENGTH_SHORT);
+ }
+ };
+ markAllReadConfirmationDialog.createNewDialog().show();
+ return true;
+ } else if (itemId == R.id.remove_all_new_flags_item) {
+ ConfirmationDialog removeAllNewFlagsConfirmationDialog = new ConfirmationDialog(getActivity(),
+ R.string.remove_all_new_flags_label,
+ R.string.remove_all_new_flags_confirmation_msg) {
+
+ @Override
+ public void onConfirmButtonPressed(DialogInterface dialog) {
+ dialog.dismiss();
+ DBWriter.removeAllNewFlags();
+ ((MainActivity) getActivity()).showSnackbarAbovePlayer(
+ R.string.removed_all_new_flags_msg, Toast.LENGTH_SHORT);
+ }
+ };
+ removeAllNewFlagsConfirmationDialog.createNewDialog().show();
+ return true;
}
+ return false;
} else {
return true;
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
index a3b58fc07..9c5f5079d 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedItemlistFragment.java
@@ -332,17 +332,16 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
if (feedMenuHandled) {
return true;
}
- switch (item.getItemId()) {
- case R.id.rename_item:
- new RenameFeedDialog(getActivity(), feed).show();
- return true;
- case R.id.remove_item:
- RemoveFeedDialog.show(getContext(), feed, () ->
- ((MainActivity) getActivity()).loadFragment(EpisodesFragment.TAG, null));
- return true;
- default:
- return false;
+ final int itemId = item.getItemId();
+ if (itemId == R.id.rename_item) {
+ new RenameFeedDialog(getActivity(), feed).show();
+ return true;
+ } else if (itemId == R.id.remove_item) {
+ RemoveFeedDialog.show(getContext(), feed, () ->
+ ((MainActivity) getActivity()).loadFragment(EpisodesFragment.TAG, null));
+ return true;
}
+ return false;
}
@Override
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 98ba59980..7acb94ab3 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java
@@ -143,43 +143,42 @@ public class NavDrawerFragment extends Fragment implements SharedPreferences.OnS
}
private boolean onFeedContextMenuClicked(Feed feed, MenuItem item) {
- switch (item.getItemId()) {
- case R.id.remove_all_new_flags_item:
- ConfirmationDialog removeAllNewFlagsConfirmationDialog = new ConfirmationDialog(getContext(),
- R.string.remove_all_new_flags_label,
- R.string.remove_all_new_flags_confirmation_msg) {
- @Override
- public void onConfirmButtonPressed(DialogInterface dialog) {
- dialog.dismiss();
- DBWriter.removeFeedNewFlag(feed.getId());
- }
- };
- removeAllNewFlagsConfirmationDialog.createNewDialog().show();
- return true;
- case R.id.mark_all_read_item:
- ConfirmationDialog markAllReadConfirmationDialog = new ConfirmationDialog(getContext(),
- R.string.mark_all_read_label,
- R.string.mark_all_read_confirmation_msg) {
-
- @Override
- public void onConfirmButtonPressed(DialogInterface dialog) {
- dialog.dismiss();
- DBWriter.markFeedRead(feed.getId());
- }
- };
- markAllReadConfirmationDialog.createNewDialog().show();
- return true;
- case R.id.rename_item:
- new RenameFeedDialog(getActivity(), feed).show();
- return true;
- case R.id.remove_item:
- RemoveFeedDialog.show(getContext(), feed, () -> {
- ((MainActivity) getActivity()).loadFragment(EpisodesFragment.TAG, null);
- });
- return true;
- default:
- return super.onContextItemSelected(item);
+ final int itemId = item.getItemId();
+ if (itemId == R.id.remove_all_new_flags_item) {
+ ConfirmationDialog removeAllNewFlagsConfirmationDialog = new ConfirmationDialog(getContext(),
+ R.string.remove_all_new_flags_label,
+ R.string.remove_all_new_flags_confirmation_msg) {
+ @Override
+ public void onConfirmButtonPressed(DialogInterface dialog) {
+ dialog.dismiss();
+ DBWriter.removeFeedNewFlag(feed.getId());
+ }
+ };
+ removeAllNewFlagsConfirmationDialog.createNewDialog().show();
+ return true;
+ } else if (itemId == R.id.mark_all_read_item) {
+ ConfirmationDialog markAllReadConfirmationDialog = new ConfirmationDialog(getContext(),
+ R.string.mark_all_read_label,
+ R.string.mark_all_read_confirmation_msg) {
+
+ @Override
+ public void onConfirmButtonPressed(DialogInterface dialog) {
+ dialog.dismiss();
+ DBWriter.markFeedRead(feed.getId());
+ }
+ };
+ markAllReadConfirmationDialog.createNewDialog().show();
+ return true;
+ } else if (itemId == R.id.rename_item) {
+ new RenameFeedDialog(getActivity(), feed).show();
+ return true;
+ } else if (itemId == R.id.remove_item) {
+ RemoveFeedDialog.show(getContext(), feed, () -> {
+ ((MainActivity) getActivity()).loadFragment(EpisodesFragment.TAG, null);
+ });
+ return true;
}
+ return super.onContextItemSelected(item);
}
@Subscribe(threadMode = ThreadMode.MAIN)
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 a89ad204b..6f8b9adbb 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
@@ -258,77 +258,76 @@ public class QueueFragment extends Fragment implements Toolbar.OnMenuItemClickLi
@Override
public boolean onMenuItemClick(MenuItem item) {
- switch (item.getItemId()) {
- case R.id.queue_lock:
- toggleQueueLock();
- return true;
- case R.id.refresh_item:
- AutoUpdateManager.runImmediate(requireContext());
- return true;
- case R.id.clear_queue:
- // make sure the user really wants to clear the queue
- ConfirmationDialog conDialog = new ConfirmationDialog(getActivity(),
- R.string.clear_queue_label,
- R.string.clear_queue_confirmation_msg) {
-
- @Override
- public void onConfirmButtonPressed(
- DialogInterface dialog) {
- dialog.dismiss();
- DBWriter.clearQueue();
- }
- };
- conDialog.createNewDialog().show();
- return true;
- case R.id.queue_sort_episode_title_asc:
- setSortOrder(SortOrder.EPISODE_TITLE_A_Z);
- return true;
- case R.id.queue_sort_episode_title_desc:
- setSortOrder(SortOrder.EPISODE_TITLE_Z_A);
- return true;
- case R.id.queue_sort_date_asc:
- setSortOrder(SortOrder.DATE_OLD_NEW);
- return true;
- case R.id.queue_sort_date_desc:
- setSortOrder(SortOrder.DATE_NEW_OLD);
- return true;
- case R.id.queue_sort_duration_asc:
- setSortOrder(SortOrder.DURATION_SHORT_LONG);
- return true;
- case R.id.queue_sort_duration_desc:
- setSortOrder(SortOrder.DURATION_LONG_SHORT);
- return true;
- case R.id.queue_sort_feed_title_asc:
- setSortOrder(SortOrder.FEED_TITLE_A_Z);
- return true;
- case R.id.queue_sort_feed_title_desc:
- setSortOrder(SortOrder.FEED_TITLE_Z_A);
- return true;
- case R.id.queue_sort_random:
- setSortOrder(SortOrder.RANDOM);
- return true;
- case R.id.queue_sort_smart_shuffle_asc:
- setSortOrder(SortOrder.SMART_SHUFFLE_OLD_NEW);
- return true;
- case R.id.queue_sort_smart_shuffle_desc:
- setSortOrder(SortOrder.SMART_SHUFFLE_NEW_OLD);
- return true;
- case R.id.queue_keep_sorted:
- boolean keepSortedOld = UserPreferences.isQueueKeepSorted();
- boolean keepSortedNew = !keepSortedOld;
- UserPreferences.setQueueKeepSorted(keepSortedNew);
- if (keepSortedNew) {
- SortOrder sortOrder = UserPreferences.getQueueKeepSortedOrder();
- DBWriter.reorderQueue(sortOrder, true);
- }
- if (recyclerAdapter != null) {
- recyclerAdapter.updateDragDropEnabled();
+ final int itemId = item.getItemId();
+ if (itemId == R.id.queue_lock) {
+ toggleQueueLock();
+ return true;
+ } else if (itemId == R.id.refresh_item) {
+ AutoUpdateManager.runImmediate(requireContext());
+ return true;
+ } else if (itemId == R.id.clear_queue) {
+ // make sure the user really wants to clear the queue
+ ConfirmationDialog conDialog = new ConfirmationDialog(getActivity(),
+ R.string.clear_queue_label,
+ R.string.clear_queue_confirmation_msg) {
+
+ @Override
+ public void onConfirmButtonPressed(
+ DialogInterface dialog) {
+ dialog.dismiss();
+ DBWriter.clearQueue();
}
- refreshToolbarState();
- return true;
- default:
- return false;
+ };
+ conDialog.createNewDialog().show();
+ return true;
+ } else if (itemId == R.id.queue_sort_episode_title_asc) {
+ setSortOrder(SortOrder.EPISODE_TITLE_A_Z);
+ return true;
+ } else if (itemId == R.id.queue_sort_episode_title_desc) {
+ setSortOrder(SortOrder.EPISODE_TITLE_Z_A);
+ return true;
+ } else if (itemId == R.id.queue_sort_date_asc) {
+ setSortOrder(SortOrder.DATE_OLD_NEW);
+ return true;
+ } else if (itemId == R.id.queue_sort_date_desc) {
+ setSortOrder(SortOrder.DATE_NEW_OLD);
+ return true;
+ } else if (itemId == R.id.queue_sort_duration_asc) {
+ setSortOrder(SortOrder.DURATION_SHORT_LONG);
+ return true;
+ } else if (itemId == R.id.queue_sort_duration_desc) {
+ setSortOrder(SortOrder.DURATION_LONG_SHORT);
+ return true;
+ } else if (itemId == R.id.queue_sort_feed_title_asc) {
+ setSortOrder(SortOrder.FEED_TITLE_A_Z);
+ return true;
+ } else if (itemId == R.id.queue_sort_feed_title_desc) {
+ setSortOrder(SortOrder.FEED_TITLE_Z_A);
+ return true;
+ } else if (itemId == R.id.queue_sort_random) {
+ setSortOrder(SortOrder.RANDOM);
+ return true;
+ } else if (itemId == R.id.queue_sort_smart_shuffle_asc) {
+ setSortOrder(SortOrder.SMART_SHUFFLE_OLD_NEW);
+ return true;
+ } else if (itemId == R.id.queue_sort_smart_shuffle_desc) {
+ setSortOrder(SortOrder.SMART_SHUFFLE_NEW_OLD);
+ return true;
+ } else if (itemId == R.id.queue_keep_sorted) {
+ boolean keepSortedOld = UserPreferences.isQueueKeepSorted();
+ boolean keepSortedNew = !keepSortedOld;
+ UserPreferences.setQueueKeepSorted(keepSortedNew);
+ if (keepSortedNew) {
+ SortOrder sortOrder = UserPreferences.getQueueKeepSortedOrder();
+ DBWriter.reorderQueue(sortOrder, true);
+ }
+ if (recyclerAdapter != null) {
+ recyclerAdapter.updateDragDropEnabled();
+ }
+ refreshToolbarState();
+ return true;
}
+ return false;
}
private void toggleQueueLock() {
@@ -404,20 +403,19 @@ public class QueueFragment extends Fragment implements Toolbar.OnMenuItemClickLi
return true;
}
- switch(item.getItemId()) {
- case R.id.move_to_top_item:
- queue.add(0, queue.remove(position));
- recyclerAdapter.notifyItemMoved(position, 0);
- DBWriter.moveQueueItemToTop(selectedItem.getId(), true);
- return true;
- case R.id.move_to_bottom_item:
- queue.add(queue.size()-1, queue.remove(position));
- recyclerAdapter.notifyItemMoved(position, queue.size()-1);
- DBWriter.moveQueueItemToBottom(selectedItem.getId(), true);
- return true;
- default:
- return FeedItemMenuHandler.onMenuItemClicked(this, item.getItemId(), selectedItem);
+ final int itemId = item.getItemId();
+ if (itemId == R.id.move_to_top_item) {
+ queue.add(0, queue.remove(position));
+ recyclerAdapter.notifyItemMoved(position, 0);
+ DBWriter.moveQueueItemToTop(selectedItem.getId(), true);
+ return true;
+ } else if (itemId == R.id.move_to_bottom_item) {
+ queue.add(queue.size() - 1, queue.remove(position));
+ recyclerAdapter.notifyItemMoved(position, queue.size() - 1);
+ DBWriter.moveQueueItemToBottom(selectedItem.getId(), true);
+ return true;
}
+ return FeedItemMenuHandler.onMenuItemClicked(this, item.getItemId(), selectedItem);
}
@Override
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 367eb4aaf..23341ff66 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java
@@ -172,31 +172,30 @@ public class SubscriptionFragment extends Fragment implements Toolbar.OnMenuItem
@Override
public boolean onMenuItemClick(MenuItem item) {
- switch (item.getItemId()) {
- case R.id.refresh_item:
- AutoUpdateManager.runImmediate(requireContext());
- return true;
- case R.id.subscriptions_filter:
- SubscriptionsFilterDialog.showDialog(requireContext());
- return true;
- case R.id.subscriptions_sort:
- FeedSortDialog.showDialog(requireContext());
- return true;
- case R.id.subscription_num_columns_2:
- setColumnNumber(2);
- return true;
- case R.id.subscription_num_columns_3:
- setColumnNumber(3);
- return true;
- case R.id.subscription_num_columns_4:
- setColumnNumber(4);
- return true;
- case R.id.subscription_num_columns_5:
- setColumnNumber(5);
- return true;
- default:
- return false;
+ final int itemId = item.getItemId();
+ if (itemId == R.id.refresh_item) {
+ AutoUpdateManager.runImmediate(requireContext());
+ return true;
+ } else if (itemId == R.id.subscriptions_filter) {
+ SubscriptionsFilterDialog.showDialog(requireContext());
+ return true;
+ } else if (itemId == R.id.subscriptions_sort) {
+ FeedSortDialog.showDialog(requireContext());
+ return true;
+ } else if (itemId == R.id.subscription_num_columns_2) {
+ setColumnNumber(2);
+ return true;
+ } else if (itemId == R.id.subscription_num_columns_3) {
+ setColumnNumber(3);
+ return true;
+ } else if (itemId == R.id.subscription_num_columns_4) {
+ setColumnNumber(4);
+ return true;
+ } else if (itemId == R.id.subscription_num_columns_5) {
+ setColumnNumber(5);
+ return true;
}
+ return false;
}
private void setColumnNumber(int columns) {
@@ -315,28 +314,27 @@ public class SubscriptionFragment extends Fragment implements Toolbar.OnMenuItem
Feed feed = selectedFeed;
selectedFeed = null;
- switch (item.getItemId()) {
- case R.id.remove_all_new_flags_item:
- displayConfirmationDialog(
- R.string.remove_all_new_flags_label,
- R.string.remove_all_new_flags_confirmation_msg,
- () -> DBWriter.removeFeedNewFlag(feed.getId()));
- return true;
- case R.id.mark_all_read_item:
- displayConfirmationDialog(
- R.string.mark_all_read_label,
- R.string.mark_all_read_confirmation_msg,
- () -> DBWriter.markFeedRead(feed.getId()));
- return true;
- case R.id.rename_item:
- new RenameFeedDialog(getActivity(), feed).show();
- return true;
- case R.id.remove_item:
- RemoveFeedDialog.show(getContext(), feed, null);
- return true;
- default:
- return super.onContextItemSelected(item);
+ final int itemId = item.getItemId();
+ if (itemId == R.id.remove_all_new_flags_item) {
+ displayConfirmationDialog(
+ R.string.remove_all_new_flags_label,
+ R.string.remove_all_new_flags_confirmation_msg,
+ () -> DBWriter.removeFeedNewFlag(feed.getId()));
+ return true;
+ } else if (itemId == R.id.mark_all_read_item) {
+ displayConfirmationDialog(
+ R.string.mark_all_read_label,
+ R.string.mark_all_read_confirmation_msg,
+ () -> DBWriter.markFeedRead(feed.getId()));
+ return true;
+ } else if (itemId == R.id.rename_item) {
+ new RenameFeedDialog(getActivity(), feed).show();
+ return true;
+ } else if (itemId == R.id.remove_item) {
+ RemoveFeedDialog.show(getContext(), feed, null);
+ return true;
}
+ return super.onContextItemSelected(item);
}
private <T> void displayConfirmationDialog(@StringRes int title, @StringRes int message, Callable<? extends T> task) {
diff --git a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java
index e542f94d2..c272af7d5 100644
--- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java
+++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java
@@ -142,73 +142,60 @@ public class FeedItemMenuHandler {
@NonNull FeedItem selectedItem) {
@NonNull Context context = fragment.requireContext();
- switch (menuItemId) {
- case R.id.skip_episode_item:
- IntentUtils.sendLocalBroadcast(context, PlaybackService.ACTION_SKIP_CURRENT_EPISODE);
- break;
- case R.id.remove_item:
- DBWriter.deleteFeedMediaOfItem(context, selectedItem.getMedia().getId());
- break;
- case R.id.remove_new_flag_item:
- removeNewFlagWithUndo(fragment, selectedItem);
- break;
- case R.id.mark_read_item:
- selectedItem.setPlayed(true);
- DBWriter.markItemPlayed(selectedItem, FeedItem.PLAYED, true);
- if (GpodnetPreferences.loggedIn()) {
- FeedMedia media = selectedItem.getMedia();
- // not all items have media, Gpodder only cares about those that do
- if (media != null) {
- EpisodeAction actionPlay = new EpisodeAction.Builder(selectedItem, EpisodeAction.PLAY)
- .currentTimestamp()
- .started(media.getDuration() / 1000)
- .position(media.getDuration() / 1000)
- .total(media.getDuration() / 1000)
- .build();
- SyncService.enqueueEpisodeAction(context, actionPlay);
- }
- }
- break;
- case R.id.mark_unread_item:
- selectedItem.setPlayed(false);
- DBWriter.markItemPlayed(selectedItem, FeedItem.UNPLAYED, false);
- if (GpodnetPreferences.loggedIn() && selectedItem.getMedia() != null) {
- EpisodeAction actionNew = new EpisodeAction.Builder(selectedItem, EpisodeAction.NEW)
+ if (menuItemId == R.id.skip_episode_item) {
+ IntentUtils.sendLocalBroadcast(context, PlaybackService.ACTION_SKIP_CURRENT_EPISODE);
+ } else if (menuItemId == R.id.remove_item) {
+ DBWriter.deleteFeedMediaOfItem(context, selectedItem.getMedia().getId());
+ } else if (menuItemId == R.id.remove_new_flag_item) {
+ removeNewFlagWithUndo(fragment, selectedItem);
+ } else if (menuItemId == R.id.mark_read_item) {
+ selectedItem.setPlayed(true);
+ DBWriter.markItemPlayed(selectedItem, FeedItem.PLAYED, true);
+ if (GpodnetPreferences.loggedIn()) {
+ FeedMedia media = selectedItem.getMedia();
+ // not all items have media, Gpodder only cares about those that do
+ if (media != null) {
+ EpisodeAction actionPlay = new EpisodeAction.Builder(selectedItem, EpisodeAction.PLAY)
.currentTimestamp()
+ .started(media.getDuration() / 1000)
+ .position(media.getDuration() / 1000)
+ .total(media.getDuration() / 1000)
.build();
- SyncService.enqueueEpisodeAction(context, actionNew);
- }
- break;
- case R.id.add_to_queue_item:
- DBWriter.addQueueItem(context, selectedItem);
- break;
- case R.id.remove_from_queue_item:
- DBWriter.removeQueueItem(context, true, selectedItem);
- break;
- case R.id.add_to_favorites_item:
- DBWriter.addFavoriteItem(selectedItem);
- break;
- case R.id.remove_from_favorites_item:
- DBWriter.removeFavoriteItem(selectedItem);
- break;
- case R.id.reset_position:
- selectedItem.getMedia().setPosition(0);
- if (PlaybackPreferences.getCurrentlyPlayingFeedMediaId() == selectedItem.getMedia().getId()) {
- PlaybackPreferences.writeNoMediaPlaying();
- IntentUtils.sendLocalBroadcast(context, PlaybackService.ACTION_SHUTDOWN_PLAYBACK_SERVICE);
+ SyncService.enqueueEpisodeAction(context, actionPlay);
}
- DBWriter.markItemPlayed(selectedItem, FeedItem.UNPLAYED, true);
- break;
- case R.id.visit_website_item:
- IntentUtils.openInBrowser(context, FeedItemUtil.getLinkWithFallback(selectedItem));
- break;
- case R.id.share_item:
- ShareDialog shareDialog = ShareDialog.newInstance(selectedItem);
- shareDialog.show((fragment.getActivity().getSupportFragmentManager()), "ShareEpisodeDialog");
- break;
- default:
- Log.d(TAG, "Unknown menuItemId: " + menuItemId);
- return false;
+ }
+ } else if (menuItemId == R.id.mark_unread_item) {
+ selectedItem.setPlayed(false);
+ DBWriter.markItemPlayed(selectedItem, FeedItem.UNPLAYED, false);
+ if (GpodnetPreferences.loggedIn() && selectedItem.getMedia() != null) {
+ EpisodeAction actionNew = new EpisodeAction.Builder(selectedItem, EpisodeAction.NEW)
+ .currentTimestamp()
+ .build();
+ SyncService.enqueueEpisodeAction(context, actionNew);
+ }
+ } else if (menuItemId == R.id.add_to_queue_item) {
+ DBWriter.addQueueItem(context, selectedItem);
+ } else if (menuItemId == R.id.remove_from_queue_item) {
+ DBWriter.removeQueueItem(context, true, selectedItem);
+ } else if (menuItemId == R.id.add_to_favorites_item) {
+ DBWriter.addFavoriteItem(selectedItem);
+ } else if (menuItemId == R.id.remove_from_favorites_item) {
+ DBWriter.removeFavoriteItem(selectedItem);
+ } else if (menuItemId == R.id.reset_position) {
+ selectedItem.getMedia().setPosition(0);
+ if (PlaybackPreferences.getCurrentlyPlayingFeedMediaId() == selectedItem.getMedia().getId()) {
+ PlaybackPreferences.writeNoMediaPlaying();
+ IntentUtils.sendLocalBroadcast(context, PlaybackService.ACTION_SHUTDOWN_PLAYBACK_SERVICE);
+ }
+ DBWriter.markItemPlayed(selectedItem, FeedItem.UNPLAYED, true);
+ } else if (menuItemId == R.id.visit_website_item) {
+ IntentUtils.openInBrowser(context, FeedItemUtil.getLinkWithFallback(selectedItem));
+ } else if (menuItemId == R.id.share_item) {
+ ShareDialog shareDialog = ShareDialog.newInstance(selectedItem);
+ shareDialog.show((fragment.getActivity().getSupportFragmentManager()), "ShareEpisodeDialog");
+ } else {
+ Log.d(TAG, "Unknown menuItemId: " + menuItemId);
+ return false;
}
// Refresh menu state
diff --git a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
index ed0cac05d..fded5fb34 100644
--- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
+++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
@@ -60,44 +60,36 @@ public class FeedMenuHandler {
*/
public static boolean onOptionsItemClicked(final Context context, final MenuItem item,
final Feed selectedFeed) throws DownloadRequestException {
- switch (item.getItemId()) {
- case R.id.refresh_item:
- DBTasks.forceRefreshFeed(context, selectedFeed, true);
- break;
- case R.id.refresh_complete_item:
- DBTasks.forceRefreshCompleteFeed(context, selectedFeed);
- break;
- case R.id.sort_items:
- showSortDialog(context, selectedFeed);
- break;
- case R.id.filter_items:
- showFilterDialog(context, selectedFeed);
- break;
- case R.id.mark_all_read_item:
- ConfirmationDialog conDialog = new ConfirmationDialog(context,
- R.string.mark_all_read_label,
- R.string.mark_all_read_feed_confirmation_msg) {
-
- @Override
- public void onConfirmButtonPressed(
- DialogInterface dialog) {
- dialog.dismiss();
- DBWriter.markFeedRead(selectedFeed.getId());
- }
- };
- conDialog.createNewDialog().show();
- break;
- case R.id.visit_website_item:
- IntentUtils.openInBrowser(context, selectedFeed.getLink());
- break;
- case R.id.share_link_item:
- ShareUtils.shareFeedlink(context, selectedFeed);
- break;
- case R.id.share_download_url_item:
- ShareUtils.shareFeedDownloadLink(context, selectedFeed);
- break;
- default:
- return false;
+ final int itemId = item.getItemId();
+ if (itemId == R.id.refresh_item) {
+ DBTasks.forceRefreshFeed(context, selectedFeed, true);
+ } else if (itemId == R.id.refresh_complete_item) {
+ DBTasks.forceRefreshCompleteFeed(context, selectedFeed);
+ } else if (itemId == R.id.sort_items) {
+ showSortDialog(context, selectedFeed);
+ } else if (itemId == R.id.filter_items) {
+ showFilterDialog(context, selectedFeed);
+ } else if (itemId == R.id.mark_all_read_item) {
+ ConfirmationDialog conDialog = new ConfirmationDialog(context,
+ R.string.mark_all_read_label,
+ R.string.mark_all_read_feed_confirmation_msg) {
+
+ @Override
+ public void onConfirmButtonPressed(
+ DialogInterface dialog) {
+ dialog.dismiss();
+ DBWriter.markFeedRead(selectedFeed.getId());
+ }
+ };
+ conDialog.createNewDialog().show();
+ } else if (itemId == R.id.visit_website_item) {
+ IntentUtils.openInBrowser(context, selectedFeed.getLink());
+ } else if (itemId == R.id.share_link_item) {
+ ShareUtils.shareFeedlink(context, selectedFeed);
+ } else if (itemId == R.id.share_download_url_item) {
+ ShareUtils.shareFeedDownloadLink(context, selectedFeed);
+ } else {
+ return false;
}
return true;
}
diff --git a/app/src/main/java/de/danoeh/antennapod/view/ShownotesWebView.java b/app/src/main/java/de/danoeh/antennapod/view/ShownotesWebView.java
index 30852c970..ae6e88c45 100644
--- a/app/src/main/java/de/danoeh/antennapod/view/ShownotesWebView.java
+++ b/app/src/main/java/de/danoeh/antennapod/view/ShownotesWebView.java
@@ -123,33 +123,28 @@ public class ShownotesWebView extends WebView implements View.OnLongClickListene
return false;
}
- switch (item.getItemId()) {
- case R.id.open_in_browser_item:
- IntentUtils.openInBrowser(getContext(), selectedUrl);
- break;
- case R.id.share_url_item:
- ShareUtils.shareLink(getContext(), selectedUrl);
- break;
- case R.id.copy_url_item:
- ClipData clipData = ClipData.newPlainText(selectedUrl, selectedUrl);
- android.content.ClipboardManager cm = (android.content.ClipboardManager) getContext()
- .getSystemService(Context.CLIPBOARD_SERVICE);
- cm.setPrimaryClip(clipData);
- Snackbar s = Snackbar.make(this, R.string.copied_url_msg, Snackbar.LENGTH_LONG);
- ViewCompat.setElevation(s.getView(), 100);
- s.show();
- break;
- case R.id.go_to_position_item:
- if (Timeline.isTimecodeLink(selectedUrl) && timecodeSelectedListener != null) {
- timecodeSelectedListener.accept(Timeline.getTimecodeLinkTime(selectedUrl));
- } else {
- Log.e(TAG, "Selected go_to_position_item, but URL was no timecode link: " + selectedUrl);
- }
- break;
- default:
- selectedUrl = null;
- return false;
-
+ final int itemId = item.getItemId();
+ if (itemId == R.id.open_in_browser_item) {
+ IntentUtils.openInBrowser(getContext(), selectedUrl);
+ } else if (itemId == R.id.share_url_item) {
+ ShareUtils.shareLink(getContext(), selectedUrl);
+ } else if (itemId == R.id.copy_url_item) {
+ ClipData clipData = ClipData.newPlainText(selectedUrl, selectedUrl);
+ ClipboardManager cm = (ClipboardManager) getContext()
+ .getSystemService(Context.CLIPBOARD_SERVICE);
+ cm.setPrimaryClip(clipData);
+ Snackbar s = Snackbar.make(this, R.string.copied_url_msg, Snackbar.LENGTH_LONG);
+ ViewCompat.setElevation(s.getView(), 100);
+ s.show();
+ } else if (itemId == R.id.go_to_position_item) {
+ if (Timeline.isTimecodeLink(selectedUrl) && timecodeSelectedListener != null) {
+ timecodeSelectedListener.accept(Timeline.getTimecodeLinkTime(selectedUrl));
+ } else {
+ Log.e(TAG, "Selected go_to_position_item, but URL was no timecode link: " + selectedUrl);
+ }
+ } else {
+ selectedUrl = null;
+ return false;
}
selectedUrl = null;
return true;
diff --git a/app/src/main/res/layout-sw720dp/main.xml b/app/src/main/res/layout-sw720dp/main.xml
index 79b7213e0..fe5a86d24 100644
--- a/app/src/main/res/layout-sw720dp/main.xml
+++ b/app/src/main/res/layout-sw720dp/main.xml
@@ -1,28 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:orientation="horizontal"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="horizontal"
+ tools:viewBindingIgnore="true">
<FrameLayout
- android:id="@+id/navDrawerFragment"
- android:layout_width="300dp"
- android:layout_height="match_parent"
- android:layout_gravity="start"
- android:orientation="vertical" />
+ android:id="@+id/navDrawerFragment"
+ android:layout_width="300dp"
+ android:layout_height="match_parent"
+ android:layout_gravity="start"
+ android:orientation="vertical" />
<View
- android:layout_width="1dp"
- android:layout_height="match_parent"
- android:background="?android:attr/listDivider" />
+ android:layout_width="1dp"
+ android:layout_height="match_parent"
+ android:background="?android:attr/listDivider" />
<androidx.coordinatorlayout.widget.CoordinatorLayout
- android:id="@+id/overview_coordinator_layout"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:id="@+id/overview_coordinator_layout"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
<FrameLayout
android:id="@+id/main_view"
@@ -33,14 +34,14 @@
tools:background="@android:color/holo_red_dark" />
<FrameLayout
- android:elevation="8dp"
android:id="@+id/audioplayerFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:attr/windowBackground"
+ android:elevation="8dp"
android:visibility="gone"
app:layout_behavior="de.danoeh.antennapod.view.LockableBottomSheetBehavior" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
-</LinearLayout> \ No newline at end of file
+</LinearLayout>
diff --git a/app/src/main/res/layout/main.xml b/app/src/main/res/layout/main.xml
index 48195a176..10b560faf 100644
--- a/app/src/main/res/layout/main.xml
+++ b/app/src/main/res/layout/main.xml
@@ -1,18 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:id="@+id/drawer_layout"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:ignore="InconsistentLayout">
- <!-- InconsistentLayout: Tablet layout does not have a drawer -->
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/drawer_layout"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:ignore="InconsistentLayout"
+ tools:viewBindingIgnore="true">
+ <!-- InconsistentLayout: Tablet layout does not have a drawer -->
+ <!-- viewBindingIgnore: Configurations for main.xml must
+ agree on the root element's ID -->
<androidx.coordinatorlayout.widget.CoordinatorLayout
- android:id="@+id/overview_coordinator_layout"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:id="@+id/overview_coordinator_layout"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
<FrameLayout
android:id="@+id/main_view"
@@ -23,21 +26,21 @@
tools:background="@android:color/holo_red_dark" />
<FrameLayout
- android:elevation="8dp"
android:id="@+id/audioplayerFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:attr/windowBackground"
+ android:elevation="8dp"
android:visibility="gone"
app:layout_behavior="de.danoeh.antennapod.view.LockableBottomSheetBehavior" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
<FrameLayout
- android:id="@+id/navDrawerFragment"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_gravity="start"
- android:orientation="vertical" />
+ android:id="@+id/navDrawerFragment"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="start"
+ android:orientation="vertical" />
-</androidx.drawerlayout.widget.DrawerLayout> \ No newline at end of file
+</androidx.drawerlayout.widget.DrawerLayout>