OSDN Git Service

Add a "Do not show" checkbox in support disclaimer dialog.
authorFan Zhang <zhfan@google.com>
Fri, 17 Jun 2016 18:20:52 +0000 (11:20 -0700)
committerFan Zhang <zhfan@google.com>
Fri, 17 Jun 2016 19:56:35 +0000 (12:56 -0700)
Bug: 28762823
Change-Id: I8fe0a82efbb47c8b2f9e34480005fa108583b203

res/layout/support_disclaimer_content.xml
res/values/strings.xml
src/com/android/settings/overlay/SupportFeatureProvider.java
src/com/android/settings/support/SupportDisclaimerDialogFragment.java

index c7a5689..4fed865 100644 (file)
         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>
index 10d8db7..91f6af4 100644 (file)
     <!-- 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 -->
index 245aba3..a45b8c4 100644 (file)
@@ -59,6 +59,11 @@ public interface SupportFeatureProvider {
     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);
index 98f34bc..6387337 100644 (file)
@@ -29,6 +29,7 @@ import android.text.method.LinkMovementMethod;
 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 @@ public final class SupportDisclaimerDialogFragment extends DialogFragment implem
         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));