diff options
10 files changed, 55 insertions, 43 deletions
diff --git a/app/build.gradle b/app/build.gradle index 1b0cae032..6a3a0817c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -74,6 +74,7 @@ dependencies { implementation "androidx.viewpager2:viewpager2:1.0.0" implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.work:work-runtime:2.3.4' + implementation 'androidx.preference:preference:1.1.0' // Flexbox diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/Application.java b/app/src/main/java/it/niedermann/nextcloud/deck/Application.java index d79aec60e..77985963e 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/Application.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/Application.java @@ -2,10 +2,10 @@ package it.niedermann.nextcloud.deck; import android.content.Context; import android.content.SharedPreferences; -import android.preference.PreferenceManager; import androidx.appcompat.app.AppCompatDelegate; import androidx.multidex.MultiDex; +import androidx.preference.PreferenceManager; public class Application extends android.app.Application { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncWorker.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncWorker.java index 148de30d7..929be9303 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncWorker.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncWorker.java @@ -2,9 +2,9 @@ package it.niedermann.nextcloud.deck.persistence.sync; import android.content.Context; import android.content.SharedPreferences; -import android.preference.PreferenceManager; import androidx.annotation.NonNull; +import androidx.preference.PreferenceManager; import androidx.work.Constraints; import androidx.work.ExistingPeriodicWorkPolicy; import androidx.work.NetworkType; diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java index 8689bfbbd..dd006974a 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java @@ -8,11 +8,11 @@ import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkInfo; import android.net.Uri; -import android.preference.PreferenceManager; import android.webkit.MimeTypeMap; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.preference.PreferenceManager; import java.io.File; import java.text.DateFormat; diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/DrawerActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/DrawerActivity.java index fc0662ed6..61a9ca44e 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/DrawerActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/DrawerActivity.java @@ -11,7 +11,6 @@ import android.net.NetworkRequest; import android.net.Uri; import android.os.Build; import android.os.Bundle; -import android.preference.PreferenceManager; import android.util.Log; import android.view.Menu; import android.view.MenuItem; @@ -26,6 +25,7 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.AppCompatImageButton; import androidx.core.view.GravityCompat; import androidx.lifecycle.MediatorLiveData; +import androidx.preference.PreferenceManager; import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/EditActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/EditActivity.java index 6ee07488a..b8417d1a3 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/EditActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/EditActivity.java @@ -2,7 +2,6 @@ package it.niedermann.nextcloud.deck.ui; import android.content.SharedPreferences; import android.os.Bundle; -import android.preference.PreferenceManager; import android.text.Editable; import android.text.TextWatcher; import android.view.Menu; @@ -16,6 +15,7 @@ import android.widget.SpinnerAdapter; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; +import androidx.preference.PreferenceManager; import com.google.android.material.tabs.TabLayout; import com.google.android.material.tabs.TabLayoutMediator; diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/ImportAccountActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/ImportAccountActivity.java index f5658f330..5c1c8725a 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/ImportAccountActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/ImportAccountActivity.java @@ -6,12 +6,12 @@ import android.content.SharedPreferences; import android.database.sqlite.SQLiteConstraintException; import android.net.Uri; import android.os.Bundle; -import android.preference.PreferenceManager; import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.StringRes; import androidx.appcompat.app.AppCompatActivity; +import androidx.preference.PreferenceManager; import com.nextcloud.android.sso.AccountImporter; import com.nextcloud.android.sso.exceptions.AccountImportCancelledException; diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/SettingsActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/SettingsActivity.java index eeac3f496..62909f8cb 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/SettingsActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/SettingsActivity.java @@ -25,7 +25,8 @@ public class SettingsActivity extends AppCompatActivity { setSupportActionBar(binding.toolbar); setResult(RESULT_OK); - getFragmentManager().beginTransaction() + getSupportFragmentManager() + .beginTransaction() .add(R.id.settings_layout, new SettingsFragment()) .commit(); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentCreditsTab.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentCreditsTab.java index f2c2c2e0b..5bf79e869 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentCreditsTab.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentCreditsTab.java @@ -2,7 +2,6 @@ package it.niedermann.nextcloud.deck.ui.about; import android.content.SharedPreferences; import android.os.Bundle; -import android.preference.PreferenceManager; import android.text.method.LinkMovementMethod; import android.view.LayoutInflater; import android.view.View; @@ -10,6 +9,7 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; +import androidx.preference.PreferenceManager; import it.niedermann.nextcloud.deck.BuildConfig; import it.niedermann.nextcloud.deck.R; @@ -37,13 +37,13 @@ public class AboutFragmentCreditsTab extends Fragment { // VERSIONS - binding.aboutVersion.setText(getString(R.string.about_version, strong("v" + BuildConfig.VERSION_NAME))); + binding.aboutVersion.setText(getString(R.string.about_version, strong(BuildConfig.VERSION_NAME))); SyncManager syncManager = new SyncManager(requireActivity()); try { syncManager.getServerVersion(new IResponseCallback<Capabilities>(null) { @Override public void onResponse(Capabilities response) { - requireActivity().runOnUiThread(() -> binding.aboutServerAppVersion.setText(strong("v" + response.getDeckVersion().toString()))); + requireActivity().runOnUiThread(() -> binding.aboutServerAppVersion.setText(strong(response.getDeckVersion().getOriginalVersion()))); } }); } catch (OfflineException e) { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java index 8ed58f04a..beb552513 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java @@ -2,47 +2,57 @@ package it.niedermann.nextcloud.deck.ui.settings; import android.app.Activity; import android.os.Bundle; -import android.preference.ListPreference; -import android.preference.Preference; -import android.preference.PreferenceFragment; -import android.preference.SwitchPreference; -import androidx.annotation.Nullable; +import androidx.preference.ListPreference; +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; +import androidx.preference.SwitchPreference; import it.niedermann.nextcloud.deck.Application; import it.niedermann.nextcloud.deck.DeckLog; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.persistence.sync.SyncWorker; -public class SettingsFragment extends PreferenceFragment { +public class SettingsFragment extends PreferenceFragmentCompat { @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - addPreferencesFromResource(R.xml.settings); - - final SwitchPreference wifiOnlyPref = (SwitchPreference) findPreference(getString(R.string.pref_key_wifi_only)); - wifiOnlyPref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> { - Boolean syncOnWifiOnly = (Boolean) newValue; - DeckLog.log("syncOnWifiOnly: " + syncOnWifiOnly); - return true; - }); - - final SwitchPreference themePref = (SwitchPreference) findPreference(getString(R.string.pref_key_dark_theme)); - themePref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> { - Boolean darkTheme = (Boolean) newValue; - DeckLog.log("darkTheme: " + darkTheme); - Application.setAppTheme(darkTheme); - getActivity().setResult(Activity.RESULT_OK); - getActivity().recreate(); - return true; - }); - - final ListPreference backgroundSyncPref = (ListPreference) findPreference(getString(R.string.pref_key_background_sync)); - backgroundSyncPref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> { - SyncWorker.update(getActivity().getApplicationContext(), (String) newValue); - return true; - }); + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.settings, rootKey); + + final SwitchPreference wifiOnlyPref = findPreference(getString(R.string.pref_key_wifi_only)); + if (wifiOnlyPref != null) { + wifiOnlyPref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> { + Boolean syncOnWifiOnly = (Boolean) newValue; + DeckLog.log("syncOnWifiOnly: " + syncOnWifiOnly); + return true; + }); + } else { + DeckLog.error("Could not find preference with key: \"" + getString(R.string.pref_key_wifi_only) + "\""); + } + + final SwitchPreference themePref = findPreference(getString(R.string.pref_key_dark_theme)); + if (themePref != null) { + themePref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> { + Boolean darkTheme = (Boolean) newValue; + DeckLog.log("darkTheme: " + darkTheme); + Application.setAppTheme(darkTheme); + requireActivity().setResult(Activity.RESULT_OK); + requireActivity().recreate(); + return true; + }); + } else { + DeckLog.error("Could not find preference with key: \"" + getString(R.string.pref_key_dark_theme) + "\""); + } + + final ListPreference backgroundSyncPref = findPreference(getString(R.string.pref_key_background_sync)); + if (backgroundSyncPref != null) { + backgroundSyncPref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> { + SyncWorker.update(requireContext().getApplicationContext(), (String) newValue); + return true; + }); + } else { + DeckLog.error("Could not find preference with key: \"" + getString(R.string.pref_key_background_sync) + "\""); + } + } } |