summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/activity
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/activity')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java9
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java9
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java37
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/OpmlImportFromPathActivity.java27
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivity.java5
5 files changed, 57 insertions, 30 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java
index 294acd427..b975d482a 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java
@@ -75,6 +75,7 @@ public class AudioplayerActivity extends MediaplayerActivity implements ItemDesc
private DrawerLayout drawerLayout;
private NavListAdapter navAdapter;
private ListView navList;
+ private AdapterView.AdapterContextMenuInfo lastMenuInfo = null;
private View navDrawer;
private ActionBarDrawerToggle drawerToggle;
@@ -663,11 +664,19 @@ public class AudioplayerActivity extends MediaplayerActivity implements ItemDesc
Feed feed = navDrawerData.feeds.get(position - navAdapter.getSubscriptionOffset());
menu.setHeaderTitle(feed.getTitle());
// episodes are not loaded, so we cannot check if the podcast has new or unplayed ones!
+
+ // we may need to reference this elsewhere...
+ lastMenuInfo = (AdapterView.AdapterContextMenuInfo) menuInfo;
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
+
+ if(menuInfo == null) {
+ menuInfo = lastMenuInfo;
+ }
+
if(menuInfo.targetView.getParent() instanceof ListView == false
|| ((ListView)menuInfo.targetView.getParent()).getId() != R.id.nav_list) {
return false;
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 7eee1558b..e10e8041e 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
@@ -96,6 +96,7 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity
private View navDrawer;
private ListView navList;
private NavListAdapter navAdapter;
+ private AdapterView.AdapterContextMenuInfo lastMenuInfo = null;
private ActionBarDrawerToggle drawerToggle;
@@ -505,11 +506,19 @@ public class MainActivity extends ActionBarActivity implements NavDrawerActivity
Feed feed = navDrawerData.feeds.get(position - navAdapter.getSubscriptionOffset());
menu.setHeaderTitle(feed.getTitle());
// episodes are not loaded, so we cannot check if the podcast has new or unplayed ones!
+
+ // we may need to reference this elsewhere...
+ lastMenuInfo = (AdapterView.AdapterContextMenuInfo) menuInfo;
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
+
+ if(menuInfo == null) {
+ menuInfo = lastMenuInfo;
+ }
+
if(menuInfo.targetView.getParent() instanceof ListView == false
|| ((ListView)menuInfo.targetView.getParent()).getId() != R.id.nav_list) {
return false;
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 b83e9bc15..40a0d1801 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
@@ -255,10 +255,20 @@ public abstract class MediaplayerActivity extends ActionBarActivity
(media instanceof FeedMedia) &&
((FeedMedia) media).getItem().getFlattrStatus().flattrable()
);
- menu.findItem(R.id.share_link_item).setVisible(
- media != null && media.getWebsiteLink() != null);
- menu.findItem(R.id.visit_website_item).setVisible(
- media != null && media.getWebsiteLink() != null);
+
+ boolean hasWebsiteLink = media != null && media.getWebsiteLink() != null;
+ menu.findItem(R.id.visit_website_item).setVisible(hasWebsiteLink);
+
+ boolean isItemAndHasLink = media != null && (media instanceof FeedMedia) && ((FeedMedia) media).getItem().getLink() != null;
+ menu.findItem(R.id.share_link_item).setVisible(isItemAndHasLink);
+ menu.findItem(R.id.share_link_with_position_item).setVisible(isItemAndHasLink);
+
+ boolean isItemHasDownloadLink = media != null && (media instanceof FeedMedia) && ((FeedMedia) media).getDownload_url() != null;
+ menu.findItem(R.id.share_download_url_item).setVisible(isItemHasDownloadLink);
+ menu.findItem(R.id.share_download_url_with_position_item).setVisible(isItemHasDownloadLink);
+
+ menu.findItem(R.id.share_item).setVisible(hasWebsiteLink || isItemAndHasLink || isItemHasDownloadLink);
+
menu.findItem(R.id.skip_episode_item).setVisible(media != null);
boolean sleepTimerSet = controller.sleepTimerActive();
boolean sleepTimerNotSet = controller.sleepTimerNotActive();
@@ -278,7 +288,6 @@ 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()) {
@@ -334,20 +343,28 @@ public abstract class MediaplayerActivity extends ActionBarActivity
break;
case R.id.support_item:
if (media instanceof FeedMedia) {
- DBTasks.flattrItemIfLoggedIn(this, feedItem);
+ DBTasks.flattrItemIfLoggedIn(this, ((FeedMedia) media).getItem());
}
break;
case R.id.share_link_item:
- ShareUtils.shareFeedItemLink(this, feedItem);
+ if (media instanceof FeedMedia) {
+ ShareUtils.shareFeedItemLink(this, ((FeedMedia) media).getItem());
+ }
break;
case R.id.share_download_url_item:
- ShareUtils.shareFeedItemDownloadLink(this, feedItem);
+ if (media instanceof FeedMedia) {
+ ShareUtils.shareFeedItemDownloadLink(this, ((FeedMedia) media).getItem());
+ }
break;
case R.id.share_link_with_position_item:
- ShareUtils.shareFeedItemLink(this, feedItem, true);
+ if (media instanceof FeedMedia) {
+ ShareUtils.shareFeedItemLink(this, ((FeedMedia) media).getItem(), true);
+ }
break;
case R.id.share_download_url_with_position_item:
- ShareUtils.shareFeedItemDownloadLink(this, feedItem, true);
+ if (media instanceof FeedMedia) {
+ ShareUtils.shareFeedItemDownloadLink(this, ((FeedMedia) media).getItem(), true);
+ }
break;
case R.id.skip_episode_item:
sendBroadcast(new Intent(
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/OpmlImportFromPathActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/OpmlImportFromPathActivity.java
index 2ec987d1a..6e3991739 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/OpmlImportFromPathActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/OpmlImportFromPathActivity.java
@@ -8,7 +8,6 @@ import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
-import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
@@ -51,23 +50,13 @@ public class OpmlImportFromPathActivity extends OpmlImportBaseActivity {
final TextView txtvHeaderExplanation3 = (TextView) findViewById(R.id.txtvHeadingExplanation3);
Button butChooseFilesystem = (Button) findViewById(R.id.butChooseFileFromFilesystem);
- butChooseFilesystem.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- chooseFileFromFilesystem();
- }
-
- });
+ butChooseFilesystem.setOnClickListener(v -> chooseFileFromFilesystem());
Button butChooseExternal = (Button) findViewById(R.id.butChooseFileFromExternal);
- butChooseExternal.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- chooseFileFromExternal();
- }
- });
-
- int nextOption = 1;
+ butChooseExternal.setOnClickListener(v -> chooseFileFromExternal());
+
+ int nextOption = 1;
+ String optionLabel = getString(R.string.opml_import_option);
intentPickAction = new Intent(Intent.ACTION_PICK);
intentPickAction.setData(Uri.parse("file://"));
@@ -81,7 +70,7 @@ public class OpmlImportFromPathActivity extends OpmlImportBaseActivity {
}
}
if(txtvExplanation1.getVisibility() == View.VISIBLE) {
- txtvHeaderExplanation1.setText("Option " + nextOption);
+ txtvHeaderExplanation1.setText(String.format(optionLabel, nextOption));
nextOption++;
}
@@ -94,11 +83,11 @@ public class OpmlImportFromPathActivity extends OpmlImportBaseActivity {
findViewById(R.id.divider2).setVisibility(View.GONE);
butChooseExternal.setVisibility(View.GONE);
} else {
- txtvHeaderExplanation2.setText("Option " + nextOption);
+ txtvHeaderExplanation2.setText(String.format(optionLabel, nextOption));
nextOption++;
}
- txtvHeaderExplanation3.setText("Option " + nextOption);
+ txtvHeaderExplanation3.setText(String.format(optionLabel, nextOption));
}
@Override
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 94970d833..133436b6f 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivity.java
@@ -45,9 +45,12 @@ public class PreferenceActivity extends ActionBarActivity {
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
protected void onCreate(Bundle savedInstanceState) {
+ // This must be the FIRST thing we do, otherwise other code may not have the
+ // reference it needs
+ instance = this;
+
setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
- instance = this;
ActionBar ab = getSupportActionBar();
if (ab != null) {