Skip to content

Commit 17dc7cc

Browse files
style(permissions): M3 style for sharing permission bottom sheet
Signed-off-by: Andy Scherzinger <[email protected]>
1 parent ebb5a50 commit 17dc7cc

File tree

4 files changed

+53
-15
lines changed

4 files changed

+53
-15
lines changed

app/src/main/java/it/niedermann/owncloud/notes/share/adapter/QuickSharingPermissionsAdapter.kt

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,30 @@ package it.niedermann.owncloud.notes.share.adapter
99
import android.view.LayoutInflater
1010
import android.view.View
1111
import android.view.ViewGroup
12+
import androidx.annotation.ColorInt
1213
import androidx.recyclerview.widget.RecyclerView
14+
import com.nextcloud.android.common.ui.theme.utils.ColorRole
15+
import it.niedermann.owncloud.notes.branding.Branded
16+
import it.niedermann.owncloud.notes.branding.BrandingUtil
1317
import it.niedermann.owncloud.notes.databinding.ItemQuickSharePermissionsBinding
1418
import it.niedermann.owncloud.notes.share.model.QuickPermissionModel
1519

1620
class QuickSharingPermissionsAdapter(
1721
private val quickPermissionList: MutableList<QuickPermissionModel>,
1822
private val onPermissionChangeListener: QuickSharingPermissionViewHolder.OnPermissionChangeListener,
23+
private var color: Int = 0
1924
) :
20-
RecyclerView.Adapter<RecyclerView.ViewHolder>() {
25+
RecyclerView.Adapter<RecyclerView.ViewHolder>(), Branded {
26+
2127
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
2228
val binding = ItemQuickSharePermissionsBinding.inflate(LayoutInflater.from(parent.context), parent, false)
23-
return QuickSharingPermissionViewHolder(binding, binding.root, onPermissionChangeListener)
29+
BrandingUtil.of(color, parent.context).platform.colorImageView(binding.tvQuickShareCheckIcon, ColorRole.PRIMARY)
30+
return QuickSharingPermissionViewHolder(
31+
binding,
32+
binding.root,
33+
onPermissionChangeListener,
34+
BrandingUtil.of(color, binding.root.context)
35+
)
2436
}
2537

2638
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
@@ -33,18 +45,23 @@ class QuickSharingPermissionsAdapter(
3345
return quickPermissionList.size
3446
}
3547

48+
override fun applyBrand(color: Int) {
49+
this.color = color
50+
notifyDataSetChanged()
51+
}
52+
3653
class QuickSharingPermissionViewHolder(
3754
val binding: ItemQuickSharePermissionsBinding,
3855
itemView: View,
3956
val onPermissionChangeListener: OnPermissionChangeListener,
57+
val util: BrandingUtil,
4058
) :
4159
RecyclerView
4260
.ViewHolder(itemView) {
4361

4462
fun bindData(quickPermissionModel: QuickPermissionModel) {
4563
binding.tvQuickShareName.text = quickPermissionModel.permissionName
4664
if (quickPermissionModel.isSelected) {
47-
// viewThemeUtils.platform.colorImageView(binding.tvQuickShareCheckIcon)
4865
binding.tvQuickShareCheckIcon.visibility = View.VISIBLE
4966
} else {
5067
binding.tvQuickShareCheckIcon.visibility = View.INVISIBLE

app/src/main/java/it/niedermann/owncloud/notes/share/dialog/QuickSharingPermissionsBottomSheetDialog.java

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,14 @@
1919
import androidx.recyclerview.widget.LinearLayoutManager;
2020

2121
import com.google.android.material.bottomsheet.BottomSheetBehavior;
22-
import com.google.android.material.bottomsheet.BottomSheetDialog;
2322
import com.owncloud.android.lib.resources.shares.OCShare;
2423

2524
import java.util.ArrayList;
2625
import java.util.List;
2726

2827
import it.niedermann.owncloud.notes.R;
28+
import it.niedermann.owncloud.notes.branding.BrandedBottomSheetDialog;
29+
import it.niedermann.owncloud.notes.branding.BrandingUtil;
2930
import it.niedermann.owncloud.notes.databinding.QuickSharingPermissionsBottomSheetFragmentBinding;
3031
import it.niedermann.owncloud.notes.share.adapter.QuickSharingPermissionsAdapter;
3132
import it.niedermann.owncloud.notes.share.helper.SharingMenuHelper;
@@ -34,12 +35,16 @@
3435
/**
3536
* File Details Quick Sharing permissions options {@link android.app.Dialog} styled as a bottom sheet for main actions.
3637
*/
37-
public class QuickSharingPermissionsBottomSheetDialog extends BottomSheetDialog {
38+
public class QuickSharingPermissionsBottomSheetDialog extends BrandedBottomSheetDialog {
3839
private QuickSharingPermissionsBottomSheetFragmentBinding binding;
3940
private final QuickPermissionSharingBottomSheetActions actions;
4041
private final Activity activity;
4142
private final OCShare ocShare;
4243

44+
private QuickSharingPermissionsAdapter adapter;
45+
46+
private int color = 0;
47+
4348
public QuickSharingPermissionsBottomSheetDialog(Activity activity,
4449
QuickPermissionSharingBottomSheetActions actions,
4550
OCShare ocShare) {
@@ -59,8 +64,6 @@ protected void onCreate(Bundle savedInstanceState) {
5964
getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
6065
}
6166

62-
// viewThemeUtils.platform.themeDialog(binding.getRoot());
63-
6467
setUpRecyclerView();
6568
setOnShowListener(d ->
6669
BottomSheetBehavior.from((View) binding.getRoot().getParent())
@@ -70,7 +73,7 @@ protected void onCreate(Bundle savedInstanceState) {
7073

7174
private void setUpRecyclerView() {
7275
List<QuickPermissionModel> quickPermissionModelList = getQuickPermissionList();
73-
QuickSharingPermissionsAdapter adapter = new QuickSharingPermissionsAdapter(
76+
adapter = new QuickSharingPermissionsAdapter(
7477
quickPermissionModelList,
7578
new QuickSharingPermissionsAdapter.QuickSharingPermissionViewHolder.OnPermissionChangeListener() {
7679
@Override
@@ -82,9 +85,11 @@ public void onPermissionChanged(int position) {
8285
public void onDismissSheet() {
8386
dismiss();
8487
}
85-
}
88+
},
89+
color
8690
);
8791
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(activity);
92+
adapter.applyBrand(color);
8893
binding.rvQuickSharePermissions.setLayoutManager(linearLayoutManager);
8994
binding.rvQuickSharePermissions.setAdapter(adapter);
9095
}
@@ -145,6 +150,16 @@ protected void onStop() {
145150
binding = null;
146151
}
147152

153+
@Override
154+
public void applyBrand(int color) {
155+
this.color = color;
156+
final var util = BrandingUtil.of(color, getContext());
157+
if (adapter != null) {
158+
adapter.applyBrand(color);
159+
}
160+
util.platform.themeDialog(binding.getRoot());
161+
}
162+
148163
public interface QuickPermissionSharingBottomSheetActions {
149164
void onQuickPermissionChanged(OCShare share, int permission);
150165
}

app/src/main/res/layout/item_note_share_action.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,12 @@
1313
android:layout_width="match_parent"
1414
android:layout_height="wrap_content"
1515
android:orientation="vertical"
16-
android:paddingTop="@dimen/dialog_padding"
1716
android:background="@color/bg_default">
1817

18+
<com.google.android.material.bottomsheet.BottomSheetDragHandleView
19+
android:layout_width="match_parent"
20+
android:layout_height="wrap_content" />
21+
1922
<LinearLayout
2023
android:id="@+id/menu_share_advanced_permissions"
2124
android:layout_width="match_parent"

app/src/main/res/layout/quick_sharing_permissions_bottom_sheet_fragment.xml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,17 @@
99
xmlns:tools="http://schemas.android.com/tools"
1010
android:layout_width="match_parent"
1111
android:layout_height="wrap_content"
12-
android:paddingTop="@dimen/spacer_2x"
13-
android:paddingBottom="@dimen/spacer_2x"
14-
android:orientation="vertical">
12+
android:orientation="vertical"
13+
android:paddingBottom="@dimen/spacer_2x">
14+
15+
<com.google.android.material.bottomsheet.BottomSheetDragHandleView
16+
android:layout_width="match_parent"
17+
android:layout_height="wrap_content" />
1518

1619
<androidx.recyclerview.widget.RecyclerView
1720
android:id="@+id/rv_quick_share_permissions"
1821
android:layout_width="match_parent"
19-
tools:listitem="@layout/item_quick_share_permissions"
20-
android:layout_height="wrap_content"/>
22+
android:layout_height="wrap_content"
23+
tools:listitem="@layout/item_quick_share_permissions" />
2124

2225
</LinearLayout>

0 commit comments

Comments
 (0)