Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-notes.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/it/niedermann/owncloud/notes/manageaccounts/ManageAccountViewHolder.java')
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/manageaccounts/ManageAccountViewHolder.java43
1 files changed, 19 insertions, 24 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/manageaccounts/ManageAccountViewHolder.java b/app/src/main/java/it/niedermann/owncloud/notes/manageaccounts/ManageAccountViewHolder.java
index 3b61851a..26b1e785 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/manageaccounts/ManageAccountViewHolder.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/manageaccounts/ManageAccountViewHolder.java
@@ -1,30 +1,25 @@
package it.niedermann.owncloud.notes.manageaccounts;
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
+import static it.niedermann.owncloud.notes.branding.BrandingUtil.applyBrandToLayerDrawable;
+import static it.niedermann.owncloud.notes.shared.util.ApiVersionUtil.getPreferredApiVersion;
+
import android.graphics.drawable.LayerDrawable;
import android.net.Uri;
-import android.view.Menu;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.PopupMenu;
-import androidx.core.util.Consumer;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
-import java.util.stream.Stream;
-
import it.niedermann.nextcloud.sso.glide.SingleSignOnUrl;
import it.niedermann.owncloud.notes.R;
import it.niedermann.owncloud.notes.databinding.ItemAccountChooseBinding;
import it.niedermann.owncloud.notes.persistence.entity.Account;
-import it.niedermann.owncloud.notes.shared.model.ApiVersion;
-
-import static android.view.View.GONE;
-import static android.view.View.VISIBLE;
-import static it.niedermann.owncloud.notes.branding.BrandingUtil.applyBrandToLayerDrawable;
-import static it.niedermann.owncloud.notes.shared.util.ApiVersionUtil.getPreferredApiVersion;
public class ManageAccountViewHolder extends RecyclerView.ViewHolder {
@@ -37,10 +32,7 @@ public class ManageAccountViewHolder extends RecyclerView.ViewHolder {
public void bind(
@NonNull Account localAccount,
- @NonNull Consumer<Account> onAccountClick,
- @NonNull Consumer<Account> onAccountDelete,
- @NonNull Consumer<Account> onChangeNotesPath,
- @NonNull Consumer<Account> onChangeFileSuffix,
+ @NonNull IManageAccountsCallback callback,
boolean isCurrentAccount
) {
binding.accountName.setText(localAccount.getUserName());
@@ -50,28 +42,31 @@ public class ManageAccountViewHolder extends RecyclerView.ViewHolder {
.error(R.drawable.ic_account_circle_grey_24dp)
.apply(RequestOptions.circleCropTransform())
.into(binding.accountItemAvatar);
- itemView.setOnClickListener((v) -> onAccountClick.accept(localAccount));
+ itemView.setOnClickListener((v) -> callback.onSelect(localAccount));
binding.accountContextMenu.setVisibility(VISIBLE);
binding.accountContextMenu.setOnClickListener((v) -> {
final var popup = new PopupMenu(itemView.getContext(), v);
popup.inflate(R.menu.menu_account);
+
final var preferredApiVersion = getPreferredApiVersion(localAccount.getApiVersion());
- if (preferredApiVersion != null && !preferredApiVersion.supportsSettings()) {
- final var menu = popup.getMenu();
- Stream.of(
- R.id.notes_path,
- R.id.file_suffix
- ).forEach((i) -> menu.removeItem(menu.findItem(i).getItemId()));
+
+ if (preferredApiVersion == null || !preferredApiVersion.supportsFileSuffixChange()) {
+ popup.getMenu().removeItem(popup.getMenu().findItem(R.id.file_suffix).getItemId());
+ }
+
+ if (preferredApiVersion == null || !preferredApiVersion.supportsNotesPathChange()) {
+ popup.getMenu().removeItem(popup.getMenu().findItem(R.id.notes_path).getItemId());
}
+
popup.setOnMenuItemClickListener(item -> {
if (item.getItemId() == R.id.notes_path) {
- onChangeNotesPath.accept(localAccount);
+ callback.onChangeNotesPath(localAccount);
return true;
} else if (item.getItemId() == R.id.file_suffix) {
- onChangeFileSuffix.accept(localAccount);
+ callback.onChangeFileSuffix(localAccount);
return true;
} else if (item.getItemId() == R.id.delete) {
- onAccountDelete.accept(localAccount);
+ callback.onDelete(localAccount);
return true;
}
return false;