diff options
author | stefan-niedermann <info@niedermann.it> | 2020-02-01 19:56:06 +0300 |
---|---|---|
committer | stefan-niedermann <info@niedermann.it> | 2020-02-01 19:56:06 +0300 |
commit | 16182e52f9ad7b4d24186d8dc3359ce04e0da54b (patch) | |
tree | e124e2c6e760b69903a860fe17b2133fe4af941d | |
parent | 088af8667583885fc88edab7d1bb15c38150b258 (diff) |
Fix #241 Adjust empty content views depending on edit permissions
6 files changed, 33 insertions, 19 deletions
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 a97e5e0e9..d24e75986 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 @@ -8,7 +8,6 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.SubMenu; import android.view.View; -import android.widget.RelativeLayout; import androidx.appcompat.app.AppCompatDelegate; import androidx.appcompat.widget.AppCompatImageButton; @@ -44,6 +43,7 @@ import it.niedermann.nextcloud.deck.ui.board.AccessControlDialogFragment; import it.niedermann.nextcloud.deck.ui.board.EditBoardDialogFragment; import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler; import it.niedermann.nextcloud.deck.ui.helper.dnd.CrossTabDragAndDrop; +import it.niedermann.nextcloud.deck.ui.helper.emptycontentview.EmptyContentView; import it.niedermann.nextcloud.deck.ui.stack.EditStackDialogFragment; import it.niedermann.nextcloud.deck.ui.stack.StackAdapter; import it.niedermann.nextcloud.deck.ui.stack.StackFragment; @@ -75,7 +75,7 @@ public class MainActivity extends DrawerActivity implements @BindView(R.id.viewPager) ViewPager viewPager; @BindView(R.id.no_stacks) - RelativeLayout noStacks; + EmptyContentView emptyContentView; @BindView(R.id.add_stack) AppCompatImageButton addStackButton; @@ -397,23 +397,24 @@ public class MainActivity extends DrawerActivity implements } else { fab.hide(); addStackButton.setVisibility(View.GONE); + emptyContentView.hideDescription(); } syncManager.getStacksForBoard(account.getId(), board.getLocalId()).observe(MainActivity.this, (List<FullStack> fullStacks) -> { if (fullStacks == null) { - noStacks.setVisibility(View.VISIBLE); + emptyContentView.setVisibility(View.VISIBLE); currentBoardHasStacks = false; } else { - noStacks.setVisibility(View.GONE); + emptyContentView.setVisibility(View.GONE); currentBoardHasStacks = true; long savedStackId = sharedPreferences.getLong(sharedPreferencesLastStackForAccountAndBoard_ + account.getId() + "_" + this.currentBoardId, NO_STACKS); DeckLog.log("--- Read: shared_preference_last_stack_for_account_and_board" + account.getId() + "_" + this.currentBoardId + " | " + savedStackId); if (fullStacks.size() == 0) { - noStacks.setVisibility(View.VISIBLE); + emptyContentView.setVisibility(View.VISIBLE); currentBoardHasStacks = false; } else { - noStacks.setVisibility(View.GONE); + emptyContentView.setVisibility(View.GONE); currentBoardHasStacks = true; } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardActivityFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardActivityFragment.java index 8d7daf628..cadaa33f1 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardActivityFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardActivityFragment.java @@ -5,7 +5,6 @@ import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.RelativeLayout; import androidx.annotation.NonNull; import androidx.coordinatorlayout.widget.CoordinatorLayout; @@ -23,6 +22,7 @@ import butterknife.ButterKnife; import butterknife.Unbinder; import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.persistence.sync.SyncManager; +import it.niedermann.nextcloud.deck.ui.helper.emptycontentview.EmptyContentView; import static it.niedermann.nextcloud.deck.ui.card.CardAdapter.BUNDLE_KEY_ACCOUNT_ID; import static it.niedermann.nextcloud.deck.ui.card.CardAdapter.BUNDLE_KEY_BOARD_ID; @@ -41,7 +41,7 @@ public class CardActivityFragment extends Fragment { @BindView(R.id.activity_list) RecyclerView activitiesList; @BindView(R.id.no_activities) - RelativeLayout noActivities; + EmptyContentView emptyContentView; public CardActivityFragment() { } @@ -85,10 +85,10 @@ public class CardActivityFragment extends Fragment { syncManager.getCardByLocalId(accountId, localId).observe(CardActivityFragment.this, (fullCard) -> { syncManager.syncActivitiesForCard(fullCard.getCard()).observe(CardActivityFragment.this, (activities -> { if (activities == null || activities.size() == 0) { - noActivities.setVisibility(View.VISIBLE); + emptyContentView.setVisibility(View.VISIBLE); activitiesList.setVisibility(View.GONE); } else { - noActivities.setVisibility(View.GONE); + emptyContentView.setVisibility(View.GONE); activitiesList.setVisibility(View.VISIBLE); RecyclerView.Adapter adapter = new ActivityAdapter(activities); activitiesList.setAdapter(adapter); @@ -110,6 +110,7 @@ public class CardActivityFragment extends Fragment { } }); } else { + emptyContentView.hideDescription(); fab.hide(); } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAttachmentsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAttachmentsFragment.java index 53d8323d4..20e378062 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAttachmentsFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAttachmentsFragment.java @@ -8,7 +8,6 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.RelativeLayout; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -28,6 +27,7 @@ import it.niedermann.nextcloud.deck.R; import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.model.Attachment; import it.niedermann.nextcloud.deck.persistence.sync.SyncManager; +import it.niedermann.nextcloud.deck.ui.helper.emptycontentview.EmptyContentView; import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce; import static it.niedermann.nextcloud.deck.ui.card.CardAdapter.BUNDLE_KEY_ACCOUNT_ID; @@ -53,7 +53,7 @@ public class CardAttachmentsFragment extends Fragment implements AttachmentAdapt @BindView(R.id.attachments_list) RecyclerView attachmentsList; @BindView(R.id.no_attachments) - RelativeLayout noAttachments; + EmptyContentView emptyContentView; @Override public View onCreateView(@NonNull LayoutInflater inflater, @@ -72,10 +72,10 @@ public class CardAttachmentsFragment extends Fragment implements AttachmentAdapt syncManager = new SyncManager(Objects.requireNonNull(getActivity())); observeOnce(syncManager.getCardByLocalId(accountId, cardId), CardAttachmentsFragment.this, (fullCard) -> { if (fullCard.getAttachments().size() == 0) { - this.noAttachments.setVisibility(View.VISIBLE); + this.emptyContentView.setVisibility(View.VISIBLE); this.attachmentsList.setVisibility(View.GONE); } else { - this.noAttachments.setVisibility(View.GONE); + this.emptyContentView.setVisibility(View.GONE); this.attachmentsList.setVisibility(View.VISIBLE); syncManager.readAccount(accountId).observe(CardAttachmentsFragment.this, (Account account) -> { RecyclerView.Adapter adapter = new AttachmentAdapter(this, account, fullCard.getCard().getId(), fullCard.getAttachments()); @@ -104,6 +104,7 @@ public class CardAttachmentsFragment extends Fragment implements AttachmentAdapt }); } else { fab.hide(); + emptyContentView.hideDescription(); } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/helper/emptycontentview/EmptyContentView.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/helper/emptycontentview/EmptyContentView.java index 280382cce..cfe9524fd 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/helper/emptycontentview/EmptyContentView.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/helper/emptycontentview/EmptyContentView.java @@ -50,4 +50,8 @@ public class EmptyContentView extends RelativeLayout { image.setImageResource(a.getResourceId(R.styleable.EmptyContentView_image, R.drawable.ic_app_logo)); a.recycle(); } + + public void hideDescription() { + description.setVisibility(View.GONE); + } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java index 1678398b2..ba44e5b8d 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java @@ -6,7 +6,6 @@ import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.RelativeLayout; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; @@ -23,6 +22,7 @@ import it.niedermann.nextcloud.deck.model.full.FullCard; import it.niedermann.nextcloud.deck.model.full.FullStack; import it.niedermann.nextcloud.deck.persistence.sync.SyncManager; import it.niedermann.nextcloud.deck.ui.card.CardAdapter; +import it.niedermann.nextcloud.deck.ui.helper.emptycontentview.EmptyContentView; public class StackFragment extends Fragment { @@ -38,11 +38,12 @@ public class StackFragment extends Fragment { private long stackId; private long boardId; private Account account; + private boolean canEdit; @BindView(R.id.recycler_view) RecyclerView recyclerView; @BindView(R.id.no_cards) - RelativeLayout noCards; + EmptyContentView emptyContentView; /** * @param boardId of the current stack @@ -82,6 +83,7 @@ public class StackFragment extends Fragment { boardId = getArguments().getLong(KEY_BOARD_ID); stackId = getArguments().getLong(KEY_STACK_ID); account = (Account) getArguments().getSerializable(KEY_ACCOUNT); + canEdit = getArguments().getBoolean(KEY_HAS_EDIT_PERMISSION); activity = Objects.requireNonNull(getActivity()); @@ -101,6 +103,10 @@ public class StackFragment extends Fragment { }); } + if(!canEdit) { + emptyContentView.hideDescription(); + } + refreshView(); return view; } @@ -110,9 +116,9 @@ public class StackFragment extends Fragment { if (stack != null) { syncManager.getFullCardsForStack(account.getId(), stack.getLocalId()).observe(StackFragment.this, (List<FullCard> cards) -> { if (cards == null || cards.size() == 0) { - this.noCards.setVisibility(View.VISIBLE); + this.emptyContentView.setVisibility(View.VISIBLE); } else { - this.noCards.setVisibility(View.GONE); + this.emptyContentView.setVisibility(View.GONE); adapter.setCardList(cards); } }); diff --git a/fastlane/metadata/android/en-US/changelogs/18.txt b/fastlane/metadata/android/en-US/changelogs/18.txt index dfa9a29fd..4ba8bdd9b 100644 --- a/fastlane/metadata/android/en-US/changelogs/18.txt +++ b/fastlane/metadata/android/en-US/changelogs/18.txt @@ -1,3 +1,4 @@ - EmptyContentView is not inflateable on API level 14 (#254) - Keyboard doesn't auto pop up when creating new card (#249) -- Due date needs padding right when user has no edit permission (#242)
\ No newline at end of file +- Due date needs padding right when user has no edit permission (#242) +- Adjust empty content views depending on edit permissions (#241)
\ No newline at end of file |