mirror of
https://github.com/KDE/kdeconnect-android
synced 2025-09-01 06:35:09 +00:00
Implement Android 6 Runtime Permissions
Differential Revision: https://phabricator.kde.org/D5876
This commit is contained in:
committed by
Albert Vaca
parent
e13090066c
commit
0b83cfe06d
@@ -82,6 +82,7 @@ public class Device implements BaseLink.PackageReceiver {
|
||||
private List<String> m_supportedPlugins = new ArrayList<>();
|
||||
private final ConcurrentHashMap<String, Plugin> plugins = new ConcurrentHashMap<>();
|
||||
private final ConcurrentHashMap<String, Plugin> failedPlugins = new ConcurrentHashMap<>();
|
||||
private final ConcurrentHashMap<String, Plugin> pluginsWithoutPermissions = new ConcurrentHashMap<>();
|
||||
private Map<String, ArrayList<String>> pluginsByIncomingInterface = new HashMap<>();
|
||||
|
||||
private final SharedPreferences settings;
|
||||
@@ -722,6 +723,16 @@ public class Device implements BaseLink.PackageReceiver {
|
||||
failedPlugins.put(pluginKey, plugin);
|
||||
}
|
||||
|
||||
if(!plugin.checkRequiredPermissions()){
|
||||
Log.e("KDE/addPlugin", "No permission " + pluginKey);
|
||||
plugins.remove(pluginKey);
|
||||
pluginsWithoutPermissions.put(pluginKey, plugin);
|
||||
success = false;
|
||||
} else {
|
||||
Log.i("KDE/addPlugin", "Permission OK " + pluginKey);
|
||||
pluginsWithoutPermissions.remove(pluginKey);
|
||||
}
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
@@ -812,6 +823,10 @@ public class Device implements BaseLink.PackageReceiver {
|
||||
return failedPlugins;
|
||||
}
|
||||
|
||||
public ConcurrentHashMap<String, Plugin> getPluginsWithoutPermissions() {
|
||||
return pluginsWithoutPermissions;
|
||||
}
|
||||
|
||||
public void addPluginsChangedListener(PluginsChangedListener listener) {
|
||||
pluginsChangedListeners.add(listener);
|
||||
}
|
||||
|
Reference in New Issue
Block a user