From c98194f519c66e5af1575b1c6ffac5af16594141 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Sun, 19 Feb 2023 11:48:48 +0100 Subject: Remove another global callback object (#6316) --- app/src/main/AndroidManifest.xml | 8 ++- .../main/java/de/danoeh/antennapod/PodcastApp.java | 2 - .../activity/DownloadAuthenticationActivity.java | 12 ++--- .../danoeh/antennapod/activity/MainActivity.java | 30 +++++------ .../config/DownloadServiceCallbacksImpl.java | 58 ---------------------- .../antennapod/fragment/NavDrawerFragment.java | 4 +- 6 files changed, 28 insertions(+), 86 deletions(-) delete mode 100644 app/src/main/java/de/danoeh/antennapod/config/DownloadServiceCallbacksImpl.java (limited to 'app/src') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9cce60469..d784e8709 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -126,7 +126,13 @@ + android:exported="false" + android:launchMode="singleInstance"> + + + + + 0) { + Bundle args = intent.getBundleExtra(MainActivityStarter.EXTRA_FRAGMENT_ARGS); + if (feedId > 0) { boolean startedFromSearch = intent.getBooleanExtra(EXTRA_STARTED_FROM_SEARCH, false); boolean addToBackStack = intent.getBooleanExtra(EXTRA_ADD_TO_BACK_STACK, false); if (startedFromSearch || addToBackStack) { @@ -540,6 +530,13 @@ public class MainActivity extends CastEnabledActivity { } } sheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); + } else if (intent.hasExtra(MainActivityStarter.EXTRA_FRAGMENT_TAG)) { + String tag = intent.getStringExtra(MainActivityStarter.EXTRA_FRAGMENT_TAG); + Bundle args = intent.getBundleExtra(MainActivityStarter.EXTRA_FRAGMENT_ARGS); + if (tag != null) { + loadFragment(tag, args); + } + sheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); } else if (intent.getBooleanExtra(MainActivityStarter.EXTRA_OPEN_PLAYER, false)) { sheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); bottomSheetCallback.onSlide(null, 1.0f); @@ -547,9 +544,12 @@ public class MainActivity extends CastEnabledActivity { handleDeeplink(intent.getData()); } - if (intent.hasExtra(MainActivityStarter.EXTRA_OPEN_DRAWER) && drawerLayout != null) { + if (intent.getBooleanExtra(MainActivityStarter.EXTRA_OPEN_DRAWER, false) && drawerLayout != null) { drawerLayout.open(); } + if (intent.getBooleanExtra(EXTRA_REFRESH_ON_START, false)) { + AutoUpdateManager.runImmediate(this); + } // to avoid handling the intent twice when the configuration changes setIntent(new Intent(MainActivity.this, MainActivity.class)); } diff --git a/app/src/main/java/de/danoeh/antennapod/config/DownloadServiceCallbacksImpl.java b/app/src/main/java/de/danoeh/antennapod/config/DownloadServiceCallbacksImpl.java deleted file mode 100644 index cc05e14e1..000000000 --- a/app/src/main/java/de/danoeh/antennapod/config/DownloadServiceCallbacksImpl.java +++ /dev/null @@ -1,58 +0,0 @@ -package de.danoeh.antennapod.config; - -import android.app.PendingIntent; -import android.content.Context; -import android.content.Intent; -import android.os.Build; - -import android.os.Bundle; -import de.danoeh.antennapod.R; -import de.danoeh.antennapod.activity.DownloadAuthenticationActivity; -import de.danoeh.antennapod.activity.MainActivity; -import de.danoeh.antennapod.core.DownloadServiceCallbacks; -import de.danoeh.antennapod.net.download.serviceinterface.DownloadRequest; -import de.danoeh.antennapod.fragment.CompletedDownloadsFragment; -import de.danoeh.antennapod.fragment.QueueFragment; -import de.danoeh.antennapod.ui.appstartintent.MainActivityStarter; - - -public class DownloadServiceCallbacksImpl implements DownloadServiceCallbacks { - - @Override - public PendingIntent getNotificationContentIntent(Context context) { - MainActivityStarter starter = new MainActivityStarter(context) - .withFragmentLoaded(CompletedDownloadsFragment.TAG); - return PendingIntent.getActivity(context, - R.id.pending_intent_download_service_notification, starter.getIntent(), - PendingIntent.FLAG_UPDATE_CURRENT | (Build.VERSION.SDK_INT >= 23 ? PendingIntent.FLAG_IMMUTABLE : 0)); - } - - @Override - public PendingIntent getAuthentificationNotificationContentIntent(Context context, DownloadRequest request) { - final Intent activityIntent = new Intent(context.getApplicationContext(), DownloadAuthenticationActivity.class); - activityIntent.setAction("request" + request.getFeedfileId()); - activityIntent.putExtra(DownloadAuthenticationActivity.ARG_DOWNLOAD_REQUEST, request); - return PendingIntent.getActivity(context.getApplicationContext(), - request.getSource().hashCode(), activityIntent, - PendingIntent.FLAG_ONE_SHOT | (Build.VERSION.SDK_INT >= 23 ? PendingIntent.FLAG_IMMUTABLE : 0)); - } - - @Override - public PendingIntent getReportNotificationContentIntent(Context context) { - Intent intent = new Intent(context, MainActivity.class); - intent.putExtra(MainActivityStarter.EXTRA_FRAGMENT_TAG, CompletedDownloadsFragment.TAG); - Bundle args = new Bundle(); - args.putBoolean(CompletedDownloadsFragment.ARG_SHOW_LOGS, true); - intent.putExtra(MainActivity.EXTRA_FRAGMENT_ARGS, args); - return PendingIntent.getActivity(context, R.id.pending_intent_download_service_report, intent, - PendingIntent.FLAG_UPDATE_CURRENT | (Build.VERSION.SDK_INT >= 23 ? PendingIntent.FLAG_IMMUTABLE : 0)); - } - - @Override - public PendingIntent getAutoDownloadReportNotificationContentIntent(Context context) { - Intent intent = new Intent(context, MainActivity.class); - intent.putExtra(MainActivityStarter.EXTRA_FRAGMENT_TAG, QueueFragment.TAG); - return PendingIntent.getActivity(context, R.id.pending_intent_download_service_autodownload_report, intent, - PendingIntent.FLAG_UPDATE_CURRENT | (Build.VERSION.SDK_INT >= 23 ? PendingIntent.FLAG_IMMUTABLE : 0)); - } -} 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 2d0b9fe99..e155e467d 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java @@ -343,7 +343,9 @@ public class NavDrawerFragment extends Fragment implements SharedPreferences.OnS navAdapter.notifyDataSetChanged(); if (UserPreferences.getHiddenDrawerItems().contains(getLastNavFragment(getContext()))) { new MainActivityStarter(getContext()) - .withFragmentLoaded(UserPreferences.getDefaultPage()).start(); + .withFragmentLoaded(UserPreferences.getDefaultPage()) + .withDrawerOpen() + .start(); } }); return true; -- cgit v1.2.3