vkx playlist caching
This commit is contained in:
@@ -27,4 +27,7 @@ interface ILibVkxService {
|
||||
String getCacheCatalog() = 11;
|
||||
List<String> getTracksInPlaylist(in String playlist_id, in String owner_id) = 12;
|
||||
String getPlaylistDefJson(in String playlist_id, in String owner_id) = 13;
|
||||
|
||||
// [ver 1.3]
|
||||
boolean isPlaylistCached(in int playlist_id, in int owner_id) = 14;
|
||||
}
|
||||
@@ -81,9 +81,16 @@ public class MusicBottomSheetHook {
|
||||
}
|
||||
|
||||
public static ArrayList<MusicAction> hook(ArrayList<MusicAction> actions, Playlist playlist) {
|
||||
if (isVkxInstalled())
|
||||
if (isVkxInstalled()) {
|
||||
actions.add(getPlayInVKXAction());
|
||||
|
||||
if (isVkxCached(playlist.a, playlist.b)){
|
||||
actions.add(getRemoveCacheTrackVkxAction());
|
||||
} else {
|
||||
actions.add(addToCacheTrackVkxAction());
|
||||
}
|
||||
}
|
||||
|
||||
actions.add(addToCacheTrackAction());
|
||||
|
||||
if (isNetworkConnected()){
|
||||
@@ -145,6 +152,26 @@ public class MusicBottomSheetHook {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (actionId == AndroidUtils.getIdentifier("remove_from_cache_vkx", "id")) {
|
||||
LibVKXClient.getInstance().runOnService(service -> {
|
||||
try {
|
||||
service.deletePlaylistFromCache(playlist.a, playlist.b);
|
||||
} catch (RemoteException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
return true;
|
||||
} else if (actionId == AndroidUtils.getIdentifier("add_to_cache_vkx", "id")) {
|
||||
LibVKXClient.getInstance().runOnService(service -> {
|
||||
try {
|
||||
service.addPlaylistToCache(playlist.a, playlist.b, (playlist.Q != null) ? playlist.Q : "");
|
||||
} catch (RemoteException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
if (actionId == AndroidUtils.getIdentifier("download_mp3", "id")) {
|
||||
if (LibVKXClient.isIntegrationEnabled()) {
|
||||
LibVKXClient.getInstance().runOnService(service -> {
|
||||
|
||||
@@ -251,6 +251,24 @@ public class CacheDatabaseDelegate {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isVkxCached(int playlist_id, int owner_id) {
|
||||
return LibVKXClient.getInstance().runOnServiceSync(new LibVKXClientImpl.LibVKXActionGeneric<>(){
|
||||
@Override
|
||||
public Boolean run(ILibVkxService service){
|
||||
try {
|
||||
return service.isPlaylistCached(playlist_id, owner_id);
|
||||
} catch (RemoteException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean defaultValue(){
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static boolean isVkxCached(String trackId) {
|
||||
return LibVKXClient.getInstance().runOnServiceSync(new LibVKXClientImpl.LibVKXActionGeneric<>(){
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user