diff --git a/src/org/kde/kdeconnect/Plugins/BigscreenPlugin/BigscreenPlugin.java b/src/org/kde/kdeconnect/Plugins/BigscreenPlugin/BigscreenPlugin.java index 52007ac1..75517713 100644 --- a/src/org/kde/kdeconnect/Plugins/BigscreenPlugin/BigscreenPlugin.java +++ b/src/org/kde/kdeconnect/Plugins/BigscreenPlugin/BigscreenPlugin.java @@ -10,6 +10,7 @@ package org.kde.kdeconnect.Plugins.BigscreenPlugin; import android.Manifest; import android.app.Activity; +import android.content.Context; import android.content.Intent; import android.graphics.drawable.Drawable; import android.view.KeyEvent; @@ -67,7 +68,7 @@ public class BigscreenPlugin extends Plugin { } @Override - public boolean hasMainActivity() { + public boolean hasMainActivity(Context context) { return true; } diff --git a/src/org/kde/kdeconnect/Plugins/ClibpoardPlugin/ClipboardPlugin.java b/src/org/kde/kdeconnect/Plugins/ClibpoardPlugin/ClipboardPlugin.java index 14c8fdc1..38af6c57 100644 --- a/src/org/kde/kdeconnect/Plugins/ClibpoardPlugin/ClipboardPlugin.java +++ b/src/org/kde/kdeconnect/Plugins/ClibpoardPlugin/ClipboardPlugin.java @@ -8,9 +8,12 @@ package org.kde.kdeconnect.Plugins.ClibpoardPlugin; +import android.Manifest; import android.app.Activity; import android.content.ClipData; import android.content.ClipboardManager; +import android.content.Context; +import android.content.pm.PackageManager; import android.graphics.drawable.Drawable; import android.os.Build; import android.widget.Toast; @@ -126,8 +129,9 @@ public class ClipboardPlugin extends Plugin { } @Override - public boolean hasMainActivity() { - return Build.VERSION.SDK_INT > Build.VERSION_CODES.P; + public boolean hasMainActivity(Context context) { + return Build.VERSION.SDK_INT > Build.VERSION_CODES.P && + ContextCompat.checkSelfPermission(context, Manifest.permission.READ_LOGS) == PackageManager.PERMISSION_DENIED; } @Override diff --git a/src/org/kde/kdeconnect/Plugins/FindRemoteDevicePlugin/FindRemoteDevicePlugin.java b/src/org/kde/kdeconnect/Plugins/FindRemoteDevicePlugin/FindRemoteDevicePlugin.java index fd85e018..5c96e164 100644 --- a/src/org/kde/kdeconnect/Plugins/FindRemoteDevicePlugin/FindRemoteDevicePlugin.java +++ b/src/org/kde/kdeconnect/Plugins/FindRemoteDevicePlugin/FindRemoteDevicePlugin.java @@ -7,6 +7,7 @@ package org.kde.kdeconnect.Plugins.FindRemoteDevicePlugin; import android.app.Activity; +import android.content.Context; import org.apache.commons.lang3.ArrayUtils; import org.kde.kdeconnect.NetworkPacket; @@ -46,7 +47,7 @@ public class FindRemoteDevicePlugin extends Plugin { } @Override - public boolean hasMainActivity() { + public boolean hasMainActivity(Context context) { return true; } diff --git a/src/org/kde/kdeconnect/Plugins/MousePadPlugin/MousePadPlugin.java b/src/org/kde/kdeconnect/Plugins/MousePadPlugin/MousePadPlugin.java index cb8380f3..1c386a3f 100644 --- a/src/org/kde/kdeconnect/Plugins/MousePadPlugin/MousePadPlugin.java +++ b/src/org/kde/kdeconnect/Plugins/MousePadPlugin/MousePadPlugin.java @@ -7,6 +7,7 @@ package org.kde.kdeconnect.Plugins.MousePadPlugin; import android.app.Activity; +import android.content.Context; import android.content.Intent; import android.graphics.drawable.Drawable; @@ -61,7 +62,7 @@ public class MousePadPlugin extends Plugin { } @Override - public boolean hasMainActivity() { + public boolean hasMainActivity(Context context) { return true; } diff --git a/src/org/kde/kdeconnect/Plugins/MprisPlugin/MprisPlugin.java b/src/org/kde/kdeconnect/Plugins/MprisPlugin/MprisPlugin.java index 060658af..aa5db56e 100644 --- a/src/org/kde/kdeconnect/Plugins/MprisPlugin/MprisPlugin.java +++ b/src/org/kde/kdeconnect/Plugins/MprisPlugin/MprisPlugin.java @@ -7,6 +7,7 @@ package org.kde.kdeconnect.Plugins.MprisPlugin; import android.app.Activity; +import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; @@ -479,7 +480,7 @@ public class MprisPlugin extends Plugin { } @Override - public boolean hasMainActivity() { + public boolean hasMainActivity(Context context) { return true; } diff --git a/src/org/kde/kdeconnect/Plugins/PhotoPlugin/PhotoPlugin.java b/src/org/kde/kdeconnect/Plugins/PhotoPlugin/PhotoPlugin.java index c025ca41..6e2f4029 100644 --- a/src/org/kde/kdeconnect/Plugins/PhotoPlugin/PhotoPlugin.java +++ b/src/org/kde/kdeconnect/Plugins/PhotoPlugin/PhotoPlugin.java @@ -6,6 +6,7 @@ package org.kde.kdeconnect.Plugins.PhotoPlugin; +import android.content.Context; import android.content.Intent; import android.graphics.drawable.Drawable; import android.net.Uri; @@ -51,7 +52,7 @@ public class PhotoPlugin extends Plugin { } @Override - public boolean hasMainActivity() { + public boolean hasMainActivity(Context context) { return false; } diff --git a/src/org/kde/kdeconnect/Plugins/PingPlugin/PingPlugin.java b/src/org/kde/kdeconnect/Plugins/PingPlugin/PingPlugin.java index b56316fd..909aeb10 100644 --- a/src/org/kde/kdeconnect/Plugins/PingPlugin/PingPlugin.java +++ b/src/org/kde/kdeconnect/Plugins/PingPlugin/PingPlugin.java @@ -10,6 +10,7 @@ import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; +import android.content.Context; import android.content.Intent; import android.util.Log; @@ -97,7 +98,7 @@ public class PingPlugin extends Plugin { } @Override - public boolean hasMainActivity() { + public boolean hasMainActivity(Context context) { return true; } diff --git a/src/org/kde/kdeconnect/Plugins/Plugin.java b/src/org/kde/kdeconnect/Plugins/Plugin.java index 09b01c59..f700da7c 100644 --- a/src/org/kde/kdeconnect/Plugins/Plugin.java +++ b/src/org/kde/kdeconnect/Plugins/Plugin.java @@ -6,6 +6,7 @@ package org.kde.kdeconnect.Plugins; +import android.Manifest; import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; @@ -173,7 +174,7 @@ public abstract class Plugin { /** * Return true if the plugin should display something in the Device main view */ - public boolean hasMainActivity() { + public boolean hasMainActivity(Context context) { return false; } diff --git a/src/org/kde/kdeconnect/Plugins/PresenterPlugin/PresenterPlugin.java b/src/org/kde/kdeconnect/Plugins/PresenterPlugin/PresenterPlugin.java index ff5316c1..15dbd32c 100644 --- a/src/org/kde/kdeconnect/Plugins/PresenterPlugin/PresenterPlugin.java +++ b/src/org/kde/kdeconnect/Plugins/PresenterPlugin/PresenterPlugin.java @@ -8,6 +8,7 @@ package org.kde.kdeconnect.Plugins.PresenterPlugin; import android.app.Activity; +import android.content.Context; import android.content.Intent; import android.graphics.drawable.Drawable; import android.view.KeyEvent; @@ -53,7 +54,7 @@ public class PresenterPlugin extends Plugin { } @Override - public boolean hasMainActivity() { + public boolean hasMainActivity(Context context) { return true; } diff --git a/src/org/kde/kdeconnect/Plugins/RemoteKeyboardPlugin/RemoteKeyboardPlugin.java b/src/org/kde/kdeconnect/Plugins/RemoteKeyboardPlugin/RemoteKeyboardPlugin.java index f9f97106..2b7654ba 100644 --- a/src/org/kde/kdeconnect/Plugins/RemoteKeyboardPlugin/RemoteKeyboardPlugin.java +++ b/src/org/kde/kdeconnect/Plugins/RemoteKeyboardPlugin/RemoteKeyboardPlugin.java @@ -7,6 +7,7 @@ package org.kde.kdeconnect.Plugins.RemoteKeyboardPlugin; import android.app.Activity; +import android.content.Context; import android.content.SharedPreferences; import android.graphics.drawable.Drawable; import android.os.SystemClock; @@ -167,7 +168,7 @@ public class RemoteKeyboardPlugin extends Plugin implements SharedPreferences.On } @Override - public boolean hasMainActivity() { + public boolean hasMainActivity(Context context) { return false; } diff --git a/src/org/kde/kdeconnect/Plugins/RunCommandPlugin/RunCommandPlugin.java b/src/org/kde/kdeconnect/Plugins/RunCommandPlugin/RunCommandPlugin.java index d763dec2..721762ea 100644 --- a/src/org/kde/kdeconnect/Plugins/RunCommandPlugin/RunCommandPlugin.java +++ b/src/org/kde/kdeconnect/Plugins/RunCommandPlugin/RunCommandPlugin.java @@ -8,6 +8,7 @@ package org.kde.kdeconnect.Plugins.RunCommandPlugin; import android.app.Activity; +import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.drawable.Drawable; @@ -171,7 +172,7 @@ public class RunCommandPlugin extends Plugin { } @Override - public boolean hasMainActivity() { + public boolean hasMainActivity(Context context) { return true; } diff --git a/src/org/kde/kdeconnect/Plugins/SharePlugin/SharePlugin.java b/src/org/kde/kdeconnect/Plugins/SharePlugin/SharePlugin.java index b30419fa..3c59a1bf 100644 --- a/src/org/kde/kdeconnect/Plugins/SharePlugin/SharePlugin.java +++ b/src/org/kde/kdeconnect/Plugins/SharePlugin/SharePlugin.java @@ -9,6 +9,7 @@ package org.kde.kdeconnect.Plugins.SharePlugin; import android.Manifest; import android.app.Activity; import android.content.ClipboardManager; +import android.content.Context; import android.content.Intent; import android.graphics.drawable.Drawable; import android.net.Uri; @@ -90,7 +91,7 @@ public class SharePlugin extends Plugin { } @Override - public boolean hasMainActivity() { + public boolean hasMainActivity(Context context) { return true; } diff --git a/src/org/kde/kdeconnect/Plugins/SystemVolumePlugin/SystemVolumePlugin.java b/src/org/kde/kdeconnect/Plugins/SystemVolumePlugin/SystemVolumePlugin.java index 531c8daf..6520e62b 100644 --- a/src/org/kde/kdeconnect/Plugins/SystemVolumePlugin/SystemVolumePlugin.java +++ b/src/org/kde/kdeconnect/Plugins/SystemVolumePlugin/SystemVolumePlugin.java @@ -6,6 +6,7 @@ package org.kde.kdeconnect.Plugins.SystemVolumePlugin; +import android.content.Context; import android.util.Log; import org.json.JSONArray; @@ -115,7 +116,7 @@ public class SystemVolumePlugin extends Plugin { } @Override - public boolean hasMainActivity() { + public boolean hasMainActivity(Context context) { return false; } diff --git a/src/org/kde/kdeconnect/UserInterface/DeviceFragment.java b/src/org/kde/kdeconnect/UserInterface/DeviceFragment.java index 3f61d772..3d454fa2 100644 --- a/src/org/kde/kdeconnect/UserInterface/DeviceFragment.java +++ b/src/org/kde/kdeconnect/UserInterface/DeviceFragment.java @@ -304,7 +304,7 @@ public class DeviceFragment extends Fragment { //Plugins button list final Collection plugins = device.getLoadedPlugins().values(); for (final Plugin p : plugins) { - if (!p.hasMainActivity()) continue; + if (!p.hasMainActivity(getContext())) continue; if (p.displayInContextMenu()) continue; pluginListItems.add(new PluginItem(p, v -> p.startMainActivity(mActivity)));