diff --git a/src/org/kde/kdeconnect/Plugins/MprisReceiverPlugin/MprisReceiverPlugin.java b/src/org/kde/kdeconnect/Plugins/MprisReceiverPlugin/MprisReceiverPlugin.java index 7f4b1cc7..ba77592a 100644 --- a/src/org/kde/kdeconnect/Plugins/MprisReceiverPlugin/MprisReceiverPlugin.java +++ b/src/org/kde/kdeconnect/Plugins/MprisReceiverPlugin/MprisReceiverPlugin.java @@ -35,7 +35,7 @@ import org.kde.kdeconnect.NetworkPacket; import org.kde.kdeconnect.Plugins.NotificationsPlugin.NotificationReceiver; import org.kde.kdeconnect.Plugins.Plugin; import org.kde.kdeconnect.Plugins.PluginFactory; -import org.kde.kdeconnect.UserInterface.AlertDialogFragment; +import org.kde.kdeconnect.UserInterface.MainActivity; import org.kde.kdeconnect.UserInterface.StartActivityAlertDialogFragment; import org.kde.kdeconnect_tp.R; @@ -44,6 +44,7 @@ import java.util.List; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; +import androidx.fragment.app.DialogFragment; @PluginFactory.LoadablePlugin @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP_MR1) @@ -245,7 +246,7 @@ public class MprisReceiverPlugin extends Plugin { } @Override - public AlertDialogFragment getPermissionExplanationDialog(int requestCode) { + public DialogFragment getPermissionExplanationDialog() { return new StartActivityAlertDialogFragment.Builder() .setTitle(R.string.pref_plugin_mpris) .setMessage(R.string.no_permission_mprisreceiver) @@ -253,7 +254,7 @@ public class MprisReceiverPlugin extends Plugin { .setNegativeButton(R.string.cancel) .setIntentAction("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS") .setStartForResult(true) - .setRequestCode(requestCode) + .setRequestCode(MainActivity.RESULT_NEEDS_RELOAD) .create(); } diff --git a/src/org/kde/kdeconnect/Plugins/NotificationsPlugin/NotificationsPlugin.java b/src/org/kde/kdeconnect/Plugins/NotificationsPlugin/NotificationsPlugin.java index c960b382..05fc0c3e 100644 --- a/src/org/kde/kdeconnect/Plugins/NotificationsPlugin/NotificationsPlugin.java +++ b/src/org/kde/kdeconnect/Plugins/NotificationsPlugin/NotificationsPlugin.java @@ -47,13 +47,14 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import androidx.core.app.NotificationCompat; +import androidx.fragment.app.DialogFragment; import org.json.JSONArray; import org.kde.kdeconnect.Helpers.AppsHelper; import org.kde.kdeconnect.NetworkPacket; import org.kde.kdeconnect.Plugins.Plugin; import org.kde.kdeconnect.Plugins.PluginFactory; -import org.kde.kdeconnect.UserInterface.AlertDialogFragment; +import org.kde.kdeconnect.UserInterface.MainActivity; import org.kde.kdeconnect.UserInterface.PluginSettingsFragment; import org.kde.kdeconnect.UserInterface.StartActivityAlertDialogFragment; import org.kde.kdeconnect_tp.R; @@ -567,7 +568,7 @@ public class NotificationsPlugin extends Plugin implements NotificationReceiver. } @Override - public AlertDialogFragment getPermissionExplanationDialog(int requestCode) { + public DialogFragment getPermissionExplanationDialog() { return new StartActivityAlertDialogFragment.Builder() .setTitle(R.string.pref_plugin_notifications) .setMessage(R.string.no_permissions) @@ -575,7 +576,7 @@ public class NotificationsPlugin extends Plugin implements NotificationReceiver. .setNegativeButton(R.string.cancel) .setIntentAction("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS") .setStartForResult(true) - .setRequestCode(requestCode) + .setRequestCode(MainActivity.RESULT_NEEDS_RELOAD) .create(); } diff --git a/src/org/kde/kdeconnect/Plugins/Plugin.java b/src/org/kde/kdeconnect/Plugins/Plugin.java index d07a56bd..eac46b7d 100644 --- a/src/org/kde/kdeconnect/Plugins/Plugin.java +++ b/src/org/kde/kdeconnect/Plugins/Plugin.java @@ -29,12 +29,14 @@ import android.os.Build; import org.kde.kdeconnect.Device; import org.kde.kdeconnect.NetworkPacket; import org.kde.kdeconnect.UserInterface.AlertDialogFragment; +import org.kde.kdeconnect.UserInterface.MainActivity; import org.kde.kdeconnect.UserInterface.PermissionsAlertDialogFragment; import org.kde.kdeconnect.UserInterface.PluginSettingsFragment; import org.kde.kdeconnect_tp.R; import androidx.annotation.StringRes; import androidx.core.content.ContextCompat; +import androidx.fragment.app.DialogFragment; public abstract class Plugin { protected Device device; @@ -207,14 +209,14 @@ public abstract class Plugin { return true; } - private PermissionsAlertDialogFragment requestPermissionDialog(final String[] permissions, @StringRes int reason, int requestCode) { + private PermissionsAlertDialogFragment requestPermissionDialog(final String[] permissions, @StringRes int reason) { return new PermissionsAlertDialogFragment.Builder() .setTitle(getDisplayName()) .setMessage(reason) .setPositiveButton(R.string.ok) .setNegativeButton(R.string.cancel) .setPermissions(permissions) - .setRequestCode(requestCode) + .setRequestCode(MainActivity.RESULT_NEEDS_RELOAD) .create(); } @@ -223,12 +225,12 @@ public abstract class Plugin { * the problem (and how to fix it, if possible) to the user. */ - public AlertDialogFragment getPermissionExplanationDialog(int requestCode) { - return requestPermissionDialog(getRequiredPermissions(), permissionExplanation, requestCode); + public DialogFragment getPermissionExplanationDialog() { + return requestPermissionDialog(getRequiredPermissions(), permissionExplanation); } - public AlertDialogFragment getOptionalPermissionExplanationDialog(int requestCode) { - return requestPermissionDialog(getOptionalPermissions(), optionalPermissionExplanation, requestCode); + public AlertDialogFragment getOptionalPermissionExplanationDialog() { + return requestPermissionDialog(getOptionalPermissions(), optionalPermissionExplanation); } public boolean checkRequiredPermissions() { diff --git a/src/org/kde/kdeconnect/Plugins/RemoteKeyboardPlugin/RemoteKeyboardPlugin.java b/src/org/kde/kdeconnect/Plugins/RemoteKeyboardPlugin/RemoteKeyboardPlugin.java index 5ae117c7..69cb4368 100644 --- a/src/org/kde/kdeconnect/Plugins/RemoteKeyboardPlugin/RemoteKeyboardPlugin.java +++ b/src/org/kde/kdeconnect/Plugins/RemoteKeyboardPlugin/RemoteKeyboardPlugin.java @@ -35,7 +35,7 @@ import android.view.inputmethod.InputConnection; import org.kde.kdeconnect.NetworkPacket; import org.kde.kdeconnect.Plugins.Plugin; import org.kde.kdeconnect.Plugins.PluginFactory; -import org.kde.kdeconnect.UserInterface.AlertDialogFragment; +import org.kde.kdeconnect.UserInterface.MainActivity; import org.kde.kdeconnect.UserInterface.StartActivityAlertDialogFragment; import org.kde.kdeconnect_tp.R; @@ -44,6 +44,7 @@ import java.util.concurrent.locks.ReentrantLock; import androidx.core.content.ContextCompat; import androidx.core.util.Pair; +import androidx.fragment.app.DialogFragment; @PluginFactory.LoadablePlugin public class RemoteKeyboardPlugin extends Plugin { @@ -403,7 +404,7 @@ public class RemoteKeyboardPlugin extends Plugin { } @Override - public AlertDialogFragment getPermissionExplanationDialog(int requestCode) { + public DialogFragment getPermissionExplanationDialog() { return new StartActivityAlertDialogFragment.Builder() .setTitle(R.string.pref_plugin_remotekeyboard) .setMessage(R.string.no_permissions_remotekeyboard) @@ -411,7 +412,7 @@ public class RemoteKeyboardPlugin extends Plugin { .setNegativeButton(R.string.cancel) .setIntentAction(Settings.ACTION_INPUT_METHOD_SETTINGS) .setStartForResult(true) - .setRequestCode(requestCode) + .setRequestCode(MainActivity.RESULT_NEEDS_RELOAD) .create(); } } diff --git a/src/org/kde/kdeconnect/Plugins/SftpPlugin/SftpPlugin.java b/src/org/kde/kdeconnect/Plugins/SftpPlugin/SftpPlugin.java index 2c2a4ad1..fa24316e 100644 --- a/src/org/kde/kdeconnect/Plugins/SftpPlugin/SftpPlugin.java +++ b/src/org/kde/kdeconnect/Plugins/SftpPlugin/SftpPlugin.java @@ -96,7 +96,7 @@ public class SftpPlugin extends Plugin implements SharedPreferences.OnSharedPref } @Override - public AlertDialogFragment getOptionalPermissionExplanationDialog(int requestCode) { + public AlertDialogFragment getOptionalPermissionExplanationDialog() { return new DeviceSettingsAlertDialogFragment.Builder() .setTitle(getDisplayName()) .setMessage(R.string.sftp_saf_permission_explanation) diff --git a/src/org/kde/kdeconnect/UserInterface/DeviceFragment.java b/src/org/kde/kdeconnect/UserInterface/DeviceFragment.java index f6a39514..f4e34c59 100644 --- a/src/org/kde/kdeconnect/UserInterface/DeviceFragment.java +++ b/src/org/kde/kdeconnect/UserInterface/DeviceFragment.java @@ -37,6 +37,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; +import androidx.fragment.app.DialogFragment; import androidx.fragment.app.Fragment; import org.kde.kdeconnect.BackgroundService; @@ -324,13 +325,13 @@ public class DeviceFragment extends Fragment { pluginListItems.add(new PluginItem(p, v -> p.startMainActivity(mActivity))); } DeviceFragment.this.createPluginsList(device.getPluginsWithoutPermissions(), R.string.plugins_need_permission, (plugin) -> { - AlertDialogFragment dialog = plugin.getPermissionExplanationDialog(MainActivity.RESULT_NEEDS_RELOAD); + DialogFragment dialog = plugin.getPermissionExplanationDialog(); if (dialog != null) { dialog.show(getChildFragmentManager(), null); } }); DeviceFragment.this.createPluginsList(device.getPluginsWithoutOptionalPermissions(), R.string.plugins_need_optional_permission, (plugin) -> { - AlertDialogFragment dialog = plugin.getOptionalPermissionExplanationDialog(MainActivity.RESULT_NEEDS_RELOAD); + DialogFragment dialog = plugin.getOptionalPermissionExplanationDialog(); if (dialog != null) { dialog.show(getChildFragmentManager(), null);