Move first batch of preferences code to :ui:preferences (#7010)

This commit is contained in:
ByteHamster 2024-03-23 09:40:40 +01:00 committed by GitHub
parent 376c83d200
commit f20ce1fc69
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
83 changed files with 140 additions and 106 deletions

View File

@ -93,6 +93,7 @@ dependencies {
implementation project(':ui:echo')
implementation project(':ui:glide')
implementation project(':ui:i18n')
implementation project(':ui:preferences')
implementation project(':ui:statistics')
annotationProcessor "androidx.annotation:annotation:$annotationVersion"
@ -142,13 +143,3 @@ if (project.hasProperty("antennaPodPlayPublisherCredentials")) {
serviceAccountCredentials.set(file(antennaPodPlayPublisherCredentials))
}
}
tasks.register('copyLicense', Copy) {
from "../LICENSE"
into "src/main/assets/"
rename { String fileName ->
fileName + ".txt"
}
}
preBuild.dependsOn copyLicense

View File

@ -1,13 +1,10 @@
package de.danoeh.antennapod;
import android.app.Application;
import android.content.ComponentName;
import android.content.Intent;
import android.os.StrictMode;
import com.google.android.material.color.DynamicColors;
import de.danoeh.antennapod.activity.SplashActivity;
import de.danoeh.antennapod.config.ApplicationCallbacksImpl;
import de.danoeh.antennapod.core.ApCoreEventBusIndex;
import de.danoeh.antennapod.core.ClientConfig;
@ -61,13 +58,4 @@ public class PodcastApp extends Application {
DynamicColors.applyToActivitiesIfAvailable(this);
}
public static void forceRestart() {
Intent intent = new Intent(getInstance(), SplashActivity.class);
ComponentName cn = intent.getComponent();
Intent mainIntent = Intent.makeRestartActivityTask(cn);
getInstance().startActivity(mainIntent);
Runtime.getRuntime().exit(0);
}
}

View File

@ -61,13 +61,13 @@ import de.danoeh.antennapod.net.common.UrlChecker;
import de.danoeh.antennapod.core.util.syndication.FeedDiscoverer;
import de.danoeh.antennapod.core.util.syndication.HtmlToPlainText;
import de.danoeh.antennapod.databinding.OnlinefeedviewActivityBinding;
import de.danoeh.antennapod.dialog.AuthenticationDialog;
import de.danoeh.antennapod.model.feed.Feed;
import de.danoeh.antennapod.model.feed.FeedPreferences;
import de.danoeh.antennapod.model.playback.RemoteMedia;
import de.danoeh.antennapod.parser.feed.UnsupportedFeedtypeException;
import de.danoeh.antennapod.ui.common.ThemeUtils;
import de.danoeh.antennapod.ui.glide.FastBlurTransformation;
import de.danoeh.antennapod.ui.preferences.screen.synchronization.AuthenticationDialog;
import io.reactivex.Maybe;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;

View File

@ -23,15 +23,15 @@ import de.danoeh.antennapod.R;
import de.danoeh.antennapod.ui.common.ThemeSwitcher;
import de.danoeh.antennapod.databinding.SettingsActivityBinding;
import de.danoeh.antennapod.event.MessageEvent;
import de.danoeh.antennapod.fragment.preferences.AutoDownloadPreferencesFragment;
import de.danoeh.antennapod.fragment.preferences.ImportExportPreferencesFragment;
import de.danoeh.antennapod.fragment.preferences.MainPreferencesFragment;
import de.danoeh.antennapod.fragment.preferences.DownloadsPreferencesFragment;
import de.danoeh.antennapod.fragment.preferences.NotificationPreferencesFragment;
import de.danoeh.antennapod.fragment.preferences.PlaybackPreferencesFragment;
import de.danoeh.antennapod.fragment.preferences.synchronization.SynchronizationPreferencesFragment;
import de.danoeh.antennapod.fragment.preferences.SwipePreferencesFragment;
import de.danoeh.antennapod.fragment.preferences.UserInterfacePreferencesFragment;
import de.danoeh.antennapod.ui.preferences.screen.AutoDownloadPreferencesFragment;
import de.danoeh.antennapod.ui.preferences.screen.NotificationPreferencesFragment;
import de.danoeh.antennapod.ui.preferences.screen.synchronization.SynchronizationPreferencesFragment;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;

View File

@ -38,10 +38,10 @@ import de.danoeh.antennapod.model.feed.VolumeAdaptionSetting;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.core.storage.DBWriter;
import de.danoeh.antennapod.dialog.AuthenticationDialog;
import de.danoeh.antennapod.dialog.EpisodeFilterDialog;
import de.danoeh.antennapod.dialog.FeedPreferenceSkipDialog;
import de.danoeh.antennapod.dialog.TagSettingsDialog;
import de.danoeh.antennapod.ui.preferences.screen.synchronization.AuthenticationDialog;
import io.reactivex.Maybe;
import io.reactivex.MaybeOnSubscribe;
import io.reactivex.android.schedulers.AndroidSchedulers;

View File

@ -18,10 +18,10 @@ import de.danoeh.antennapod.core.storage.DBWriter;
import de.danoeh.antennapod.databinding.PlaybackSpeedFeedSettingDialogBinding;
import de.danoeh.antennapod.dialog.RemoveFeedDialog;
import de.danoeh.antennapod.dialog.TagSettingsDialog;
import de.danoeh.antennapod.fragment.preferences.dialog.PreferenceListDialog;
import de.danoeh.antennapod.fragment.preferences.dialog.PreferenceSwitchDialog;
import de.danoeh.antennapod.model.feed.Feed;
import de.danoeh.antennapod.model.feed.FeedPreferences;
import de.danoeh.antennapod.fragment.preferences.dialog.PreferenceListDialog;
import de.danoeh.antennapod.fragment.preferences.dialog.PreferenceSwitchDialog;
public class FeedMultiSelectActionHandler {
private static final String TAG = "FeedSelectHandler";

View File

@ -11,7 +11,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.PreferenceActivity;
import de.danoeh.antennapod.core.util.download.FeedUpdateManager;
import de.danoeh.antennapod.dialog.ChooseDataFolderDialog;
import de.danoeh.antennapod.ui.preferences.screen.downloads.ChooseDataFolderDialog;
import de.danoeh.antennapod.dialog.ProxyDialog;
import de.danoeh.antennapod.storage.preferences.UserPreferences;

View File

@ -24,7 +24,6 @@ import androidx.core.app.ShareCompat;
import androidx.core.content.FileProvider;
import androidx.preference.PreferenceFragmentCompat;
import com.google.android.material.snackbar.Snackbar;
import de.danoeh.antennapod.PodcastApp;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.OpmlImportActivity;
import de.danoeh.antennapod.activity.PreferenceActivity;
@ -38,6 +37,7 @@ import de.danoeh.antennapod.storage.importexport.FavoritesWriter;
import de.danoeh.antennapod.storage.importexport.HtmlWriter;
import de.danoeh.antennapod.storage.importexport.OpmlWriter;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.ui.appstartintent.MainActivityStarter;
import io.reactivex.Completable;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
@ -205,7 +205,7 @@ public class ImportExportPreferencesFragment extends PreferenceFragmentCompat {
builder.setTitle(R.string.successful_import_label);
builder.setMessage(R.string.import_ok);
builder.setCancelable(false);
builder.setPositiveButton(android.R.string.ok, (dialogInterface, i) -> PodcastApp.forceRestart());
builder.setPositiveButton(android.R.string.ok, (dialogInterface, i) -> forceRestart());
builder.show();
}
@ -362,6 +362,12 @@ public class ImportExportPreferencesFragment extends PreferenceFragmentCompat {
((SwitchPreferenceCompat) findPreference(PREF_AUTOMATIC_DATABASE_EXPORT)).setChecked(true);
}
private void forceRestart() {
Intent intent = new MainActivityStarter(getContext()).getIntent();
getContext().getApplicationContext().startActivity(intent);
Runtime.getRuntime().exit(0);
}
private static class BackupDatabase extends ActivityResultContracts.CreateDocument {
BackupDatabase() {

View File

@ -11,6 +11,8 @@ import de.danoeh.antennapod.BuildConfig;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.PreferenceActivity;
import de.danoeh.antennapod.core.util.IntentUtils;
import de.danoeh.antennapod.ui.preferences.screen.about.ContributorsPagerFragment;
import de.danoeh.antennapod.ui.preferences.screen.about.LicensesFragment;
public class AboutFragment extends PreferenceFragmentCompat {

View File

@ -6,6 +6,7 @@ import android.util.AttributeSet;
import java.util.Arrays;
import de.danoeh.antennapod.model.feed.VolumeAdaptionSetting;
import de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference;
public class VolumeAdaptationPreference extends MaterialListPreference {
public VolumeAdaptationPreference(Context context) {

View File

@ -40,7 +40,7 @@
android:summary="@string/pref_feed_skip_sum"
android:title="@string/pref_feed_skip" />
<de.danoeh.antennapod.preferences.MaterialListPreference
<de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
android:entries="@array/spnAutoDeleteItems"
android:entryValues="@array/spnAutoDeleteValues"
android:icon="@drawable/ic_delete"
@ -57,7 +57,7 @@
android:summary="@string/feed_volume_adaptation_summary"
android:title="@string/feed_volume_adapdation" />
<de.danoeh.antennapod.preferences.MaterialListPreference
<de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
android:entries="@array/feedNewEpisodesActionItems"
android:entryValues="@array/feedNewEpisodesActionValues"
android:icon="@drawable/ic_feed"

View File

@ -79,11 +79,7 @@
<Match><Class name="de.danoeh.antennapod.core.ClientConfig"/></Match>
<Match><Package name="de.danoeh.antennapod.databinding"/></Match>
<Match><Package name="de.danoeh.antennapod.core.databinding"/></Match>
<Match><Package name="de.danoeh.antennapod.ui.common.databinding"/></Match>
<Match><Package name="de.danoeh.antennapod.ui.echo.databinding"/></Match>
<Match><Package name="de.danoeh.antennapod.ui.statistics.databinding"/></Match>
<Match><Package name="~.*\.databinding"/></Match>
<Match><Bug pattern="DMI_RANDOM_USED_ONLY_ONCE"/></Match>
<Match><Bug pattern="EI_EXPOSE_REP"/></Match>

View File

@ -43,5 +43,6 @@ include ':ui:echo'
include ':ui:glide'
include ':ui:i18n'
include ':ui:notifications'
include ':ui:preferences'
include ':ui:statistics'
include ':ui:widget'

3
ui/preferences/README.md Normal file
View File

@ -0,0 +1,3 @@
# :ui:preferences
This module provides the settings screen.

View File

@ -0,0 +1,47 @@
plugins {
id("com.android.library")
}
apply from: "../../common.gradle"
apply from: "../../playFlavor.gradle"
android {
namespace "de.danoeh.antennapod.ui.preferences"
}
dependencies {
implementation project(":core")
implementation project(":event")
implementation project(":model")
implementation project(":net:common")
implementation project(":net:sync:model")
implementation project(":net:sync:gpoddernet")
implementation project(":storage:preferences")
implementation project(":storage:importexport")
implementation project(":ui:common")
implementation project(":ui:glide")
implementation project(":ui:i18n")
annotationProcessor "androidx.annotation:annotation:$annotationVersion"
implementation "androidx.appcompat:appcompat:$appcompatVersion"
implementation "com.google.android.material:material:$googleMaterialVersion"
implementation "androidx.preference:preference:$preferenceVersion"
implementation "androidx.work:work-runtime:$workManagerVersion"
implementation "io.reactivex.rxjava2:rxandroid:$rxAndroidVersion"
implementation "io.reactivex.rxjava2:rxjava:$rxJavaVersion"
implementation "com.github.bumptech.glide:glide:$glideVersion"
implementation "com.squareup.okhttp3:okhttp:$okhttpVersion"
implementation "com.squareup.okhttp3:okhttp-urlconnection:$okhttpVersion"
implementation "org.greenrobot:eventbus:$eventbusVersion"
implementation 'com.github.ByteHamster:SearchPreference:v2.5.0'
}
tasks.register('copyLicense', Copy) {
from "../../LICENSE"
into "src/main/assets/"
rename { String fileName ->
fileName + ".txt"
}
}
preBuild.dependsOn copyLicense

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="auto">
</manifest>

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.preferences;
package de.danoeh.antennapod.ui.preferences.preference;
import android.content.Context;
import android.graphics.Typeface;
@ -7,8 +7,8 @@ import androidx.preference.PreferenceViewHolder;
import android.util.AttributeSet;
import android.widget.TextView;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.ui.common.ThemeUtils;
import de.danoeh.antennapod.ui.preferences.R;
public class MasterSwitchPreference extends SwitchPreferenceCompat {

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.preferences;
package de.danoeh.antennapod.ui.preferences.preference;
import android.content.Context;
import android.util.AttributeSet;

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.preferences;
package de.danoeh.antennapod.ui.preferences.preference;
import android.content.Context;
import android.content.DialogInterface;

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.preferences;
package de.danoeh.antennapod.ui.preferences.preference;
import android.content.Context;
import android.util.AttributeSet;
@ -6,9 +6,9 @@ import androidx.cardview.widget.CardView;
import androidx.preference.Preference;
import androidx.preference.PreferenceViewHolder;
import com.google.android.material.elevation.SurfaceColors;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.databinding.ThemePreferenceBinding;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.ui.preferences.R;
import de.danoeh.antennapod.ui.preferences.databinding.ThemePreferenceBinding;
public class ThemePreference extends Preference {
ThemePreferenceBinding viewBinding;

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.fragment.preferences;
package de.danoeh.antennapod.ui.preferences.screen;
import android.annotation.SuppressLint;
import android.app.Activity;
@ -9,14 +9,14 @@ import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
import androidx.preference.CheckBoxPreference;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceScreen;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.PreferenceActivity;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.ui.preferences.R;
import java.util.ArrayList;
import java.util.Arrays;
@ -41,7 +41,7 @@ public class AutoDownloadPreferencesFragment extends PreferenceFragmentCompat {
@Override
public void onStart() {
super.onStart();
((PreferenceActivity) getActivity()).getSupportActionBar().setTitle(R.string.pref_automatic_download_title);
((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(R.string.pref_automatic_download_title);
}
@Override

View File

@ -1,10 +1,10 @@
package de.danoeh.antennapod.fragment.preferences;
package de.danoeh.antennapod.ui.preferences.screen;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.preference.PreferenceFragmentCompat;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.PreferenceActivity;
import de.danoeh.antennapod.core.sync.SynchronizationSettings;
import de.danoeh.antennapod.ui.preferences.R;
public class NotificationPreferencesFragment extends PreferenceFragmentCompat {
@ -19,7 +19,7 @@ public class NotificationPreferencesFragment extends PreferenceFragmentCompat {
@Override
public void onStart() {
super.onStart();
((PreferenceActivity) getActivity()).getSupportActionBar().setTitle(R.string.notification_pref_fragment);
((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(R.string.notification_pref_fragment);
}
private void setUpScreen() {

View File

@ -1,17 +1,17 @@
package de.danoeh.antennapod.fragment.preferences.about;
package de.danoeh.antennapod.ui.preferences.screen.about;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import androidx.viewpager2.widget.ViewPager2;
import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.PreferenceActivity;
import de.danoeh.antennapod.ui.preferences.R;
/**
* Displays the 'about->Contributors' pager screen.
@ -56,7 +56,7 @@ public class ContributorsPagerFragment extends Fragment {
@Override
public void onStart() {
super.onStart();
((PreferenceActivity) getActivity()).getSupportActionBar().setTitle(R.string.contributors);
((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(R.string.contributors);
}
public static class StatisticsPagerAdapter extends FragmentStateAdapter {

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.fragment.preferences.about;
package de.danoeh.antennapod.ui.preferences.screen.about;
import android.os.Bundle;
import android.view.View;
@ -6,7 +6,6 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.ListFragment;
import de.danoeh.antennapod.adapter.SimpleIconListAdapter;
import io.reactivex.Single;
import io.reactivex.SingleOnSubscribe;
import io.reactivex.android.schedulers.AndroidSchedulers;

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.fragment.preferences.about;
package de.danoeh.antennapod.ui.preferences.screen.about;
import android.os.Bundle;
import android.view.View;
@ -6,12 +6,11 @@ import android.widget.ListView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import androidx.fragment.app.ListFragment;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.PreferenceActivity;
import de.danoeh.antennapod.adapter.SimpleIconListAdapter;
import de.danoeh.antennapod.core.util.IntentUtils;
import de.danoeh.antennapod.ui.preferences.R;
import io.reactivex.Single;
import io.reactivex.SingleOnSubscribe;
import io.reactivex.android.schedulers.AndroidSchedulers;
@ -121,6 +120,6 @@ public class LicensesFragment extends ListFragment {
@Override
public void onStart() {
super.onStart();
((PreferenceActivity) getActivity()).getSupportActionBar().setTitle(R.string.licenses);
((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(R.string.licenses);
}
}

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.adapter;
package de.danoeh.antennapod.ui.preferences.screen.about;
import android.content.Context;
import android.view.View;
@ -9,7 +9,7 @@ import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.RequestOptions;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.ui.preferences.R;
import java.util.List;

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.fragment.preferences.about;
package de.danoeh.antennapod.ui.preferences.screen.about;
import android.os.Bundle;
import android.view.View;
@ -6,7 +6,6 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.ListFragment;
import de.danoeh.antennapod.adapter.SimpleIconListAdapter;
import io.reactivex.Single;
import io.reactivex.SingleOnSubscribe;
import io.reactivex.android.schedulers.AndroidSchedulers;

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.fragment.preferences.about;
package de.danoeh.antennapod.ui.preferences.screen.about;
import android.os.Bundle;
import android.view.View;
@ -6,7 +6,6 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.ListFragment;
import de.danoeh.antennapod.adapter.SimpleIconListAdapter;
import io.reactivex.Single;
import io.reactivex.SingleOnSubscribe;
import io.reactivex.android.schedulers.AndroidSchedulers;

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.dialog;
package de.danoeh.antennapod.ui.preferences.screen.downloads;
import android.content.Context;
@ -8,8 +8,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import androidx.core.util.Consumer;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.adapter.DataFolderAdapter;
import de.danoeh.antennapod.ui.preferences.R;
public class ChooseDataFolderDialog {

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.adapter;
package de.danoeh.antennapod.ui.preferences.screen.downloads;
import android.content.Context;
import android.text.format.Formatter;
@ -11,9 +11,9 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.core.util.Consumer;
import androidx.recyclerview.widget.RecyclerView;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.core.util.StorageUtils;
import de.danoeh.antennapod.ui.preferences.R;
import java.io.File;
import java.util.ArrayList;

View File

@ -1,12 +1,12 @@
package de.danoeh.antennapod.dialog;
package de.danoeh.antennapod.ui.preferences.screen.synchronization;
import android.content.Context;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.view.LayoutInflater;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.databinding.AuthenticationDialogBinding;
import de.danoeh.antennapod.ui.preferences.R;
import de.danoeh.antennapod.ui.preferences.databinding.AuthenticationDialogBinding;
/**
* Displays a dialog with a username and password text field and an optional checkbox to save username and preferences.

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.fragment.preferences.synchronization;
package de.danoeh.antennapod.ui.preferences.screen.synchronization;
import android.app.Dialog;
import android.content.Context;
@ -18,7 +18,6 @@ import androidx.annotation.Nullable;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import androidx.fragment.app.DialogFragment;
import com.google.android.material.button.MaterialButton;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.net.common.AntennapodHttpClient;
import de.danoeh.antennapod.core.sync.SyncService;
import de.danoeh.antennapod.core.sync.SynchronizationCredentials;
@ -27,6 +26,7 @@ import de.danoeh.antennapod.core.sync.SynchronizationSettings;
import de.danoeh.antennapod.core.util.FileNameGenerator;
import de.danoeh.antennapod.net.sync.gpoddernet.GpodnetService;
import de.danoeh.antennapod.net.sync.gpoddernet.model.GpodnetDevice;
import de.danoeh.antennapod.ui.preferences.R;
import io.reactivex.Completable;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.fragment.preferences.synchronization;
package de.danoeh.antennapod.ui.preferences.screen.synchronization;
import android.app.Dialog;
import android.content.DialogInterface;
@ -8,14 +8,14 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import androidx.fragment.app.DialogFragment;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.net.common.AntennapodHttpClient;
import de.danoeh.antennapod.core.sync.SyncService;
import de.danoeh.antennapod.core.sync.SynchronizationCredentials;
import de.danoeh.antennapod.core.sync.SynchronizationProviderViewData;
import de.danoeh.antennapod.core.sync.SynchronizationSettings;
import de.danoeh.antennapod.databinding.NextcloudAuthDialogBinding;
import de.danoeh.antennapod.net.sync.nextcloud.NextcloudLoginFlow;
import de.danoeh.antennapod.ui.preferences.R;
import de.danoeh.antennapod.ui.preferences.databinding.NextcloudAuthDialogBinding;
/**
* Guides the user through the authentication process.

View File

@ -1,4 +1,4 @@
package de.danoeh.antennapod.fragment.preferences.synchronization;
package de.danoeh.antennapod.ui.preferences.screen.synchronization;
import android.app.Activity;
import android.os.Bundle;
@ -13,6 +13,7 @@ import android.widget.ListAdapter;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import androidx.core.text.HtmlCompat;
import androidx.preference.Preference;
@ -20,18 +21,16 @@ import androidx.preference.PreferenceFragmentCompat;
import com.google.android.material.snackbar.Snackbar;
import de.danoeh.antennapod.ui.preferences.R;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.PreferenceActivity;
import de.danoeh.antennapod.event.SyncServiceEvent;
import de.danoeh.antennapod.core.sync.SynchronizationCredentials;
import de.danoeh.antennapod.core.sync.SyncService;
import de.danoeh.antennapod.core.sync.SynchronizationProviderViewData;
import de.danoeh.antennapod.core.sync.SynchronizationSettings;
import de.danoeh.antennapod.dialog.AuthenticationDialog;
public class SynchronizationPreferencesFragment extends PreferenceFragmentCompat {
private static final String PREFERENCE_SYNCHRONIZATION_DESCRIPTION = "preference_synchronization_description";
@ -50,7 +49,7 @@ public class SynchronizationPreferencesFragment extends PreferenceFragmentCompat
@Override
public void onStart() {
super.onStart();
((PreferenceActivity) getActivity()).getSupportActionBar().setTitle(R.string.synchronization_pref);
((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(R.string.synchronization_pref);
updateScreen();
EventBus.getDefault().register(this);
}
@ -59,7 +58,7 @@ public class SynchronizationPreferencesFragment extends PreferenceFragmentCompat
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
((PreferenceActivity) getActivity()).getSupportActionBar().setSubtitle("");
((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle("");
}
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
@ -73,7 +72,7 @@ public class SynchronizationPreferencesFragment extends PreferenceFragmentCompat
updateLastSyncReport(SynchronizationSettings.isLastSyncSuccessful(),
SynchronizationSettings.getLastSyncAttempt());
} else {
((PreferenceActivity) getActivity()).getSupportActionBar().setSubtitle(event.getMessageResId());
((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle(event.getMessageResId());
}
}
@ -144,7 +143,7 @@ public class SynchronizationPreferencesFragment extends PreferenceFragmentCompat
SynchronizationSettings.getLastSyncAttempt());
} else {
findPreference(PREFERENCE_LOGOUT).setSummary(null);
((PreferenceActivity) getActivity()).getSupportActionBar().setSubtitle(null);
((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle(null);
}
}
@ -216,6 +215,6 @@ public class SynchronizationPreferencesFragment extends PreferenceFragmentCompat
? R.string.gpodnetsync_pref_report_successful : R.string.gpodnetsync_pref_report_failed),
DateUtils.getRelativeDateTimeString(getContext(),
lastTime, DateUtils.MINUTE_IN_MILLIS, DateUtils.WEEK_IN_MILLIS, DateUtils.FORMAT_SHOW_TIME));
((PreferenceActivity) getActivity()).getSupportActionBar().setSubtitle(status);
((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle(status);
}
}

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -3,19 +3,19 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:search="http://schemas.android.com/apk/com.bytehamster.lib.preferencesearch">
<de.danoeh.antennapod.preferences.MasterSwitchPreference
<de.danoeh.antennapod.ui.preferences.preference.MasterSwitchPreference
android:key="prefEnableAutoDl"
android:title="@string/pref_automatic_download_title"
search:summary="@string/pref_automatic_download_sum"
android:defaultValue="false"/>
<de.danoeh.antennapod.preferences.MaterialListPreference
<de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
android:defaultValue="25"
android:entries="@array/episode_cache_size_entries"
android:key="prefEpisodeCacheSize"
android:title="@string/pref_episode_cache_title"
android:summary="@string/pref_episode_cache_summary"
android:entryValues="@array/episode_cache_size_values"/>
<de.danoeh.antennapod.preferences.MaterialListPreference
<de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
android:defaultValue="-1"
android:entries="@array/episode_cleanup_entries"
android:key="prefEpisodeCleanup"

View File

@ -8,14 +8,14 @@
android:key="prefChooseDataDir"/>
<PreferenceCategory android:title="@string/automation">
<de.danoeh.antennapod.preferences.MaterialListPreference
<de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
android:entryValues="@array/feed_refresh_interval_values"
android:entries="@array/feed_refresh_interval_entries"
android:key="prefAutoUpdateIntervall"
android:title="@string/feed_refresh_title"
android:summary="@string/feed_refresh_sum"
android:defaultValue="12"/>
<de.danoeh.antennapod.preferences.MaterialListPreference
<de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
android:entryValues="@array/globalNewEpisodesActionValues"
android:entries="@array/globalNewEpisodesActionItems"
android:key="prefNewEpisodesAction"
@ -54,7 +54,7 @@
</PreferenceCategory>
<PreferenceCategory android:title="@string/download_pref_details">
<de.danoeh.antennapod.preferences.MaterialMultiSelectListPreference
<de.danoeh.antennapod.ui.preferences.preference.MaterialMultiSelectListPreference
android:defaultValue="@array/mobile_update_default_value"
android:entries="@array/mobile_update_entries"
android:entryValues="@array/mobile_update_values"

View File

@ -56,14 +56,14 @@
</PreferenceCategory>
<PreferenceCategory android:title="@string/reassign_hardware_buttons">
<de.danoeh.antennapod.preferences.MaterialListPreference
<de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
android:defaultValue="@string/keycode_media_fast_forward"
android:entries="@array/button_action_options"
android:entryValues="@array/button_action_values"
android:key="prefHardwareForwardButton"
android:title="@string/pref_hardware_forward_button_title"
android:summary="@string/pref_hardware_forward_button_summary"/>
<de.danoeh.antennapod.preferences.MaterialListPreference
<de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
android:defaultValue="@string/keycode_media_rewind"
android:entries="@array/button_action_options"
android:entryValues="@array/button_action_values"
@ -79,7 +79,7 @@
android:key="prefEnqueueDownloaded"
android:summary="@string/pref_enqueue_downloaded_summary"
android:title="@string/pref_enqueue_downloaded_title" />
<de.danoeh.antennapod.preferences.MaterialListPreference
<de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
android:defaultValue="BACK"
android:entries="@array/enqueue_location_options"
android:entryValues="@array/enqueue_location_values"
@ -91,7 +91,7 @@
android:key="prefFollowQueue"
android:summary="@string/pref_followQueue_sum"
android:title="@string/pref_followQueue_title"/>
<de.danoeh.antennapod.preferences.MaterialListPreference
<de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
android:defaultValue="30"
android:entries="@array/smart_mark_as_played_values"
android:entryValues="@array/smart_mark_as_played_values"

View File

@ -4,7 +4,7 @@
xmlns:search="http://schemas.android.com/apk/com.bytehamster.lib.preferencesearch">
<PreferenceCategory android:title="@string/appearance">
<de.danoeh.antennapod.preferences.ThemePreference
<de.danoeh.antennapod.ui.preferences.preference.ThemePreference
android:key="prefTheme" />
<SwitchPreferenceCompat
android:title="@string/pref_black_theme_title"
@ -38,7 +38,7 @@
android:title="@string/pref_nav_drawer_feed_order_title"
android:key="prefDrawerFeedOrder"
android:summary="@string/pref_nav_drawer_feed_order_sum"/>
<de.danoeh.antennapod.preferences.MaterialListPreference
<de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
android:entryValues="@array/nav_drawer_feed_counter_values"
android:entries="@array/nav_drawer_feed_counter_options"
android:title="@string/pref_nav_drawer_feed_counter_title"
@ -75,7 +75,7 @@
android:title="@string/pref_full_notification_buttons_title"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/behavior">
<de.danoeh.antennapod.preferences.MaterialListPreference
<de.danoeh.antennapod.ui.preferences.preference.MaterialListPreference
android:entryValues="@array/default_page_values"
android:entries="@array/default_page_titles"
android:key="prefDefaultPage"