Stop controller from steal preference clicks

Test: atest
Fixes: 150175360
Change-Id: Ia22058df0ddbd1a274a508e2600d12aa1b67a343
diff --git a/src/com/android/settings/notification/app/ConversationPromotePreferenceController.java b/src/com/android/settings/notification/app/ConversationPromotePreferenceController.java
index 5ef9246..766e4aa 100644
--- a/src/com/android/settings/notification/app/ConversationPromotePreferenceController.java
+++ b/src/com/android/settings/notification/app/ConversationPromotePreferenceController.java
@@ -62,7 +62,7 @@
 
     @Override
     public boolean handlePreferenceTreeClick(Preference preference) {
-        if (mChannel == null) {
+        if (mChannel == null || !KEY.equals(preference.getKey())) {
             return false;
         }
         mChannel.setDemoted(false);
diff --git a/tests/robotests/src/com/android/settings/notification/app/ConversationPromotePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/ConversationPromotePreferenceControllerTest.java
index 725be3d..9b60c97 100644
--- a/tests/robotests/src/com/android/settings/notification/app/ConversationPromotePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/ConversationPromotePreferenceControllerTest.java
@@ -20,9 +20,11 @@
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -122,4 +124,20 @@
 
         verify(mFragment).getActivity();
     }
+
+    @Test
+    public void testHandlePreferenceClick_wrongKey() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_DEFAULT);
+        channel.setConversationId("a", "a");
+        channel.setDemoted(true);
+        mController.onResume(appRow, channel, null, null, null, null);
+
+        Preference pref = mock(Preference.class);
+        when(pref.getKey()).thenReturn("wrong");
+        assertFalse(mController.handlePreferenceTreeClick(pref));
+
+        verify(mBackend, never()).updateChannel(eq(null), anyInt(), any());
+        verify(mFragment, never()).getActivity();
+    }
 }