diff options
author | stefan-niedermann <info@niedermann.it> | 2019-10-20 15:37:59 +0300 |
---|---|---|
committer | stefan-niedermann <info@niedermann.it> | 2019-10-20 15:37:59 +0300 |
commit | 46e6399bd5eb66e9c8ea5ec71e4b1903cf31d2b8 (patch) | |
tree | 2879c3149933ee593d45b450d1f87257f7598d62 /app/src/main | |
parent | 58bc2caf7e11b3faab7b73da49b7be1898b84e17 (diff) |
Polish UI for picking a board on EditActivity
Diffstat (limited to 'app/src/main')
5 files changed, 75 insertions, 40 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 0c8a4c6b1..5ae8e73d7 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 @@ -122,8 +122,8 @@ public class EditActivity extends AppCompatActivity implements accountId = account.getId(); boardSelector.setVisibility(View.VISIBLE); syncManager.getBoards(account.getId()).observe(this, (List<Board> boardsList) -> { - for(Board board: boardsList) { - if(!board.isPermissionEdit()) { + for (Board board : boardsList) { + if (!board.isPermissionEdit()) { boardsList.remove(board); } } @@ -141,32 +141,28 @@ public class EditActivity extends AppCompatActivity implements if (accountId == 0L) { throw new IllegalArgumentException("No accountId given"); } - whenBoardIdIsAvailable(); - } - } - - private void whenBoardIdIsAvailable() { - 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); + 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); + }); + } + })); + } } @Override @@ -303,8 +299,25 @@ public class EditActivity extends AppCompatActivity implements @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { boardId = ((Board) boardSelector.getItemAtPosition(position)).getLocalId(); - stackId = 1; // FIXME - whenBoardIdIsAvailable(); + observeOnce(syncManager.getFullBoardById(accountId, boardId), EditActivity.this, (fullBoard -> { + canEdit = fullBoard.getBoard().isPermissionEdit(); + observeOnce(syncManager.getStacksForBoard(accountId, boardId), EditActivity.this, (stacks -> { + if(stacks != null && stacks.size() > 0) { + stackId = stacks.get(0).getLocalId(); + } + })); + if (fullCard == null) { + invalidateOptionsMenu(); + fullCard = new FullCard(); + fullCard.setLabels(new ArrayList<>()); + fullCard.setAssignedUsers(new ArrayList<>()); + Card card = new Card(); + card.setStackId(stackId); + fullCard.setCard(card); + setupViewPager(); + setupTitle(createMode); + } + })); } @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 index 457889f26..986ce9237 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 @@ -13,6 +13,7 @@ import androidx.recyclerview.widget.RecyclerView; import butterknife.BindView; import butterknife.ButterKnife; +import it.niedermann.nextcloud.deck.DeckLog; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.model.Board; import it.niedermann.nextcloud.deck.util.ViewUtil; @@ -35,13 +36,15 @@ public class BoardAdapter extends ArrayAdapter<Board> { // Check if an existing view is being reused, otherwise inflate the view if (convertView == null) { - convertView = LayoutInflater.from(getContext()).inflate(R.layout.item_board, parent, false); - } TextView boardName = convertView.findViewById(R.id.boardName); - boardName.setText(board.getTitle()); - boardName.setCompoundDrawables(ViewUtil.getTintedImageView(context, R.drawable.circle_grey600_36dp, "#" + board.getColor()), null, null, null); + if(board != null) { + boardName.setText(board.getTitle()); + boardName.setCompoundDrawables(ViewUtil.getTintedImageView(context, R.drawable.circle_grey600_36dp, "#" + board.getColor()), null, null, null); + } else { + DeckLog.logError(new IllegalArgumentException("board at position " + position + "is null")); + } return convertView; } diff --git a/app/src/main/res/layout/activity_edit.xml b/app/src/main/res/layout/activity_edit.xml index 90c155433..f139ed88e 100644 --- a/app/src/main/res/layout/activity_edit.xml +++ b/app/src/main/res/layout/activity_edit.xml @@ -41,13 +41,28 @@ </androidx.appcompat.widget.Toolbar> - <androidx.appcompat.widget.AppCompatSpinner - android:id="@+id/boardSelector" - android:visibility="gone" - tools:visibility="visible" + <LinearLayout android:layout_width="match_parent" - android:layout_height="?android:attr/actionBarSize" - android:theme="@style/ThemeOverlay.AppCompat.Dark"/> + android:layout_height="wrap_content" + android:orientation="horizontal"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:labelFor="@id/boardSelector" + android:padding="@dimen/standard_padding" + android:text="@string/simple_select" + android:textColor="@android:color/white" /> + + <androidx.appcompat.widget.AppCompatSpinner + android:id="@+id/boardSelector" + android:layout_width="match_parent" + android:layout_height="?android:attr/actionBarSize" + android:theme="@style/Spinner" + android:visibility="gone" + tools:listitem="@layout/item_board" + tools:visibility="visible" /> + </LinearLayout> <com.google.android.material.tabs.TabLayout android:id="@+id/tab_layout" diff --git a/app/src/main/res/layout/item_board.xml b/app/src/main/res/layout/item_board.xml index ac60360b5..495b98bad 100644 --- a/app/src/main/res/layout/item_board.xml +++ b/app/src/main/res/layout/item_board.xml @@ -5,5 +5,6 @@ android:padding="@dimen/standard_padding" android:layout_width="match_parent" android:layout_height="wrap_content" - android:textColor="@color/fg_secondary" - tools:text="4 days ago" />
\ No newline at end of file + android:textColor="@android:color/white" + android:background="@android:color/transparent" + tools:text="Awesome board name" />
\ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index d529f6ab5..300a9e22a 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -62,4 +62,7 @@ <item name="android:textColor">@color/danger</item> </style> + <style name="Spinner" parent="ThemeOverlay.AppCompat.Dark"> + <item name="android:textColor">@android:color/white</item> + </style> </resources> |