diff options
author | Stefan Niedermann <info@niedermann.it> | 2023-03-24 16:00:20 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2023-03-24 16:26:53 +0300 |
commit | 3ef86d96c298e191cf6869de26f09331a689da8d (patch) | |
tree | 93bfd5de831cc4492615ab10b7a27477537c2662 | |
parent | 4f31f75f6098ad2c1e3f418e8d7f7d8902a0d273 (diff) |
feat: Align theming with Nextcloud Files app
Signed-off-by: Stefan Niedermann <info@niedermann.it>
48 files changed, 264 insertions, 264 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/PickStackActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/PickStackActivity.java index c5b92e7d8..93902d9f8 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/PickStackActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/PickStackActivity.java @@ -47,10 +47,7 @@ public abstract class PickStackActivity extends AppCompatActivity implements The hasAccounts$ .filter(hasAccounts -> !hasAccounts) - .observe(this, () -> { - startActivity(ImportAccountActivity.createIntent(this)); - finish(); - }); + .observe(this, () -> startActivity(ImportAccountActivity.createIntent(this))); hasAccounts$ .filter(hasAccounts -> hasAccounts) @@ -109,6 +106,8 @@ public abstract class PickStackActivity extends AppCompatActivity implements The public void applyTheme(int color) { final var utils = ThemeUtils.of(color, this); + utils.platform.themeStatusBar(this); + utils.material.themeToolbar(binding.toolbar); utils.material.colorMaterialButtonText(binding.cancel); utils.material.colorMaterialButtonPrimaryFilled(binding.submit); utils.material.colorTextInputLayout(binding.inputWrapper); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/PushNotificationActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/PushNotificationActivity.java index 3b2332e7e..f62af8c79 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/PushNotificationActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/PushNotificationActivity.java @@ -5,7 +5,6 @@ import android.content.Intent; import android.net.Uri; import android.view.View; -import androidx.annotation.ColorInt; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.lifecycle.ViewModelProvider; @@ -22,12 +21,13 @@ import it.niedermann.nextcloud.deck.ui.card.EditActivity; import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment; import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler; import it.niedermann.nextcloud.deck.ui.theme.ThemeUtils; +import it.niedermann.nextcloud.deck.ui.theme.Themed; /** * Warning: Do not move this class to another package or folder! * The integration of the Nextcloud Android app <a href="https://github.com/nextcloud/android/blob/master/src/main/java/com/nextcloud/client/integrations/deck/DeckApiImpl.java#L42">assumes it to be at this location</a>. */ -public class PushNotificationActivity extends AppCompatActivity { +public class PushNotificationActivity extends AppCompatActivity implements Themed { private ActivityPushNotificationBinding binding; private PushNotificationViewModel viewModel; @@ -52,7 +52,7 @@ public class PushNotificationActivity extends AppCompatActivity { setSupportActionBar(binding.toolbar); binding.progress.setIndeterminate(true); - viewModel.getAccount().observe(this, this::applyThemeToSubmitButton); + viewModel.getAccount().observe(this, this::applyTheme); executor.submit(() -> viewModel.getCardInformation(intent.getExtras(), new PushNotificationViewModel.PushNotificationCallback() { @Override public void onResponse(@NonNull PushNotificationViewModel.CardInformation cardInformation) { @@ -88,7 +88,7 @@ public class PushNotificationActivity extends AppCompatActivity { private void fallbackToBrowser(@NonNull Uri uri) { DeckLog.warn("Falling back to browser as push notification handler:", uri); - binding.submit.setOnClickListener((v) -> startActivity(new Intent(Intent.ACTION_VIEW, uri))); + binding.submit.setOnClickListener(v -> startActivity(new Intent(Intent.ACTION_VIEW, uri))); viewModel.extractSubject(intent.getExtras()).ifPresent(binding.subject::setText); viewModel.extractMessage(intent.getExtras()).ifPresent(message -> { @@ -119,11 +119,12 @@ public class PushNotificationActivity extends AppCompatActivity { return true; } - // TODO implement Branded interface - // TODO apply branding based on board color - public void applyThemeToSubmitButton(@ColorInt int color) { + @Override + public void applyTheme(int color) { final var utils = ThemeUtils.of(color, this); + utils.platform.themeStatusBar(this); + utils.material.themeToolbar(binding.toolbar); utils.platform.themeHorizontalProgressBar(binding.progress); Stream.of(binding.submit, binding.showError) .forEach(utils.material::colorMaterialButtonPrimaryFilled); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutActivity.java index dc5de960f..67552b2d7 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutActivity.java @@ -64,7 +64,9 @@ public class AboutActivity extends AppCompatActivity implements Themed { public void applyTheme(int color) { final var utils = ThemeUtils.of(color, this); - utils.deck.themeTabLayout(binding.tabLayout); + utils.platform.themeStatusBar(this); + utils.material.themeToolbar(binding.toolbar); + utils.material.themeTabLayoutOnSurface(binding.tabLayout); } private static class TabsPagerAdapter extends FragmentStateAdapter { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedboards/ArchivedBoardsActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedboards/ArchivedBoardsActivity.java index 0a794aa91..58237dbd5 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedboards/ArchivedBoardsActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedboards/ArchivedBoardsActivity.java @@ -23,6 +23,7 @@ import it.niedermann.nextcloud.deck.ui.board.DeleteBoardListener; import it.niedermann.nextcloud.deck.ui.board.edit.EditBoardListener; import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment; import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler; +import it.niedermann.nextcloud.deck.ui.theme.ThemeUtils; import it.niedermann.nextcloud.deck.ui.theme.Themed; import it.niedermann.nextcloud.deck.ui.viewmodel.SyncViewModel; @@ -46,12 +47,13 @@ public class ArchivedBoardsActivity extends AppCompatActivity implements Themed, } account = (Account) args.getSerializable(KEY_ACCOUNT); - binding = ActivityArchivedBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); + applyTheme(account.getColor()); + archivedBoardsViewModel = new SyncViewModel.Provider(this, getApplication(), account).get(ArchivedBoardsViewModel.class); adapter = new ArchivedBoardsAdapter(account, getSupportFragmentManager(), this::onArchive); @@ -144,13 +146,6 @@ public class ArchivedBoardsActivity extends AppCompatActivity implements Themed, .show(getSupportFragmentManager(), ExceptionDialogFragment.class.getSimpleName()); } - @NonNull - public static Intent createIntent(@NonNull Context context, @NonNull Account account) { - return new Intent(context, ArchivedBoardsActivity.class) - .putExtra(KEY_ACCOUNT, account) - .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - } - @Override public void onDismiss(DialogInterface dialog) { @@ -158,6 +153,16 @@ public class ArchivedBoardsActivity extends AppCompatActivity implements Themed, @Override public void applyTheme(int color) { - binding.emptyContentView.applyTheme(color); + final var utils = ThemeUtils.of(color, this); + + utils.platform.themeStatusBar(this); + utils.material.themeToolbar(binding.toolbar); + } + + @NonNull + public static Intent createIntent(@NonNull Context context, @NonNull Account account) { + return new Intent(context, ArchivedBoardsActivity.class) + .putExtra(KEY_ACCOUNT, account) + .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/attachments/AttachmentViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/attachments/AttachmentViewHolder.java index f633cd534..bfc21b787 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/attachments/AttachmentViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/attachments/AttachmentViewHolder.java @@ -2,7 +2,6 @@ package it.niedermann.nextcloud.deck.ui.attachments; import android.content.Context; import android.graphics.drawable.Drawable; -import android.view.MotionEvent; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -15,7 +14,6 @@ import com.bumptech.glide.load.engine.GlideException; import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.target.Target; -import it.niedermann.nextcloud.deck.DeckLog; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.ItemAttachmentBinding; import it.niedermann.nextcloud.deck.model.Account; diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java index b3b539614..7edd10bbf 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java @@ -287,8 +287,10 @@ public class EditActivity extends AppCompatActivity { final var utils = ThemeUtils.of(color, this); + utils.platform.themeStatusBar(this); + utils.material.themeToolbar(binding.toolbar); utils.platform.colorEditText(binding.title); - utils.deck.themeTabLayout(binding.tabLayout); + utils.material.themeTabLayoutOnSurface(binding.tabLayout); } @NonNull diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/NewCardDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/NewCardDialog.java index efe974598..b6ce18f13 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/NewCardDialog.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/NewCardDialog.java @@ -22,7 +22,6 @@ import androidx.lifecycle.ViewModelProvider; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.nextcloud.android.common.ui.theme.utils.ColorRole; -import it.niedermann.nextcloud.deck.DeckLog; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.DialogNewCardBinding; import it.niedermann.nextcloud.deck.exceptions.OfflineException; @@ -67,7 +66,6 @@ public class NewCardDialog extends ThemedDialogFragment implements DialogInterfa this.account = (Account) getArguments().getSerializable(KEY_ACCOUNT); newCardViewModel = new SyncViewModel.Provider(requireActivity(), requireActivity().getApplication(), account).get(NewCardViewModel.class); - DeckLog.log(newCardViewModel); viewModel = new ViewModelProvider(requireActivity()).get(PrepareCreateViewModel.class); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityFragment.java index c204b1658..d301968c4 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/activities/CardActivityFragment.java @@ -12,8 +12,10 @@ import androidx.lifecycle.ViewModelProvider; import it.niedermann.nextcloud.deck.DeckLog; import it.niedermann.nextcloud.deck.databinding.FragmentCardEditTabActivitiesBinding; import it.niedermann.nextcloud.deck.ui.card.EditCardViewModel; +import it.niedermann.nextcloud.deck.ui.theme.ThemeUtils; +import it.niedermann.nextcloud.deck.ui.theme.Themed; -public class CardActivityFragment extends Fragment { +public class CardActivityFragment extends Fragment implements Themed { private FragmentCardEditTabActivitiesBinding binding; @@ -36,6 +38,8 @@ public class CardActivityFragment extends Fragment { return binding.getRoot(); } + viewModel.getBoardColor().observe(getViewLifecycleOwner(), this::applyTheme); + viewModel.syncActivitiesForCard(viewModel.getFullCard().getCard()).observe(getViewLifecycleOwner(), (activities -> { if (activities == null || activities.size() == 0) { binding.emptyContentView.setVisibility(View.VISIBLE); @@ -54,4 +58,11 @@ public class CardActivityFragment extends Fragment { super.onDestroy(); this.binding = null; } + + @Override + public void applyTheme(int color) { + final var utils = ThemeUtils.of(color, requireContext()); + + utils.deck.themeEmptyContentView(binding.emptyContentView); + } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java index 96292ecff..ea4e3c9a4 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentsFragment.java @@ -517,10 +517,10 @@ public class CardAttachmentsFragment extends Fragment implements AttachmentDelet private void applyTheme(@ColorInt int color) { final var utils = ThemeUtils.of(color, requireContext()); + utils.deck.themeEmptyContentView(binding.emptyContentView); utils.material.themeFAB(binding.fab); utils.platform.colorBottomNavigationView(binding.bottomNavigation); - utils.platform.colorViewBackground(binding.pickerHeader, ColorRole.SURFACE); - utils.platform.colorViewBackground(binding.pickerRecyclerView, ColorRole.SURFACE); + utils.platform.colorViewBackground(binding.bottomSheetParent, ColorRole.SURFACE); adapter.applyTheme(color); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java index f46aafd1c..4704ea45a 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsFragment.java @@ -13,6 +13,7 @@ import android.view.ViewGroup; import android.view.inputmethod.EditorInfo; import android.widget.Toast; +import androidx.annotation.ColorInt; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; @@ -36,10 +37,11 @@ import it.niedermann.nextcloud.deck.ui.card.EditActivity; import it.niedermann.nextcloud.deck.ui.card.EditCardViewModel; import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment; import it.niedermann.nextcloud.deck.ui.theme.ThemeUtils; +import it.niedermann.nextcloud.deck.ui.theme.Themed; import it.niedermann.nextcloud.deck.ui.viewmodel.SyncViewModel; import it.niedermann.nextcloud.deck.util.KeyboardUtils; -public class CardCommentsFragment extends Fragment implements CommentEditedListener, CommentDeletedListener, CommentSelectAsReplyListener { +public class CardCommentsFragment extends Fragment implements Themed, CommentEditedListener, CommentDeletedListener, CommentSelectAsReplyListener { private static final String KEY_ACCOUNT = "account"; private FragmentCardEditTabCommentsBinding binding; @@ -185,9 +187,12 @@ public class CardCommentsFragment extends Fragment implements CommentEditedListe }); } - private void applyTheme(int color) { + @Override + public void applyTheme(@ColorInt int color) { final var utils = ThemeUtils.of(color, requireContext()); + utils.deck.themeEmptyContentView(binding.emptyContentView); + utils.platform.colorViewBackground(binding.addCommentLayout); utils.material.themeFAB(binding.fab); utils.material.colorTextInputLayout(binding.messageWrapper); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java index 49a0b33ae..76c99abe9 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java @@ -330,7 +330,7 @@ public class CardDetailsFragment extends Fragment implements OnDateSetListener, } private void setupAssignees() { - adapter = new AssigneeAdapter(user -> CardAssigneeDialog.newInstance(user).show(getChildFragmentManager(), CardAssigneeDialog.class.getSimpleName()), viewModel.getAccount()); + adapter = new AssigneeAdapter((user) -> CardAssigneeDialog.newInstance(user).show(getChildFragmentManager(), CardAssigneeDialog.class.getSimpleName()), viewModel.getAccount()); binding.assignees.setAdapter(adapter); binding.assignees.post(() -> { @Px final int gutter = DimensionUtil.INSTANCE.dpToPx(requireContext(), R.dimen.spacer_1x); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionActivity.java index e6a62c4e0..0e558fb85 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionActivity.java @@ -13,6 +13,7 @@ import it.niedermann.nextcloud.deck.BuildConfig; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.ActivityExceptionBinding; import it.niedermann.nextcloud.deck.ui.exception.tips.TipsAdapter; +import it.niedermann.nextcloud.deck.ui.theme.ThemeUtils; import it.niedermann.nextcloud.exception.ExceptionUtil; public class ExceptionActivity extends AppCompatActivity { @@ -46,6 +47,11 @@ public class ExceptionActivity extends AppCompatActivity { binding.copy.setOnClickListener((v) -> ClipboardUtil.INSTANCE.copyToClipboard(this, getString(R.string.simple_exception), "```\n" + debugInfo + "\n```")); binding.close.setOnClickListener((v) -> finish()); + final var utils = ThemeUtils.defaultBrand(this); + + utils.material.colorMaterialButtonText(binding.close); + utils.material.colorMaterialButtonPrimaryFilled(binding.copy); + adapter.setThrowable(this, null, throwable); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/tips/TipsAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/tips/TipsAdapter.java index c57c80d24..5dc89e46d 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/tips/TipsAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/tips/TipsAdapter.java @@ -163,9 +163,9 @@ public class TipsAdapter extends RecyclerView.Adapter<TipsViewHolder> { add(R.string.error_dialog_tip_clear_storage, INTENT_APP_INFO); } else if (throwable instanceof RuntimeException) { if (throwable.getMessage() != null && throwable.getMessage().toLowerCase().contains("database")) { - Intent reportIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(context.getString(R.string.url_report_bug))) + final var intent = new Intent(Intent.ACTION_VIEW, Uri.parse(context.getString(R.string.url_report_bug))) .putExtra(INTENT_EXTRA_BUTTON_TEXT, R.string.error_action_report_issue); - add(R.string.error_dialog_tip_database_upgrade_failed, reportIntent); + add(R.string.error_dialog_tip_database_upgrade_failed, intent); add(R.string.error_dialog_tip_clear_storage, INTENT_APP_INFO); } } else if (throwable instanceof UnknownErrorException) { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/tips/TipsViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/tips/TipsViewHolder.java index 8a66c8cbf..4c6e52c60 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/tips/TipsViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/tips/TipsViewHolder.java @@ -10,6 +10,7 @@ import androidx.core.util.Consumer; import androidx.recyclerview.widget.RecyclerView; import it.niedermann.nextcloud.deck.databinding.ItemTipBinding; +import it.niedermann.nextcloud.deck.ui.theme.ThemeUtils; public class TipsViewHolder extends RecyclerView.ViewHolder { private final ItemTipBinding binding; @@ -27,6 +28,10 @@ public class TipsViewHolder extends RecyclerView.ViewHolder { binding.actionButton.setVisibility(View.VISIBLE); binding.actionButton.setText(actionIntent.getIntExtra(INTENT_EXTRA_BUTTON_TEXT, 0)); binding.actionButton.setOnClickListener((v) -> actionButtonClickedListener.accept(actionIntent)); + + final var utils = ThemeUtils.defaultBrand(itemView.getContext()); + + utils.material.colorMaterialButtonPrimaryOutlined(binding.actionButton); } else { binding.actionButton.setVisibility(View.GONE); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java index 582303476..8eac0dbb4 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java @@ -72,15 +72,13 @@ public class FilterDialogFragment extends ThemedDialogFragment { tab.setText(tabTitles[position]); }).attach(); - binding.viewPager.post(() -> { - binding.viewPager.setCurrentItem(filterViewModel.getCurrentFilterTab(), false); - binding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { - @Override - public void onPageSelected(int position) { - super.onPageSelected(position); - filterViewModel.setCurrentFilterTab(position); - } - }); + binding.viewPager.setCurrentItem(filterViewModel.getCurrentFilterTab(), false); + binding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { + @Override + public void onPageSelected(int position) { + super.onPageSelected(position); + filterViewModel.setCurrentFilterTab(position); + } }); filterViewModel.createFilterInformationDraft(); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/main/MainActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/main/MainActivity.java index 3e4eed845..4d76c7aea 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/main/MainActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/main/MainActivity.java @@ -492,16 +492,19 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen utils.deck.themeSearchBar(binding.toolbar); utils.deck.themeSearchView(binding.searchView); utils.deck.themeTabLayoutOnTransparent(binding.stackTitles); + utils.deck.themeEmptyContentView(binding.emptyContentViewStacks); + utils.deck.themeEmptyContentView(binding.emptyContentViewSearchNoTerm); + utils.deck.themeEmptyContentView(binding.emptyContentViewSearchNoResults); utils.material.themeExtendedFAB(binding.fab); utils.androidx.themeSwipeRefreshLayout(binding.swipeRefreshLayout); - binding.emptyContentViewStacks.applyTheme(color); + } private void applyAccountTheme(@ColorInt int accountColor) { final var utils = ThemeUtils.of(accountColor, this); + utils.deck.themeEmptyContentView(binding.emptyContentViewBoards); utils.platform.colorNavigationView(binding.navigationView, false); - binding.emptyContentViewBoards.applyTheme(accountColor); @ColorInt final int headerTextColor = ColorUtil.INSTANCE.getForegroundColorForBackgroundColor(accountColor); headerBinding.headerView.setBackgroundColor(accountColor); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/main/MainActivityNavigationHandler.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/main/MainActivityNavigationHandler.java index 6850b70fb..88425e846 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/main/MainActivityNavigationHandler.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/main/MainActivityNavigationHandler.java @@ -65,46 +65,32 @@ public class MainActivityNavigationHandler implements NavigationView.OnNavigatio @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { + if (account == null) { + DeckLog.warn("Current account is null, can handle selected navigation item #" + item.getItemId() + ": \"" + item.getTitle() + "\""); + return false; + } + switch (item.getItemId()) { case MENU_ID_ABOUT: - if (account == null) { - DeckLog.warn("Current account is null, can not launch dialog to create board."); - return false; - } activity.startActivity(AboutActivity.createIntent(activity, account)); break; case MENU_ID_SETTINGS: - if (account == null) { - DeckLog.warn("Current account is null, can not launch dialog to create board."); - return false; - } settingsLauncher.launch(SettingsActivity.createIntent(activity, account)); break; case MENU_ID_ADD_BOARD: - if (account == null) { - DeckLog.warn("Current account is null, can not launch dialog to create board."); - return false; - } EditBoardDialogFragment.newInstance(account).show(activity.getSupportFragmentManager(), EditBoardDialogFragment.class.getSimpleName()); break; case MENU_ID_ARCHIVED_BOARDS: - if (account == null) { - DeckLog.warn("Current account is null, can not launch dialog to create board."); - return false; - } activity.startActivity(ArchivedBoardsActivity.createIntent(activity, account)); break; case MENU_ID_UPCOMING_CARDS: - activity.startActivity(UpcomingCardsActivity.createIntent(activity)); + activity.startActivity(UpcomingCardsActivity.createIntent(activity, account)); break; default: - if (account == null) { - DeckLog.warn("Current account is null, can not launch dialog to create board."); - return false; - } onBoardSelected.accept(account.getId(), navigationMap.get(item.getItemId())); break; } + drawerLayout.closeDrawer(GravityCompat.START); return true; } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsActivity.java index d1ce2e14e..cd9840ec7 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsActivity.java @@ -14,8 +14,10 @@ import androidx.lifecycle.ViewModelProvider; import it.niedermann.android.reactivelivedata.ReactiveLiveData; import it.niedermann.nextcloud.deck.databinding.ActivityManageAccountsBinding; import it.niedermann.nextcloud.deck.model.Account; +import it.niedermann.nextcloud.deck.ui.theme.ThemeUtils; +import it.niedermann.nextcloud.deck.ui.theme.Themed; -public class ManageAccountsActivity extends AppCompatActivity { +public class ManageAccountsActivity extends AppCompatActivity implements Themed { private static final String TAG = ManageAccountsActivity.class.getSimpleName(); @@ -33,7 +35,7 @@ public class ManageAccountsActivity extends AppCompatActivity { setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); - adapter = new ManageAccountAdapter((account) -> viewModel.saveCurrentAccount(account), (accountPair) -> { + adapter = new ManageAccountAdapter(account -> viewModel.saveCurrentAccount(account), accountPair -> { if (accountPair.first != null) { viewModel.deleteAccount(accountPair.first.getId()); } else { @@ -48,6 +50,8 @@ public class ManageAccountsActivity extends AppCompatActivity { }); binding.accounts.setAdapter(adapter); + viewModel.getCurrentAccountColor().observe(this, this::applyTheme); + viewModel.getCurrentAccountId().thenAcceptAsync(accountId -> new ReactiveLiveData<>(viewModel.readAccount(accountId)) .observeOnce(this, account -> { adapter.setCurrentAccount(account); @@ -68,6 +72,14 @@ public class ManageAccountsActivity extends AppCompatActivity { this.binding = null; } + @Override + public void applyTheme(int color) { + final var utils = ThemeUtils.of(color, this); + + utils.platform.themeStatusBar(this); + utils.material.themeToolbar(binding.toolbar); + } + public static Intent createIntent(@NonNull Context context) { return new Intent(context, ManageAccountsActivity.class); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsViewModel.java index 567732ddf..632a7cd15 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsViewModel.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/manageaccounts/ManageAccountsViewModel.java @@ -8,6 +8,7 @@ import androidx.lifecycle.LiveData; import java.util.List; import java.util.concurrent.CompletableFuture; +import it.niedermann.android.reactivelivedata.ReactiveLiveData; import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.ui.viewmodel.BaseViewModel; @@ -18,6 +19,11 @@ public class ManageAccountsViewModel extends BaseViewModel { super(application); } + public LiveData<Integer> getCurrentAccountColor() { + return new ReactiveLiveData<>(baseRepository.getCurrentAccountId$()) + .flatMap(baseRepository::getAccountColor); + } + public LiveData<Account> readAccount(long id) { return baseRepository.readAccount(id); } 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; } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java index 9ccf8818c..33925a8f5 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java @@ -19,6 +19,8 @@ import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.nextcloud.android.common.ui.theme.utils.ColorRole; + import it.niedermann.android.crosstabdnd.DragAndDropTab; import it.niedermann.android.reactivelivedata.ReactiveLiveData; import it.niedermann.nextcloud.deck.DeckLog; @@ -37,6 +39,7 @@ import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment; import it.niedermann.nextcloud.deck.ui.filter.FilterViewModel; import it.niedermann.nextcloud.deck.ui.movecard.MoveCardDialogFragment; import it.niedermann.nextcloud.deck.ui.movecard.MoveCardListener; +import it.niedermann.nextcloud.deck.ui.theme.ThemeUtils; import it.niedermann.nextcloud.deck.ui.theme.Themed; import it.niedermann.nextcloud.deck.ui.viewmodel.SyncViewModel; import it.niedermann.nextcloud.deck.util.CardUtil; @@ -92,8 +95,6 @@ public class StackFragment extends Fragment implements Themed, DragAndDropTab<Ca binding = FragmentStackBinding.inflate(inflater, container, false); stackViewModel = new SyncViewModel.Provider(requireActivity(), requireActivity().getApplication(), account).get(StackViewModel.class); - applyTheme(account.getColor()); - final var filterViewModel = new ViewModelProvider(activity).get(FilterViewModel.class); if (onScrollListener != null) { @@ -124,6 +125,8 @@ public class StackFragment extends Fragment implements Themed, DragAndDropTab<Ca adapter = new CardAdapter(activity, this, selectCardListener); binding.recyclerView.setAdapter(adapter); + stackViewModel.getBoardColor$(account.getId(), boardId).observe(getViewLifecycleOwner(), this::applyTheme); + new ReactiveLiveData<>(stackViewModel.getAccount(account.getId())) .tap(() -> binding.loadingSpinner.show()) .tap(account -> adapter.setAccount(account)) @@ -292,7 +295,10 @@ public class StackFragment extends Fragment implements Themed, DragAndDropTab<Ca @Override public void applyTheme(int color) { - binding.emptyContentView.applyTheme(color); + final var utils = ThemeUtils.of(color, requireContext()); + + utils.platform.colorCircularProgressBar(binding.loadingSpinner, ColorRole.PRIMARY); + utils.deck.themeEmptyContentView(binding.emptyContentView); } public static Fragment newInstance(@NonNull Account account, long boardId, long stackId) { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/theme/DeckViewThemeUtils.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/theme/DeckViewThemeUtils.java index b325388b2..7b8c81ab4 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/theme/DeckViewThemeUtils.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/theme/DeckViewThemeUtils.java @@ -39,6 +39,7 @@ import java.time.LocalDate; import java.util.Optional; import it.niedermann.nextcloud.deck.R; +import it.niedermann.nextcloud.deck.ui.view.EmptyContentView; import kotlin.Pair; /** @@ -69,18 +70,6 @@ public class DeckViewThemeUtils extends ViewThemeUtilsBase { tabLayout.setBackground(null); } - /** - * Convenience method for calling {@link #themeTabLayout(TabLayout, int)} with the primary color - */ - public void themeTabLayout(@NonNull TabLayout tabLayout) { - themeTabLayout(tabLayout, ContextCompat.getColor(tabLayout.getContext(), R.color.primary)); - } - - public void themeTabLayout(@NonNull TabLayout tabLayout, @ColorInt int backgroundColor) { - this.material.themeTabLayout(tabLayout); - tabLayout.setBackgroundColor(backgroundColor); - } - public void themeSearchBar(@NonNull SearchBar searchBar) { withScheme(searchBar.getContext(), scheme -> { final var colorStateList = ColorStateList.valueOf( @@ -101,6 +90,15 @@ public class DeckViewThemeUtils extends ViewThemeUtilsBase { }); } + public void themeEmptyContentView(@NonNull EmptyContentView emptyContentView) { + withScheme(emptyContentView.getContext(), scheme -> { + platform.colorImageView(emptyContentView.getImage(), ColorRole.SURFACE_VARIANT); + platform.colorTextView(emptyContentView.getTitle(), ColorRole.ON_BACKGROUND); + platform.colorTextView(emptyContentView.getDescription(), ColorRole.ON_BACKGROUND); + return emptyContentView; + }); + } + public void themeSearchView(@NonNull SearchView searchView) { withScheme(searchView.getContext(), scheme -> { searchView.setBackgroundTintList(ColorStateList.valueOf(scheme.getSurface())); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/theme/ThemeUtils.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/theme/ThemeUtils.java index 45d4e25c1..956d84e0b 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/theme/ThemeUtils.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/theme/ThemeUtils.java @@ -6,6 +6,7 @@ import android.content.Context; import androidx.annotation.ColorInt; import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import com.nextcloud.android.common.ui.color.ColorUtil; import com.nextcloud.android.common.ui.theme.MaterialSchemes; @@ -18,6 +19,7 @@ import com.nextcloud.android.common.ui.theme.utils.MaterialViewThemeUtils; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; +import it.niedermann.nextcloud.deck.R; import scheme.Scheme; public class ThemeUtils extends ViewThemeUtilsBase { @@ -50,6 +52,10 @@ public class ThemeUtils extends ViewThemeUtilsBase { )); } + public static ThemeUtils defaultBrand(@NonNull Context context) { + return of(ContextCompat.getColor(context, R.color.defaultBrand), context); + } + @Deprecated public static Scheme createScheme(@ColorInt int color, @NonNull Context context) { return isDarkMode(context) ? Scheme.dark(color) : Scheme.light(color); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsActivity.java index 9f92f1128..1d2e68633 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsActivity.java @@ -10,10 +10,12 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.lifecycle.ViewModelProvider; +import com.nextcloud.android.common.ui.theme.utils.ColorRole; import com.nextcloud.android.sso.exceptions.NextcloudFilesAppAccountNotFoundException; import it.niedermann.nextcloud.deck.DeckLog; import it.niedermann.nextcloud.deck.databinding.ActivityUpcomingCardsBinding; +import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.model.Card; import it.niedermann.nextcloud.deck.model.Stack; import it.niedermann.nextcloud.deck.model.full.FullCard; @@ -22,9 +24,13 @@ import it.niedermann.nextcloud.deck.repository.SyncRepository; import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment; import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler; import it.niedermann.nextcloud.deck.ui.movecard.MoveCardListener; +import it.niedermann.nextcloud.deck.ui.theme.ThemeUtils; +import it.niedermann.nextcloud.deck.ui.theme.Themed; -public class UpcomingCardsActivity extends AppCompatActivity implements MoveCardListener { +public class UpcomingCardsActivity extends AppCompatActivity implements Themed, MoveCardListener { + private static final String KEY_ACCOUNT = "account"; + private Account account; private UpcomingCardsViewModel viewModel; private ActivityUpcomingCardsBinding binding; @@ -34,11 +40,18 @@ public class UpcomingCardsActivity extends AppCompatActivity implements MoveCard Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this)); + if (!getIntent().hasExtra(KEY_ACCOUNT)) { + throw new IllegalArgumentException(KEY_ACCOUNT + " must be provided"); + } + + account = (Account) getIntent().getSerializableExtra(KEY_ACCOUNT); + binding = ActivityUpcomingCardsBinding.inflate(getLayoutInflater()); viewModel = new ViewModelProvider(this).get(UpcomingCardsViewModel.class); setContentView(binding.getRoot()); setSupportActionBar(binding.toolbar); + applyTheme(account.getColor()); binding.loadingSpinner.show(); @@ -57,7 +70,7 @@ public class UpcomingCardsActivity extends AppCompatActivity implements MoveCard ExceptionDialogFragment.newInstance(e, a).show(getSupportFragmentManager(), ExceptionDialogFragment.class.getSimpleName()); } }, - (fullCard) -> viewModel.archiveCard(fullCard, new IResponseCallback<>() { + fullCard -> viewModel.archiveCard(fullCard, new IResponseCallback<>() { @Override public void onResponse(FullCard response) { DeckLog.info("Successfully archived", Card.class.getSimpleName(), fullCard.getCard().getTitle()); @@ -69,7 +82,7 @@ public class UpcomingCardsActivity extends AppCompatActivity implements MoveCard runOnUiThread(() -> ExceptionDialogFragment.newInstance(throwable, null).show(getSupportFragmentManager(), ExceptionDialogFragment.class.getSimpleName())); } }), - (card) -> viewModel.deleteCard(card, new IResponseCallback<>() { + card -> viewModel.deleteCard(card, new IResponseCallback<>() { @Override public void onResponse(Void response) { DeckLog.info("Successfully deleted card", card.getTitle()); @@ -105,8 +118,9 @@ public class UpcomingCardsActivity extends AppCompatActivity implements MoveCard } @NonNull - public static Intent createIntent(@NonNull Context context) { + public static Intent createIntent(@NonNull Context context, @NonNull Account account) { return new Intent(context, UpcomingCardsActivity.class) + .putExtra(KEY_ACCOUNT, account) .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); } @@ -127,4 +141,13 @@ public class UpcomingCardsActivity extends AppCompatActivity implements MoveCard } }); } + + @Override + public void applyTheme(int color) { + final var utils = ThemeUtils.of(color, this); + + utils.platform.colorCircularProgressBar(binding.loadingSpinner, ColorRole.PRIMARY); + utils.platform.themeStatusBar(this); + utils.material.themeToolbar(binding.toolbar); + } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/ColorChooser.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/ColorChooser.java index 326979744..ae520cf91 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/ColorChooser.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/ColorChooser.java @@ -89,7 +89,8 @@ public class ColorChooser extends LinearLayout { previouslySelectedImageView.setImageDrawable(DeckViewThemeUtils.getTintedImageView(this.context, R.drawable.circle_grey600_36dp, previouslySelectedColor)); previouslySelectedImageView = null; } - @ColorInt final int customColor = envelope.getColor(); + @ColorInt + final int customColor = envelope.getColor(); selectedColor = customColor; previouslySelectedColor = customColor; binding.customColorChooser.setImageDrawable(DeckViewThemeUtils.getTintedImageView(context, R.drawable.circle_alpha_colorize_36dp, selectedColor)); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/EmptyContentView.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/EmptyContentView.java index 2b3557694..281d0f68f 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/EmptyContentView.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/EmptyContentView.java @@ -4,19 +4,17 @@ import android.content.Context; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; +import android.widget.ImageView; import android.widget.RelativeLayout; +import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.StringRes; -import com.nextcloud.android.common.ui.theme.utils.ColorRole; - import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.databinding.WidgetEmptyContentViewBinding; -import it.niedermann.nextcloud.deck.ui.theme.ThemeUtils; -import it.niedermann.nextcloud.deck.ui.theme.Themed; -public class EmptyContentView extends RelativeLayout implements Themed { +public class EmptyContentView extends RelativeLayout { private static final int NO_DESCRIPTION = -1; @@ -47,12 +45,15 @@ public class EmptyContentView extends RelativeLayout implements Themed { binding.description.setVisibility(View.VISIBLE); } - @Override - public void applyTheme(int color) { - final var utils = ThemeUtils.of(color, getContext()); + public ImageView getImage() { + return binding.image; + } + + public TextView getTitle() { + return binding.title; + } -// utils.platform.colorImageView(binding.image, ColorRole.SECONDARY_CONTAINER); - utils.platform.colorTextView(binding.title, ColorRole.ON_SURFACE); - utils.platform.colorTextView(binding.description, ColorRole.ON_SURFACE); + public TextView getDescription() { + return binding.description; } } diff --git a/app/src/main/res/layout/activity_archived.xml b/app/src/main/res/layout/activity_archived.xml index b540b5f1f..a876f4f49 100644 --- a/app/src/main/res/layout/activity_archived.xml +++ b/app/src/main/res/layout/activity_archived.xml @@ -6,17 +6,12 @@ android:layout_height="wrap_content" android:orientation="vertical"> - <com.google.android.material.appbar.AppBarLayout + <com.google.android.material.appbar.MaterialToolbar + android:id="@+id/toolbar" android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <com.google.android.material.appbar.MaterialToolbar - android:id="@+id/toolbar" - android:layout_width="match_parent" - android:layout_height="wrap_content" - app:navigationIcon="@drawable/ic_arrow_back_white_24dp" - tools:title="@string/archived_cards" /> - </com.google.android.material.appbar.AppBarLayout> + android:layout_height="wrap_content" + app:navigationIcon="@drawable/ic_arrow_back_white_24dp" + tools:title="@string/archived_cards" /> <it.niedermann.nextcloud.deck.ui.view.EmptyContentView android:id="@+id/empty_content_view" diff --git a/app/src/main/res/layout/activity_exception.xml b/app/src/main/res/layout/activity_exception.xml index 4923c701b..37447f958 100644 --- a/app/src/main/res/layout/activity_exception.xml +++ b/app/src/main/res/layout/activity_exception.xml @@ -6,31 +6,24 @@ android:layout_height="match_parent" android:orientation="vertical"> - <com.google.android.material.appbar.AppBarLayout + <com.google.android.material.appbar.MaterialToolbar + android:id="@+id/toolbar" android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <com.google.android.material.appbar.MaterialToolbar - android:id="@+id/toolbar" - android:layout_width="match_parent" - android:layout_height="wrap_content" - tools:title="@string/simple_exception" /> - - </com.google.android.material.appbar.AppBarLayout> + android:layout_height="wrap_content" + tools:title="@string/simple_exception" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="@dimen/spacer_2x"> - <androidx.appcompat.widget.AppCompatTextView + <com.google.android.material.textview.MaterialTextView android:id="@+id/message" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:hint="@string/hint_error_appeared" - app:drawableEndCompat="@drawable/ic_bug_report_black_24dp" - tools:ignore="HardcodedText" /> + app:drawableEndCompat="@drawable/ic_bug_report_black_24dp" /> </LinearLayout> @@ -95,8 +88,7 @@ android:layout_height="wrap_content" android:layout_marginEnd="@dimen/spacer_1x" android:layout_weight=".5" - android:text="@string/simple_close" - android:textColor="@color/defaultBrand" /> + android:text="@string/simple_close" /> <com.google.android.material.button.MaterialButton android:id="@+id/copy" @@ -105,8 +97,7 @@ android:layout_height="wrap_content" android:layout_marginStart="@dimen/spacer_1x" android:layout_weight=".5" - android:text="@string/simple_copy" - app:backgroundTint="@color/defaultBrand" /> + android:text="@string/simple_copy" /> </LinearLayout> </LinearLayout> diff --git a/app/src/main/res/layout/activity_filter_widget.xml b/app/src/main/res/layout/activity_filter_widget.xml index fbd600073..43cb5c7e9 100644 --- a/app/src/main/res/layout/activity_filter_widget.xml +++ b/app/src/main/res/layout/activity_filter_widget.xml @@ -6,17 +6,11 @@ android:layout_height="match_parent" tools:showIn="@layout/activity_filter_widget"> - <com.google.android.material.appbar.AppBarLayout - android:id="@+id/appBarLayout" + <com.google.android.material.appbar.MaterialToolbar + android:id="@+id/toolbar" android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <com.google.android.material.appbar.MaterialToolbar - android:id="@+id/toolbar" - android:layout_width="match_parent" - android:layout_height="wrap_content" - app:title="@string/add_filter_widget" /> - </com.google.android.material.appbar.AppBarLayout> + android:layout_height="wrap_content" + app:title="@string/add_filter_widget" /> <LinearLayout android:id="@+id/buttonBar" diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index e05c9b9a1..e72601e5e 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -38,7 +38,6 @@ style="@style/Widget.Material3.Button.IconButton" android:layout_width="48dp" android:layout_height="match_parent" - android:background="?attr/colorPrimary" android:contentDescription="@string/add_list" android:foreground="?attr/selectableItemBackgroundBorderless" android:tooltipText="@string/manage_list" @@ -125,7 +124,7 @@ android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/colorPrimary"> + android:background="?android:windowBackground"> <com.google.android.material.search.SearchBar android:id="@+id/toolbar" @@ -188,7 +187,6 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" - android:background="?attr/colorPrimary" android:fitsSystemWindows="false" android:theme="@style/NavigationView" app:headerLayout="@layout/nav_header_main" diff --git a/app/src/main/res/layout/activity_manage_accounts.xml b/app/src/main/res/layout/activity_manage_accounts.xml index 882baeb1b..89ea96a6c 100644 --- a/app/src/main/res/layout/activity_manage_accounts.xml +++ b/app/src/main/res/layout/activity_manage_accounts.xml @@ -6,19 +6,14 @@ android:layout_height="match_parent" android:orientation="vertical"> - <com.google.android.material.appbar.AppBarLayout + <com.google.android.material.appbar.MaterialToolbar + android:id="@+id/toolbar" android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <com.google.android.material.appbar.MaterialToolbar - android:id="@+id/toolbar" - android:layout_width="match_parent" - android:layout_height="wrap_content" - app:contentInsetStartWithNavigation="0dp" - app:navigationIcon="@drawable/ic_arrow_back_white_24dp" - app:title="@string/manage_accounts" - app:titleMarginStart="0dp" /> - </com.google.android.material.appbar.AppBarLayout> + android:layout_height="wrap_content" + app:contentInsetStartWithNavigation="0dp" + app:navigationIcon="@drawable/ic_arrow_back_white_24dp" + app:title="@string/manage_accounts" + app:titleMarginStart="0dp" /> <androidx.recyclerview.widget.RecyclerView android:id="@+id/accounts" diff --git a/app/src/main/res/layout/activity_pick_stack.xml b/app/src/main/res/layout/activity_pick_stack.xml index f86bdb45f..d6edce3bb 100644 --- a/app/src/main/res/layout/activity_pick_stack.xml +++ b/app/src/main/res/layout/activity_pick_stack.xml @@ -6,25 +6,18 @@ android:layout_height="match_parent" tools:showIn="@layout/activity_pick_stack"> - <com.google.android.material.appbar.AppBarLayout - android:id="@+id/appBarLayout" + <com.google.android.material.appbar.MaterialToolbar + android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintBottom_toTopOf="@id/inputWrapper" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent"> - - <com.google.android.material.appbar.MaterialToolbar - android:id="@+id/toolbar" - android:layout_width="match_parent" - android:layout_height="wrap_content" - app:title="@string/add_card" /> - </com.google.android.material.appbar.AppBarLayout> + app:layout_constraintTop_toTopOf="parent" + app:title="@string/add_card" /> <com.google.android.material.textfield.TextInputLayout android:id="@+id/inputWrapper" - style="@style/textInputLayoutStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/title_mandatory" @@ -34,7 +27,7 @@ app:layout_constraintBottom_toTopOf="@id/fragment_container_wrapper" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/appBarLayout" + app:layout_constraintTop_toBottomOf="@id/toolbar" tools:visibility="visible"> <EditText @@ -55,13 +48,14 @@ android:layout_width="match_parent" android:layout_height="0dp" android:layout_above="@+id/buttonBar" - android:layout_below="@id/appBarLayout" - android:paddingHorizontal="@dimen/spacer_2x" + android:layout_below="@id/toolbar" + android:padding="@dimen/spacer_2x" app:layout_constraintBottom_toTopOf="@id/buttonBar" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/inputWrapper" - app:layout_constraintVertical_weight="1"> + app:layout_constraintVertical_weight="1" + tools:background="@color/bg_highlighted"> <androidx.fragment.app.FragmentContainerView android:id="@+id/fragment_container" diff --git a/app/src/main/res/layout/activity_push_notification.xml b/app/src/main/res/layout/activity_push_notification.xml index 4aca3a744..d280ba506 100644 --- a/app/src/main/res/layout/activity_push_notification.xml +++ b/app/src/main/res/layout/activity_push_notification.xml @@ -7,17 +7,12 @@ android:orientation="vertical" tools:showIn="@layout/activity_push_notification"> - <com.google.android.material.appbar.AppBarLayout + <com.google.android.material.appbar.MaterialToolbar + android:id="@+id/toolbar" android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <com.google.android.material.appbar.MaterialToolbar - android:id="@+id/toolbar" - android:layout_width="match_parent" - android:layout_height="wrap_content" - app:navigationIcon="@drawable/ic_arrow_back_white_24dp" - app:title="@string/app_name" /> - </com.google.android.material.appbar.AppBarLayout> + android:layout_height="wrap_content" + app:navigationIcon="@drawable/ic_arrow_back_white_24dp" + app:title="@string/app_name" /> <LinearLayout android:id="@+id/progressWrapper" @@ -101,7 +96,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:autoLink="web" - tools:text="@string/push_notification_link_empty"/> + tools:text="@string/push_notification_link_empty" /> <com.google.android.material.button.MaterialButton android:id="@+id/showError" diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index c04a45705..b3e88552a 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -14,7 +14,6 @@ <androidx.fragment.app.FragmentContainerView android:id="@+id/settingsFragment" - android:name="it.niedermann.nextcloud.deck.ui.settings.SettingsFragment" android:layout_width="match_parent" android:layout_height="wrap_content" /> diff --git a/app/src/main/res/layout/activity_upcoming_cards.xml b/app/src/main/res/layout/activity_upcoming_cards.xml index 23516ff78..7c16ae357 100644 --- a/app/src/main/res/layout/activity_upcoming_cards.xml +++ b/app/src/main/res/layout/activity_upcoming_cards.xml @@ -4,20 +4,14 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/colorPrimary" android:orientation="vertical"> - <com.google.android.material.appbar.AppBarLayout + <com.google.android.material.appbar.MaterialToolbar + android:id="@+id/toolbar" android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <com.google.android.material.appbar.MaterialToolbar - android:id="@+id/toolbar" - android:layout_width="match_parent" - android:layout_height="wrap_content" - app:navigationIcon="@drawable/ic_arrow_back_white_24dp" - tools:title="@string/widget_upcoming_title" /> - </com.google.android.material.appbar.AppBarLayout> + android:layout_height="wrap_content" + app:navigationIcon="@drawable/ic_arrow_back_white_24dp" + tools:title="@string/widget_upcoming_title" /> <it.niedermann.nextcloud.deck.ui.view.EmptyContentView android:id="@+id/empty_content_view" diff --git a/app/src/main/res/layout/dialog_add_comment.xml b/app/src/main/res/layout/dialog_add_comment.xml index efad8a9b4..366a25610 100644 --- a/app/src/main/res/layout/dialog_add_comment.xml +++ b/app/src/main/res/layout/dialog_add_comment.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <com.google.android.material.textfield.TextInputLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/inputWrapper" - style="@style/textInputLayoutStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/simple_comment" diff --git a/app/src/main/res/layout/dialog_board_manage_labels.xml b/app/src/main/res/layout/dialog_board_manage_labels.xml index 370aedd8b..5c6154bb0 100644 --- a/app/src/main/res/layout/dialog_board_manage_labels.xml +++ b/app/src/main/res/layout/dialog_board_manage_labels.xml @@ -15,7 +15,6 @@ <com.google.android.material.textfield.TextInputLayout android:id="@+id/addLabelTitleWrapper" - style="@style/textInputLayoutStyle" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginEnd="@dimen/spacer_1x" diff --git a/app/src/main/res/layout/dialog_board_share.xml b/app/src/main/res/layout/dialog_board_share.xml index 39ff55f4f..63e89f579 100644 --- a/app/src/main/res/layout/dialog_board_share.xml +++ b/app/src/main/res/layout/dialog_board_share.xml @@ -9,7 +9,6 @@ <com.google.android.material.textfield.TextInputLayout android:id="@+id/peopleWrapper" - style="@style/textInputLayoutStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/hint_assign_people" diff --git a/app/src/main/res/layout/dialog_new_card.xml b/app/src/main/res/layout/dialog_new_card.xml index 611715d3b..f970231f9 100644 --- a/app/src/main/res/layout/dialog_new_card.xml +++ b/app/src/main/res/layout/dialog_new_card.xml @@ -6,7 +6,6 @@ <com.google.android.material.textfield.TextInputLayout android:id="@+id/inputWrapper" - style="@style/textInputLayoutStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/simple_title" diff --git a/app/src/main/res/layout/dialog_stack_create.xml b/app/src/main/res/layout/dialog_stack_create.xml index 9da27f8fc..ac5405ef4 100644 --- a/app/src/main/res/layout/dialog_stack_create.xml +++ b/app/src/main/res/layout/dialog_stack_create.xml @@ -1,7 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <com.google.android.material.textfield.TextInputLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/inputWrapper" - style="@style/textInputLayoutStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/simple_title" diff --git a/app/src/main/res/layout/dialog_text_color_input.xml b/app/src/main/res/layout/dialog_text_color_input.xml index df6a29834..05e547781 100644 --- a/app/src/main/res/layout/dialog_text_color_input.xml +++ b/app/src/main/res/layout/dialog_text_color_input.xml @@ -8,7 +8,6 @@ <com.google.android.material.textfield.TextInputLayout android:id="@+id/inputWrapper" - style="@style/textInputLayoutStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/simple_title" diff --git a/app/src/main/res/layout/fragment_card_edit_tab_attachments.xml b/app/src/main/res/layout/fragment_card_edit_tab_attachments.xml index c300edcb1..987d22626 100644 --- a/app/src/main/res/layout/fragment_card_edit_tab_attachments.xml +++ b/app/src/main/res/layout/fragment_card_edit_tab_attachments.xml @@ -53,27 +53,15 @@ app:elevation="@dimen/spacer_1x" app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"> - <RelativeLayout - android:id="@+id/pickerHeader" - android:layout_width="match_parent" - android:layout_height="@dimen/spacer_2x" - android:background="@drawable/bottom_sheet_rounded"> - - <View - android:layout_width="@dimen/spacer_4x" - android:layout_height="@dimen/spacer_1hx" - android:layout_alignParentBottom="true" - android:layout_centerInParent="true" - android:background="@color/bg_info_box" /> - </RelativeLayout> + <com.google.android.material.bottomsheet.BottomSheetDragHandleView + android:layout_width="wrap_content" + android:layout_height="wrap_content" /> <androidx.recyclerview.widget.RecyclerView android:id="@+id/pickerRecyclerView" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?attr/colorPrimarySurface" android:paddingStart="@dimen/spacer_1hx" - android:paddingTop="@dimen/spacer_1x" android:paddingEnd="@dimen/spacer_1hx" android:paddingBottom="@dimen/attachments_bottom_navigation_height" tools:listitem="@layout/support_simple_spinner_dropdown_item" diff --git a/app/src/main/res/layout/fragment_card_edit_tab_comments.xml b/app/src/main/res/layout/fragment_card_edit_tab_comments.xml index 62d845b7f..0c60c92a2 100644 --- a/app/src/main/res/layout/fragment_card_edit_tab_comments.xml +++ b/app/src/main/res/layout/fragment_card_edit_tab_comments.xml @@ -121,7 +121,6 @@ <com.google.android.material.textfield.TextInputLayout android:id="@+id/messageWrapper" - style="@style/textInputLayoutStyle" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center" diff --git a/app/src/main/res/layout/fragment_card_edit_tab_details.xml b/app/src/main/res/layout/fragment_card_edit_tab_details.xml index 3d5ed3be2..631bc342f 100644 --- a/app/src/main/res/layout/fragment_card_edit_tab_details.xml +++ b/app/src/main/res/layout/fragment_card_edit_tab_details.xml @@ -13,7 +13,6 @@ <com.google.android.material.textfield.TextInputLayout android:id="@+id/labelsWrapper" - style="@style/textInputLayoutStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/label_labels" @@ -44,7 +43,6 @@ <com.google.android.material.textfield.TextInputLayout android:id="@+id/peopleWrapper" - style="@style/textInputLayoutStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/spacer_2x" @@ -79,7 +77,6 @@ <com.google.android.material.textfield.TextInputLayout android:id="@+id/dueDateDateWrapper" - style="@style/textInputLayoutStyle" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="@dimen/spacer_2x" @@ -107,7 +104,6 @@ <com.google.android.material.textfield.TextInputLayout android:id="@+id/dueDateTimeWrapper" - style="@style/textInputLayoutStyle" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="@dimen/spacer_1hx" @@ -161,7 +157,6 @@ <com.google.android.material.textfield.TextInputLayout android:id="@+id/descriptionEditorWrapper" - style="@style/textInputLayoutStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/spacer_1x" @@ -197,7 +192,7 @@ android:layout_alignParentEnd="true" android:layout_gravity="bottom" android:layout_marginEnd="6dp" - android:background="?attr/colorPrimary" + android:background="?android:windowBackground" android:contentDescription="@string/edit_description" android:paddingStart="@dimen/spacer_1hx" android:paddingTop="@dimen/spacer_1x" diff --git a/app/src/main/res/values-v27/styles.xml b/app/src/main/res/values-v27/styles.xml index fee6d0d20..a01e421c4 100644 --- a/app/src/main/res/values-v27/styles.xml +++ b/app/src/main/res/values-v27/styles.xml @@ -2,9 +2,6 @@ <resources> <style name="AppTheme" parent="BaseTheme"> - <item name="android:windowLightStatusBar">@bool/isDayMode</item> - <item name="android:statusBarColor">?attr/colorPrimary</item> - <item name="android:navigationBarColor">?attr/colorPrimary</item> <item name="android:windowLightNavigationBar">@bool/isDayMode</item> </style> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index d65645073..ba047c3ab 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -2,15 +2,15 @@ <style name="BaseTheme" parent="Theme.Material3.DayNight.NoActionBar"> <item name="colorPrimary">@color/primary</item> - <item name="colorPrimaryDark">?android:colorPrimary</item> <item name="colorAccent">@color/accent</item> - <item name="android:windowBackground">?attr/colorPrimary</item> - <item name="android:statusBarColor">?attr/colorPrimary</item> + <item name="android:windowBackground">@color/bg_default</item> + <item name="android:statusBarColor">@color/bg_default</item> + <item name="android:navigationBarColor">@color/bg_default</item> <item name="android:windowLightStatusBar">@bool/isDayMode</item> <item name="android:colorControlNormal">?attr/colorAccent</item> <item name="android:colorControlActivated">?attr/colorAccent</item> - <item name="android:textColorLink">?android:colorAccent</item> + <item name="android:textColorLink">?attr/colorAccent</item> <item name="android:textColorHighlight">@color/defaultTextHighlightBackground</item> <!-- Workaround: Preferences Dialogs are using AlertDialogs instead of MaterialAlertDialogs. --> @@ -18,7 +18,6 @@ <item name="alertDialogTheme">@style/PreferencesAlertDialogTheme</item> <item name="materialAlertDialogTheme">@style/MaterialAlertDialogTheme</item> - <item name="bottomSheetDialogTheme">@style/AppBottomSheetDialogTheme</item> <item name="toolbarStyle">@style/toolbarStyle</item> <item name="chipGroupStyle">@style/chipGroupStyle</item> @@ -47,14 +46,6 @@ <item name="android:textColor">?attr/colorAccent</item> </style> - <style name="AppBottomSheetDialogTheme" parent="Theme.Material3.DayNight.BottomSheetDialog"> - <item name="android:navigationBarColor">@color/primary</item> - <item name="android:statusBarColor">@android:color/transparent</item> - <item name="android:windowIsFloating">false</item> - - <item name="bottomSheetStyle">@style/bottomSheetStyle</item> - </style> - <style name="chipGroupStyle" parent="Widget.Material3.ChipGroup"> <item name="chipSpacingVertical">0dp</item> </style> @@ -64,12 +55,8 @@ <item name="chipCornerRadius">40dp</item> </style> - <style name="bottomSheetStyle" parent="Widget.Material3.BottomSheet.Modal"> - <item name="android:background">@drawable/bottom_sheet_rounded</item> - </style> - <style name="toolbarStyle" parent="@style/Widget.Material3.Toolbar"> - <item name="android:background">?attr/colorPrimary</item> + <item name="android:background">?android:windowBackground</item> </style> <style name="tabStyle" parent="Widget.Material3.TabLayout"> @@ -88,11 +75,6 @@ <item name="cardBackgroundColor">@color/bg_card</item> </style> - <style name="textInputLayoutStyle" parent="Widget.Material3.TextInputLayout.OutlinedBox.Dense"> - <item name="boxStrokeColor">@color/text_input_layout_color</item> - <item name="hintTextColor">@color/text_input_layout_color</item> - </style> - <style name="textAppearanceHeadlineLarge" parent="TextAppearance.Material3.HeadlineLarge"> <item name="android:textSize">36sp</item> </style> |