From cafc27d94db32eea0b19806a7e1f4cc34630ce22 Mon Sep 17 00:00:00 2001
From: Christian Schneppe <christian.schneppe@pix-art.de>
Date: Mon, 11 May 2020 20:02:35 +0200
Subject: [PATCH] move channel discovery choice to ChannelDiscoveryActivity

---
 .../ui/ChannelDiscoveryActivity.java          | 20 +++++++++++++++++++
 .../res/menu/channel_discovery_activity.xml   | 16 +++++++++++++++
 src/main/res/values/arrays.xml                |  9 ---------
 src/main/res/xml/preferences.xml              |  7 -------
 4 files changed, 36 insertions(+), 16 deletions(-)

diff --git a/src/main/java/eu/siacs/conversations/ui/ChannelDiscoveryActivity.java b/src/main/java/eu/siacs/conversations/ui/ChannelDiscoveryActivity.java
index e94cfd92a..2d81aeb9e 100644
--- a/src/main/java/eu/siacs/conversations/ui/ChannelDiscoveryActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/ChannelDiscoveryActivity.java
@@ -48,6 +48,8 @@ public class ChannelDiscoveryActivity extends XmppActivity implements MenuItem.O
     private ActivityChannelDiscoveryBinding binding;
     private MenuItem mMenuSearchView;
     private EditText mSearchEditText;
+    private static String jabberNetwork = "JABBER_NETWORK";
+    private static String localServer = "LOCAL_SERVER";
 
     private ChannelDiscoveryService.Method method = ChannelDiscoveryService.Method.LOCAL_SERVER;
 
@@ -141,6 +143,24 @@ public class ChannelDiscoveryActivity extends XmppActivity implements MenuItem.O
         return true;
     }
 
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case android.R.id.home:
+                finish();
+                break;
+            case R.id.jabber_network:
+                getPreferences().edit().putString("channel_discovery_method", jabberNetwork).apply();
+                recreate();
+                break;
+            case R.id.local_server:
+                getPreferences().edit().putString("channel_discovery_method", localServer).apply();
+                recreate();
+                break;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
     private void toggleLoadingScreen() {
         adapter.submitList(Collections.emptyList());
         binding.progressBar.setVisibility(View.VISIBLE);
diff --git a/src/main/res/menu/channel_discovery_activity.xml b/src/main/res/menu/channel_discovery_activity.xml
index 924953727..5df90dbe7 100644
--- a/src/main/res/menu/channel_discovery_activity.xml
+++ b/src/main/res/menu/channel_discovery_activity.xml
@@ -8,6 +8,22 @@
         android:title="@string/search"
         app:actionLayout="@layout/actionview_search"
         app:showAsAction="collapseActionView|always" />
+
+    <item
+        android:id="@+id/channel_discovery_method"
+        android:orderInCategory="85"
+        android:title="@string/pref_channel_discovery"
+        app:showAsAction="never">
+        <menu>
+            <item
+                android:id="@+id/jabber_network"
+                android:title="@string/jabber_network" />
+            <item
+                android:id="@+id/local_server"
+                android:title="@string/local_server" />
+        </menu>
+    </item>
+
     <item
         android:id="@+id/action_settings"
         android:orderInCategory="100"
diff --git a/src/main/res/values/arrays.xml b/src/main/res/values/arrays.xml
index 4e2065d63..fff1f18b7 100644
--- a/src/main/res/values/arrays.xml
+++ b/src/main/res/values/arrays.xml
@@ -134,15 +134,6 @@
         <item>@string/large</item>
     </string-array>
 
-    <string-array name="channel_discovery_entries">
-        <item>@string/jabber_network</item>
-        <item>@string/local_server</item>
-    </string-array>
-    <string-array name="channel_discover_values">
-        <item>JABBER_NETWORK</item>
-        <item>LOCAL_SERVER</item>
-    </string-array>
-
     <string-array name="grace_periods">
         <item>@string/gp_disable</item>
         <item>@string/gp_short</item>
diff --git a/src/main/res/xml/preferences.xml b/src/main/res/xml/preferences.xml
index ea08409bd..1d7d1a6fb 100644
--- a/src/main/res/xml/preferences.xml
+++ b/src/main/res/xml/preferences.xml
@@ -392,13 +392,6 @@
             android:key="use_invidious"
             android:summary="@string/pref_use_invidious_summary"
             android:title="@string/pref_use_invidious" />
-        <ListPreference
-            android:defaultValue="@string/default_channel_discovery"
-            android:entries="@array/channel_discovery_entries"
-            android:entryValues="@array/channel_discover_values"
-            android:key="channel_discovery_method"
-            android:summary="@string/pref_channel_discovery_summary"
-            android:title="@string/pref_channel_discovery" />
         <PreferenceCategory android:title="@string/pref_create_backup">
             <Preference
                 android:key="create_backup"