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