Open podcast from statistics (#5898)

This commit is contained in:
Adrián Sámson 2022-05-24 19:40:40 +02:00 committed by GitHub
parent 484b6d0932
commit 687ed5f2ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 2 deletions

View File

@ -85,6 +85,7 @@ public class MainActivity extends CastEnabledActivity {
public static final String EXTRA_FEED_ID = "fragment_feed_id";
public static final String EXTRA_REFRESH_ON_START = "refresh_on_start";
public static final String EXTRA_STARTED_FROM_SEARCH = "started_from_search";
public static final String EXTRA_ADD_TO_BACK_STACK = "add_to_back_stack";
public static final String KEY_GENERATED_VIEW_ID = "generated_view_id";
private @Nullable DrawerLayout drawerLayout;
@ -524,7 +525,9 @@ public class MainActivity extends CastEnabledActivity {
if (tag != null) {
loadFragment(tag, args);
} else if (feedId > 0) {
if (intent.getBooleanExtra(EXTRA_STARTED_FROM_SEARCH, false)) {
boolean startedFromSearch = intent.getBooleanExtra(EXTRA_STARTED_FROM_SEARCH, false);
boolean addToBackStack = intent.getBooleanExtra(EXTRA_ADD_TO_BACK_STACK, false);
if (startedFromSearch || addToBackStack) {
loadChildFragment(FeedItemlistFragment.newInstance(feedId));
} else {
loadFeedFragmentById(feedId, args);

View File

@ -12,6 +12,8 @@ import android.os.Build;
public class MainActivityStarter {
public static final String INTENT = "de.danoeh.antennapod.intents.MAIN_ACTIVITY";
public static final String EXTRA_OPEN_PLAYER = "open_player";
public static final String EXTRA_FEED_ID = "fragment_feed_id";
public static final String EXTRA_ADD_TO_BACK_STACK = "add_to_back_stack";
private final Intent intent;
private final Context context;
@ -39,4 +41,14 @@ public class MainActivityStarter {
intent.putExtra(EXTRA_OPEN_PLAYER, true);
return this;
}
public MainActivityStarter withOpenFeed(long feedId) {
intent.putExtra(EXTRA_FEED_ID, feedId);
return this;
}
public MainActivityStarter withAddToBackStack() {
intent.putExtra(EXTRA_ADD_TO_BACK_STACK, true);
return this;
}
}

View File

@ -13,8 +13,9 @@ android {
dependencies {
implementation project(":core")
implementation project(':event')
implementation project(":event")
implementation project(":model")
implementation project(":ui:app-start-intent")
implementation project(":ui:common")
annotationProcessor "androidx.annotation:annotation:$annotationVersion"

View File

@ -2,10 +2,13 @@ package de.danoeh.antennapod.ui.statistics.feed;
import android.app.Dialog;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import de.danoeh.antennapod.ui.appstartintent.MainActivityStarter;
import de.danoeh.antennapod.ui.statistics.R;
public class FeedStatisticsDialogFragment extends DialogFragment {
@ -26,6 +29,10 @@ public class FeedStatisticsDialogFragment extends DialogFragment {
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
AlertDialog.Builder dialog = new AlertDialog.Builder(getContext());
dialog.setPositiveButton(android.R.string.ok, null);
dialog.setNeutralButton(R.string.open_podcast, (dialogInterface, i) -> {
long feedId = getArguments().getLong(EXTRA_FEED_ID);
new MainActivityStarter(getContext()).withOpenFeed(feedId).withAddToBackStack().start();
});
dialog.setTitle(getArguments().getString(EXTRA_FEED_TITLE));
dialog.setView(R.layout.feed_statistics_dialog);
return dialog.create();