Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2023-03-24 16:00:20 +0300
committerStefan Niedermann <info@niedermann.it>2023-03-24 16:26:53 +0300
commit3ef86d96c298e191cf6869de26f09331a689da8d (patch)
tree93bfd5de831cc4492615ab10b7a27477537c2662 /app/src/main/java/it/niedermann/nextcloud/deck/ui/settings
parent4f31f75f6098ad2c1e3f418e8d7f7d8902a0d273 (diff)
feat: Align theming with Nextcloud Files app
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/settings')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/PreferencesViewModel.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsActivity.java15
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsFragment.java41
3 files changed, 39 insertions, 21 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/PreferencesViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/PreferencesViewModel.java
index c1e6857f8..9ab461523 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/PreferencesViewModel.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/PreferencesViewModel.java
@@ -25,10 +25,6 @@ public class PreferencesViewModel extends BaseViewModel {
return baseRepository.getCurrentAccountId$();
}
- public LiveData<Integer> getAccountColor(long accountId) {
- return baseRepository.getAccountColor(accountId);
- }
-
public void setAppTheme(int setting) {
preferencesRepository.setAppTheme(setting);
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsActivity.java
index 0ca0739fe..86f43b482 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/settings/SettingsActivity.java
@@ -32,12 +32,15 @@ public class SettingsActivity extends AppCompatActivity implements Themed {
binding = ActivitySettingsBinding.inflate(getLayoutInflater());
- applyTheme(account.getColor());
- setSupportActionBar(binding.toolbar);
setContentView(binding.getRoot());
+ setSupportActionBar(binding.toolbar);
+ applyTheme(account.getColor());
+ setResult(RESULT_CANCELED);
- // TODO We should only set this if a preference has changed that influences the MainActivity
- setResult(RESULT_OK);
+ getSupportFragmentManager()
+ .beginTransaction()
+ .add(binding.settingsFragment.getId(), SettingsFragment.newInstance(account))
+ .commit();
}
@Override
@@ -56,8 +59,8 @@ public class SettingsActivity extends AppCompatActivity implements Themed {
public void applyTheme(int color) {
final var utils = ThemeUtils.of(color, this);
-// utils.platform.themeStatusBar(this);
-// utils.material.themeToolbar(binding.toolbar);
+ utils.platform.themeStatusBar(this);
+ utils.material.themeToolbar(binding.toolbar);
}
@NonNull
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 44cfe5410..229c61afc 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
@@ -1,25 +1,29 @@
package it.niedermann.nextcloud.deck.ui.settings;
+import android.content.Context;
import android.os.Bundle;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
+import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
import java.util.stream.Stream;
-import it.niedermann.android.reactivelivedata.ReactiveLiveData;
import it.niedermann.nextcloud.deck.DeckLog;
import it.niedermann.nextcloud.deck.R;
+import it.niedermann.nextcloud.deck.model.Account;
import it.niedermann.nextcloud.deck.remote.SyncWorker;
import it.niedermann.nextcloud.deck.ui.theme.ThemedSwitchPreference;
public class SettingsFragment extends PreferenceFragmentCompat {
+ private static final String KEY_ACCOUNT = "account";
+ private Account account;
private PreferencesViewModel preferencesViewModel;
private ThemedSwitchPreference wifiOnlyPref;
private ThemedSwitchPreference compactPref;
@@ -29,6 +33,18 @@ public class SettingsFragment extends PreferenceFragmentCompat {
private ThemedSwitchPreference eTagPref;
@Override
+ public void onAttach(@NonNull Context context) {
+ super.onAttach(context);
+
+ final var args = getArguments();
+ if (args == null || !args.containsKey(KEY_ACCOUNT)) {
+ throw new IllegalArgumentException(KEY_ACCOUNT + " must be provided");
+ }
+
+ account = (Account) args.getSerializable(KEY_ACCOUNT);
+ }
+
+ @Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.settings, rootKey);
@@ -77,15 +93,18 @@ public class SettingsFragment extends PreferenceFragmentCompat {
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- new ReactiveLiveData<>(preferencesViewModel.getCurrentAccountId$())
- .flatMap(preferencesViewModel::getAccountColor)
- .observe(getViewLifecycleOwner(), color -> Stream.of(
- wifiOnlyPref,
- compactPref,
- coverImagesPref,
- compressImageAttachmentsPref,
- debuggingPref,
- eTagPref)
- .forEach(pref -> pref.applyTheme(color)));
+ Stream.of(wifiOnlyPref, compactPref, coverImagesPref, compressImageAttachmentsPref, debuggingPref, eTagPref)
+ .forEach(pref -> pref.applyTheme(account.getColor()));
+ }
+
+ @NonNull
+ public static Fragment newInstance(@NonNull Account account) {
+ final var fragment = new SettingsFragment();
+
+ final var args = new Bundle();
+ args.putSerializable(KEY_ACCOUNT, account);
+ fragment.setArguments(args);
+
+ return fragment;
}
}