From 20fe837022d78ca47fc6f0b5f4a3ae76b7dc164d Mon Sep 17 00:00:00 2001 From: Alan Evans Date: Fri, 25 Sep 2020 12:32:48 -0300 Subject: [PATCH] Enable and disable group link options with first switch. --- .../ShareableGroupLinkDialogFragment.java | 10 ++++++++++ .../org/thoughtcrime/securesms/util/ViewUtil.java | 13 +++++++++++++ .../color/text_color_accent_enabled_selector.xml | 5 +++++ .../color/text_color_primary_enabled_selector.xml | 5 +++++ .../text_color_secondary_enabled_selector.xml | 5 +++++ .../shareable_group_link_dialog_fragment.xml | 15 +++++++++------ app/src/main/res/values/attrs.xml | 1 + app/src/main/res/values/themes.xml | 2 ++ 8 files changed, 50 insertions(+), 6 deletions(-) create mode 100644 app/src/main/res/color/text_color_accent_enabled_selector.xml create mode 100644 app/src/main/res/color/text_color_primary_enabled_selector.xml create mode 100644 app/src/main/res/color/text_color_secondary_enabled_selector.xml diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/sharablegrouplink/ShareableGroupLinkDialogFragment.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/sharablegrouplink/ShareableGroupLinkDialogFragment.java index 538edba88d..81262831e6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/sharablegrouplink/ShareableGroupLinkDialogFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/sharablegrouplink/ShareableGroupLinkDialogFragment.java @@ -18,6 +18,7 @@ import androidx.lifecycle.ViewModelProviders; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.util.ThemeUtil; +import org.thoughtcrime.securesms.util.ViewUtil; import org.thoughtcrime.securesms.util.views.SimpleProgressDialog; public final class ShareableGroupLinkDialogFragment extends DialogFragment { @@ -78,6 +79,8 @@ public final class ShareableGroupLinkDialogFragment extends DialogFragment { View shareRow = view.findViewById(R.id.shareable_group_link_share_row); View resetLinkRow = view.findViewById(R.id.shareable_group_link_reset_link_row); View approveNewMembersRow = view.findViewById(R.id.shareable_group_link_approve_new_members_row); + View membersSectionHeader = view.findViewById(R.id.shareable_group_link_member_requests_section_header); + View descriptionRow = view.findViewById(R.id.shareable_group_link_display_row2); Toolbar toolbar = view.findViewById(R.id.shareable_group_link_toolbar); @@ -87,6 +90,13 @@ public final class ShareableGroupLinkDialogFragment extends DialogFragment { shareableGroupLinkSwitch.setChecked(groupLink.isEnabled()); approveNewMembersSwitch.setChecked(groupLink.isRequiresApproval()); shareableGroupLinkDisplay.setText(formatForFullWidthWrapping(groupLink.getUrl())); + + ViewUtil.setEnabledRecursive(shareableGroupLinkDisplay, groupLink.isEnabled()); + ViewUtil.setEnabledRecursive(shareRow, groupLink.isEnabled()); + ViewUtil.setEnabledRecursive(resetLinkRow, groupLink.isEnabled()); + ViewUtil.setEnabledRecursive(membersSectionHeader, groupLink.isEnabled()); + ViewUtil.setEnabledRecursive(approveNewMembersRow, groupLink.isEnabled()); + ViewUtil.setEnabledRecursive(descriptionRow, groupLink.isEnabled()); }); shareRow.setOnClickListener(v -> GroupLinkBottomSheetDialogFragment.show(requireFragmentManager(), groupId)); diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/ViewUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/ViewUtil.java index 7c411a01ca..97466dbb24 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/ViewUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/ViewUtil.java @@ -263,4 +263,17 @@ public final class ViewUtil { InputMethodManager inputManager = (InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow(view.getWindowToken(), 0); } + + /** + * Enables or disables a view and all child views recursively. + */ + public static void setEnabledRecursive(@NonNull View view, boolean enabled) { + view.setEnabled(enabled); + if (view instanceof ViewGroup) { + ViewGroup viewGroup = (ViewGroup) view; + for (int i = 0; i < viewGroup.getChildCount(); i++) { + setEnabledRecursive(viewGroup.getChildAt(i), enabled); + } + } + } } diff --git a/app/src/main/res/color/text_color_accent_enabled_selector.xml b/app/src/main/res/color/text_color_accent_enabled_selector.xml new file mode 100644 index 0000000000..4a6da29d08 --- /dev/null +++ b/app/src/main/res/color/text_color_accent_enabled_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/color/text_color_primary_enabled_selector.xml b/app/src/main/res/color/text_color_primary_enabled_selector.xml new file mode 100644 index 0000000000..2fad5b76ea --- /dev/null +++ b/app/src/main/res/color/text_color_primary_enabled_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/color/text_color_secondary_enabled_selector.xml b/app/src/main/res/color/text_color_secondary_enabled_selector.xml new file mode 100644 index 0000000000..199eca0802 --- /dev/null +++ b/app/src/main/res/color/text_color_secondary_enabled_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/shareable_group_link_dialog_fragment.xml b/app/src/main/res/layout/shareable_group_link_dialog_fragment.xml index 241df3f256..72e6c7c6a2 100644 --- a/app/src/main/res/layout/shareable_group_link_dialog_fragment.xml +++ b/app/src/main/res/layout/shareable_group_link_dialog_fragment.xml @@ -90,7 +90,7 @@ android:text="@string/ShareableGroupLinkDialogFragment__share" android:textAlignment="viewStart" android:textAppearance="@style/TextAppearance.Signal.Body2" - android:textColor="?title_text_color_secondary" + android:textColor="@color/text_color_secondary_enabled_selector" tools:text="https://signal.group/#CjQKIKUBM1ER-gTjdWwktuuHJk4t-2Iujh0zkXl2VBB3bASIEhDwi34i-5OMAl5sFYt9VElW" /> @@ -115,12 +115,13 @@ android:layout_gravity="center_horizontal" android:layout_weight="1" android:drawablePadding="8dp" + android:drawableTint="@color/text_color_primary_enabled_selector" android:enabled="false" android:gravity="center_vertical|start" android:text="@string/ShareableGroupLinkDialogFragment__share" android:textAlignment="viewStart" android:textAppearance="@style/TextAppearance.Signal.Body2" - android:textColor="?title_text_color_primary" + android:textColor="@color/text_color_primary_enabled_selector" app:drawableStartCompat="?share_icon" /> @@ -145,12 +146,13 @@ android:layout_gravity="center" android:layout_weight="1" android:drawablePadding="8dp" + android:drawableTint="@color/text_color_primary_enabled_selector" android:enabled="false" android:gravity="center_vertical|start" android:text="@string/ShareableGroupLinkDialogFragment__reset_link" android:textAlignment="viewStart" android:textAppearance="@style/TextAppearance.Signal.Body2" - android:textColor="?title_text_color_primary" + android:textColor="@color/text_color_primary_enabled_selector" app:drawableStartCompat="?reset_link_icon" /> @@ -163,7 +165,7 @@ android:layout_marginTop="36dp" android:text="@string/ShareableGroupLinkDialogFragment__member_requests" android:textAppearance="@style/TextAppearance.Signal.Body2.Bold" - android:textColor="?attr/colorAccent" + android:textColor="@color/text_color_accent_enabled_selector" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/shareable_group_link_reset_link_row" /> @@ -189,7 +191,8 @@ android:gravity="center_vertical|start" android:text="@string/ShareableGroupLinkDialogFragment__approve_new_members" android:textAlignment="viewStart" - android:textAppearance="@style/TextAppearance.Signal.Body2" /> + android:textAppearance="@style/TextAppearance.Signal.Body2" + android:textColor="@color/text_color_primary_enabled_selector" /> + android:textColor="@color/text_color_secondary_enabled_selector" /> diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 6b7a0c486a..8d75504cae 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -9,6 +9,7 @@ + diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 2100fc8058..0cf0466bc1 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -172,6 +172,7 @@ @color/core_grey_90 @color/core_grey_60 + @color/core_grey_25 @style/Theme.Design.Light.BottomSheetDialog @@ -510,6 +511,7 @@ @color/core_grey_05 @color/core_grey_25 + @color/core_grey_60 @style/Theme.Design.BottomSheetDialog