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>2019-10-20 02:08:00 +0300
committerstefan-niedermann <info@niedermann.it>2019-10-20 02:08:00 +0300
commit0cfcf65c53a32a5ceb9e49aa4a2b3a7221ae17d9 (patch)
treed656089b7587868985ab0ce15f08979522e1a8bb /app/src/main
parent85f740f6634909144e1773670f31cbf791634802 (diff)
Select boards
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/EditActivity.java41
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/AccessControlDialogFragment.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/BoardAdapter.java58
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/EditBoardDialogFragment.java3
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/SelectBoardDialogFragment.java88
-rw-r--r--app/src/main/res/layout/dialog_board_select.xml15
-rw-r--r--app/src/main/res/layout/item_board.xml15
-rw-r--r--app/src/main/res/values/strings.xml1
8 files changed, 201 insertions, 22 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/EditActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/EditActivity.java
index 53a1ea6a7..2b6a87b59 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/EditActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/EditActivity.java
@@ -96,27 +96,30 @@ public class EditActivity extends AppCompatActivity implements CardDetailsFragme
syncManager = new SyncManager(this);
createMode = NO_LOCAL_ID.equals(localId);
- observeOnce(syncManager.getFullBoardById(accountId, boardId), EditActivity.this, (fullBoard -> {
- canEdit = fullBoard.getBoard().isPermissionEdit();
- invalidateOptionsMenu();
- if (createMode) {
- fullCard = new FullCard();
- fullCard.setLabels(new ArrayList<>());
- fullCard.setAssignedUsers(new ArrayList<>());
- Card card = new Card();
- card.setStackId(stackId);
- fullCard.setCard(card);
- setupViewPager();
- setupTitle(createMode);
- } else {
- observeOnce(syncManager.getCardByLocalId(accountId, localId), EditActivity.this, (next) -> {
- fullCard = next;
- originalCard = new FullCard(fullCard);
+ if(boardId == 0L) {
+ } else {
+ observeOnce(syncManager.getFullBoardById(accountId, boardId), EditActivity.this, (fullBoard -> {
+ canEdit = fullBoard.getBoard().isPermissionEdit();
+ invalidateOptionsMenu();
+ if (createMode) {
+ fullCard = new FullCard();
+ fullCard.setLabels(new ArrayList<>());
+ fullCard.setAssignedUsers(new ArrayList<>());
+ Card card = new Card();
+ card.setStackId(stackId);
+ fullCard.setCard(card);
setupViewPager();
setupTitle(createMode);
- });
- }
- }));
+ } else {
+ observeOnce(syncManager.getCardByLocalId(accountId, localId), EditActivity.this, (next) -> {
+ fullCard = next;
+ originalCard = new FullCard(fullCard);
+ setupViewPager();
+ setupTitle(createMode);
+ });
+ }
+ }));
+ }
} else {
throw new IllegalArgumentException("No localId argument");
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/AccessControlDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/AccessControlDialogFragment.java
index c36a9b431..77d3be6bd 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/AccessControlDialogFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/AccessControlDialogFragment.java
@@ -100,7 +100,7 @@ public class AccessControlDialogFragment extends DialogFragment implements
@Override
public void deleteAccessControl(AccessControl ac) {
// TODO implement in syncManager!
- Toast.makeText(getContext(), "Deleting user permisions is not yet supported.", Toast.LENGTH_LONG).show();
+ Toast.makeText(getContext(), "Deleting user permissions is not yet supported.", Toast.LENGTH_LONG).show();
}
@Override
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/BoardAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/BoardAdapter.java
new file mode 100644
index 000000000..efea490a2
--- /dev/null
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/BoardAdapter.java
@@ -0,0 +1,58 @@
+package it.niedermann.nextcloud.deck.ui.board;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import it.niedermann.nextcloud.deck.R;
+import it.niedermann.nextcloud.deck.model.Board;
+
+public class BoardAdapter extends RecyclerView.Adapter<BoardAdapter.BoardViewHolder> {
+
+ @NonNull
+ private List<Board> boardsList;
+ private Context context;
+
+ public BoardAdapter(@NonNull List<Board> boardsList) {
+ super();
+ this.boardsList = boardsList;
+ }
+
+ @NonNull
+ @Override
+ public BoardViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ this.context = parent.getContext();
+ View v = LayoutInflater.from(context).inflate(R.layout.item_board, parent, false);
+ return new BoardViewHolder(v);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull BoardViewHolder holder, int position) {
+ holder.boardName.setText(boardsList.get(position).getTitle());
+ }
+
+ @Override
+ public int getItemCount() {
+ return boardsList.size();
+ }
+
+ static class BoardViewHolder extends RecyclerView.ViewHolder {
+ @BindView(R.id.boardName)
+ TextView boardName;
+
+ private BoardViewHolder(View view) {
+ super(view);
+ ButterKnife.bind(this, view);
+ }
+ }
+
+} \ No newline at end of file
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 902d11066..a3f64798c 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
@@ -91,8 +91,7 @@ public class EditBoardDialogFragment extends DialogFragment {
return dialogBuilder
.setView(view)
- .setNegativeButton(R.string.simple_cancel, (dialog, which) -> {
- })
+ .setNegativeButton(R.string.simple_cancel, null)
.create();
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/SelectBoardDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/SelectBoardDialogFragment.java
new file mode 100644
index 000000000..bffed1851
--- /dev/null
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/SelectBoardDialogFragment.java
@@ -0,0 +1,88 @@
+package it.niedermann.nextcloud.deck.ui.board;
+
+import android.app.Activity;
+import android.app.Dialog;
+import android.content.Context;
+import android.os.Bundle;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.DialogFragment;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.List;
+import java.util.Objects;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import it.niedermann.nextcloud.deck.Application;
+import it.niedermann.nextcloud.deck.R;
+import it.niedermann.nextcloud.deck.model.Board;
+import it.niedermann.nextcloud.deck.model.full.FullBoard;
+import it.niedermann.nextcloud.deck.persistence.sync.SyncManager;
+
+public class SelectBoardDialogFragment extends DialogFragment {
+
+ private static final String KEY_ACCOUNT_ID = "account_id";
+
+ private OnBoardSelectedListener onBoardSelectedListener;
+
+ private FullBoard fullBoard = null;
+
+ @BindView(R.id.boards)
+ RecyclerView boards;
+
+ /**
+ * Use newInstance()-Method
+ */
+ public SelectBoardDialogFragment() {
+ }
+
+ @Override
+ public void onAttach(@NonNull Context context) {
+ super.onAttach(context);
+ if (context instanceof OnBoardSelectedListener) {
+ this.onBoardSelectedListener = (OnBoardSelectedListener) context;
+ } else {
+ throw new ClassCastException("Caller must implement " + OnBoardSelectedListener.class.getCanonicalName());
+ }
+ }
+
+ @NonNull
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ Activity activity = Objects.requireNonNull(getActivity());
+ View view = activity.getLayoutInflater().inflate(R.layout.dialog_board_select, null);
+ ButterKnife.bind(this, view);
+
+ AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity, Application.getAppTheme(getContext()) ? R.style.DialogDarkTheme : R.style.ThemeOverlay_AppCompat_Dialog_Alert);
+ dialogBuilder.setTitle(R.string.simple_select);
+ dialogBuilder.setPositiveButton(R.string.simple_select, (dialog, which) -> onBoardSelectedListener.onBoardSelected(fullBoard));
+ SyncManager syncManager = new SyncManager(activity);
+ syncManager.getBoards(getArguments().getLong(KEY_ACCOUNT_ID)).observe(this, (List<Board> boardsList) -> {
+ boards.setAdapter(new BoardAdapter(boardsList));
+ });
+
+ return dialogBuilder
+ .setView(view)
+ .setNegativeButton(R.string.simple_cancel, null)
+ .create();
+ }
+
+ public static SelectBoardDialogFragment newInstance(@NonNull Long accountId) {
+ SelectBoardDialogFragment dialog = new SelectBoardDialogFragment();
+
+ Bundle args = new Bundle();
+ args.putLong(KEY_ACCOUNT_ID, accountId);
+ dialog.setArguments(args);
+
+ return dialog;
+ }
+
+ public interface OnBoardSelectedListener {
+ void onBoardSelected(FullBoard fullBoard);
+ }
+
+} \ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_board_select.xml b/app/src/main/res/layout/dialog_board_select.xml
new file mode 100644
index 000000000..3a37f5f4c
--- /dev/null
+++ b/app/src/main/res/layout/dialog_board_select.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:orientation="vertical"
+ android:padding="@dimen/standard_margin">
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/boards"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:scrollbars="vertical"
+ tools:listitem="@layout/dialog_board_select"/>
+</LinearLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/item_board.xml b/app/src/main/res/layout/item_board.xml
new file mode 100644
index 000000000..b7da959fb
--- /dev/null
+++ b/app/src/main/res/layout/item_board.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:padding="@dimen/standard_padding">
+
+ <TextView
+ android:id="@+id/boardName"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textColor="@color/fg_secondary"
+ tools:text="4 days ago" />
+</LinearLayout> \ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 6b019441a..5b8526ae4 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -142,4 +142,5 @@
<string name="simple_manage">manage</string>
<string name="simple_share">share</string>
<string name="you_have_to_be_connected_to_the_internet_in_order_to_add_an_account">You have to be connected to the internet in order to add an account.</string>
+ <string name="simple_select">Select</string>
</resources>