Merge "Conditionally sets OnCreateContextMenuListener" into androidx-master-dev
diff --git a/preference/src/androidTest/AndroidManifest.xml b/preference/src/androidTest/AndroidManifest.xml
index eed63b4..936508e 100644
--- a/preference/src/androidTest/AndroidManifest.xml
+++ b/preference/src/androidTest/AndroidManifest.xml
@@ -19,6 +19,6 @@
     <uses-sdk android:targetSdkVersion="${target-sdk-version}"/>
     <application>
         <activity android:name="androidx.preference.tests.helpers.PreferenceTestHelperActivity"
-                  android:theme="@style/Theme.AppCompat.Light.DarkActionBar"/>
+                  android:theme="@style/PreferenceTestTheme"/>
     </application>
 </manifest>
diff --git a/preference/src/androidTest/res/values/styles.xml b/preference/src/androidTest/res/values/styles.xml
new file mode 100644
index 0000000..6b24f56
--- /dev/null
+++ b/preference/src/androidTest/res/values/styles.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright 2018 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+<resources>
+    <style name="PreferenceTestTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
+        <item name="android:windowActionBar">false</item>
+        <item name="android:windowAnimationStyle">@null</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowFullscreen">true</item>
+        <item name="android:windowNoTitle">true</item>
+    </style>
+</resources>
diff --git a/preference/src/main/java/androidx/preference/Preference.java b/preference/src/main/java/androidx/preference/Preference.java
index 8f5a1dc..5450708 100644
--- a/preference/src/main/java/androidx/preference/Preference.java
+++ b/preference/src/main/java/androidx/preference/Preference.java
@@ -585,7 +585,9 @@
         holder.setDividerAllowedAbove(mAllowDividerAbove);
         holder.setDividerAllowedBelow(mAllowDividerBelow);
 
-        holder.itemView.setOnCreateContextMenuListener(this);
+        if (isCopyingEnabled()) {
+            holder.itemView.setOnCreateContextMenuListener(this);
+        }
     }
 
     @Override
@@ -817,8 +819,10 @@
      *                          preference is disabled.
      */
     public void setShouldDisableView(boolean shouldDisableView) {
-        mShouldDisableView = shouldDisableView;
-        notifyChanged();
+        if (mShouldDisableView != shouldDisableView) {
+            mShouldDisableView = shouldDisableView;
+            notifyChanged();
+        }
     }
 
     /**
@@ -1031,8 +1035,10 @@
      * @attr ref R.styleable#Preference_android_iconSpaceReserved
      */
     public void setIconSpaceReserved(boolean iconSpaceReserved) {
-        mIconSpaceReserved = iconSpaceReserved;
-        notifyChanged();
+        if (mIconSpaceReserved != iconSpaceReserved) {
+            mIconSpaceReserved = iconSpaceReserved;
+            notifyChanged();
+        }
     }
 
     /**
@@ -1056,7 +1062,10 @@
      */
     @RestrictTo(LIBRARY_GROUP)
     public void setCopyingEnabled(boolean enabled) {
-        mCopyingEnabled = enabled;
+        if (mCopyingEnabled != enabled) {
+            mCopyingEnabled = enabled;
+            notifyChanged();
+        }
     }
 
     /**
diff --git a/preference/src/main/java/androidx/preference/PreferenceCategory.java b/preference/src/main/java/androidx/preference/PreferenceCategory.java
index 4ff6811..435c7ae 100644
--- a/preference/src/main/java/androidx/preference/PreferenceCategory.java
+++ b/preference/src/main/java/androidx/preference/PreferenceCategory.java
@@ -36,7 +36,6 @@
  * </div>
  */
 public class PreferenceCategory extends PreferenceGroup {
-    private static final String TAG = "PreferenceCategory";
 
     public PreferenceCategory(
             Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {