diff options
author | stefan-niedermann <info@niedermann.it> | 2019-10-20 02:32:11 +0300 |
---|---|---|
committer | stefan-niedermann <info@niedermann.it> | 2019-10-20 02:32:11 +0300 |
commit | 536a52a9a272800d359b94c38f72a3c9d16c0f6c (patch) | |
tree | 58cf3b479b21f0c61f75dbbe1b541c4b03991c3e /app/src | |
parent | 0cfcf65c53a32a5ceb9e49aa4a2b3a7221ae17d9 (diff) |
Select boards
Diffstat (limited to 'app/src')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/EditActivity.java | 27 | ||||
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/board/SelectBoardDialogFragment.java | 15 |
2 files changed, 36 insertions, 6 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 2b6a87b59..eadfbb90f 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 @@ -1,6 +1,7 @@ package it.niedermann.nextcloud.deck.ui; import android.app.Activity; +import android.content.Intent; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; @@ -17,6 +18,9 @@ import androidx.viewpager.widget.ViewPager; import com.google.android.material.tabs.TabLayout; 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 java.util.ArrayList; import java.util.Date; @@ -27,11 +31,13 @@ import butterknife.ButterKnife; import butterknife.Unbinder; 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.Card; import it.niedermann.nextcloud.deck.model.Label; import it.niedermann.nextcloud.deck.model.User; import it.niedermann.nextcloud.deck.model.full.FullCard; import it.niedermann.nextcloud.deck.persistence.sync.SyncManager; +import it.niedermann.nextcloud.deck.ui.board.SelectBoardDialogFragment; import it.niedermann.nextcloud.deck.ui.card.CardDetailsFragment; import it.niedermann.nextcloud.deck.ui.card.CardTabAdapter; import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler; @@ -43,7 +49,9 @@ import static it.niedermann.nextcloud.deck.ui.card.CardAdapter.BUNDLE_KEY_LOCAL_ import static it.niedermann.nextcloud.deck.ui.card.CardAdapter.BUNDLE_KEY_STACK_ID; import static it.niedermann.nextcloud.deck.ui.card.CardAdapter.NO_LOCAL_ID; -public class EditActivity extends AppCompatActivity implements CardDetailsFragment.CardDetailsListener { +public class EditActivity extends AppCompatActivity implements + CardDetailsFragment.CardDetailsListener, + SelectBoardDialogFragment.OnBoardSelectedListener { SyncManager syncManager; @@ -97,6 +105,13 @@ public class EditActivity extends AppCompatActivity implements CardDetailsFragme 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)); + } catch (NextcloudFilesAppAccountNotFoundException | NoCurrentAccountSelectedException e) { + e.printStackTrace(); + } } else { observeOnce(syncManager.getFullBoardById(accountId, boardId), EditActivity.this, (fullBoard -> { canEdit = fullBoard.getBoard().isPermissionEdit(); @@ -255,4 +270,14 @@ public class EditActivity extends AppCompatActivity implements CardDetailsFragme super.onBackPressed(); } } + + @Override + public void onBoardSelected(Board board) { + syncManager.getFullBoardById(accountId, board.getLocalId()); + Intent intent = new Intent(this, EditActivity.class); + intent.putExtra(BUNDLE_KEY_ACCOUNT_ID, accountId); + intent.putExtra(BUNDLE_KEY_BOARD_ID, boardId); + intent.putExtra(BUNDLE_KEY_LOCAL_ID, localId); + startActivityForResult(intent, -1); // FIXME + } } 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 bffed1851..1c2c9093f 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 @@ -19,7 +19,6 @@ 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 { @@ -28,7 +27,7 @@ public class SelectBoardDialogFragment extends DialogFragment { private OnBoardSelectedListener onBoardSelectedListener; - private FullBoard fullBoard = null; + private Board board = null; @BindView(R.id.boards) RecyclerView boards; @@ -55,13 +54,19 @@ public class SelectBoardDialogFragment extends DialogFragment { 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); + if(accountId == 0L) { + throw new IllegalArgumentException("You must provide an accountId"); + } + 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)); + dialogBuilder.setPositiveButton(R.string.simple_select, (dialog, which) -> onBoardSelectedListener.onBoardSelected(board)); SyncManager syncManager = new SyncManager(activity); - syncManager.getBoards(getArguments().getLong(KEY_ACCOUNT_ID)).observe(this, (List<Board> boardsList) -> { + syncManager.getBoards(accountId).observe(this, (List<Board> boardsList) -> { boards.setAdapter(new BoardAdapter(boardsList)); }); @@ -82,7 +87,7 @@ public class SelectBoardDialogFragment extends DialogFragment { } public interface OnBoardSelectedListener { - void onBoardSelected(FullBoard fullBoard); + void onBoardSelected(Board board); } }
\ No newline at end of file |