diff options
author | stefan-niedermann <info@niedermann.it> | 2019-10-20 01:30:26 +0300 |
---|---|---|
committer | stefan-niedermann <info@niedermann.it> | 2019-10-20 01:30:26 +0300 |
commit | 6291c3321558582cfd7a85db6749bcd2b9b773ec (patch) | |
tree | 538454dcf762bb67bccda80b8a5d8f9d62b3d0c4 /app/src/main | |
parent | 267b77cd8b0aed1118790d530866d5cf012b89c8 (diff) |
Fill user object on create ACL
Diffstat (limited to 'app/src/main')
3 files changed, 39 insertions, 5 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/AccessControlAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/AccessControlAdapter.java index ca9fbec3d..c723a26a7 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/AccessControlAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/AccessControlAdapter.java @@ -10,6 +10,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.appcompat.widget.AppCompatImageButton; import androidx.appcompat.widget.SwitchCompat; import androidx.recyclerview.widget.RecyclerView; @@ -64,6 +65,8 @@ public class AccessControlAdapter extends RecyclerView.Adapter<AccessControlAdap holder.username.setText(ac.getUser().getDisplayname()); holder.username.setCompoundDrawables(null, null, ac.getStatus() == DBStatus.LOCAL_EDITED.getId() ? holder.syncIcon : null, null); + // TODO remove from list when deleted + holder.deleteButton.setOnClickListener((v) -> accessControlChangedListener.deleteAccessControl(ac)); holder.switchEdit.setChecked(ac.isPermissionEdit()); holder.switchEdit.setOnCheckedChangeListener((buttonView, isChecked) -> { @@ -97,6 +100,8 @@ public class AccessControlAdapter extends RecyclerView.Adapter<AccessControlAdap ImageView avatar; @BindView(R.id.username) TextView username; + @BindView(R.id.delete) + AppCompatImageButton deleteButton; @BindView(R.id.permission_edit) SwitchCompat switchEdit; @BindView(R.id.permission_manage) @@ -112,5 +117,7 @@ public class AccessControlAdapter extends RecyclerView.Adapter<AccessControlAdap public interface AccessControlChangedListener { void updateAccessControl(AccessControl accessControl); + + void deleteAccessControl(AccessControl ac); } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/AccessControlDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/AccessControlDialogFragment.java index a63179169..c36a9b431 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/AccessControlDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/AccessControlDialogFragment.java @@ -5,6 +5,7 @@ import android.app.Dialog; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; +import android.widget.Toast; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; @@ -34,6 +35,7 @@ public class AccessControlDialogFragment extends DialogFragment implements private long boardId; private SyncManager syncManager; private UserAutoCompleteAdapter userAutoCompleteAdapter; + private View view; @BindView(R.id.peopleList) RecyclerView peopleList; @@ -71,6 +73,8 @@ public class AccessControlDialogFragment extends DialogFragment implements }); } + this.view = view; + return dialogBuilder .setView(view) .setPositiveButton(R.string.simple_close, null) @@ -94,12 +98,19 @@ public class AccessControlDialogFragment extends DialogFragment implements } @Override + public void deleteAccessControl(AccessControl ac) { + // TODO implement in syncManager! + Toast.makeText(getContext(), "Deleting user permisions is not yet supported.", Toast.LENGTH_LONG).show(); + } + + @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { AccessControl ac = new AccessControl(); ac.setPermissionEdit(true); ac.setBoardId(boardId); ac.setType(0L); // https://github.com/nextcloud/deck/blob/master/docs/API.md#post-boardsboardidacl---add-new-acl-rule ac.setUserId(userAutoCompleteAdapter.getItem(position).getLocalId()); + ac.setUser(userAutoCompleteAdapter.getItem(position)); syncManager.createAccessControl(accountId, ac); people.setText(""); } diff --git a/app/src/main/res/layout/item_access_control.xml b/app/src/main/res/layout/item_access_control.xml index c2f89f64a..0589b5d9e 100644 --- a/app/src/main/res/layout/item_access_control.xml +++ b/app/src/main/res/layout/item_access_control.xml @@ -21,15 +21,31 @@ android:layout_height="wrap_content" android:orientation="vertical"> - <TextView - android:id="@+id/username" + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:textSize="16sp" android:layout_marginBottom="@dimen/standard_half_margin" - tools:text="Username" - tools:drawableEnd="@drawable/ic_sync_blue_24dp"/> + android:orientation="horizontal"> + <TextView + android:id="@+id/username" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:layout_gravity="center" + android:textSize="16sp" + tools:drawableEnd="@drawable/ic_sync_blue_24dp" + tools:text="Username" /> + + <androidx.appcompat.widget.AppCompatImageButton + android:id="@+id/delete" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="0dp" + android:layout_gravity="center" + android:background="?android:selectableItemBackground" + app:srcCompat="@drawable/ic_delete_black_24dp" /> + </LinearLayout> <com.google.android.flexbox.FlexboxLayout android:layout_width="match_parent" android:layout_height="wrap_content" |