Add a "Do not show" checkbox in support disclaimer dialog.
Bug: 28762823
Change-Id: I8fe0a82efbb47c8b2f9e34480005fa108583b203
diff --git a/res/layout/support_disclaimer_content.xml b/res/layout/support_disclaimer_content.xml
index c7a5689..4fed865 100644
--- a/res/layout/support_disclaimer_content.xml
+++ b/res/layout/support_disclaimer_content.xml
@@ -24,6 +24,14 @@
android:id="@+id/support_disclaimer_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:paddingBottom="24dp"
android:text="@string/support_disclaimer_content"/>
+ <CheckBox
+ android:id="@+id/support_disclaimer_do_not_show_again"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/support_disclaimer_do_not_show"
+ android:textColor="?android:attr/textColorSecondary"/>
+
</LinearLayout>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 10d8db7..91f6af4 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -7545,6 +7545,9 @@
<!-- Dialog content displayed before initiating real time support [CHAR LIMIT=NONE]-->
<string name="support_disclaimer_content">To help address your issue quickly, we need system information for diagnosis.</string>
+ <!-- Checkbox text, when checked dialog will not show again [CHAR LIMIT=80] -->
+ <string name="support_disclaimer_do_not_show">Do not show again</string>
+
<!-- [CHAR LIMIT=60] Title of work profile setting page -->
<string name="managed_profile_settings_title">Work profile settings</string>
<!-- [CHAR LIMIT=60] The preference title for enabling cross-profile remote contact search -->
diff --git a/src/com/android/settings/overlay/SupportFeatureProvider.java b/src/com/android/settings/overlay/SupportFeatureProvider.java
index 245aba3..a45b8c4 100644
--- a/src/com/android/settings/overlay/SupportFeatureProvider.java
+++ b/src/com/android/settings/overlay/SupportFeatureProvider.java
@@ -59,6 +59,11 @@
boolean shouldShowDisclaimerDialog(Context context);
/**
+ * Sets whether or not a disclaimer dialog should be displayed.
+ */
+ void setShouldShowDisclaimerDialog(Context context, boolean shouldShow);
+
+ /**
* Returns an {@link Account} that's eligible for support options.
*/
Account getSupportEligibleAccount(Context context);
diff --git a/src/com/android/settings/support/SupportDisclaimerDialogFragment.java b/src/com/android/settings/support/SupportDisclaimerDialogFragment.java
index 98f34bc..6387337 100644
--- a/src/com/android/settings/support/SupportDisclaimerDialogFragment.java
+++ b/src/com/android/settings/support/SupportDisclaimerDialogFragment.java
@@ -29,6 +29,7 @@
import android.text.style.URLSpan;
import android.view.LayoutInflater;
import android.view.View;
+import android.widget.CheckBox;
import android.widget.TextView;
import com.android.settings.R;
@@ -67,15 +68,18 @@
disclaimer.setMovementMethod(LinkMovementMethod.getInstance());
stripUnderlines((Spannable) disclaimer.getText());
return builder
- .setView(content)
- .create();
+ .setView(content)
+ .create();
}
@Override
public void onClick(DialogInterface dialog, int which) {
final Activity activity = getActivity();
+ final CheckBox doNotShow =
+ (CheckBox) getDialog().findViewById(R.id.support_disclaimer_do_not_show_again);
final SupportFeatureProvider supportFeatureProvider =
FeatureFactory.getFactory(activity).getSupportFeatureProvider(activity);
+ supportFeatureProvider.setShouldShowDisclaimerDialog(getContext(), !doNotShow.isChecked());
final Bundle bundle = getArguments();
supportFeatureProvider.startSupport(getActivity(),
(Account) bundle.getParcelable(EXTRA_ACCOUNT), bundle.getInt(EXTRA_TYPE));