Move settings fragments to settings module (#8637)

### Description

Move settings fragments to settings module. Reduces the size of the main
:app module by ~2k lines of code.

### Checklist
<!-- 
To help us keep the issue tracker clean and work as efficient as
possible,
  please make sure that you have done all of the following.
You can tick the boxes below by placing an x inside the brackets like
this: [x]
-->
- [x] I have read the contribution guidelines:
https://github.com/AntennaPod/AntennaPod/blob/develop/CONTRIBUTING.md#submit-a-pull-request
- [x] I have performed a self-review of my code, going through my
changes line by line and carefully considering why this line change is
necessary
- [x] I have run the automated code checks using `./gradlew checkstyle
lint`
- [x] My code follows the style guidelines of the AntennaPod project:
https://antennapod.org/contribute/develop/app/code-style
- [x] I have mentioned the corresponding issue and the relevant keyword
(e.g., "Closes: #xy") in the description (see
https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
- [x] If it is a core feature, I have added automated tests
This commit is contained in:
Hans-Peter Lehmann
2026-08-01 13:13:34 +02:00
committed by GitHub
parent c19b3d7223
commit 2a5d846799
25 changed files with 42 additions and 33 deletions

View File

@ -33,7 +33,7 @@ import de.danoeh.antennapod.storage.importexport.OpmlElement;
import de.danoeh.antennapod.storage.importexport.OpmlReader;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.ui.common.ToolbarActivity;
import de.danoeh.antennapod.ui.screen.preferences.ParentalControlDialog;
import de.danoeh.antennapod.ui.preferences.screen.ParentalControlDialog;
import io.reactivex.rxjava3.core.Completable;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;

View File

@ -36,7 +36,7 @@ import de.danoeh.antennapod.net.download.serviceinterface.FeedUpdateManager;
import de.danoeh.antennapod.storage.database.FeedDatabaseWriter;
import de.danoeh.antennapod.model.feed.SortOrder;
import de.danoeh.antennapod.databinding.AddfeedBinding;
import de.danoeh.antennapod.databinding.EditTextDialogBinding;
import de.danoeh.antennapod.ui.common.databinding.EditTextDialogBinding;
import de.danoeh.antennapod.net.discovery.CombinedSearcher;
import de.danoeh.antennapod.net.discovery.FyydPodcastSearcher;
import de.danoeh.antennapod.net.discovery.ItunesPodcastSearcher;

View File

@ -4,8 +4,8 @@ import android.content.Context;
import androidx.annotation.NonNull;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.ui.screen.preferences.ReorderDialog;
import de.danoeh.antennapod.ui.screen.preferences.ReorderDialogItem;
import de.danoeh.antennapod.ui.preferences.screen.ReorderDialog;
import de.danoeh.antennapod.ui.preferences.screen.ReorderDialogItem;
import java.util.ArrayList;
import java.util.Collections;

View File

@ -11,7 +11,7 @@ import de.danoeh.antennapod.R;
import de.danoeh.antennapod.storage.database.NavDrawerData;
import de.danoeh.antennapod.model.feed.Feed;
import de.danoeh.antennapod.storage.database.DBWriter;
import de.danoeh.antennapod.databinding.EditTextDialogBinding;
import de.danoeh.antennapod.ui.common.databinding.EditTextDialogBinding;
import de.danoeh.antennapod.model.feed.FeedPreferences;
public class RenameFeedDialog {

View File

@ -8,7 +8,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.net.download.serviceinterface.FeedUpdateManager;
import de.danoeh.antennapod.storage.database.DBWriter;
import de.danoeh.antennapod.databinding.EditTextDialogBinding;
import de.danoeh.antennapod.ui.common.databinding.EditTextDialogBinding;
import de.danoeh.antennapod.model.feed.Feed;
import java.lang.ref.WeakReference;

View File

@ -3,8 +3,8 @@ package de.danoeh.antennapod.ui.screen.home.settingsdialog;
import android.content.Context;
import androidx.annotation.NonNull;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.ui.screen.preferences.ReorderDialog;
import de.danoeh.antennapod.ui.screen.preferences.ReorderDialogItem;
import de.danoeh.antennapod.ui.preferences.screen.ReorderDialog;
import de.danoeh.antennapod.ui.preferences.screen.ReorderDialogItem;
import java.util.ArrayList;
import java.util.Collections;

View File

@ -22,7 +22,7 @@ import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.snackbar.Snackbar;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.databinding.EditTextDialogBinding;
import de.danoeh.antennapod.ui.common.databinding.EditTextDialogBinding;
import de.danoeh.antennapod.databinding.OnlinefeedviewActivityBinding;
import de.danoeh.antennapod.event.MessageEvent;
import de.danoeh.antennapod.model.download.DownloadError;
@ -31,7 +31,7 @@ import de.danoeh.antennapod.model.download.DownloadResult;
import de.danoeh.antennapod.model.feed.Feed;
import de.danoeh.antennapod.net.common.UrlChecker;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.ui.screen.preferences.ParentalControlDialog;
import de.danoeh.antennapod.ui.preferences.screen.ParentalControlDialog;
import de.danoeh.antennapod.net.discovery.CombinedSearcher;
import de.danoeh.antennapod.net.discovery.FeedUrlNotFoundException;
import de.danoeh.antennapod.net.discovery.PodcastSearchResult;

View File

@ -7,6 +7,7 @@ import de.danoeh.antennapod.R;
import de.danoeh.antennapod.net.download.serviceinterface.FeedUpdateManager;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.ui.preferences.screen.AnimatedPreferenceFragment;
import de.danoeh.antennapod.ui.preferences.screen.ProxyDialog;
import de.danoeh.antennapod.ui.preferences.screen.downloads.ChooseDataFolderDialog;
import java.io.File;

View File

@ -15,6 +15,7 @@ import de.danoeh.antennapod.R;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.ui.common.IntentUtils;
import de.danoeh.antennapod.ui.preferences.screen.AnimatedPreferenceFragment;
import de.danoeh.antennapod.ui.preferences.screen.ParentalControlDialog;
import de.danoeh.antennapod.ui.preferences.screen.about.AboutFragment;
import de.danoeh.antennapod.ui.preferences.screen.bugreport.BugReportFragment;

View File

@ -18,6 +18,7 @@ import de.danoeh.antennapod.ui.common.Keyboard;
import de.danoeh.antennapod.ui.common.ToolbarActivity;
import de.danoeh.antennapod.ui.preferences.databinding.SettingsActivityBinding;
import de.danoeh.antennapod.ui.preferences.screen.AutoDownloadPreferencesFragment;
import de.danoeh.antennapod.ui.preferences.screen.AutomaticDeletionPreferencesFragment;
import de.danoeh.antennapod.ui.preferences.screen.NotificationPreferencesFragment;
import de.danoeh.antennapod.ui.preferences.screen.synchronization.SynchronizationPreferencesFragment;
import org.greenrobot.eventbus.EventBus;

View File

@ -21,8 +21,8 @@ import de.danoeh.antennapod.ui.screen.feed.RemoveFeedDialog;
import de.danoeh.antennapod.ui.screen.feed.preferences.TagSettingsDialog;
import de.danoeh.antennapod.model.feed.Feed;
import de.danoeh.antennapod.model.feed.FeedPreferences;
import de.danoeh.antennapod.ui.screen.preferences.PreferenceListDialog;
import de.danoeh.antennapod.ui.screen.preferences.PreferenceSwitchDialog;
import de.danoeh.antennapod.ui.preferences.screen.PreferenceListDialog;
import de.danoeh.antennapod.ui.preferences.screen.PreferenceSwitchDialog;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.schedulers.Schedulers;

View File

@ -20,10 +20,15 @@ android {
}
buildConfigField "String", "COMMIT_HASH", ('"' + (commit.isEmpty() ? "Unknown commit" : commit) + '"')
}
lint {
disable 'UseCompoundDrawables', 'ClickableViewAccessibility'
}
}
dependencies {
implementation project(":event")
implementation project(":model")
implementation project(":net:common")
implementation project(":net:sync:gpoddernet")
implementation project(":storage:preferences")
@ -39,6 +44,7 @@ dependencies {
implementation libs.androidx.fragment
implementation libs.google.material
implementation libs.androidx.preference
implementation libs.androidx.recyclerview
implementation libs.androidx.work.runtime
implementation libs.rxandroid

View File

@ -1,13 +1,13 @@
package de.danoeh.antennapod.ui.screen.preferences;
package de.danoeh.antennapod.ui.preferences.screen;
import android.content.res.Resources;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.preference.ListPreference;
import androidx.preference.TwoStatePreference;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.ui.preferences.R;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.ui.preferences.screen.AnimatedPreferenceFragment;
public class AutomaticDeletionPreferencesFragment extends AnimatedPreferenceFragment {
@ -25,7 +25,7 @@ public class AutomaticDeletionPreferencesFragment extends AnimatedPreferenceFrag
@Override
public void onStart() {
super.onStart();
((PreferenceActivity) getActivity()).getSupportActionBar().setTitle(R.string.pref_auto_delete_title);
((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(R.string.pref_auto_delete_title);
}
private void checkItemVisibility(boolean autoDeleteEnabled) {

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.ui.screen.preferences;
package de.danoeh.antennapod.ui.preferences.screen;
import android.content.Context;
import android.text.InputType;
@ -8,9 +8,9 @@ import androidx.appcompat.app.AlertDialog;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.ui.preferences.R;
import de.danoeh.antennapod.ui.common.Keyboard;
import de.danoeh.antennapod.databinding.EditTextDialogBinding;
import de.danoeh.antennapod.ui.common.databinding.EditTextDialogBinding;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
public class ParentalControlDialog {

View File

@ -1,10 +1,10 @@
package de.danoeh.antennapod.ui.screen.preferences;
package de.danoeh.antennapod.ui.preferences.screen;
import android.content.Context;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.ui.preferences.R;
public class PreferenceListDialog {
protected Context context;

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.ui.screen.preferences;
package de.danoeh.antennapod.ui.preferences.screen;
import android.content.Context;
import android.view.LayoutInflater;
@ -7,7 +7,7 @@ import android.view.View;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.materialswitch.MaterialSwitch;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.ui.preferences.R;
public class PreferenceSwitchDialog {
protected Context context;

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.ui.screen.preferences;
package de.danoeh.antennapod.ui.preferences.screen;
import android.app.Dialog;
import android.content.Context;
@ -22,7 +22,7 @@ import java.util.List;
import java.util.Locale;
import java.util.concurrent.TimeUnit;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.ui.preferences.R;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.net.common.AntennapodHttpClient;
import de.danoeh.antennapod.model.download.ProxyConfig;

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.ui.screen.preferences;
package de.danoeh.antennapod.ui.preferences.screen;
import android.content.Context;
import android.view.LayoutInflater;
@ -9,8 +9,8 @@ import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.databinding.ReorderDialogBinding;
import de.danoeh.antennapod.ui.preferences.R;
import de.danoeh.antennapod.ui.preferences.databinding.ReorderDialogBinding;
import java.util.ArrayList;
import java.util.Collections;

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.ui.screen.preferences;
package de.danoeh.antennapod.ui.preferences.screen;
import android.view.LayoutInflater;
import android.view.MotionEvent;
@ -10,8 +10,8 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.util.Consumer;
import androidx.recyclerview.widget.RecyclerView;
import de.danoeh.antennapod.databinding.ReorderDialogEntryBinding;
import de.danoeh.antennapod.databinding.ReorderDialogHeaderBinding;
import de.danoeh.antennapod.ui.preferences.databinding.ReorderDialogEntryBinding;
import de.danoeh.antennapod.ui.preferences.databinding.ReorderDialogHeaderBinding;
import java.util.List;

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.ui.screen.preferences;
package de.danoeh.antennapod.ui.preferences.screen;
public final class ReorderDialogItem {
public enum ViewType {

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.ui.screen.preferences;
package de.danoeh.antennapod.ui.preferences.screen;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.ItemTouchHelper;