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 13:16:46 +0300
committerstefan-niedermann <info@niedermann.it>2019-10-20 13:16:46 +0300
commit4494205873cdc306ec62b3a0cee052469a5a7e92 (patch)
treefd4ac89513606f8b166fbc4f045fb7993cce2b5f /app/src/main
parent536a52a9a272800d359b94c38f72a3c9d16c0f6c (diff)
Display actual list of boards when not given in EditActivity
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AccountDao.java8
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/EditActivity.java9
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/BoardAdapter.java15
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/board/SelectBoardDialogFragment.java9
-rw-r--r--app/src/main/res/layout/dialog_board_select.xml20
7 files changed, 44 insertions, 25 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java
index bb38977f1..be6a53a0a 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java
@@ -167,6 +167,10 @@ public class SyncManager {
return dataBaseAdapter.readAccount(id);
}
+ public LiveData<Account> readAccount(String name) {
+ return dataBaseAdapter.readAccount(name);
+ }
+
public LiveData<List<Account>> readAccounts() {
return dataBaseAdapter.readAccounts();
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
index ddfa06dfb..bbe2c4e1b 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
@@ -278,6 +278,10 @@ public class DataBaseAdapter {
return LiveDataHelper.onlyIfChanged(db.getAccountDao().selectById(id));
}
+ public LiveData<Account> readAccount(String name) {
+ return LiveDataHelper.onlyIfChanged(db.getAccountDao().selectById(name));
+ }
+
public Account readAccountDirectly(long id) {
return db.getAccountDao().getAccountByIdDirectly(id);
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AccountDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AccountDao.java
index 3c0286ef4..56ac92008 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AccountDao.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AccountDao.java
@@ -1,10 +1,11 @@
package it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao;
-import java.util.List;
-
import androidx.lifecycle.LiveData;
import androidx.room.Dao;
import androidx.room.Query;
+
+import java.util.List;
+
import it.niedermann.nextcloud.deck.model.Account;
@Dao
@@ -28,6 +29,9 @@ public interface AccountDao extends GenericDao<Account> {
@Query("SELECT * from account where id = :id")
LiveData<Account> selectById(long id);
+ @Query("SELECT * from account where name = :name")
+ LiveData<Account> selectById(String name);
+
@Query("SELECT * from account")
LiveData<List<Account>> selectAll();
} \ No newline at end of file
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 eadfbb90f..29e4aa78a 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
@@ -21,6 +21,7 @@ import com.google.android.material.textfield.TextInputLayout;
import com.nextcloud.android.sso.exceptions.NextcloudFilesAppAccountNotFoundException;
import com.nextcloud.android.sso.exceptions.NoCurrentAccountSelectedException;
import com.nextcloud.android.sso.helper.SingleAccountHelper;
+import com.nextcloud.android.sso.model.SingleSignOnAccount;
import java.util.ArrayList;
import java.util.Date;
@@ -31,6 +32,7 @@ import butterknife.ButterKnife;
import butterknife.Unbinder;
import it.niedermann.nextcloud.deck.Application;
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.model.Card;
import it.niedermann.nextcloud.deck.model.Label;
@@ -106,9 +108,10 @@ public class EditActivity extends AppCompatActivity implements
createMode = NO_LOCAL_ID.equals(localId);
if(boardId == 0L) {
try {
-// syncManager.readAccount()
- SingleAccountHelper.getCurrentSingleSignOnAccount(this);
- SelectBoardDialogFragment.newInstance(accountId).show(getSupportFragmentManager(), getString(R.string.simple_select));
+ SingleSignOnAccount ssoa = SingleAccountHelper.getCurrentSingleSignOnAccount(this);
+ syncManager.readAccount(ssoa.name).observe(this, (Account account) -> {
+ SelectBoardDialogFragment.newInstance(account.getId()).show(getSupportFragmentManager(), getString(R.string.simple_select));
+ });
} catch (NextcloudFilesAppAccountNotFoundException | NoCurrentAccountSelectedException e) {
e.printStackTrace();
}
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
index efea490a2..4c61e89e6 100644
--- 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
@@ -7,6 +7,7 @@ import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
@@ -15,29 +16,35 @@ import butterknife.BindView;
import butterknife.ButterKnife;
import it.niedermann.nextcloud.deck.R;
import it.niedermann.nextcloud.deck.model.Board;
+import it.niedermann.nextcloud.deck.util.ViewUtil;
public class BoardAdapter extends RecyclerView.Adapter<BoardAdapter.BoardViewHolder> {
@NonNull
private List<Board> boardsList;
+ @Nullable
private Context context;
- public BoardAdapter(@NonNull List<Board> boardsList) {
+ public BoardAdapter(@Nullable Context context, @NonNull List<Board> boardsList) {
super();
this.boardsList = boardsList;
+ this.context = context;
}
@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);
+ View v = LayoutInflater.from(parent.getContext()).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());
+ Board board = boardsList.get(position);
+ holder.boardName.setText(board.getTitle());
+ if(context != null) {
+ holder.boardName.setCompoundDrawables(ViewUtil.getTintedImageView(context, R.drawable.circle_grey600_36dp, "#" + board.getColor()), null, null, null);
+ }
}
@Override
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
index 1c2c9093f..930fa3095 100644
--- 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
@@ -52,14 +52,15 @@ public class SelectBoardDialogFragment extends DialogFragment {
@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);
- long accountId = Objects.requireNonNull(getArguments()).getLong(KEY_ACCOUNT_ID);
+ final long accountId = Objects.requireNonNull(getArguments()).getLong(KEY_ACCOUNT_ID);
if(accountId == 0L) {
throw new IllegalArgumentException("You must provide an accountId");
}
+ 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);
@@ -67,7 +68,7 @@ public class SelectBoardDialogFragment extends DialogFragment {
dialogBuilder.setPositiveButton(R.string.simple_select, (dialog, which) -> onBoardSelectedListener.onBoardSelected(board));
SyncManager syncManager = new SyncManager(activity);
syncManager.getBoards(accountId).observe(this, (List<Board> boardsList) -> {
- boards.setAdapter(new BoardAdapter(boardsList));
+ boards.setAdapter(new BoardAdapter(getContext(), boardsList));
});
return dialogBuilder
diff --git a/app/src/main/res/layout/dialog_board_select.xml b/app/src/main/res/layout/dialog_board_select.xml
index 3a37f5f4c..c203a21d9 100644
--- a/app/src/main/res/layout/dialog_board_select.xml
+++ b/app/src/main/res/layout/dialog_board_select.xml
@@ -1,15 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.recyclerview.widget.RecyclerView 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:id="@+id/boards"
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
+ android:padding="@dimen/standard_margin"
+ android:scrollbars="vertical"
+ app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
+ tools:listitem="@layout/dialog_board_select" /> \ No newline at end of file