diff options
author | ByteHamster <ByteHamster@users.noreply.github.com> | 2023-02-19 11:48:48 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-19 11:48:48 +0100 |
commit | c98194f519c66e5af1575b1c6ffac5af16594141 (patch) | |
tree | 20ee8accada974c3b1f30cf130c1d782ef5dac17 /app | |
parent | cfb974524652c16d96a8f804a525826fad27aee7 (diff) | |
download | AntennaPod-c98194f519c66e5af1575b1c6ffac5af16594141.zip |
Remove another global callback object (#6316)
Diffstat (limited to 'app')
6 files changed, 28 insertions, 86 deletions
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 @@ <activity android:name=".activity.DownloadAuthenticationActivity" android:theme="@style/Theme.AntennaPod.Dark.Translucent" - android:launchMode="singleInstance"/> + android:exported="false" + android:launchMode="singleInstance"> + <intent-filter> + <action android:name="de.danoeh.antennapod.intents.DOWNLOAD_AUTH_ACTIVITY" /> + <category android:name="android.intent.category.DEFAULT" /> + </intent-filter> + </activity> <activity android:name=".activity.PreferenceActivity" diff --git a/app/src/main/java/de/danoeh/antennapod/PodcastApp.java b/app/src/main/java/de/danoeh/antennapod/PodcastApp.java index 7cbe32e11..942e2cf24 100644 --- a/app/src/main/java/de/danoeh/antennapod/PodcastApp.java +++ b/app/src/main/java/de/danoeh/antennapod/PodcastApp.java @@ -12,7 +12,6 @@ import com.joanzapata.iconify.fonts.MaterialModule; import de.danoeh.antennapod.activity.SplashActivity; import de.danoeh.antennapod.config.ApplicationCallbacksImpl; -import de.danoeh.antennapod.config.DownloadServiceCallbacksImpl; import de.danoeh.antennapod.core.ApCoreEventBusIndex; import de.danoeh.antennapod.core.ClientConfig; import de.danoeh.antennapod.core.ClientConfigurator; @@ -35,7 +34,6 @@ public class PodcastApp extends MultiDexApplication { super.onCreate(); ClientConfig.USER_AGENT = "AntennaPod/" + BuildConfig.VERSION_NAME; ClientConfig.applicationCallbacks = new ApplicationCallbacksImpl(); - ClientConfig.downloadServiceCallbacks = new DownloadServiceCallbacksImpl(); Thread.setDefaultUncaughtExceptionHandler(new CrashReportWriter()); RxJavaErrorHandlerSetup.setupRxJavaErrorHandler(); diff --git a/app/src/main/java/de/danoeh/antennapod/activity/DownloadAuthenticationActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/DownloadAuthenticationActivity.java index 82b9d3d25..176c3c990 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/DownloadAuthenticationActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/DownloadAuthenticationActivity.java @@ -12,10 +12,10 @@ import de.danoeh.antennapod.net.download.serviceinterface.DownloadRequest; import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.dialog.AuthenticationDialog; +import de.danoeh.antennapod.ui.appstartintent.DownloadAuthenticationActivityStarter; import io.reactivex.Completable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; -import org.apache.commons.lang3.Validate; /** @@ -23,19 +23,13 @@ import org.apache.commons.lang3.Validate; * The activity MUST be started with the ARG_DOWNlOAD_REQUEST argument set to a non-null value. */ public class DownloadAuthenticationActivity extends AppCompatActivity { - - /** - * The download request object that contains information about the resource that requires a username and a password. - */ - public static final String ARG_DOWNLOAD_REQUEST = "request"; - @Override protected void onCreate(Bundle savedInstanceState) { setTheme(ThemeSwitcher.getTranslucentTheme(this)); super.onCreate(savedInstanceState); - Validate.isTrue(getIntent().hasExtra(ARG_DOWNLOAD_REQUEST), "Download request missing"); - DownloadRequest request = getIntent().getParcelableExtra(ARG_DOWNLOAD_REQUEST); + DownloadRequest request = getIntent().getParcelableExtra( + DownloadAuthenticationActivityStarter.EXTRA_DOWNLOAD_REQUEST); new AuthenticationDialog(this, R.string.authentication_label, true, "", "") { @Override 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 15edec1ce..ac4570fc5 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java @@ -76,7 +76,6 @@ public class MainActivity extends CastEnabledActivity { public static final String PREF_NAME = "MainActivityPrefs"; public static final String PREF_IS_FIRST_LAUNCH = "prefMainActivityIsFirstLaunch"; - public static final String EXTRA_FRAGMENT_ARGS = "fragment_args"; 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"; @@ -516,21 +515,12 @@ public class MainActivity extends CastEnabledActivity { } private void handleNavIntent() { + Log.d(TAG, "handleNavIntent()"); Intent intent = getIntent(); - if (intent.hasExtra(EXTRA_FEED_ID) || intent.hasExtra(MainActivityStarter.EXTRA_FRAGMENT_TAG) - || intent.hasExtra(EXTRA_REFRESH_ON_START)) { - Log.d(TAG, "handleNavIntent()"); - String tag = intent.getStringExtra(MainActivityStarter.EXTRA_FRAGMENT_TAG); - Bundle args = intent.getBundleExtra(EXTRA_FRAGMENT_ARGS); - boolean refreshOnStart = intent.getBooleanExtra(EXTRA_REFRESH_ON_START, false); - if (refreshOnStart) { - AutoUpdateManager.runImmediate(this); - } - + if (intent.hasExtra(EXTRA_FEED_ID)) { long feedId = intent.getLongExtra(EXTRA_FEED_ID, 0); - if (tag != null) { - loadFragment(tag, args); - } else if (feedId > 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; |