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>2020-04-12 12:44:26 +0300
committerStefan Niedermann <info@niedermann.it>2020-04-12 12:44:26 +0300
commit1063dd2347c7933e20b1d6094cb93beeae54b95b (patch)
treecd02770a4b9f3caf591fe33a8c57c9d85c20cf8d
parente10a845b837cc16b193010615e24c29a59eebb6c (diff)
#317 Adjust theme for each account
Use DeleteDialog for stacks and boards Signed-off-by: Stefan Niedermann <info@niedermann.it>
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/model/Board.java3
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java62
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/DeleteBoardDialogFragment.java64
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/DeleteBoardListener.java7
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedActivity.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditActivity.java30
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackDialogFragment.java64
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackListener.java5
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/view/DeleteDialogFragment.java27
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/util/DrawerMenuUtil.java32
-rw-r--r--app/src/main/res/values/styles.xml6
11 files changed, 233 insertions, 69 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/model/Board.java b/app/src/main/java/it/niedermann/nextcloud/deck/model/Board.java
index b75b54339..810f4e575 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/model/Board.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/model/Board.java
@@ -5,6 +5,7 @@ import androidx.room.ForeignKey;
import androidx.room.Ignore;
import androidx.room.Index;
+import java.io.Serializable;
import java.util.Date;
import it.niedermann.nextcloud.deck.model.enums.DBStatus;
@@ -21,7 +22,7 @@ import it.niedermann.nextcloud.deck.model.interfaces.AbstractRemoteEntity;
)
}
)
-public class Board extends AbstractRemoteEntity {
+public class Board extends AbstractRemoteEntity implements Serializable {
public Board() {
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 0458bc4cc..5052d5816 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
@@ -69,6 +69,7 @@ import it.niedermann.nextcloud.deck.persistence.sync.SyncManager;
import it.niedermann.nextcloud.deck.persistence.sync.SyncWorker;
import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.WrappedLiveData;
import it.niedermann.nextcloud.deck.ui.about.AboutActivity;
+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.BrandedActivity;
@@ -76,15 +77,15 @@ import it.niedermann.nextcloud.deck.ui.card.CardAdapter;
import it.niedermann.nextcloud.deck.ui.card.EditActivity;
import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler;
import it.niedermann.nextcloud.deck.ui.settings.SettingsActivity;
+import it.niedermann.nextcloud.deck.ui.stack.DeleteStackDialogFragment;
+import it.niedermann.nextcloud.deck.ui.stack.DeleteStackListener;
import it.niedermann.nextcloud.deck.ui.stack.EditStackDialogFragment;
import it.niedermann.nextcloud.deck.ui.stack.EditStackListener;
import it.niedermann.nextcloud.deck.ui.stack.OnScrollListener;
import it.niedermann.nextcloud.deck.ui.stack.StackAdapter;
import it.niedermann.nextcloud.deck.ui.stack.StackFragment;
-import it.niedermann.nextcloud.deck.util.DeleteDialogBuilder;
import it.niedermann.nextcloud.deck.util.DrawerMenuUtil;
import it.niedermann.nextcloud.deck.util.DrawerMenuUtil.DrawerAccountListener;
-import it.niedermann.nextcloud.deck.util.DrawerMenuUtil.DrawerBoardListener;
import it.niedermann.nextcloud.deck.util.ExceptionUtil;
import it.niedermann.nextcloud.deck.util.ViewUtil;
@@ -104,7 +105,7 @@ import static it.niedermann.nextcloud.deck.util.DrawerMenuUtil.MENU_ID_ADD_ACCOU
import static it.niedermann.nextcloud.deck.util.DrawerMenuUtil.MENU_ID_ADD_BOARD;
import static it.niedermann.nextcloud.deck.util.DrawerMenuUtil.MENU_ID_SETTINGS;
-public class MainActivity extends BrandedActivity implements EditStackListener, EditBoardListener, OnScrollListener, OnNavigationItemSelectedListener, DrawerAccountListener, DrawerBoardListener {
+public class MainActivity extends BrandedActivity implements DeleteStackListener, EditStackListener, DeleteBoardListener, EditBoardListener, OnScrollListener, OnNavigationItemSelectedListener, DrawerAccountListener {
protected ActivityMainBinding binding;
protected NavHeaderMainBinding headerBinding;
@@ -369,7 +370,7 @@ public class MainActivity extends BrandedActivity implements EditStackListener,
@Override
public void onCreateStack(String stackName) {
observeOnce(syncManager.getStacksForBoard(currentAccount.getId(), currentBoardId), MainActivity.this, fullStacks -> {
- Stack s = new Stack(stackName, currentBoardId);
+ final Stack s = new Stack(stackName, currentBoardId);
int heighestOrder = 0;
for (FullStack fullStack : fullStacks) {
int currentStackOrder = fullStack.stack.getOrder();
@@ -378,12 +379,8 @@ public class MainActivity extends BrandedActivity implements EditStackListener,
}
}
s.setOrder(heighestOrder);
- //TODO: returns liveData of the created stack (once!) as desired
- // original to do: should return ID of the created stack, so one can immediately switch to the new board after creation
- DeckLog.log("Create Stack with account id = " + currentAccount.getId());
- syncManager.createStack(currentAccount.getId(), s).observe(MainActivity.this, (stack) -> {
- binding.viewPager.setCurrentItem(stackAdapter.getItemCount());
- });
+ DeckLog.info("Create Stack with account id = " + currentAccount.getId());
+ syncManager.createStack(currentAccount.getId(), s).observe(MainActivity.this, (stack) -> binding.viewPager.setCurrentItem(stackAdapter.getItemCount()));
});
}
@@ -558,7 +555,7 @@ public class MainActivity extends BrandedActivity implements EditStackListener,
binding.navigationView.setItemIconTintList(null);
Menu menu = binding.navigationView.getMenu();
menu.clear();
- DrawerMenuUtil.inflateBoards(this, menu, currentAccount.getId(), currentBoardId, this.boardsList);
+ DrawerMenuUtil.inflateBoards(this, menu, currentAccount.getId(), this.boardsList);
}
@Override
@@ -621,25 +618,15 @@ public class MainActivity extends BrandedActivity implements EditStackListener,
@Override
public boolean onOptionsItemSelected(MenuItem item) {
+ final long stackId = stackAdapter.getItem(binding.viewPager.getCurrentItem()).getLocalId();
switch (item.getItemId()) {
case R.id.delete_list:
- new DeleteDialogBuilder(this)
- .setTitle(R.string.delete_list)
- .setMessage(R.string.do_you_want_to_delete_the_current_list)
- .setPositiveButton(R.string.simple_delete, (dialog, whichButton) -> {
- long stackId = stackAdapter.getItem(binding.viewPager.getCurrentItem()).getLocalId();
- observeOnce(syncManager.getStack(currentAccount.getId(), stackId), MainActivity.this, fullStack -> {
- DeckLog.log("Delete stack #" + fullStack.getLocalId() + ": " + fullStack.getStack().getTitle());
- syncManager.deleteStack(fullStack.getStack());
- });
- })
- .setNegativeButton(android.R.string.cancel, null).show();
+ DeleteStackDialogFragment.newInstance(stackId).show(getSupportFragmentManager(), DeleteStackDialogFragment.class.getCanonicalName());
return true;
case R.id.rename_list:
- long stackId = stackAdapter.getItem(binding.viewPager.getCurrentItem()).getLocalId();
observeOnce(syncManager.getStack(currentAccount.getId(), stackId), MainActivity.this, fullStack ->
EditStackDialogFragment.newInstance(fullStack.getLocalId(), fullStack.getStack().getTitle())
- .show(getSupportFragmentManager(), getString(R.string.rename_list)));
+ .show(getSupportFragmentManager(), EditStackDialogFragment.class.getCanonicalName()));
return true;
default:
return super.onOptionsItemSelected(item);
@@ -814,19 +801,28 @@ public class MainActivity extends BrandedActivity implements EditStackListener,
}
@Override
- public void onBoardChosen(@NonNull Board board) {
- setCurrentBoard(board);
+ public void onStackDeleted(Long stackLocalId) {
+ long stackId = stackAdapter.getItem(binding.viewPager.getCurrentItem()).getLocalId();
+ observeOnce(syncManager.getStack(currentAccount.getId(), stackId), MainActivity.this, fullStack -> {
+ DeckLog.log("Delete stack #" + fullStack.getLocalId() + ": " + fullStack.getStack().getTitle());
+ syncManager.deleteStack(fullStack.getStack());
+ });
}
@Override
- public void onBoardDeleted(@NonNull Board board) {
+ public void onBoardDeleted(Board board) {
+ final int index = this.boardsList.indexOf(board);
+ if (board.getLocalId() == currentBoardId) {
+ if (index > 0) { // Select first board after deletion
+ setCurrentBoard(this.boardsList.get(0));
+ } else if (this.boardsList.size() > 1) { // Select second board after deletion
+ setCurrentBoard(this.boardsList.get(1));
+ } else { // No other board is available, open create dialog
+ clearCurrentBoard();
+ EditBoardDialogFragment.newInstance().show(getSupportFragmentManager(), addBoard);
+ }
+ }
syncManager.deleteBoard(board);
binding.drawerLayout.closeDrawer(GravityCompat.START);
}
-
- @Override
- public void onLastBoardDeleted() {
- clearCurrentBoard();
- EditBoardDialogFragment.newInstance().show(getSupportFragmentManager(), addBoard);
- }
} \ No newline at end of file
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
new file mode 100644
index 000000000..9574d96e1
--- /dev/null
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/DeleteBoardDialogFragment.java
@@ -0,0 +1,64 @@
+package it.niedermann.nextcloud.deck.ui.board;
+
+import android.app.Dialog;
+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;
+import it.niedermann.nextcloud.deck.model.Board;
+import it.niedermann.nextcloud.deck.ui.view.DeleteDialogFragment;
+
+public class DeleteBoardDialogFragment extends DeleteDialogFragment {
+
+ private static final String KEY_BOARD = "board";
+
+ private DeleteBoardListener deleteBoardListener;
+ private Board board;
+
+ /**
+ * Use newInstance()-Method
+ */
+ public DeleteBoardDialogFragment() {
+ }
+
+ @Override
+ public void onAttach(@NonNull Context context) {
+ super.onAttach(context);
+ if (context instanceof DeleteBoardListener) {
+ this.deleteBoardListener = (DeleteBoardListener) context;
+ } else {
+ throw new ClassCastException("Caller must implement " + DeleteBoardListener.class.getCanonicalName());
+ }
+
+ if (getArguments() == null || !getArguments().containsKey(KEY_BOARD)) {
+ throw new IllegalArgumentException("Please provide at least " + KEY_BOARD + " as an argument");
+ } else {
+ this.board = (Board) getArguments().getSerializable(KEY_BOARD);
+ }
+ }
+
+ @NonNull
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(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))
+ .setNegativeButton(android.R.string.cancel, null);
+ return builder.create();
+ }
+
+ public static DialogFragment newInstance(Board board) {
+ DeleteBoardDialogFragment dialog = new DeleteBoardDialogFragment();
+
+ Bundle args = new Bundle();
+ args.putSerializable(KEY_BOARD, board);
+ dialog.setArguments(args);
+
+ return dialog;
+ }
+}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/DeleteBoardListener.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/DeleteBoardListener.java
new file mode 100644
index 000000000..e9fb53652
--- /dev/null
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/DeleteBoardListener.java
@@ -0,0 +1,7 @@
+package it.niedermann.nextcloud.deck.ui.board;
+
+import it.niedermann.nextcloud.deck.model.Board;
+
+public interface DeleteBoardListener {
+ void onBoardDeleted(Board board);
+} \ No newline at end of file
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedActivity.java
index b95b9dbdb..032c35004 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/BrandedActivity.java
@@ -132,6 +132,8 @@ public abstract class BrandedActivity extends AppCompatActivity implements Brand
if (isFocused) {
editText.clearFocus();
}
+ final int highlightColor = Color.argb(77, Color.red(finalMainColor), Color.green(finalMainColor), Color.blue(finalMainColor));
+ editText.setHighlightColor(highlightColor);
editText.setOnFocusChangeListener((v, hasFocus) -> {
if (hasFocus) {
background.setColorFilter(finalMainColor, PorterDuff.Mode.SRC_ATOP);
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 dd95e69c9..8fc21110e 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
@@ -1,6 +1,7 @@
package it.niedermann.nextcloud.deck.ui.card;
import android.content.res.ColorStateList;
+import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
@@ -21,6 +22,7 @@ import androidx.core.graphics.drawable.DrawableCompat;
import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator;
+import com.google.android.material.textfield.TextInputLayout;
import java.util.ArrayList;
import java.util.Date;
@@ -350,10 +352,14 @@ public class EditActivity extends BrandedActivity implements CardDetailsListener
super.applyBrand(mainColor, textColor);
applyBrandToPrimaryToolbar(mainColor, textColor, binding.toolbar);
applyBrandToPrimaryTabLayout(mainColor, textColor, binding.tabLayout);
+ final int highlightColor = Color.argb(77, Color.red(textColor), Color.green(textColor), Color.blue(textColor));
+ binding.title.setHighlightColor(highlightColor);
binding.title.setTextColor(textColor);
DrawableCompat.setTintList(binding.title.getBackground(), ColorStateList.valueOf(textColor));
applyBrandToTitle(textColor, binding.title);
binding.titleTextInputLayout.setDefaultHintTextColor(ColorStateList.valueOf(textColor));
+
+ applyBrandToTitleWrapper(textColor, binding.titleTextInputLayout);
}
private static void applyBrandToTitle(@ColorInt int textColor, @NonNull EditText editText) {
@@ -379,4 +385,28 @@ public class EditActivity extends BrandedActivity implements CardDetailsListener
editText.requestFocus();
}
}
+
+ private static void applyBrandToTitleWrapper(@ColorInt int textColor, @NonNull TextInputLayout editText) {
+ final Drawable background = editText.getBackground();
+// final ColorFilter oldColorFilter = DrawableCompat.getColorFilter(background);
+ final View.OnFocusChangeListener oldOnFocusChangeListener = editText.getOnFocusChangeListener();
+
+ final boolean isFocused = editText.isFocused();
+ if (isFocused) {
+ editText.clearFocus();
+ }
+ editText.setOnFocusChangeListener((v, hasFocus) -> {
+ if (hasFocus) {
+ background.setColorFilter(textColor, PorterDuff.Mode.SRC_ATOP);
+ } else {
+// background.setColorFilter(oldColorFilter);
+ }
+ if (oldOnFocusChangeListener != null) {
+ oldOnFocusChangeListener.onFocusChange(v, hasFocus);
+ }
+ });
+ if (isFocused) {
+ editText.requestFocus();
+ }
+ }
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackDialogFragment.java
new file mode 100644
index 000000000..da1070b4a
--- /dev/null
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackDialogFragment.java
@@ -0,0 +1,64 @@
+package it.niedermann.nextcloud.deck.ui.stack;
+
+import android.app.Dialog;
+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;
+import it.niedermann.nextcloud.deck.ui.view.DeleteDialogFragment;
+
+public class DeleteStackDialogFragment extends DeleteDialogFragment {
+
+ private static final String KEY_STACK_ID = "stack_id";
+
+ private DeleteStackListener deleteStackListener;
+ private Long stackId;
+
+
+ /**
+ * Use newInstance()-Method
+ */
+ public DeleteStackDialogFragment() {
+ }
+
+ @Override
+ public void onAttach(@NonNull Context context) {
+ super.onAttach(context);
+ if (context instanceof DeleteStackListener) {
+ this.deleteStackListener = (DeleteStackListener) context;
+ } else {
+ throw new ClassCastException("Caller must implement " + DeleteStackListener.class.getCanonicalName());
+ }
+
+ if (getArguments() == null || !getArguments().containsKey(KEY_STACK_ID)) {
+ throw new IllegalArgumentException("Please provide at least stack id as an argument");
+ } else {
+ this.stackId = getArguments().getLong(KEY_STACK_ID);
+ }
+ }
+
+ @NonNull
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(requireContext())
+ .setTitle(R.string.delete_list)
+ .setMessage(R.string.do_you_want_to_delete_the_current_list)
+ .setPositiveButton(R.string.simple_delete, (dialog, whichButton) -> deleteStackListener.onStackDeleted(stackId))
+ .setNegativeButton(android.R.string.cancel, null);
+ return builder.create();
+ }
+
+ public static DialogFragment newInstance(long stackId) {
+ DeleteStackDialogFragment dialog = new DeleteStackDialogFragment();
+
+ Bundle args = new Bundle();
+ args.putLong(KEY_STACK_ID, stackId);
+ dialog.setArguments(args);
+
+ return dialog;
+ }
+}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackListener.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackListener.java
new file mode 100644
index 000000000..dfd1b4497
--- /dev/null
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackListener.java
@@ -0,0 +1,5 @@
+package it.niedermann.nextcloud.deck.ui.stack;
+
+public interface DeleteStackListener {
+ void onStackDeleted(Long stackLocalId);
+} \ No newline at end of file
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/DeleteDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/DeleteDialogFragment.java
new file mode 100644
index 000000000..4ae92e43c
--- /dev/null
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/view/DeleteDialogFragment.java
@@ -0,0 +1,27 @@
+package it.niedermann.nextcloud.deck.ui.view;
+
+import android.app.Dialog;
+import android.content.DialogInterface;
+import android.widget.Button;
+
+import androidx.annotation.ColorInt;
+import androidx.appcompat.app.AlertDialog;
+
+import it.niedermann.nextcloud.deck.R;
+import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment;
+
+public class DeleteDialogFragment extends BrandedDialogFragment {
+
+ @Override
+ public void applyBrand(@ColorInt int mainColor, @ColorInt int textColor) {
+ super.applyBrand(mainColor, textColor);
+ final Dialog dialog = requireDialog();
+ if (dialog instanceof AlertDialog) {
+ final Button positiveButton = ((AlertDialog) dialog).getButton(DialogInterface.BUTTON_POSITIVE);
+ if (positiveButton != null) {
+ positiveButton.setTextColor(getResources().getColor(R.color.danger));
+ }
+ }
+ }
+
+}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/DrawerMenuUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/DrawerMenuUtil.java
index 31b081e31..ce0b1ec00 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/util/DrawerMenuUtil.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/util/DrawerMenuUtil.java
@@ -28,6 +28,7 @@ import it.niedermann.nextcloud.deck.DeckLog;
import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.model.Account;
import it.niedermann.nextcloud.deck.model.Board;
+import it.niedermann.nextcloud.deck.ui.board.DeleteBoardDialogFragment;
import it.niedermann.nextcloud.deck.ui.board.EditBoardDialogFragment;
import it.niedermann.nextcloud.deck.ui.board.accesscontrol.AccessControlDialogFragment;
@@ -101,11 +102,10 @@ public class DrawerMenuUtil {
menu.add(Menu.NONE, MENU_ID_ADD_ACCOUNT, Menu.NONE, context.getString(R.string.add_account)).setIcon(R.drawable.ic_person_add_black_24dp);
}
- public static <T extends FragmentActivity & DrawerBoardListener> void inflateBoards(
+ public static <T extends FragmentActivity> void inflateBoards(
@NonNull T context,
@NonNull Menu menu,
@NonNull Long currentAccountId,
- long currentBoardId,
@NonNull List<Board> boards) {
final String addBoard = context.getString(R.string.add_board);
final String simpleBoards = context.getString(R.string.simple_boards);
@@ -143,23 +143,7 @@ public class DrawerMenuUtil {
Toast.makeText(context, "Archiving boards is not yet supported.", Toast.LENGTH_LONG).show();
return true;
case R.id.delete_board:
- new DeleteDialogBuilder(context)
- .setTitle(context.getString(R.string.delete_something, board.getTitle()))
- .setMessage(R.string.delete_board_message)
- .setPositiveButton(R.string.simple_delete, (dialog, which) -> {
- if (board.getLocalId() == currentBoardId) {
- if (currentIndex > 0) { // Select first board after deletion
- context.onBoardChosen(boards.get(0));
- } else if (boards.size() > 1) { // Select second board after deletion
- context.onBoardChosen(boards.get(1));
- } else { // No other board is available, open create dialog
- context.onLastBoardDeleted();
- }
- }
- context.onBoardDeleted(board);
- })
- .setNegativeButton(android.R.string.cancel, null)
- .show();
+ DeleteBoardDialogFragment.newInstance(board).show(context.getSupportFragmentManager(), DeleteBoardDialogFragment.class.getCanonicalName());
return true;
default:
return false;
@@ -188,14 +172,4 @@ public class DrawerMenuUtil {
void onAccountDeleted(@NonNull Long accountId);
}
-
- public interface DrawerBoardListener {
- void onBoardChosen(@NonNull Board board);
-
- void onBoardDeleted(@NonNull Board board);
-
- default void onLastBoardDeleted() {
- // Optional
- }
- }
}
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 09af701b4..44056cdac 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -11,12 +11,6 @@
<item name="windowNoTitle">true</item>
</style>
-<!-- <style name="AppTheme.EditText" parent="ThemeOverlay.MaterialComponents.Dark">-->
-<!-- <item name="colorControlNormal">@android:color/white</item>-->
-<!-- <item name="colorControlActivated">@android:color/white</item>-->
-<!-- <item name="colorControlHighlight">@android:color/white</item>-->
-<!-- </style>-->
-
<style name="DarkAppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary</item>