diff options
Diffstat (limited to 'app')
18 files changed, 287 insertions, 58 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 363561f5a..f5989cd08 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="de.danoeh.antennapod" - android:versionCode="58" - android:versionName="1.2.1"> + android:versionCode="59" + android:versionName="1.3 alpha"> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java index 254749cd6..5b80b8f9d 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java @@ -1,6 +1,7 @@ package de.danoeh.antennapod.activity; import android.app.AlertDialog; +import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; @@ -31,6 +32,7 @@ import java.util.List; import de.danoeh.antennapod.R; import de.danoeh.antennapod.adapter.NavListAdapter; +import de.danoeh.antennapod.core.event.ProgressEvent; import de.danoeh.antennapod.core.feed.EventDistributor; import de.danoeh.antennapod.core.feed.Feed; import de.danoeh.antennapod.core.feed.QueueEvent; @@ -92,8 +94,10 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity private ActionBarDrawerToggle drawerToggle; - private CharSequence drawerTitle; private CharSequence currentTitle; + private String currentFragment; + + private ProgressDialog pd; @Override public void onCreate(Bundle savedInstanceState) { @@ -107,7 +111,7 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity setSupportActionBar(toolbar); getSupportActionBar().setElevation(3.0f); - drawerTitle = currentTitle = getTitle(); + currentTitle = getTitle(); drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); navList = (ListView) findViewById(R.id.nav_list); @@ -173,6 +177,7 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity } private void saveLastNavFragment(String tag) { + Log.d(TAG, "saveLastNavFragment(tag: " + tag +")"); SharedPreferences prefs = getSharedPreferences(PREF_NAME, MODE_PRIVATE); SharedPreferences.Editor edit = prefs.edit(); if(tag != null) { @@ -180,12 +185,15 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity } else { edit.remove(PREF_LAST_FRAGMENT_TAG); } + currentFragment = tag; edit.commit(); } private String getLastNavFragment() { SharedPreferences prefs = getSharedPreferences(PREF_NAME, MODE_PRIVATE); - return prefs.getString(PREF_LAST_FRAGMENT_TAG, QueueFragment.TAG); + String lastFragment = prefs.getString(PREF_LAST_FRAGMENT_TAG, QueueFragment.TAG); + Log.d(TAG, "getLastNavFragment() -> " + lastFragment); + return lastFragment; } private void checkFirstLaunch() { @@ -251,6 +259,7 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity } public void loadFragment(int index, Bundle args) { + Log.d(TAG, "loadFragment(index: " + index + ", args: " + args +")"); if (index < navAdapter.getSubscriptionOffset()) { String tag = navAdapter.getTags().get(index); loadFragment(tag, args); @@ -261,7 +270,7 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity } public void loadFragment(final String tag, Bundle args) { - Log.d(TAG, "loadFragment(\"" + tag + "\", " + args + ")"); + Log.d(TAG, "loadFragment(tag: " + tag + ", args: " + args + ")"); Fragment fragment = null; switch (tag) { case QueueFragment.TAG: @@ -465,6 +474,9 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity cancelLoadTask(); EventDistributor.getInstance().unregister(contentUpdate); EventBus.getDefault().unregister(this); + if(pd != null) { + pd.dismiss(); + } } @Override @@ -543,10 +555,10 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity navAdapter.notifyDataSetChanged(); String lastFragment = getLastNavFragment(); - if(!ArrayUtils.contains(NAV_DRAWER_TAGS, lastFragment)) { + if(currentFragment != lastFragment && + !ArrayUtils.contains(NAV_DRAWER_TAGS, lastFragment)) { long feedId = Long.valueOf(lastFragment); loadFeedFragmentById(feedId); - saveLastNavFragment(null); } if (handleIntent) { @@ -568,6 +580,24 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity loadData(); } + public void onEventMainThread(ProgressEvent event) { + Log.d(TAG, "onEvent(" + event + ")"); + switch(event.action) { + case START: + pd = new ProgressDialog(this); + pd.setMessage(event.message); + pd.setIndeterminate(true); + pd.setCancelable(false); + pd.show(); + break; + case END: + if(pd != null) { + pd.dismiss(); + } + break; + } + } + private EventDistributor.EventListener contentUpdate = new EventDistributor.EventListener() { @Override diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java index 0cd388b9d..a5ec02cf2 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java @@ -278,6 +278,7 @@ public abstract class MediaplayerActivity extends ActionBarActivity startActivity(intent); return true; } else if (media != null) { + FeedItem feedItem = ((FeedMedia) media).getItem(); switch (item.getItemId()) { case R.id.disable_sleeptimer_item: if (controller.serviceAvailable()) { @@ -333,12 +334,20 @@ public abstract class MediaplayerActivity extends ActionBarActivity break; case R.id.support_item: if (media instanceof FeedMedia) { - FeedItem feedItem = ((FeedMedia) media).getItem(); DBTasks.flattrItemIfLoggedIn(this, feedItem); } break; case R.id.share_link_item: - ShareUtils.shareLink(this, media.getWebsiteLink()); + ShareUtils.shareFeedItemLink(this, feedItem); + break; + case R.id.share_download_url_item: + ShareUtils.shareFeedItemDownloadLink(this, feedItem); + break; + case R.id.share_link_with_position_item: + ShareUtils.shareFeedItemLink(this, feedItem, true); + break; + case R.id.share_download_url_with_position_item: + ShareUtils.shareFeedItemDownloadLink(this, feedItem, true); break; case R.id.skip_episode_item: sendBroadcast(new Intent( diff --git a/app/src/main/java/de/danoeh/antennapod/config/StorageCallbacksImpl.java b/app/src/main/java/de/danoeh/antennapod/config/StorageCallbacksImpl.java index 943e05690..d8fab34c8 100644 --- a/app/src/main/java/de/danoeh/antennapod/config/StorageCallbacksImpl.java +++ b/app/src/main/java/de/danoeh/antennapod/config/StorageCallbacksImpl.java @@ -4,6 +4,7 @@ package de.danoeh.antennapod.config; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; +import android.media.MediaMetadataRetriever; import android.util.Log; import de.danoeh.antennapod.core.StorageCallbacks; @@ -13,11 +14,11 @@ public class StorageCallbacksImpl implements StorageCallbacks { @Override public int getDatabaseVersion() { - return 15; + return 16; } @Override - public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + public void onUpgrade(final SQLiteDatabase db, int oldVersion, int newVersion) { Log.w("DBAdapter", "Upgrading from version " + oldVersion + " to " + newVersion + "."); if (oldVersion <= 1) { @@ -125,7 +126,6 @@ public class StorageCallbacksImpl implements StorageCallbacks { PodDBAdapter.KEY_CHAPTER_TYPE)); } if(oldVersion <= 14) { - db.execSQL("ALTER TABLE " + PodDBAdapter.TABLE_NAME_FEED_ITEMS + " ADD COLUMN " + PodDBAdapter.KEY_AUTO_DOWNLOAD + " INTEGER"); db.execSQL("UPDATE " + PodDBAdapter.TABLE_NAME_FEED_ITEMS @@ -137,7 +137,6 @@ public class StorageCallbacksImpl implements StorageCallbacks { db.execSQL("ALTER TABLE " + PodDBAdapter.TABLE_NAME_FEEDS + " ADD COLUMN " + PodDBAdapter.KEY_HIDE + " TEXT"); - db.execSQL("ALTER TABLE " + PodDBAdapter.TABLE_NAME_FEEDS + " ADD COLUMN " + PodDBAdapter.KEY_LAST_UPDATE_FAILED + " INTEGER DEFAULT 0"); @@ -149,5 +148,38 @@ public class StorageCallbacksImpl implements StorageCallbacks { db.execSQL(PodDBAdapter.CREATE_INDEX_QUEUE_FEEDITEM); db.execSQL(PodDBAdapter.CREATE_INDEX_SIMPLECHAPTERS_FEEDITEM); } + if(oldVersion <= 15) { + db.execSQL("ALTER TABLE " + PodDBAdapter.TABLE_NAME_FEED_MEDIA + + " ADD COLUMN " + PodDBAdapter.KEY_HAS_EMBEDDED_PICTURE + " INTEGER DEFAULT -1"); + db.execSQL("UPDATE " + PodDBAdapter.TABLE_NAME_FEED_MEDIA + + " SET " + PodDBAdapter.KEY_HAS_EMBEDDED_PICTURE + "=0" + + " WHERE " + PodDBAdapter.KEY_DOWNLOADED + "=0"); + Cursor c = db.rawQuery("SELECT " + PodDBAdapter.KEY_FILE_URL + + " FROM " + PodDBAdapter.TABLE_NAME_FEED_MEDIA + + " WHERE " + PodDBAdapter.KEY_DOWNLOADED + "=1 " + + " AND " + PodDBAdapter.KEY_HAS_EMBEDDED_PICTURE + "=-1", null); + if(c.moveToFirst()) { + MediaMetadataRetriever mmr = new MediaMetadataRetriever(); + do { + String fileUrl = c.getString(0); + try { + mmr.setDataSource(fileUrl); + byte[] image = mmr.getEmbeddedPicture(); + if (image != null) { + db.execSQL("UPDATE " + PodDBAdapter.TABLE_NAME_FEED_MEDIA + + " SET " + PodDBAdapter.KEY_HAS_EMBEDDED_PICTURE + "=1" + + " WHERE " + PodDBAdapter.KEY_FILE_URL + "='"+ fileUrl + "'"); + } else { + db.execSQL("UPDATE " + PodDBAdapter.TABLE_NAME_FEED_MEDIA + + " SET " + PodDBAdapter.KEY_HAS_EMBEDDED_PICTURE + "=0" + + " WHERE " + PodDBAdapter.KEY_FILE_URL + "='"+ fileUrl + "'"); + } + } catch(Exception e) { + e.printStackTrace(); + } + } while(c.moveToNext()); + } + c.close(); + } } } diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java index b2482ae32..f40bcf999 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java @@ -30,8 +30,8 @@ import java.util.concurrent.atomic.AtomicReference; import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.MainActivity; -import de.danoeh.antennapod.adapter.DefaultActionButtonCallback; import de.danoeh.antennapod.adapter.AllEpisodesListAdapter; +import de.danoeh.antennapod.adapter.DefaultActionButtonCallback; import de.danoeh.antennapod.core.asynctask.DownloadObserver; import de.danoeh.antennapod.core.dialog.ConfirmationDialog; import de.danoeh.antennapod.core.feed.EventDistributor; @@ -72,6 +72,7 @@ public class AllEpisodesFragment extends Fragment { private TextView txtvEmpty; private ProgressBar progLoading; private ContextMenu contextMenu; + private AdapterView.AdapterContextMenuInfo lastMenuInfo = null; private List<FeedItem> episodes; private LongList queuedItemsIds; @@ -341,12 +342,16 @@ public class AllEpisodesFragment extends Fragment { } contextMenu = menu; + lastMenuInfo = (AdapterView.AdapterContextMenuInfo) menuInfo; FeedItemMenuHandler.onPrepareMenu(getActivity(), contextMenuInterface, item, true, queuedItemsIds); } @Override public boolean onContextItemSelected(MenuItem item) { AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); + if(menuInfo == null) { + menuInfo = lastMenuInfo; + } FeedItem selectedItem = itemAccess.getItem(menuInfo.position); if (selectedItem == null) { diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java index 67e65a6ce..5a788b10c 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemlistFragment.java @@ -83,6 +83,7 @@ public class ItemlistFragment extends ListFragment { protected FeedItemlistAdapter adapter; private ContextMenu contextMenu; + private AdapterView.AdapterContextMenuInfo lastMenuInfo = null; private long feedID; private Feed feed; @@ -217,6 +218,11 @@ public class ItemlistFragment extends ListFragment { return false; } }); + if(feed == null || feed.getLink() == null) { + menu.findItem(R.id.share_link_item).setVisible(false); + menu.findItem(R.id.visit_website_item).setVisible(false); + } + isUpdatingFeed = MenuItemUtils.updateRefreshMenuItem(menu, R.id.refresh_item, updateRefreshMenuItemChecker); } } @@ -302,12 +308,16 @@ public class ItemlistFragment extends ListFragment { } contextMenu = menu; + lastMenuInfo = (AdapterView.AdapterContextMenuInfo) menuInfo; FeedItemMenuHandler.onPrepareMenu(getActivity(), contextMenuInterface, item, true, queuedItemsIds); } @Override public boolean onContextItemSelected(MenuItem item) { AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); + if(menuInfo == null) { + menuInfo = lastMenuInfo; + } // because of addHeaderView(), positions are increased by 1! FeedItem selectedItem = itemAccess.getItem(menuInfo.position-1); 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 0a825c51a..77b2d590f 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -72,6 +72,7 @@ public class QueueFragment extends Fragment { private ProgressBar progLoading; private ContextMenu contextMenu; + private AdapterView.AdapterContextMenuInfo lastMenuInfo = null; private UndoBarController<FeedItemUndoToken> undoBarController; @@ -325,6 +326,7 @@ public class QueueFragment extends Fragment { } contextMenu = menu; + lastMenuInfo = (AdapterView.AdapterContextMenuInfo) menuInfo; LongList queueIds = new LongList(queue.size()); for(FeedItem queueItem : queue) { queueIds.add(queueItem.getId()); @@ -335,6 +337,9 @@ public class QueueFragment extends Fragment { @Override public boolean onContextItemSelected(MenuItem item) { AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); + if(menuInfo == null) { + menuInfo = lastMenuInfo; + } FeedItem selectedItem = itemAccess.getItem(menuInfo.position); if (selectedItem == null) { 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 64ba3dca3..c33ab93b4 100644 --- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java +++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java @@ -85,8 +85,19 @@ public class FeedItemMenuHandler { if (!(!isInQueue && selectedItem.getMedia() != null)) { mi.setItemVisibility(R.id.add_to_queue_item, false); } + if (!showExtendedMenu || selectedItem.getLink() == null) { + mi.setItemVisibility(R.id.visit_website_item, false); mi.setItemVisibility(R.id.share_link_item, false); + mi.setItemVisibility(R.id.share_link_with_position_item, false); + } + if (!showExtendedMenu || !hasMedia || selectedItem.getMedia().getDownload_url() == null) { + mi.setItemVisibility(R.id.share_download_url_item, false); + mi.setItemVisibility(R.id.share_download_url_with_position_item, false); + } + if(false == hasMedia || selectedItem.getMedia().getPosition() <= 0) { + mi.setItemVisibility(R.id.share_link_with_position_item, false); + mi.setItemVisibility(R.id.share_download_url_with_position_item, false); } if (!(state == FeedItem.State.UNREAD || state == FeedItem.State.IN_PROGRESS)) { @@ -109,12 +120,6 @@ public class FeedItemMenuHandler { mi.setItemVisibility(R.id.deactivate_auto_download, false); } - if (!showExtendedMenu || selectedItem.getLink() == null || - false == IntentUtils.isCallable(context, new Intent(Intent.ACTION_VIEW, Uri.parse(selectedItem.getLink())))) - { - mi.setItemVisibility(R.id.visit_website_item, false); - } - if (selectedItem.getPaymentLink() == null || !selectedItem.getFlattrStatus().flattrable()) { mi.setItemVisibility(R.id.support_item, false); } @@ -213,6 +218,15 @@ public class FeedItemMenuHandler { case R.id.share_link_item: ShareUtils.shareFeedItemLink(context, selectedItem); break; + case R.id.share_download_url_item: + ShareUtils.shareFeedItemDownloadLink(context, selectedItem); + break; + case R.id.share_link_with_position_item: + ShareUtils.shareFeedItemLink(context, selectedItem, true); + break; + case R.id.share_download_url_with_position_item: + ShareUtils.shareFeedItemDownloadLink(context, selectedItem, true); + break; default: Log.d(TAG, "Unknown menuItemId: " + menuItemId); return false; 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 85394d01e..30cc2c640 100644 --- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java +++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java @@ -42,10 +42,11 @@ public class FeedMenuHandler { Log.d(TAG, "Preparing options menu"); menu.findItem(R.id.mark_all_read_item).setVisible(selectedFeed.hasNewItems()); - if (selectedFeed.getPaymentLink() != null && selectedFeed.getFlattrStatus().flattrable()) + if (selectedFeed.getPaymentLink() != null && selectedFeed.getFlattrStatus().flattrable()) { menu.findItem(R.id.support_item).setVisible(true); - else + } else { menu.findItem(R.id.support_item).setVisible(false); + } menu.findItem(R.id.refresh_complete_item).setVisible(selectedFeed.isPaged()); @@ -99,7 +100,7 @@ public class FeedMenuHandler { case R.id.share_link_item: ShareUtils.shareFeedlink(context, selectedFeed); break; - case R.id.share_source_item: + case R.id.share_download_url_item: ShareUtils.shareFeedDownloadLink(context, selectedFeed); break; default: diff --git a/app/src/main/res/layout/cover_fragment.xml b/app/src/main/res/layout/cover_fragment.xml index 18540aa1f..4bbdeae06 100644 --- a/app/src/main/res/layout/cover_fragment.xml +++ b/app/src/main/res/layout/cover_fragment.xml @@ -13,7 +13,7 @@ android:layout_height="match_parent" android:layout_gravity="center" android:adjustViewBounds="true" - android:scaleType="centerInside" + android:scaleType="fitCenter" tools:src="@android:drawable/sym_def_app_icon" /> -</RelativeLayout>
\ No newline at end of file +</RelativeLayout> diff --git a/app/src/main/res/layout/feedinfo.xml b/app/src/main/res/layout/feedinfo.xml index db897865c..4dab1e189 100644 --- a/app/src/main/res/layout/feedinfo.xml +++ b/app/src/main/res/layout/feedinfo.xml @@ -20,8 +20,8 @@ <ImageView android:id="@+id/imgvCover" android:contentDescription="@string/cover_label" - android:layout_width="70dp" - android:layout_height="70dp" + android:layout_width="80dp" + android:layout_height="80dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" tools:src="@drawable/ic_stat_antenna_default" @@ -33,7 +33,9 @@ android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="8dp" + android:layout_alignTop="@id/imgvCover" android:layout_toRightOf="@id/imgvCover" + android:layout_alignBottom="@id/imgvCover" style="@style/AntennaPod.TextView.Heading" tools:text="Feed title" tools:background="@android:color/holo_green_dark"/> @@ -52,7 +54,7 @@ android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" - android:scrollbarStyle="outsideInset" + android:scrollbarStyle="outsideOverlay" android:paddingLeft="16dp" android:paddingRight="16dp" android:paddingBottom="8dp"> @@ -119,7 +121,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="8dp" - android:layout_marginBottom="8dp" app:layout_row="2" app:layout_column="0" android:lines="1" @@ -129,10 +130,13 @@ <TextView android:id="@+id/txtvUrl" - android:layout_width="wrap_content" + android:layout_width="0dp" android:layout_height="wrap_content" + android:paddingBottom="4dp" app:layout_row="2" app:layout_column="1" + app:layout_gravity="fill" + android:maxLines="4" tools:text="http://www.example.com/feed" tools:background="@android:color/holo_green_dark"/> diff --git a/app/src/main/res/menu/allepisodes_context.xml b/app/src/main/res/menu/allepisodes_context.xml index f89ad5065..171e509a8 100644 --- a/app/src/main/res/menu/allepisodes_context.xml +++ b/app/src/main/res/menu/allepisodes_context.xml @@ -40,13 +40,32 @@ android:title="@string/deactivate_auto_download" /> <item - android:id="@+id/share_link_item" - android:menuCategory="container" - android:title="@string/share_link_label" /> - <item android:id="@+id/visit_website_item" android:menuCategory="container" android:title="@string/visit_website_label" /> + <item + android:id="@+id/share_item" + android:menuCategory="container" + android:title="@string/share_label"> + <menu> + <item + android:id="@+id/share_link_item" + android:menuCategory="container" + android:title="@string/share_link_label" /> + <item + android:id="@+id/share_link_with_position_item" + android:menuCategory="container" + android:title="@string/share_link_with_position_label" /> + <item + android:id="@+id/share_download_url_item" + android:menuCategory="container" + android:title="@string/share_item_url_label" /> + <item + android:id="@+id/share_download_url_with_position_item" + android:menuCategory="container" + android:title="@string/share_item_url_with_position_label" /> + </menu> + </item> <item android:id="@+id/support_item" diff --git a/app/src/main/res/menu/feedinfo.xml b/app/src/main/res/menu/feedinfo.xml index be50cb87d..94f34db93 100644 --- a/app/src/main/res/menu/feedinfo.xml +++ b/app/src/main/res/menu/feedinfo.xml @@ -20,7 +20,7 @@ android:title="@string/share_link_label"> </item> <item - android:id="@+id/share_source_item" + android:id="@+id/share_download_url_item" custom:showAsAction="collapseActionView" android:title="@string/share_source_label"> </item> diff --git a/app/src/main/res/menu/feeditem_options.xml b/app/src/main/res/menu/feeditem_options.xml index f8e9b9c75..650912ea2 100644 --- a/app/src/main/res/menu/feeditem_options.xml +++ b/app/src/main/res/menu/feeditem_options.xml @@ -48,17 +48,36 @@ </item> <item - android:id="@+id/share_link_item" - custom:showAsAction="collapseActionView" - android:title="@string/share_link_label"> - </item> - <item android:id="@+id/visit_website_item" android:icon="?attr/location_web_site" custom:showAsAction="ifRoom|collapseActionView" android:title="@string/visit_website_label"> </item> <item + android:id="@+id/share_item" + android:menuCategory="container" + android:title="@string/share_label"> + <menu> + <item + android:id="@+id/share_link_item" + android:menuCategory="container" + android:title="@string/share_link_label" /> + <item + android:id="@+id/share_link_with_position_item" + android:menuCategory="container" + android:title="@string/share_link_with_position_label" /> + <item + android:id="@+id/share_download_url_item" + android:menuCategory="container" + android:title="@string/share_item_url_label" /> + <item + android:id="@+id/share_download_url_with_position_item" + android:menuCategory="container" + android:title="@string/share_item_url_with_position_label" /> + </menu> + </item> + + <item android:id="@+id/support_item" custom:showAsAction="collapseActionView" android:title="@string/support_label"> diff --git a/app/src/main/res/menu/feeditemlist_context.xml b/app/src/main/res/menu/feeditemlist_context.xml index f89ad5065..7b10e5cce 100644 --- a/app/src/main/res/menu/feeditemlist_context.xml +++ b/app/src/main/res/menu/feeditemlist_context.xml @@ -40,13 +40,33 @@ android:title="@string/deactivate_auto_download" /> <item - android:id="@+id/share_link_item" - android:menuCategory="container" - android:title="@string/share_link_label" /> - <item android:id="@+id/visit_website_item" android:menuCategory="container" android:title="@string/visit_website_label" /> + <item + android:id="@+id/share_item" + android:menuCategory="container" + android:title="@string/share_label"> + <menu> + <item + android:id="@+id/share_link_item" + android:menuCategory="container" + android:title="@string/share_link_label" /> + <item + android:id="@+id/share_link_with_position_item" + android:menuCategory="container" + android:title="@string/share_link_with_position_label" /> + <item + android:id="@+id/share_download_url_item" + android:menuCategory="container" + android:title="@string/share_item_url_label" /> + <item + android:id="@+id/share_download_url_with_position_item" + android:menuCategory="container" + android:title="@string/share_item_url_with_position_label" /> + </menu> + </item> + <item android:id="@+id/support_item" diff --git a/app/src/main/res/menu/feedlist.xml b/app/src/main/res/menu/feedlist.xml index e0da72667..e6e85093b 100644 --- a/app/src/main/res/menu/feedlist.xml +++ b/app/src/main/res/menu/feedlist.xml @@ -36,6 +36,7 @@ android:title="@string/mark_all_read_label" custom:showAsAction="collapseActionView"> </item> + <item android:id="@+id/support_item" android:menuCategory="container" @@ -43,6 +44,28 @@ android:visible="false" custom:showAsAction="collapseActionView"> </item> + + <item + android:id="@+id/visit_website_item" + android:icon="?attr/location_web_site" + android:menuCategory="container" + custom:showAsAction="collapseActionView" + android:title="@string/visit_website_label" + android:visible="true"> + </item> + <item + android:id="@+id/share_link_item" + android:menuCategory="container" + custom:showAsAction="collapseActionView" + android:title="@string/share_link_label"> + </item> + <item + android:id="@+id/share_download_url_item" + android:menuCategory="container" + custom:showAsAction="collapseActionView" + android:title="@string/share_feed_url_label"> + </item> + <item android:id="@+id/remove_item" android:icon="?attr/content_discard" diff --git a/app/src/main/res/menu/mediaplayer.xml b/app/src/main/res/menu/mediaplayer.xml index 288e44401..053e68552 100644 --- a/app/src/main/res/menu/mediaplayer.xml +++ b/app/src/main/res/menu/mediaplayer.xml @@ -13,11 +13,14 @@ custom:showAsAction="collapseActionView" android:title="@string/set_sleeptimer_label"> </item> + <item - android:id="@+id/share_link_item" + android:id="@+id/skip_episode_item" custom:showAsAction="collapseActionView" - android:title="@string/share_link_label"> + android:title="@string/skip_episode_label" + android:visible="true"> </item> + <item android:id="@+id/visit_website_item" android:icon="?attr/location_web_site" @@ -26,15 +29,33 @@ android:visible="false"> </item> <item + android:id="@+id/share_item" + android:menuCategory="container" + android:title="@string/share_label"> + <menu> + <item + android:id="@+id/share_link_item" + android:menuCategory="container" + android:title="@string/share_link_label" /> + <item + android:id="@+id/share_link_with_position_item" + android:menuCategory="container" + android:title="@string/share_link_with_position_label" /> + <item + android:id="@+id/share_download_url_item" + android:menuCategory="container" + android:title="@string/share_item_url_label" /> + <item + android:id="@+id/share_download_url_with_position_item" + android:menuCategory="container" + android:title="@string/share_item_url_with_position_label" /> + </menu> + </item> + <item android:id="@+id/support_item" custom:showAsAction="collapseActionView" android:title="@string/support_label" android:visible="false"> </item> - <item - android:id="@id/skip_episode_item" - custom:showAsAction="collapseActionView" - android:title="@string/skip_episode_label" - android:visible="true"/> </menu>
\ No newline at end of file diff --git a/app/src/main/res/menu/queue_context.xml b/app/src/main/res/menu/queue_context.xml index 6ab2daabf..d09f3c84c 100644 --- a/app/src/main/res/menu/queue_context.xml +++ b/app/src/main/res/menu/queue_context.xml @@ -36,21 +36,38 @@ android:id="@+id/activate_auto_download" android:menuCategory="container" android:title="@string/activate_auto_download" /> - <item android:id="@+id/deactivate_auto_download" android:menuCategory="container" android:title="@string/deactivate_auto_download" /> <item - android:id="@+id/share_link_item" - android:menuCategory="container" - android:title="@string/share_link_label" /> - <item android:id="@+id/visit_website_item" android:menuCategory="container" android:title="@string/visit_website_label" /> - + <item + android:id="@+id/share_item" + android:menuCategory="container" + android:title="@string/share_label"> + <menu> + <item + android:id="@+id/share_link_item" + android:menuCategory="container" + android:title="@string/share_link_label" /> + <item + android:id="@+id/share_link_with_position_item" + android:menuCategory="container" + android:title="@string/share_link_with_position_label" /> + <item + android:id="@+id/share_download_url_item" + android:menuCategory="container" + android:title="@string/share_item_url_label" /> + <item + android:id="@+id/share_download_url_with_position_item" + android:menuCategory="container" + android:title="@string/share_item_url_with_position_label" /> + </menu> + </item> <item android:id="@+id/support_item" android:menuCategory="container" |