summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorByteHamster <ByteHamster@users.noreply.github.com>2023-02-19 11:48:48 +0100
committerGitHub <noreply@github.com>2023-02-19 11:48:48 +0100
commitc98194f519c66e5af1575b1c6ffac5af16594141 (patch)
tree20ee8accada974c3b1f30cf130c1d782ef5dac17 /app
parentcfb974524652c16d96a8f804a525826fad27aee7 (diff)
downloadAntennaPod-c98194f519c66e5af1575b1c6ffac5af16594141.zip
Remove another global callback object (#6316)
Diffstat (limited to 'app')
-rw-r--r--app/src/main/AndroidManifest.xml8
-rw-r--r--app/src/main/java/de/danoeh/antennapod/PodcastApp.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/DownloadAuthenticationActivity.java12
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java30
-rw-r--r--app/src/main/java/de/danoeh/antennapod/config/DownloadServiceCallbacksImpl.java58
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/NavDrawerFragment.java4
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;