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>2022-11-04 12:25:13 +0300
committerStefan Niedermann <info@niedermann.it>2022-11-04 12:25:13 +0300
commit7183470a252173adc4231bd5373c6805c3709b11 (patch)
tree99e8ffe0b9d709ef6553988f228dc2503eb77cd0
parent6a14c4f6ce235807241694f0290f3bd2f312bfc2 (diff)
Fix #1330 Update to The Material Design 3
Signed-off-by: Stefan Niedermann <info@niedermann.it>
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java38
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/DeleteBoardDialogFragment.java7
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/EditBoardDialogFragment.java5
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlDialogFragment.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/EditLabelDialogFragment.java5
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsDialogFragment.java5
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDialogFragment.java6
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSnackbar.java23
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java9
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/DeleteAlertDialogBuilder.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java8
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/NewCardDialog.java5
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/previewdialog/PreviewDialog.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsEditDialogFragment.java5
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java5
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionDialogFragment.java5
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/filter/FilterDialogFragment.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareProgressDialogFragment.java5
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareTargetActivity.java6
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/EditStackDialogFragment.java5
-rw-r--r--app/src/main/res/drawable/bg_navdrawer_item.xml40
-rw-r--r--app/src/main/res/layout/activity_about.xml5
-rw-r--r--app/src/main/res/layout/activity_attachments.xml3
-rw-r--r--app/src/main/res/layout/activity_edit.xml7
-rw-r--r--app/src/main/res/layout/activity_exception.xml10
-rw-r--r--app/src/main/res/layout/activity_filter_widget.xml4
-rw-r--r--app/src/main/res/layout/activity_import_account.xml8
-rw-r--r--app/src/main/res/layout/activity_main.xml33
-rw-r--r--app/src/main/res/layout/activity_pick_stack.xml6
-rw-r--r--app/src/main/res/layout/activity_push_notification.xml4
-rw-r--r--app/src/main/res/layout/activity_take_photo.xml4
-rw-r--r--app/src/main/res/layout/activity_upcoming_cards.xml2
-rw-r--r--app/src/main/res/layout/dialog_account_switcher.xml3
-rw-r--r--app/src/main/res/layout/dialog_add_comment.xml2
-rw-r--r--app/src/main/res/layout/dialog_board_manage_labels.xml5
-rw-r--r--app/src/main/res/layout/dialog_board_share.xml4
-rw-r--r--app/src/main/res/layout/dialog_filter.xml3
-rw-r--r--app/src/main/res/layout/dialog_move_card.xml3
-rw-r--r--app/src/main/res/layout/dialog_new_card.xml2
-rw-r--r--app/src/main/res/layout/dialog_preview.xml2
-rw-r--r--app/src/main/res/layout/dialog_share_progress.xml5
-rw-r--r--app/src/main/res/layout/dialog_stack_create.xml2
-rw-r--r--app/src/main/res/layout/dialog_text_color_input.xml2
-rw-r--r--app/src/main/res/layout/fragment_about_credits_tab.xml8
-rw-r--r--app/src/main/res/layout/fragment_about_license_tab.xml2
-rw-r--r--app/src/main/res/layout/fragment_card_edit_tab_comments.xml27
-rw-r--r--app/src/main/res/layout/fragment_card_edit_tab_details.xml14
-rw-r--r--app/src/main/res/layout/fragment_stack.xml3
-rw-r--r--app/src/main/res/layout/item_access_control.xml3
-rw-r--r--app/src/main/res/layout/item_account_choose.xml3
-rw-r--r--app/src/main/res/layout/item_card_compact.xml9
-rw-r--r--app/src/main/res/layout/item_card_default.xml9
-rw-r--r--app/src/main/res/layout/item_card_default_only_title.xml11
-rw-r--r--app/src/main/res/layout/item_filter_label.xml2
-rw-r--r--app/src/main/res/layout/item_filter_user.xml3
-rw-r--r--app/src/main/res/layout/item_manage_label.xml6
-rw-r--r--app/src/main/res/layout/item_tip.xml2
-rw-r--r--app/src/main/res/layout/widget_empty_content_view.xml6
-rw-r--r--app/src/main/res/layout/widget_separator.xml6
-rw-r--r--app/src/main/res/layout/widget_single_card.xml3
-rw-r--r--app/src/main/res/values-night/colors.xml2
-rw-r--r--app/src/main/res/values-v31/dimens.xml2
-rw-r--r--app/src/main/res/values/dimens.xml2
-rw-r--r--app/src/main/res/values/styles.xml84
-rw-r--r--build.gradle2
-rw-r--r--fastlane/metadata/android/en-US/changelogs/1021000.txt2
-rw-r--r--fastlane/metadata/android/en-US/images/phoneScreenshots/1.pngbin205206 -> 422661 bytes
-rw-r--r--fastlane/metadata/android/en-US/images/phoneScreenshots/2.pngbin234574 -> 1774596 bytes
-rw-r--r--fastlane/metadata/android/en-US/images/phoneScreenshots/3.pngbin124676 -> 109734 bytes
-rw-r--r--fastlane/metadata/android/en-US/images/phoneScreenshots/4.pngbin179872 -> 1719475 bytes
-rw-r--r--fastlane/metadata/android/en-US/images/phoneScreenshots/5.pngbin179544 -> 148868 bytes
-rw-r--r--fastlane/metadata/android/en-US/images/phoneScreenshots/6.pngbin251705 -> 170216 bytes
-rw-r--r--fastlane/metadata/android/en-US/images/phoneScreenshots/7.pngbin131264 -> 241759 bytes
-rw-r--r--fastlane/metadata/android/en-US/images/phoneScreenshots/8.pngbin220365 -> 1727339 bytes
-rw-r--r--fastlane/metadata/android/en-US/images/phoneScreenshots/9.pngbin2130230 -> 1356670 bytes
76 files changed, 264 insertions, 268 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java
index 7e25beeb9..8d91048cd 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java
@@ -39,7 +39,6 @@ import android.net.Uri;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
-import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
@@ -54,7 +53,6 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.UiThread;
import androidx.appcompat.app.ActionBarDrawerToggle;
-import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
@@ -70,6 +68,7 @@ import androidx.viewpager2.widget.ViewPager2;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.navigation.NavigationView.OnNavigationItemSelectedListener;
import com.google.android.material.snackbar.Snackbar;
import com.google.android.material.tabs.TabLayoutMediator;
@@ -114,6 +113,7 @@ import it.niedermann.nextcloud.deck.ui.board.DeleteBoardListener;
import it.niedermann.nextcloud.deck.ui.board.EditBoardDialogFragment;
import it.niedermann.nextcloud.deck.ui.board.EditBoardListener;
import it.niedermann.nextcloud.deck.ui.branding.BrandedSnackbar;
+import it.niedermann.nextcloud.deck.ui.branding.BrandingUtil;
import it.niedermann.nextcloud.deck.ui.card.CardAdapter;
import it.niedermann.nextcloud.deck.ui.card.CreateCardListener;
import it.niedermann.nextcloud.deck.ui.card.NewCardDialog;
@@ -196,10 +196,7 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this));
setTheme(R.style.AppTheme);
-
- final var typedValue = new TypedValue();
- getTheme().resolveAttribute(R.attr.colorAccent, typedValue, true);
- colorAccent = typedValue.data;
+ colorAccent = BrandingUtil.getAttribute(this, R.attr.colorAccent);
binding = ActivityMainBinding.inflate(getLayoutInflater());
headerBinding = NavHeaderMainBinding.bind(binding.navigationView.getHeaderView(0));
@@ -501,6 +498,7 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
IResponseCallback.super.onError(error);
runOnUiThread(() -> BrandedSnackbar.make(binding.coordinatorLayout, Objects.requireNonNull(error.getLocalizedMessage()), Snackbar.LENGTH_LONG)
.setAction(R.string.simple_more, v -> ExceptionDialogFragment.newInstance(error, mainViewModel.getCurrentAccount()).show(getSupportFragmentManager(), ExceptionDialogFragment.class.getSimpleName()))
+ .setAnchorView(binding.fab)
.show());
}
});
@@ -551,6 +549,7 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
IResponseCallback.super.onError(throwable);
runOnUiThread(() -> BrandedSnackbar.make(binding.coordinatorLayout, R.string.synchronization_failed, Snackbar.LENGTH_LONG)
.setAction(R.string.simple_more, v -> ExceptionDialogFragment.newInstance(throwable, mainViewModel.getCurrentAccount()).show(getSupportFragmentManager(), ExceptionDialogFragment.class.getSimpleName()))
+ .setAnchorView(binding.fab)
.show());
}
});
@@ -750,7 +749,7 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
final var stack = stackAdapter.getItem(binding.viewPager.getCurrentItem());
final var stackLocalId = stack.getLocalId();
mainViewModel.countCardsInStack(mainViewModel.getCurrentAccount().getId(), stackLocalId, (numberOfCards) -> runOnUiThread(() ->
- new AlertDialog.Builder(this)
+ new MaterialAlertDialogBuilder(this)
.setTitle(R.string.archive_cards)
.setMessage(getString(FilterInformation.hasActiveFilter(filterViewModel.getFilterInformation().getValue())
? R.string.do_you_want_to_archive_all_cards_of_the_filtered_list
@@ -857,13 +856,15 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
if (!response.isMaintenanceEnabled()) {
if (response.getDeckVersion().isSupported()) {
runOnUiThread(() -> {
- final var importSnackbar = BrandedSnackbar.make(binding.coordinatorLayout, R.string.account_is_getting_imported, Snackbar.LENGTH_INDEFINITE);
+ final var importSnackbar = BrandedSnackbar.make(binding.coordinatorLayout, R.string.account_is_getting_imported, Snackbar.LENGTH_INDEFINITE)
+ .setAnchorView(binding.fab);
importSnackbar.show();
importSyncManager.synchronize(new ResponseCallback<>(createdAccount) {
@Override
public void onResponse(Boolean syncSuccess) {
importSnackbar.dismiss();
runOnUiThread(() -> BrandedSnackbar.make(binding.coordinatorLayout, getString(R.string.account_imported), Snackbar.LENGTH_LONG)
+ .setAnchorView(binding.fab)
.setAction(R.string.simple_switch, (a) -> {
createdAccount.setColor(response.getColor());
mainViewModel.setSyncManager(importSyncManager);
@@ -884,7 +885,7 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
});
} else {
DeckLog.warn("Cannot import account because server version is too low (" + response.getDeckVersion() + "). Minimum server version is currently", Version.minimumSupported());
- runOnUiThread(() -> new AlertDialog.Builder(MainActivity.this)
+ runOnUiThread(() -> new MaterialAlertDialogBuilder(MainActivity.this)
.setTitle(R.string.update_deck)
.setMessage(getString(R.string.deck_outdated_please_update, response.getDeckVersion().getOriginalVersion()))
.setNegativeButton(R.string.simple_discard, null)
@@ -898,7 +899,7 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
}
} else {
DeckLog.warn("Cannot import account because server version is currently in maintenance mode.");
- runOnUiThread(() -> new AlertDialog.Builder(MainActivity.this)
+ runOnUiThread(() -> new MaterialAlertDialogBuilder(MainActivity.this)
.setTitle(R.string.maintenance_mode)
.setMessage(getString(R.string.maintenance_mode_explanation, createdAccount.getUrl()))
.setPositiveButton(R.string.simple_close, null)
@@ -913,7 +914,7 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
mainViewModel.deleteAccount(createdAccount.getId());
if (throwable instanceof OfflineException) {
DeckLog.warn("Cannot import account because device is currently offline.");
- runOnUiThread(() -> new AlertDialog.Builder(MainActivity.this)
+ runOnUiThread(() -> new MaterialAlertDialogBuilder(MainActivity.this)
.setTitle(R.string.you_are_currently_offline)
.setMessage(R.string.you_have_to_be_connected_to_the_internet_in_order_to_add_an_account)
.setPositiveButton(R.string.simple_close, null)
@@ -930,7 +931,9 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
IResponseCallback.super.onError(error);
if (error instanceof SQLiteConstraintException) {
DeckLog.warn("Account already added");
- BrandedSnackbar.make(binding.coordinatorLayout, R.string.account_already_added, Snackbar.LENGTH_LONG).show();
+ BrandedSnackbar.make(binding.coordinatorLayout, R.string.account_already_added, Snackbar.LENGTH_LONG)
+ .setAnchorView(binding.fab)
+ .show();
} else {
ExceptionDialogFragment.newInstance(error, accountToCreate).show(getSupportFragmentManager(), ExceptionDialogFragment.class.getSimpleName());
}
@@ -1020,6 +1023,7 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
/**
* Find a StackFragment by it's ID, may return null.
+ *
* @param stackId ID of the stack to find
* @return Instance of StackFragment
*/
@@ -1030,6 +1034,7 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
/**
* This method is called when a new Card is created
+ *
* @param createdCard The new Card's data
*/
@Override
@@ -1116,7 +1121,8 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
if (binding != null) { // Can be null in case the activity has been destroyed before the synchronization process has been finished
BrandedSnackbar.make(binding.coordinatorLayout, R.string.synchronization_failed, Snackbar.LENGTH_LONG)
.setAction(R.string.simple_more, v -> ExceptionDialogFragment.newInstance(throwable, mainViewModel.getCurrentAccount()).show(getSupportFragmentManager(), ExceptionDialogFragment.class.getSimpleName()))
- .show();
+ .setAnchorView(binding.fab)
+ .show();
}
});
}
@@ -1142,12 +1148,13 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
public void onClone(Board board) {
final String[] animals = {getString(R.string.clone_cards)};
final boolean[] checkedItems = {false};
- new AlertDialog.Builder(this)
+ new MaterialAlertDialogBuilder(this)
.setTitle(R.string.clone_board)
.setMultiChoiceItems(animals, checkedItems, (dialog, which, isChecked) -> checkedItems[0] = isChecked)
.setPositiveButton(R.string.simple_clone, (dialog, which) -> {
binding.drawerLayout.closeDrawer(GravityCompat.START);
- final var snackbar = BrandedSnackbar.make(binding.coordinatorLayout, getString(R.string.cloning_board, board.getTitle()), Snackbar.LENGTH_INDEFINITE);
+ final var snackbar = BrandedSnackbar.make(binding.coordinatorLayout, getString(R.string.cloning_board, board.getTitle()), Snackbar.LENGTH_INDEFINITE)
+ .setAnchorView(binding.fab);
snackbar.show();
mainViewModel.cloneBoard(board.getAccountId(), board.getLocalId(), board.getAccountId(), board.getColor(), checkedItems[0], new IResponseCallback<>() {
@Override
@@ -1157,6 +1164,7 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
setCurrentBoard(response.getBoard());
BrandedSnackbar.make(binding.coordinatorLayout, getString(R.string.successfully_cloned_board, response.getBoard().getTitle()), Snackbar.LENGTH_LONG)
.setAction(R.string.edit, v -> EditBoardDialogFragment.newInstance(response.getLocalId()).show(getSupportFragmentManager(), EditBoardDialogFragment.class.getSimpleName()))
+ .setAnchorView(binding.fab)
.show();
});
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java
index 98690e0ca..12150641a 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/accountswitcher/AccountSwitcherDialog.java
@@ -8,12 +8,12 @@ import android.os.Bundle;
import android.text.TextUtils;
import androidx.annotation.NonNull;
-import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.ViewModelProvider;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.nextcloud.android.sso.AccountImporter;
import com.nextcloud.android.sso.exceptions.AndroidGetAccountsPermissionNotGranted;
import com.nextcloud.android.sso.exceptions.NextcloudFilesAppNotInstalledException;
@@ -93,7 +93,7 @@ public class AccountSwitcherDialog extends DialogFragment {
dismiss();
});
- return new AlertDialog.Builder(requireContext())
+ return new MaterialAlertDialogBuilder(requireContext())
.setView(binding.getRoot())
.create();
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/DeleteBoardDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/DeleteBoardDialogFragment.java
index 075439b15..b81c6471e 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/DeleteBoardDialogFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/DeleteBoardDialogFragment.java
@@ -5,7 +5,6 @@ import android.content.Context;
import android.os.Bundle;
import androidx.annotation.NonNull;
-import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import it.niedermann.nextcloud.deck.R;
@@ -38,12 +37,12 @@ public class DeleteBoardDialogFragment extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
- AlertDialog.Builder builder = new DeleteAlertDialogBuilder(requireContext())
+ return new DeleteAlertDialogBuilder(requireContext())
.setTitle(getString(R.string.delete_something, board.getTitle()))
.setMessage(R.string.delete_board_message)
.setPositiveButton(R.string.simple_delete, (dialog, which) -> deleteBoardListener.onBoardDeleted(board))
- .setNeutralButton(android.R.string.cancel, null);
- return builder.create();
+ .setNeutralButton(android.R.string.cancel, null)
+ .create();
}
public static DialogFragment newInstance(@NonNull Board board) {
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/EditBoardDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/EditBoardDialogFragment.java
index c6f47fbb1..894f0d835 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/EditBoardDialogFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/EditBoardDialogFragment.java
@@ -12,11 +12,12 @@ import android.view.WindowManager;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.ViewModelProvider;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
import java.util.Objects;
import it.niedermann.nextcloud.deck.R;
@@ -50,7 +51,7 @@ public class EditBoardDialogFragment extends DialogFragment {
super.onCreate(savedInstanceState);
binding = DialogTextColorInputBinding.inflate(requireActivity().getLayoutInflater());
- final var builder = new AlertDialog.Builder(requireContext())
+ final var builder = new MaterialAlertDialogBuilder(requireContext())
.setView(binding.getRoot())
.setNeutralButton(android.R.string.cancel, null);
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlDialogFragment.java
index 17f8e6891..74c0ad2a3 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlDialogFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/accesscontrol/AccessControlDialogFragment.java
@@ -12,10 +12,10 @@ import android.widget.AdapterView.OnItemClickListener;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
-import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.ViewModelProvider;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.snackbar.Snackbar;
import java.util.List;
@@ -66,7 +66,7 @@ public class AccessControlDialogFragment extends DialogFragment implements Acces
super.onCreate(savedInstanceState);
viewModel = new ViewModelProvider(requireActivity()).get(MainViewModel.class);
- final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext());
+ final var dialogBuilder = new MaterialAlertDialogBuilder(requireContext());
binding = DialogBoardShareBinding.inflate(requireActivity().getLayoutInflater());
adapter = new AccessControlAdapter(viewModel.getCurrentAccount(), this, requireContext());
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/EditLabelDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/EditLabelDialogFragment.java
index b372e04c7..1b8c1e0b1 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/EditLabelDialogFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/EditLabelDialogFragment.java
@@ -7,9 +7,10 @@ import android.content.Context;
import android.os.Bundle;
import androidx.annotation.NonNull;
-import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.databinding.DialogTextColorInputBinding;
import it.niedermann.nextcloud.deck.model.Label;
@@ -53,7 +54,7 @@ public class EditLabelDialogFragment extends BrandedDialogFragment {
super.onCreate(savedInstanceState);
binding = DialogTextColorInputBinding.inflate(requireActivity().getLayoutInflater());
- final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext());
+ final var dialogBuilder = new MaterialAlertDialogBuilder(requireContext());
dialogBuilder.setTitle(getString(R.string.edit_tag, label.getTitle()));
dialogBuilder.setPositiveButton(R.string.simple_save, (dialog, which) -> {
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsDialogFragment.java
index 34abebf8e..53cbe09b9 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsDialogFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/managelabels/ManageLabelsDialogFragment.java
@@ -13,10 +13,11 @@ import androidx.annotation.AnyThread;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.UiThread;
-import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.ViewModelProvider;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
import java.util.Random;
import it.niedermann.nextcloud.deck.DeckLog;
@@ -62,7 +63,7 @@ public class ManageLabelsDialogFragment extends BrandedDialogFragment implements
super.onCreate(savedInstanceState);
viewModel = new ViewModelProvider(requireActivity()).get(MainViewModel.class);
- final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext());
+ final var dialogBuilder = new MaterialAlertDialogBuilder(requireContext());
binding = DialogBoardManageLabelsBinding.inflate(requireActivity().getLayoutInflater());
colors = getResources().getStringArray(R.array.board_default_colors);
adapter = new ManageLabelsAdapter(this, requireContext());
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDialogFragment.java
index 28d4da9ee..4b35351b4 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDialogFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedDialogFragment.java
@@ -1,19 +1,17 @@
package it.niedermann.nextcloud.deck.ui.branding;
-import android.content.Context;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
-import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor;
-
public abstract class BrandedDialogFragment extends DialogFragment implements Branded {
@Override
public void onStart() {
super.onStart();
- @Nullable Context context = getContext();
+ @Nullable final var context = getContext();
if (context != null) {
applyBrand(readBrandMainColor(context));
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSnackbar.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSnackbar.java
index 125c9dc23..adc4ea65f 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSnackbar.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedSnackbar.java
@@ -1,6 +1,9 @@
package it.niedermann.nextcloud.deck.ui.branding;
+import static it.niedermann.nextcloud.deck.DeckApplication.isDarkTheme;
+import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.getAttribute;
import static it.niedermann.nextcloud.deck.ui.branding.BrandingUtil.readBrandMainColor;
+import static it.niedermann.nextcloud.deck.util.DeckColorUtil.contrastRatioIsSufficient;
import android.graphics.Color;
import android.view.View;
@@ -12,16 +15,27 @@ import androidx.annotation.StringRes;
import com.google.android.material.snackbar.BaseTransientBottomBar;
import com.google.android.material.snackbar.Snackbar;
-import it.niedermann.android.util.ColorUtil;
+import it.niedermann.nextcloud.deck.R;
public class BrandedSnackbar {
@NonNull
- public static Snackbar make(
- @NonNull View view, @NonNull CharSequence text, @BaseTransientBottomBar.Duration int duration) {
+ public static Snackbar make(@NonNull View view, @NonNull CharSequence text, @BaseTransientBottomBar.Duration int duration) {
final var snackbar = Snackbar.make(view, text, duration);
+
+ @ColorInt final int backgroundColor = getAttribute(view.getContext(), R.attr.colorSurfaceInverse);
@ColorInt final int color = readBrandMainColor(view.getContext());
- snackbar.setActionTextColor(ColorUtil.INSTANCE.isColorDark(color) ? Color.WHITE : color);
+
+ if (contrastRatioIsSufficient(backgroundColor, color)) {
+ snackbar.setActionTextColor(color);
+ } else {
+ if (isDarkTheme(view.getContext())) {
+ snackbar.setActionTextColor(Color.BLACK);
+ } else {
+ snackbar.setActionTextColor(Color.WHITE);
+ }
+ }
+
return snackbar;
}
@@ -29,5 +43,4 @@ public class BrandedSnackbar {
public static Snackbar make(@NonNull View view, @StringRes int resId, @BaseTransientBottomBar.Duration int duration) {
return make(view, view.getResources().getText(resId), duration);
}
-
} \ No newline at end of file
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java
index fea7b31d2..3fd5c50e4 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandingUtil.java
@@ -7,8 +7,10 @@ import static it.niedermann.nextcloud.deck.util.DeckColorUtil.contrastRatioIsSuf
import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.Color;
+import android.util.TypedValue;
import android.view.MenuItem;
+import androidx.annotation.AttrRes;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
@@ -96,4 +98,11 @@ public abstract class BrandingUtil {
menuItem.setIcon(drawable);
}
}
+
+ @ColorInt
+ public static int getAttribute(@NonNull Context context, @AttrRes int id) {
+ final var typedValue = new TypedValue();
+ context.getTheme().resolveAttribute(id, typedValue, true);
+ return typedValue.data;
+ }
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/DeleteAlertDialogBuilder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/DeleteAlertDialogBuilder.java
index ea53f4461..e769797b4 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/DeleteAlertDialogBuilder.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/DeleteAlertDialogBuilder.java
@@ -7,9 +7,11 @@ import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
import it.niedermann.nextcloud.deck.R;
-public class DeleteAlertDialogBuilder extends AlertDialog.Builder {
+public class DeleteAlertDialogBuilder extends MaterialAlertDialogBuilder {
protected AlertDialog dialog;
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 433d87549..9fa8c3200 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
@@ -15,12 +15,12 @@ import android.view.MenuItem;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
-import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
import androidx.lifecycle.ViewModelProvider;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator;
@@ -134,7 +134,7 @@ public class EditActivity extends AppCompatActivity {
invalidateOptionsMenu();
observeOnce(viewModel.getFullCardWithProjectsByLocalId(account.getId(), cardLocalId), EditActivity.this, (fullCard) -> {
if (fullCard == null) {
- new AlertDialog.Builder(this)
+ new MaterialAlertDialogBuilder(this)
.setTitle(R.string.card_not_found)
.setMessage(R.string.card_not_found_message)
.setPositiveButton(R.string.simple_close, (a, b) -> super.finish())
@@ -198,7 +198,7 @@ public class EditActivity extends AppCompatActivity {
viewModel.getFullCard().getCard().setTitle(viewModel.getFullCard().getCard().getTitle().trim());
binding.title.setText(viewModel.getFullCard().getCard().getTitle());
if (viewModel.getFullCard().getCard().getTitle().isEmpty()) {
- new AlertDialog.Builder(this)
+ new MaterialAlertDialogBuilder(this)
.setTitle(R.string.title_is_mandatory)
.setMessage(R.string.provide_at_least_a_title_or_description)
.setPositiveButton(android.R.string.ok, null)
@@ -264,7 +264,7 @@ public class EditActivity extends AppCompatActivity {
@Override
public void finish() {
if (!viewModel.hasChanges() && viewModel.canEdit()) {
- new AlertDialog.Builder(this)
+ new MaterialAlertDialogBuilder(this)
.setTitle(R.string.simple_save)
.setMessage(R.string.do_you_want_to_save_your_changes)
.setPositiveButton(R.string.simple_save, (dialog, whichButton) -> saveAndFinish())
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 49daf2b32..e6aea3b9a 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
@@ -19,11 +19,12 @@ import android.widget.Toast;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModelProvider;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.api.IResponseCallback;
import it.niedermann.nextcloud.deck.databinding.DialogNewCardBinding;
@@ -80,7 +81,7 @@ public class NewCardDialog extends DialogFragment implements DialogInterface.OnC
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
binding = DialogNewCardBinding.inflate(requireActivity().getLayoutInflater());
- final var dialog = new AlertDialog.Builder(requireActivity())
+ final var dialog = new MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.add_card)
.setView(binding.getRoot())
.setPositiveButton(R.string.edit, null)
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/previewdialog/PreviewDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/previewdialog/PreviewDialog.java
index 52aa36128..113c28932 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/previewdialog/PreviewDialog.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/previewdialog/PreviewDialog.java
@@ -12,13 +12,13 @@ import android.text.TextUtils;
import android.view.LayoutInflater;
import androidx.annotation.NonNull;
-import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.ViewModelProvider;
import androidx.swiperefreshlayout.widget.CircularProgressDrawable;
import com.bumptech.glide.RequestBuilder;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.databinding.DialogPreviewBinding;
@@ -64,7 +64,7 @@ public class PreviewDialog extends DialogFragment {
}
});
- return new AlertDialog.Builder(requireContext())
+ return new MaterialAlertDialogBuilder(requireContext())
.setPositiveButton(R.string.simple_attach, (d, w) -> {
viewModel.setResult(true);
dismiss();
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsEditDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsEditDialogFragment.java
index b6f6df906..b26ee84c5 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsEditDialogFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/comments/CardCommentsEditDialogFragment.java
@@ -12,9 +12,10 @@ import android.view.WindowManager;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
import java.util.Objects;
import it.niedermann.nextcloud.deck.R;
@@ -50,7 +51,7 @@ public class CardCommentsEditDialogFragment extends BrandedDialogFragment {
public Dialog onCreateDialog(Bundle savedInstanceState) {
binding = DialogAddCommentBinding.inflate(requireActivity().getLayoutInflater());
- return new AlertDialog.Builder(requireActivity())
+ return new MaterialAlertDialogBuilder(requireActivity())
.setView(binding.getRoot())
.setTitle(R.string.simple_comment)
.setNeutralButton(android.R.string.cancel, null)
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java
index de9c3460c..398323429 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java
@@ -7,10 +7,11 @@ import android.view.LayoutInflater;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.ViewModelProvider;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -49,7 +50,7 @@ public class CardProjectResourcesDialog extends DialogFragment {
binding = DialogProjectResourcesBinding.inflate(LayoutInflater.from(requireContext()));
viewModel = new ViewModelProvider(requireActivity()).get(EditCardViewModel.class);
- return new AlertDialog.Builder(requireContext())
+ return new MaterialAlertDialogBuilder(requireContext())
.setTitle(projectName)
.setView(binding.getRoot())
.setNeutralButton(R.string.simple_close, null)
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionDialogFragment.java
index 987394b4b..58e104973 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionDialogFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/exception/ExceptionDialogFragment.java
@@ -7,10 +7,11 @@ import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatDialogFragment;
import androidx.fragment.app.DialogFragment;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
import it.niedermann.android.util.ClipboardUtil;
import it.niedermann.nextcloud.deck.BuildConfig;
import it.niedermann.nextcloud.deck.DeckLog;
@@ -61,7 +62,7 @@ public class ExceptionDialogFragment extends AppCompatDialogFragment {
adapter.setThrowable(requireContext(), account, throwable);
- return new AlertDialog.Builder(requireActivity())
+ return new MaterialAlertDialogBuilder(requireActivity())
.setView(binding.getRoot())
.setTitle(R.string.error_dialog_title)
.setPositiveButton(android.R.string.copy, (a, b) -> {
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 a06a1c8f4..50e3a05c3 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
@@ -9,7 +9,6 @@ import android.os.Bundle;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
-import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
@@ -17,6 +16,7 @@ import androidx.lifecycle.ViewModelProvider;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import androidx.viewpager2.widget.ViewPager2;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.tabs.TabLayoutMediator;
import it.niedermann.android.util.ColorUtil;
@@ -50,7 +50,7 @@ public class FilterDialogFragment extends BrandedDialogFragment {
filterViewModel = new ViewModelProvider(requireActivity()).get(FilterViewModel.class);
- final var dialogBuilder = new AlertDialog.Builder(context);
+ final var dialogBuilder = new MaterialAlertDialogBuilder(context);
binding = DialogFilterBinding.inflate(requireActivity().getLayoutInflater());
binding.viewPager.setAdapter(new TabsPagerAdapter(this));
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareProgressDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareProgressDialogFragment.java
index 26f37e88d..207db9006 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareProgressDialogFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareProgressDialogFragment.java
@@ -14,9 +14,10 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.appcompat.app.AlertDialog;
import androidx.lifecycle.ViewModelProvider;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
import it.niedermann.nextcloud.deck.BuildConfig;
import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.databinding.DialogShareProgressBinding;
@@ -41,7 +42,7 @@ public class ShareProgressDialogFragment extends BrandedDialogFragment {
public Dialog onCreateDialog(Bundle savedInstanceState) {
binding = DialogShareProgressBinding.inflate(requireActivity().getLayoutInflater());
- return new AlertDialog.Builder(requireContext())
+ return new MaterialAlertDialogBuilder(requireContext())
.setView(binding.getRoot())
.create();
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareTargetActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareTargetActivity.java
index f2b30fd1d..30e002c9c 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareTargetActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareTargetActivity.java
@@ -13,9 +13,9 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.appcompat.app.AlertDialog;
import androidx.lifecycle.ViewModelProvider;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.nextcloud.android.sso.exceptions.NextcloudHttpRequestFailedException;
import java.io.File;
@@ -65,7 +65,7 @@ public class ShareTargetActivity extends MainActivity implements SelectCardListe
mStreamsToUpload.addAll(listOfParcelables);
}
} else {
- new AlertDialog.Builder(this)
+ new MaterialAlertDialogBuilder(this)
.setTitle(R.string.error)
.setMessage(R.string.operation_not_yet_supported)
.setPositiveButton(R.string.simple_close, (a, b) -> finish())
@@ -149,7 +149,7 @@ public class ShareTargetActivity extends MainActivity implements SelectCardListe
private void appendTextAndFinish(@NonNull FullCard fullCard, @NonNull String receivedText) {
final String[] targets = {getString(R.string.append_text_to_description), getString(R.string.add_text_as_comment)};
- new AlertDialog.Builder(this)
+ new MaterialAlertDialogBuilder(this)
.setOnCancelListener(dialog -> cardSelected = false)
.setItems(targets, (dialog, which) -> {
switch (which) {
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/EditStackDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/EditStackDialogFragment.java
index 9357fc380..eb0ad1e26 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/EditStackDialogFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/EditStackDialogFragment.java
@@ -16,9 +16,10 @@ import android.view.inputmethod.EditorInfo;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
import java.util.Objects;
import it.niedermann.nextcloud.deck.R;
@@ -47,7 +48,7 @@ public class EditStackDialogFragment extends BrandedDialogFragment implements Di
public Dialog onCreateDialog(Bundle savedInstanceState) {
binding = DialogStackCreateBinding.inflate(requireActivity().getLayoutInflater());
- final var builder = new AlertDialog.Builder(requireActivity())
+ final var builder = new MaterialAlertDialogBuilder(requireActivity())
.setView(binding.getRoot())
.setNeutralButton(android.R.string.cancel, null);
diff --git a/app/src/main/res/drawable/bg_navdrawer_item.xml b/app/src/main/res/drawable/bg_navdrawer_item.xml
index 0cdc61323..0c60f8c76 100644
--- a/app/src/main/res/drawable/bg_navdrawer_item.xml
+++ b/app/src/main/res/drawable/bg_navdrawer_item.xml
@@ -1,37 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<ripple xmlns:android="http://schemas.android.com/apk/res/android"
- android:color="?colorControlHighlight">
-
- <item
- android:id="@android:id/mask"
- android:left="@dimen/spacer_1x"
- android:right="@dimen/spacer_1x">
-
- <shape android:shape="rectangle">
- <!-- value of color is irrelevant, but solid needs to be defined for mask to work -->
- <solid android:color="@color/bg_highlighted" />
- <corners android:radius="@dimen/spacer_1hx" />
- </shape>
- </item>
-
- <item
- android:left="@dimen/spacer_1x"
- android:right="@dimen/spacer_1x">
-
- <selector>
- <item android:state_checked="true">
- <shape android:shape="rectangle">
- <corners android:radius="@dimen/spacer_1hx" />
- <solid android:color="@color/bg_highlighted" />
- </shape>
- </item>
-
- <item>
- <shape android:shape="rectangle">
- <corners android:radius="@dimen/spacer_1hx" />
- </shape>
- </item>
- </selector>
- </item>
-
-</ripple> \ No newline at end of file
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:color="@color/bg_highlighted" android:state_checked="true" />
+ <item android:color="@android:color/transparent" />
+</selector> \ No newline at end of file
diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml
index 67c7a900c..decf08fcb 100644
--- a/app/src/main/res/layout/activity_about.xml
+++ b/app/src/main/res/layout/activity_about.xml
@@ -21,10 +21,7 @@
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- app:tabBackground="?attr/colorPrimary"
- app:tabIndicatorColor="@color/defaultBrand"
- app:tabMode="fixed"
- app:tabTextColor="?attr/colorAccent" />
+ app:tabMode="fixed" />
</com.google.android.material.appbar.AppBarLayout>
<androidx.viewpager2.widget.ViewPager2
diff --git a/app/src/main/res/layout/activity_attachments.xml b/app/src/main/res/layout/activity_attachments.xml
index a8ba17ff4..af6d472f4 100644
--- a/app/src/main/res/layout/activity_attachments.xml
+++ b/app/src/main/res/layout/activity_attachments.xml
@@ -9,7 +9,8 @@
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ android:background="@android:color/background_dark">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
diff --git a/app/src/main/res/layout/activity_edit.xml b/app/src/main/res/layout/activity_edit.xml
index 447cfefb8..0bb4cba59 100644
--- a/app/src/main/res/layout/activity_edit.xml
+++ b/app/src/main/res/layout/activity_edit.xml
@@ -33,13 +33,8 @@
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:theme="@style/ThemeOverlay.AppCompat.Dark"
- app:tabBackground="?attr/colorPrimary"
app:tabGravity="center"
- app:tabIconTint="?attr/colorAccent"
- app:tabIndicatorColor="@color/defaultBrand"
- app:tabMode="fixed"
- app:tabTextColor="?attr/colorAccent" />
+ app:tabMode="fixed" />
</com.google.android.material.appbar.AppBarLayout>
<androidx.viewpager2.widget.ViewPager2
diff --git a/app/src/main/res/layout/activity_exception.xml b/app/src/main/res/layout/activity_exception.xml
index 9d7420d1f..c851e8f82 100644
--- a/app/src/main/res/layout/activity_exception.xml
+++ b/app/src/main/res/layout/activity_exception.xml
@@ -49,8 +49,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
- android:paddingStart="@dimen/spacer_2x"
- android:paddingEnd="@dimen/spacer_2x"
+ android:paddingHorizontal="@dimen/spacer_2x"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:itemCount="2"
tools:listitem="@layout/item_tip" />
@@ -65,8 +64,7 @@
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
- android:layout_marginStart="@dimen/spacer_2x"
- android:layout_marginEnd="@dimen/spacer_2x"
+ android:layout_marginHorizontal="@dimen/spacer_2x"
android:layout_weight="1"
android:background="@color/bg_highlighted">
@@ -92,7 +90,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/close"
- style="@style/Widget.MaterialComponents.Button.TextButton"
+ style="@style/Widget.Material3.Button.TextButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/spacer_1x"
@@ -102,7 +100,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/copy"
- style="@style/Widget.MaterialComponents.Button"
+ style="@style/Widget.Material3.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/spacer_1x"
diff --git a/app/src/main/res/layout/activity_filter_widget.xml b/app/src/main/res/layout/activity_filter_widget.xml
index 679cef52b..cf125c65d 100644
--- a/app/src/main/res/layout/activity_filter_widget.xml
+++ b/app/src/main/res/layout/activity_filter_widget.xml
@@ -29,7 +29,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/cancel"
- style="@style/Widget.MaterialComponents.Button.TextButton"
+ style="@style/Widget.Material3.Button.TextButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/spacer_1x"
@@ -39,7 +39,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/submit"
- style="@style/Widget.MaterialComponents.Button"
+ style="@style/Widget.Material3.Button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/spacer_1x"
diff --git a/app/src/main/res/layout/activity_import_account.xml b/app/src/main/res/layout/activity_import_account.xml
index 92190953f..7575a3be2 100644
--- a/app/src/main/res/layout/activity_import_account.xml
+++ b/app/src/main/res/layout/activity_import_account.xml
@@ -38,15 +38,13 @@
<Button
android:id="@+id/add_button"
- style="@style/Widget.AppCompat.Button.Colored"
+ style="@style/Widget.Material3.Button.ElevatedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/welcome_text"
android:layout_centerHorizontal="true"
- android:paddingStart="32dp"
- android:paddingTop="24dp"
- android:paddingEnd="32dp"
- android:paddingBottom="24dp"
+ android:paddingHorizontal="32dp"
+ android:paddingVertical="24dp"
android:text="@string/choose_account"
app:backgroundTint="@color/defaultBrand" />
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 30e65d144..384cd007f 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -5,7 +5,6 @@
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@color/bg_card_wrapper"
android:fitsSystemWindows="true">
<androidx.coordinatorlayout.widget.CoordinatorLayout
@@ -41,8 +40,7 @@
android:layout_height="wrap_content"
android:drawablePadding="@dimen/spacer_1hx"
android:gravity="center"
- android:paddingStart="@dimen/spacer_1hx"
- android:paddingEnd="@dimen/spacer_1hx"
+ android:paddingHorizontal="@dimen/spacer_1hx"
android:text="@string/info_box_maintenance_mode"
android:textColor="@color/grey600"
app:drawableStartCompat="@drawable/ic_info_outline_grey600_24dp" />
@@ -56,10 +54,8 @@
android:background="@color/danger"
android:drawablePadding="@dimen/spacer_1hx"
android:gravity="center"
- android:paddingStart="@dimen/spacer_2x"
- android:paddingTop="@dimen/spacer_1x"
- android:paddingEnd="@dimen/spacer_2x"
- android:paddingBottom="@dimen/spacer_1x"
+ android:paddingHorizontal="@dimen/spacer_2x"
+ android:paddingVertical="@dimen/spacer_1x"
android:text="@string/info_box_version_not_supported"
android:textColor="@android:color/white"
android:textSize="14sp"
@@ -93,15 +89,15 @@
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ android:background="?attr/colorPrimary">
<com.google.android.material.card.MaterialCardView
android:id="@+id/toolbarCard"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
- android:layout_marginStart="@dimen/spacer_2x"
+ android:layout_marginHorizontal="@dimen/spacer_2x"
android:layout_marginTop="@dimen/spacer_1x"
- android:layout_marginEnd="@dimen/spacer_2x"
app:cardCornerRadius="@dimen/spacer_4x"
app:cardElevation="0dp"
app:strokeWidth="0dp">
@@ -151,8 +147,7 @@
android:layout_gravity="center_vertical|end"
android:background="@null"
android:contentDescription="@string/simple_search"
- android:paddingStart="@dimen/spacer_1hx"
- android:paddingEnd="@dimen/spacer_1hx"
+ android:paddingHorizontal="@dimen/spacer_1hx"
android:tooltipText="@string/simple_search"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/filterWrapper"
@@ -176,10 +171,8 @@
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/simple_filter"
- android:paddingStart="@dimen/spacer_1x"
- android:paddingTop="12dp"
- android:paddingEnd="@dimen/spacer_1x"
- android:paddingBottom="12dp"
+ android:paddingHorizontal="@dimen/spacer_1x"
+ android:paddingVertical="12dp"
android:tooltipText="@string/simple_filter"
app:srcCompat="@drawable/ic_filter_list_white_24dp"
app:tint="?attr/colorAccent"
@@ -228,11 +221,8 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
- app:tabBackground="?attr/colorPrimary"
app:tabGravity="center"
- app:tabIndicatorColor="@color/defaultBrand"
- app:tabMode="fixed"
- app:tabTextColor="?attr/colorAccent" />
+ app:tabMode="fixed" />
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/list_menu_button"
@@ -270,7 +260,8 @@
android:fitsSystemWindows="false"
android:theme="@style/NavigationView"
app:headerLayout="@layout/nav_header_main"
- app:itemBackground="@drawable/bg_navdrawer_item"
+ app:itemRippleColor="?attr/colorControlHighlight"
+ app:itemShapeFillColor="@drawable/bg_navdrawer_item"
app:itemTextColor="?attr/colorOnSurface" />
</androidx.drawerlayout.widget.DrawerLayout>
diff --git a/app/src/main/res/layout/activity_pick_stack.xml b/app/src/main/res/layout/activity_pick_stack.xml
index 79cefb0f8..9251cb474 100644
--- a/app/src/main/res/layout/activity_pick_stack.xml
+++ b/app/src/main/res/layout/activity_pick_stack.xml
@@ -24,7 +24,7 @@
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/inputWrapper"
- style="@style/TextInputLayoutStyle"
+ style="@style/textInputLayoutStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/title_mandatory"
@@ -84,7 +84,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/cancel"
- style="@style/Widget.MaterialComponents.Button.TextButton"
+ style="@style/Widget.Material3.Button.TextButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/spacer_1x"
@@ -94,7 +94,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/submit"
- style="@style/Widget.MaterialComponents.Button"
+ style="@style/Widget.Material3.Button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/spacer_1x"
diff --git a/app/src/main/res/layout/activity_push_notification.xml b/app/src/main/res/layout/activity_push_notification.xml
index 6bda0323a..d50553892 100644
--- a/app/src/main/res/layout/activity_push_notification.xml
+++ b/app/src/main/res/layout/activity_push_notification.xml
@@ -75,7 +75,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/submit"
- style="@style/Widget.MaterialComponents.Button"
+ style="@style/Widget.Material3.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacer_2x"
@@ -105,7 +105,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/showError"
- style="@style/Widget.MaterialComponents.Button"
+ style="@style/Widget.Material3.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacer_2x"
diff --git a/app/src/main/res/layout/activity_take_photo.xml b/app/src/main/res/layout/activity_take_photo.xml
index 652f58a98..bdfc8a076 100644
--- a/app/src/main/res/layout/activity_take_photo.xml
+++ b/app/src/main/res/layout/activity_take_photo.xml
@@ -24,12 +24,12 @@
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/switchCamera"
+ style="?attr/floatingActionButtonSmallSecondaryStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/take_photo_switch_camera"
android:tint="@android:color/white"
app:backgroundTint="@color/defaultBrand"
- app:fabSize="mini"
app:layout_constraintBottom_toBottomOf="@id/takePhoto"
app:layout_constraintEnd_toStartOf="@id/takePhoto"
app:layout_constraintStart_toStartOf="parent"
@@ -50,12 +50,12 @@
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/toggle_torch"
+ style="?attr/floatingActionButtonSmallSecondaryStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/take_photo_toggle_torch"
android:tint="@android:color/white"
app:backgroundTint="@color/defaultBrand"
- app:fabSize="mini"
app:layout_constraintBottom_toBottomOf="@id/takePhoto"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/takePhoto"
diff --git a/app/src/main/res/layout/activity_upcoming_cards.xml b/app/src/main/res/layout/activity_upcoming_cards.xml
index d37f0c71e..4e3f36736 100644
--- a/app/src/main/res/layout/activity_upcoming_cards.xml
+++ b/app/src/main/res/layout/activity_upcoming_cards.xml
@@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@color/bg_card_wrapper"
+ android:background="?attr/colorPrimary"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
diff --git a/app/src/main/res/layout/dialog_account_switcher.xml b/app/src/main/res/layout/dialog_account_switcher.xml
index 4de7c1d7e..9ca6cba5d 100644
--- a/app/src/main/res/layout/dialog_account_switcher.xml
+++ b/app/src/main/res/layout/dialog_account_switcher.xml
@@ -28,8 +28,7 @@
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginStart="@dimen/spacer_2x"
- android:layout_marginEnd="@dimen/spacer_2x"
+ android:layout_marginHorizontal="@dimen/spacer_2x"
android:layout_weight="1"
android:orientation="vertical">
diff --git a/app/src/main/res/layout/dialog_add_comment.xml b/app/src/main/res/layout/dialog_add_comment.xml
index 8d84816a0..efad8a9b4 100644
--- a/app/src/main/res/layout/dialog_add_comment.xml
+++ b/app/src/main/res/layout/dialog_add_comment.xml
@@ -1,7 +1,7 @@
<?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"
+ 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 2d3afa3ab..370aedd8b 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,7 @@
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/addLabelTitleWrapper"
- style="@style/TextInputLayoutStyle"
+ style="@style/textInputLayoutStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/spacer_1x"
@@ -34,13 +34,12 @@
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
+ style="?attr/floatingActionButtonSmallSecondaryStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:contentDescription="@string/add_comment"
- android:translationY="@dimen/spacer_1qx"
app:backgroundTint="@color/defaultBrand"
- app:fabSize="mini"
app:srcCompat="@drawable/ic_send_white_24dp" />
</LinearLayout>
diff --git a/app/src/main/res/layout/dialog_board_share.xml b/app/src/main/res/layout/dialog_board_share.xml
index c4b5014e7..39ff55f4f 100644
--- a/app/src/main/res/layout/dialog_board_share.xml
+++ b/app/src/main/res/layout/dialog_board_share.xml
@@ -9,7 +9,7 @@
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/peopleWrapper"
- style="@style/TextInputLayoutStyle"
+ style="@style/textInputLayoutStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_assign_people"
@@ -17,7 +17,7 @@
<it.niedermann.nextcloud.deck.ui.view.ToggleAutoCompleteTextView
android:id="@+id/people"
- style="@style/Widget.MaterialComponents.AutoCompleteTextView.OutlinedBox.Dense"
+ style="@style/Widget.Material3.AutoCompleteTextView.OutlinedBox.Dense"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/spacer_2x"
diff --git a/app/src/main/res/layout/dialog_filter.xml b/app/src/main/res/layout/dialog_filter.xml
index 8741e7e36..b95c2b0c8 100644
--- a/app/src/main/res/layout/dialog_filter.xml
+++ b/app/src/main/res/layout/dialog_filter.xml
@@ -9,10 +9,9 @@
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- app:tabIndicatorColor="@color/defaultBrand"
+ android:background="@null"
app:tabInlineLabel="true"
app:tabMode="fixed"
- app:tabTextColor="?attr/colorAccent"
app:tabUnboundedRipple="true" />
<androidx.viewpager2.widget.ViewPager2
diff --git a/app/src/main/res/layout/dialog_move_card.xml b/app/src/main/res/layout/dialog_move_card.xml
index c00dcfbf4..7f37f8130 100644
--- a/app/src/main/res/layout/dialog_move_card.xml
+++ b/app/src/main/res/layout/dialog_move_card.xml
@@ -15,8 +15,7 @@
style="@style/TextAppearance.AppCompat.Title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="@dimen/spacer_1x"
- android:layout_marginEnd="@dimen/spacer_1x"
+ android:layout_marginHorizontal="@dimen/spacer_1x"
android:ellipsize="end"
android:maxLines="5"
tools:text="@string/action_card_move_title" />
diff --git a/app/src/main/res/layout/dialog_new_card.xml b/app/src/main/res/layout/dialog_new_card.xml
index bf7488de2..611715d3b 100644
--- a/app/src/main/res/layout/dialog_new_card.xml
+++ b/app/src/main/res/layout/dialog_new_card.xml
@@ -6,7 +6,7 @@
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/inputWrapper"
- style="@style/TextInputLayoutStyle"
+ 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_preview.xml b/app/src/main/res/layout/dialog_preview.xml
index 5ab35d63e..2765a659f 100644
--- a/app/src/main/res/layout/dialog_preview.xml
+++ b/app/src/main/res/layout/dialog_preview.xml
@@ -18,6 +18,6 @@
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:textAppearance="?attr/textAppearanceHeadline1"
+ android:textAppearance="?attr/textAppearanceHeadlineLarge"
tools:text="@tools:sample/full_names" />
</LinearLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_share_progress.xml b/app/src/main/res/layout/dialog_share_progress.xml
index d7638e264..a87acf617 100644
--- a/app/src/main/res/layout/dialog_share_progress.xml
+++ b/app/src/main/res/layout/dialog_share_progress.xml
@@ -5,8 +5,7 @@
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="@dimen/spacer_3x"
- android:paddingStart="@dimen/spacer_2x"
- android:paddingEnd="@dimen/spacer_2x">
+ android:paddingHorizontal="@dimen/spacer_2x">
<ProgressBar
android:id="@+id/progress"
@@ -43,7 +42,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/errorReportButton"
- style="@style/Widget.MaterialComponents.Button.TextButton"
+ style="@style/Widget.Material3.Button.TextButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="end"
diff --git a/app/src/main/res/layout/dialog_stack_create.xml b/app/src/main/res/layout/dialog_stack_create.xml
index 8c14e4177..9da27f8fc 100644
--- a/app/src/main/res/layout/dialog_stack_create.xml
+++ b/app/src/main/res/layout/dialog_stack_create.xml
@@ -1,7 +1,7 @@
<?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"
+ 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 b7f482b4c..df6a29834 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,7 @@
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/inputWrapper"
- style="@style/TextInputLayoutStyle"
+ 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_about_credits_tab.xml b/app/src/main/res/layout/fragment_about_credits_tab.xml
index 5c6d11b54..fc026e5e1 100644
--- a/app/src/main/res/layout/fragment_about_credits_tab.xml
+++ b/app/src/main/res/layout/fragment_about_credits_tab.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -14,13 +15,12 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
- android:layout_marginTop="30dp"
- android:layout_marginBottom="30dp"
- android:drawableTop="@mipmap/ic_launcher"
+ android:layout_marginVertical="30dp"
android:drawablePadding="@dimen/spacer_2x"
android:text="@string/app_name"
android:textAppearance="?android:attr/textAppearanceMedium"
- android:textSize="26sp" />
+ android:textSize="26sp"
+ app:drawableTopCompat="@mipmap/ic_launcher" />
<LinearLayout
android:layout_width="match_parent"
diff --git a/app/src/main/res/layout/fragment_about_license_tab.xml b/app/src/main/res/layout/fragment_about_license_tab.xml
index e6730390b..b249cffe5 100644
--- a/app/src/main/res/layout/fragment_about_license_tab.xml
+++ b/app/src/main/res/layout/fragment_about_license_tab.xml
@@ -24,7 +24,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/about_app_license_button"
- style="@style/Widget.MaterialComponents.Button"
+ style="@style/Widget.Material3.Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/about_app_license_button"
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 a6cd4d2ec..62d845b7f 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
@@ -10,8 +10,8 @@
android:id="@+id/comments"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:scrollbars="vertical"
android:layout_above="@id/addCommentLayout"
+ android:scrollbars="vertical"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:reverseLayout="true"
tools:listitem="@layout/item_comment" />
@@ -44,8 +44,7 @@
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="@dimen/spacer_1x"
- android:layout_marginEnd="@dimen/spacer_1x"
+ android:layout_marginHorizontal="@dimen/spacer_1x"
android:contentDescription="@string/simple_reply"
android:padding="@dimen/spacer_1x"
app:srcCompat="@drawable/ic_reply_grey600_24dp" />
@@ -79,18 +78,15 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
- android:paddingStart="@dimen/spacer_2x"
- android:paddingTop="@dimen/spacer_1x"
- android:paddingEnd="@dimen/spacer_2x"
- android:paddingBottom="@dimen/spacer_1x"
+ android:paddingHorizontal="@dimen/spacer_2x"
+ android:paddingVertical="@dimen/spacer_1x"
android:visibility="gone"
tools:visibility="visible">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="@dimen/spacer_1x"
- android:layout_marginEnd="@dimen/spacer_1x"
+ android:layout_marginHorizontal="@dimen/spacer_1x"
android:contentDescription="@string/simple_reply"
android:padding="@dimen/spacer_1x"
app:srcCompat="@drawable/ic_baseline_mention_24" />
@@ -99,8 +95,7 @@
android:id="@+id/mention_proposer"
android:layout_width="match_parent"
android:layout_height="@dimen/avatar_size_small"
- android:layout_marginStart="@dimen/spacer_1x"
- android:layout_marginEnd="@dimen/spacer_1x"
+ android:layout_marginHorizontal="@dimen/spacer_1x"
android:gravity="center_vertical"
android:orientation="horizontal" />
</LinearLayout>
@@ -110,10 +105,8 @@
android:layout_height="wrap_content"
android:clipToPadding="false"
android:orientation="horizontal"
- android:paddingStart="@dimen/spacer_2x"
- android:paddingTop="@dimen/spacer_1x"
- android:paddingEnd="@dimen/spacer_2x"
- android:paddingBottom="@dimen/spacer_1x">
+ android:paddingHorizontal="@dimen/spacer_2x"
+ android:paddingVertical="@dimen/spacer_1x">
<ImageView
android:id="@+id/avatar"
@@ -128,7 +121,7 @@
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/messageWrapper"
- style="@style/TextInputLayoutStyle"
+ style="@style/textInputLayoutStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
@@ -153,13 +146,13 @@
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
+ style="?attr/floatingActionButtonSmallSecondaryStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:contentDescription="@string/add_comment"
android:translationY="@dimen/spacer_1qx"
app:backgroundTint="@color/defaultBrand"
- app:fabSize="mini"
app:srcCompat="@drawable/ic_send_white_24dp" />
</LinearLayout>
</LinearLayout>
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 66b58dbd9..347e990b8 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
@@ -19,7 +19,7 @@
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/labelsWrapper"
- style="@style/TextInputLayoutStyle"
+ style="@style/textInputLayoutStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacer_2x"
@@ -28,7 +28,7 @@
<it.niedermann.nextcloud.deck.ui.view.ToggleAutoCompleteTextView
android:id="@+id/labels"
- style="@style/Widget.MaterialComponents.AutoCompleteTextView.OutlinedBox.Dense"
+ style="@style/Widget.Material3.AutoCompleteTextView.OutlinedBox.Dense"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionThreshold="1"
@@ -49,7 +49,7 @@
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/dueDateDateWrapper"
- style="@style/TextInputLayoutStyle"
+ style="@style/textInputLayoutStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
@@ -73,7 +73,7 @@
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/dueDateTimeWrapper"
- style="@style/TextInputLayoutStyle"
+ style="@style/textInputLayoutStyle"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
@@ -111,7 +111,7 @@
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/peopleWrapper"
- style="@style/TextInputLayoutStyle"
+ style="@style/textInputLayoutStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacer_2x"
@@ -120,7 +120,7 @@
<it.niedermann.nextcloud.deck.ui.view.ToggleAutoCompleteTextView
android:id="@+id/people"
- style="@style/Widget.MaterialComponents.AutoCompleteTextView.OutlinedBox.Dense"
+ style="@style/Widget.Material3.AutoCompleteTextView.OutlinedBox.Dense"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionThreshold="1"
@@ -141,7 +141,7 @@
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/descriptionEditorWrapper"
- style="@style/TextInputLayoutStyle"
+ style="@style/textInputLayoutStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacer_1x"
diff --git a/app/src/main/res/layout/fragment_stack.xml b/app/src/main/res/layout/fragment_stack.xml
index f8908c2a9..729b08fe6 100644
--- a/app/src/main/res/layout/fragment_stack.xml
+++ b/app/src/main/res/layout/fragment_stack.xml
@@ -26,8 +26,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
- android:paddingTop="@dimen/spacer_1x"
- android:paddingBottom="@dimen/spacer_1x"
+ android:paddingVertical="@dimen/spacer_1x"
android:scrollbarStyle="outsideOverlay"
android:scrollbars="vertical"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
diff --git a/app/src/main/res/layout/item_access_control.xml b/app/src/main/res/layout/item_access_control.xml
index e245969a8..1edd8c21a 100644
--- a/app/src/main/res/layout/item_access_control.xml
+++ b/app/src/main/res/layout/item_access_control.xml
@@ -5,8 +5,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
- android:paddingTop="@dimen/spacer_2x"
- android:paddingBottom="@dimen/spacer_2x">
+ android:paddingVertical="@dimen/spacer_2x">
<ImageView
android:id="@+id/avatar"
diff --git a/app/src/main/res/layout/item_account_choose.xml b/app/src/main/res/layout/item_account_choose.xml
index d939c8d71..c2d7ed0fb 100644
--- a/app/src/main/res/layout/item_account_choose.xml
+++ b/app/src/main/res/layout/item_account_choose.xml
@@ -37,8 +37,7 @@
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginStart="@dimen/spacer_2x"
- android:layout_marginEnd="@dimen/spacer_2x"
+ android:layout_marginHorizontal="@dimen/spacer_2x"
android:layout_weight="1"
android:orientation="vertical">
diff --git a/app/src/main/res/layout/item_card_compact.xml b/app/src/main/res/layout/item_card_compact.xml
index 2a8343690..2886a675e 100644
--- a/app/src/main/res/layout/item_card_compact.xml
+++ b/app/src/main/res/layout/item_card_compact.xml
@@ -5,13 +5,8 @@
android:id="@+id/card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="@dimen/spacer_2x"
- android:layout_marginTop="@dimen/spacer_1x"
- android:layout_marginEnd="@dimen/spacer_2x"
- android:layout_marginBottom="@dimen/spacer_1x"
- android:focusable="true"
- app:cardBackgroundColor="@color/bg_card"
- app:cardElevation="@dimen/spacer_1qx">
+ android:layout_marginHorizontal="@dimen/spacer_2x"
+ android:layout_marginVertical="@dimen/spacer_1x">
<LinearLayout
android:layout_width="match_parent"
diff --git a/app/src/main/res/layout/item_card_default.xml b/app/src/main/res/layout/item_card_default.xml
index 1b582c4e0..b472bd12c 100644
--- a/app/src/main/res/layout/item_card_default.xml
+++ b/app/src/main/res/layout/item_card_default.xml
@@ -5,13 +5,8 @@
android:id="@+id/card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="@dimen/spacer_2x"
- android:layout_marginTop="@dimen/spacer_1x"
- android:layout_marginEnd="@dimen/spacer_2x"
- android:layout_marginBottom="@dimen/spacer_1x"
- android:focusable="true"
- app:cardBackgroundColor="@color/bg_card"
- app:cardElevation="@dimen/spacer_1qx">
+ android:layout_marginHorizontal="@dimen/spacer_2x"
+ android:layout_marginVertical="@dimen/spacer_1x">
<LinearLayout
android:layout_width="match_parent"
diff --git a/app/src/main/res/layout/item_card_default_only_title.xml b/app/src/main/res/layout/item_card_default_only_title.xml
index 34df3439c..f16d096bc 100644
--- a/app/src/main/res/layout/item_card_default_only_title.xml
+++ b/app/src/main/res/layout/item_card_default_only_title.xml
@@ -5,14 +5,9 @@
android:id="@+id/card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="@dimen/spacer_2x"
- android:layout_marginTop="@dimen/spacer_1x"
- android:layout_marginEnd="@dimen/spacer_2x"
- android:layout_marginBottom="@dimen/spacer_1x"
- android:focusable="true"
- app:cardElevation="@dimen/spacer_1qx"
- app:cardBackgroundColor="@color/bg_card">
-
+ android:layout_marginHorizontal="@dimen/spacer_2x"
+ android:layout_marginVertical="@dimen/spacer_1x">
+
<LinearLayout
android:id="@+id/coverImages"
android:layout_width="match_parent"
diff --git a/app/src/main/res/layout/item_filter_label.xml b/app/src/main/res/layout/item_filter_label.xml
index 133724140..8592e3275 100644
--- a/app/src/main/res/layout/item_filter_label.xml
+++ b/app/src/main/res/layout/item_filter_label.xml
@@ -18,9 +18,9 @@
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_marginStart="@dimen/spacer_1x"
- app:srcCompat="@drawable/selected"
app:layout_alignSelf="center"
app:layout_flexShrink="0"
+ app:srcCompat="@drawable/selected"
tools:src="@drawable/ic_check_grey600_24dp" />
</com.google.android.flexbox.FlexboxLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/item_filter_user.xml b/app/src/main/res/layout/item_filter_user.xml
index 0aced6dc2..2f801d0a5 100644
--- a/app/src/main/res/layout/item_filter_user.xml
+++ b/app/src/main/res/layout/item_filter_user.xml
@@ -6,8 +6,7 @@
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:orientation="horizontal"
- android:paddingTop="@dimen/spacer_1x"
- android:paddingBottom="@dimen/spacer_1x">
+ android:paddingVertical="@dimen/spacer_1x">
<FrameLayout
android:layout_width="wrap_content"
diff --git a/app/src/main/res/layout/item_manage_label.xml b/app/src/main/res/layout/item_manage_label.xml
index 7bc7a7194..c95614e83 100644
--- a/app/src/main/res/layout/item_manage_label.xml
+++ b/app/src/main/res/layout/item_manage_label.xml
@@ -17,10 +17,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
- android:layout_marginStart="@dimen/spacer_1hx"
- android:layout_marginTop="@dimen/spacer_1x"
- android:layout_marginEnd="@dimen/spacer_1hx"
- android:layout_marginBottom="@dimen/spacer_1x"
+ android:layout_marginHorizontal="@dimen/spacer_1hx"
+ android:layout_marginVertical="@dimen/spacer_1x"
android:ellipsize="middle"
app:ensureMinTouchTargetSize="false"
tools:text="@tools:sample/cities" />
diff --git a/app/src/main/res/layout/item_tip.xml b/app/src/main/res/layout/item_tip.xml
index fc2d3587a..fadb62e6b 100644
--- a/app/src/main/res/layout/item_tip.xml
+++ b/app/src/main/res/layout/item_tip.xml
@@ -21,7 +21,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/action_button"
- style="@style/Widget.MaterialComponents.Button.OutlinedButton"
+ style="@style/Widget.Material3.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="40dp"
diff --git a/app/src/main/res/layout/widget_empty_content_view.xml b/app/src/main/res/layout/widget_empty_content_view.xml
index 474ffaec0..9fbac7470 100644
--- a/app/src/main/res/layout/widget_empty_content_view.xml
+++ b/app/src/main/res/layout/widget_empty_content_view.xml
@@ -22,8 +22,7 @@
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:gravity="center"
- android:paddingTop="16dp"
- android:paddingBottom="16dp"
+ android:paddingVertical="@dimen/spacer_2x"
android:textAlignment="center"
android:textSize="@dimen/empty_content_font_size"
hint:text="@string/no_cards" />
@@ -34,8 +33,7 @@
android:layout_height="wrap_content"
android:layout_below="@id/title"
android:layout_centerHorizontal="true"
- android:paddingStart="@dimen/spacer_2x"
- android:paddingEnd="@dimen/spacer_2x"
+ android:paddingHorizontal="@dimen/spacer_2x"
android:textAlignment="center"
hint:text="@string/add_a_new_card_using_the_button" />
</RelativeLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/widget_separator.xml b/app/src/main/res/layout/widget_separator.xml
index 294e97867..c1159ef45 100644
--- a/app/src/main/res/layout/widget_separator.xml
+++ b/app/src/main/res/layout/widget_separator.xml
@@ -6,8 +6,7 @@
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:orientation="horizontal"
- android:paddingStart="@dimen/widget_stack_card_padding"
- android:paddingEnd="@dimen/widget_stack_card_padding">
+ android:paddingHorizontal="@dimen/widget_stack_card_padding">
<TextView
android:id="@+id/widget_entry_content_tv"
@@ -15,9 +14,8 @@
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_weight="1"
- android:paddingStart="@dimen/spacer_1hx"
+ android:paddingHorizontal="@dimen/spacer_1hx"
android:paddingTop="@dimen/spacer_2x"
- android:paddingEnd="@dimen/spacer_1hx"
android:textAppearance="?attr/textAppearanceListItem"
android:textColor="@color/widget_foreground"
android:textSize="16sp"
diff --git a/app/src/main/res/layout/widget_single_card.xml b/app/src/main/res/layout/widget_single_card.xml
index 287841c46..5646b98f1 100644
--- a/app/src/main/res/layout/widget_single_card.xml
+++ b/app/src/main/res/layout/widget_single_card.xml
@@ -64,8 +64,7 @@
android:id="@+id/description_lv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/spacer_1hx"
- android:layout_marginBottom="@dimen/spacer_1hx"
+ android:layout_marginVertical="@dimen/spacer_1hx"
android:divider="@null"
tools:listitem="@layout/widget_single_card_content" />
</FrameLayout>
diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml
index 664b26835..67e39d1b0 100644
--- a/app/src/main/res/values-night/colors.xml
+++ b/app/src/main/res/values-night/colors.xml
@@ -3,7 +3,7 @@
<color name="primary">@android:color/black</color>
<color name="accent">@android:color/white</color>
<color name="fg_secondary">#666</color>
- <color name="bg_highlighted">#2a2a2a</color>
+ <color name="bg_highlighted">#212121</color>
<color name="bg_info_box">#222222</color>
<color name="bg_card">#1e1e1e</color>
<color name="bg_card_wrapper">@color/primary</color>
diff --git a/app/src/main/res/values-v31/dimens.xml b/app/src/main/res/values-v31/dimens.xml
index a454cb9b8..202485a44 100644
--- a/app/src/main/res/values-v31/dimens.xml
+++ b/app/src/main/res/values-v31/dimens.xml
@@ -7,7 +7,7 @@
<dimen name="spacer_4x">32dp</dimen>
<dimen name="compact_label_height">6dp</dimen>
- <dimen name="attachments_bottom_navigation_height">64dp</dimen>
+ <dimen name="attachments_bottom_navigation_height">80dp</dimen>
<dimen name="font_size_description">18sp</dimen>
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index 65db48fc3..6ea4d8de3 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -7,7 +7,7 @@
<dimen name="spacer_4x">32dp</dimen>
<dimen name="compact_label_height">6dp</dimen>
- <dimen name="attachments_bottom_navigation_height">64dp</dimen>
+ <dimen name="attachments_bottom_navigation_height">80dp</dimen>
<dimen name="font_size_description">18sp</dimen>
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index b256ed8bd..377055dfd 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,40 +1,89 @@
<resources>
- <style name="BaseTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar.Bridge">
+ <style name="BaseTheme" parent="Theme.Material3.DayNight.NoActionBar">
<item name="colorPrimary">@color/primary</item>
- <item name="colorPrimaryDark">@color/primary</item>
+ <item name="colorPrimaryDark">?android:colorPrimary</item>
<item name="colorAccent">@color/accent</item>
- <item name="toolbarStyle">@style/toolbarStyle</item>
+
<item name="android:windowBackground">?attr/colorPrimary</item>
- <item name="textAppearanceHeadline1">@style/Deck.TextAppearance.Headline1</item>
- <item name="bottomSheetDialogTheme">@style/AppBottomSheetDialogTheme</item>
+ <item name="android:statusBarColor">?attr/colorPrimary</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:windowLightStatusBar">@bool/isDayMode</item>
- <item name="android:statusBarColor">?attr/colorPrimary</item>
+ <item name="android:textColorLink">?android:colorAccent</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>
+ <item name="chipStyle">@style/chipStyle</item>
+ <item name="tabStyle">@style/tabStyle</item>
+ <item name="materialCardViewStyle">@style/materialCardViewStyle</item>
+
+ <item name="textAppearanceHeadlineLarge">@style/textAppearanceHeadlineLarge</item>
</style>
- <style name="AppBottomSheetDialogTheme" parent="Theme.MaterialComponents.DayNight.BottomSheetDialog">
- <item name="bottomSheetStyle">@style/AppModalStyle</item>
- <item name="android:windowIsFloating">false</item>
+ <style name="MaterialAlertDialogTheme" parent="ThemeOverlay.Material3.MaterialAlertDialog">
+ <item name="buttonBarPositiveButtonStyle">@style/buttonStyle</item>
+ <item name="buttonBarNegativeButtonStyle">@style/buttonStyle</item>
+ <item name="buttonBarNeutralButtonStyle">@style/buttonStyle</item>
+ </style>
+
+ <style name="buttonStyle" parent="Widget.Material3.Button.TextButton.Dialog">
+ <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>
- <style name="AppModalStyle" parent="Widget.Design.BottomSheet.Modal">
+ <style name="chipStyle" parent="Widget.Material3.Chip.Assist">
+ <item name="chipStrokeWidth">0dp</item>
+ <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.AppCompat.Toolbar">
+ <style name="toolbarStyle" parent="@style/Widget.Material3.Toolbar">
<item name="android:background">?attr/colorPrimary</item>
</style>
- <style name="TextInputLayoutStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense">
+ <style name="tabStyle" parent="Widget.Material3.TabLayout">
+ <item name="backgroundColor">@android:color/transparent</item>
+ <item name="itemBackground">@android:color/transparent</item>
+ <item name="tabIndicatorColor">@color/defaultBrand</item>
+ <item name="tabTextColor">?attr/colorAccent</item>
+ <item name="tabIconTint">?attr/colorAccent</item>
+ </style>
+
+ <style name="materialCardViewStyle" parent="Widget.Material3.CardView.Elevated">
+ <item name="strokeWidth">1dp</item>
+ <item name="strokeColor">@color/bg_highlighted</item>
+ <item name="android:focusable">true</item>
+ <item name="cardElevation">2dp</item>
+ <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>
- <!-- Default is a light theme with the dark blue brand -->
+ <style name="textAppearanceHeadlineLarge" parent="TextAppearance.Material3.HeadlineLarge">
+ <item name="android:textSize">36sp</item>
+ </style>
+
<style name="AppTheme" parent="BaseTheme" />
<style name="SplashTheme" parent="Theme.SplashScreen">
@@ -50,19 +99,16 @@
<item name="android:colorControlHighlight">@android:color/transparent</item>
</style>
- <style name="TransparentTheme" parent="Theme.AppCompat.NoActionBar">
+ <style name="TransparentTheme" parent="Theme.Material3.Dark.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/background_dark</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
+ <item name="android:statusBarColor">@android:color/background_dark</item>
</style>
<style name="TakePhotoTheme" parent="TransparentTheme">
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
-
- <style name="Deck.TextAppearance.Headline1" parent="TextAppearance.MaterialComponents.Headline1">
- <item name="android:textSize">36sp</item>
- </style>
</resources>
diff --git a/build.gradle b/build.gradle
index 2df2a674e..17c508e61 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
- ext.materialVersion = "1.6.1"
+ ext.materialVersion = "1.7.0"
repositories {
google()
mavenCentral()
diff --git a/fastlane/metadata/android/en-US/changelogs/1021000.txt b/fastlane/metadata/android/en-US/changelogs/1021000.txt
index 4e03e4176..26d05c41b 100644
--- a/fastlane/metadata/android/en-US/changelogs/1021000.txt
+++ b/fastlane/metadata/android/en-US/changelogs/1021000.txt
@@ -1,2 +1,4 @@
+- ✨ Material 3 Theme (#1330)
- 🐞 Create new list: Dialog does not close (#1361)
- 🐞 NullPointerException on CoordinatorLayout (#1356)
+- 🌎 Updated translations \ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png
index ac34ef516..e5e492c66 100644
--- a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png
+++ b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png
Binary files differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png
index e40b8bc4d..9e13cd0d9 100644
--- a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png
+++ b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png
Binary files differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png
index e9ae198f4..99f91ccba 100644
--- a/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png
+++ b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png
Binary files differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png
index 8f3af31e8..93cab575e 100644
--- a/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png
+++ b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png
Binary files differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png
index 71cb3a322..100e6e2b4 100644
--- a/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png
+++ b/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png
Binary files differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png
index a53d9cc11..fe6458280 100644
--- a/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png
+++ b/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png
Binary files differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/7.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/7.png
index 46ee30b91..2762ebde4 100644
--- a/fastlane/metadata/android/en-US/images/phoneScreenshots/7.png
+++ b/fastlane/metadata/android/en-US/images/phoneScreenshots/7.png
Binary files differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/8.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/8.png
index 9c9c67d7b..7dd1c3d6a 100644
--- a/fastlane/metadata/android/en-US/images/phoneScreenshots/8.png
+++ b/fastlane/metadata/android/en-US/images/phoneScreenshots/8.png
Binary files differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/9.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/9.png
index c307bb18b..acae7fc2e 100644
--- a/fastlane/metadata/android/en-US/images/phoneScreenshots/9.png
+++ b/fastlane/metadata/android/en-US/images/phoneScreenshots/9.png
Binary files differ