mirror of
https://github.com/KDE/kdeconnect-android
synced 2025-08-22 09:58:08 +00:00
Hide 'Send Clipboard' from DeviceFragment when READ_LOGS permission is granted
On Android 10 and above, Clipboard needs to be manually sent. Recently the app was shipped with the patches so that users can use adb to grant the required permissions for automatic clipboard propagation. In case the permissions were granted for automatic clipboard propagation, 'Send Clipboard' option was hidden from persistent notification but was not removed from the DeviceFragment. This MR addresses this.
This commit is contained in:
parent
938985beff
commit
118d8784fa
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -304,7 +304,7 @@ public class DeviceFragment extends Fragment {
|
||||
//Plugins button list
|
||||
final Collection<Plugin> 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)));
|
||||
|
Loading…
x
Reference in New Issue
Block a user