This commit is contained in:
ByteHamster 2024-05-02 20:47:34 +02:00
parent 6ec8d42532
commit bf7fe4901f
5 changed files with 35 additions and 38 deletions

View File

@ -151,15 +151,19 @@ public class FeedInfoFragment extends Fragment implements MaterialToolbar.OnMenu
txtvUrl.setOnClickListener(copyUrlToClipboard);
long feedId = getArguments().getLong(EXTRA_FEED_ID);
getParentFragmentManager().beginTransaction().replace(R.id.statisticsFragmentContainer,
FeedStatisticsFragment.newInstance(feedId, false), "feed_statistics_fragment")
.commitAllowingStateLoss();
if (feed.getState() == Feed.STATE_SUBSCRIBED) {
long feedId = getArguments().getLong(EXTRA_FEED_ID);
getParentFragmentManager().beginTransaction().replace(R.id.statisticsFragmentContainer,
FeedStatisticsFragment.newInstance(feedId, false), "feed_statistics_fragment")
.commitAllowingStateLoss();
root.findViewById(R.id.btnvOpenStatistics).setOnClickListener(view -> {
StatisticsFragment fragment = new StatisticsFragment();
((MainActivity) getActivity()).loadChildFragment(fragment, TransitionEffect.SLIDE);
});
root.findViewById(R.id.btnvOpenStatistics).setOnClickListener(view -> {
StatisticsFragment fragment = new StatisticsFragment();
((MainActivity) getActivity()).loadChildFragment(fragment, TransitionEffect.SLIDE);
});
} else {
root.findViewById(R.id.btnvOpenStatistics).setVisibility(View.GONE);
}
return root;
}
@ -275,11 +279,12 @@ public class FeedInfoFragment extends Fragment implements MaterialToolbar.OnMenu
}
private void refreshToolbarState() {
toolbar.getMenu().findItem(R.id.reconnect_local_folder).setVisible(feed != null && feed.isLocalFeed());
toolbar.getMenu().findItem(R.id.share_item).setVisible(feed != null && !feed.isLocalFeed());
toolbar.getMenu().findItem(R.id.visit_website_item).setVisible(feed != null && feed.getLink() != null
boolean isSubscribed = feed != null && feed.getState() == Feed.STATE_SUBSCRIBED;
toolbar.getMenu().findItem(R.id.reconnect_local_folder).setVisible(isSubscribed && feed.isLocalFeed());
toolbar.getMenu().findItem(R.id.share_item).setVisible(isSubscribed && !feed.isLocalFeed());
toolbar.getMenu().findItem(R.id.visit_website_item).setVisible(isSubscribed && feed.getLink() != null
&& IntentUtils.isCallable(getContext(), new Intent(Intent.ACTION_VIEW, Uri.parse(feed.getLink()))));
toolbar.getMenu().findItem(R.id.edit_feed_url_item).setVisible(feed != null && !feed.isLocalFeed());
toolbar.getMenu().findItem(R.id.edit_feed_url_item).setVisible(isSubscribed && !feed.isLocalFeed());
}
@Override

View File

@ -82,7 +82,7 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
private Dialog dialog;
private Disposable download;
private Disposable parser;
OnlinefeedviewActivityBinding viewBinding;
private OnlinefeedviewActivityBinding viewBinding;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -122,10 +122,11 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
}
private void showNoPodcastFoundError() {
runOnUiThread(() -> new MaterialAlertDialogBuilder(this)
runOnUiThread(() -> new MaterialAlertDialogBuilder(OnlineFeedViewActivity.this)
.setNeutralButton(android.R.string.ok, (dialog, which) -> finish())
.setTitle(R.string.error_label)
.setMessage(R.string.null_value_podcast_error)
.setOnDismissListener(dialog1 -> finish())
.show());
}
@ -266,13 +267,15 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
if (status.isSuccessful()) {
parseFeed(destination);
} else if (status.getReason() == DownloadError.ERROR_UNAUTHORIZED) {
if (username != null && password != null) {
Toast.makeText(this, R.string.download_error_unauthorized, Toast.LENGTH_LONG).show();
if (!isFinishing() && !isPaused) {
if (username != null && password != null) {
Toast.makeText(this, R.string.download_error_unauthorized, Toast.LENGTH_LONG).show();
}
dialog = new FeedViewAuthenticationDialog(this,
R.string.authentication_notification_title,
downloader.getDownloadRequest().getSource()).create();
dialog.show();
}
dialog = new FeedViewAuthenticationDialog(this,
R.string.authentication_notification_title,
downloader.getDownloadRequest().getSource()).create();
dialog.show();
} else {
showErrorDialog(getString(DownloadErrorLabel.from(status.getReason())), status.getReasonDetailed());
}
@ -334,6 +337,10 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
}
private void showFeedFragment(long id) {
if (isFeedFoundBySearch) {
Toast.makeText(this, R.string.no_feed_url_podcast_found_by_search, Toast.LENGTH_LONG).show();
}
viewBinding.progressBar.setVisibility(View.GONE);
FeedItemlistFragment fragment = FeedItemlistFragment.newInstance(id);
getSupportFragmentManager()
@ -439,7 +446,7 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
.setAdapter(adapter, onClickListener);
runOnUiThread(() -> {
if (dialog != null && dialog.isShowing()) {
if(dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
dialog = ab.show();
@ -469,4 +476,5 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
downloadIfNotAlreadySubscribed(feedUrl);
}
}
}

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="8dp"
style="?android:attr/spinnerDropDownItemStyle" />

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="3"
android:textAlignment="inherit"
style="?android:attr/spinnerItemStyle" />

View File

@ -305,6 +305,7 @@
<string name="download_type_feed">Feed</string>
<string name="download_type_media">Media file</string>
<string name="null_value_podcast_error">No podcast was provided that could be shown.</string>
<string name="no_feed_url_podcast_found_by_search">The suggested podcast did not have an RSS link, AntennaPod found a podcast that could match</string>
<string name="authentication_notification_title">Authentication required</string>
<string name="confirm_mobile_download_dialog_title">Confirm mobile download</string>
<string name="confirm_mobile_download_dialog_message">Downloading over mobile data connection is disabled in the settings. AntennaPod can download the episode later automatically when Wi-Fi is available.</string>