diff options
author | Bilal Alsharifi <bilal.alsharifi@gmail.com> | 2019-07-25 13:50:54 -0400 |
---|---|---|
committer | Bilal Alsharifi <bilal.alsharifi@gmail.com> | 2019-07-25 13:50:54 -0400 |
commit | 4d01c4e8bf712d94d2a51107f84f4a952c1dd38d (patch) | |
tree | c78a783f11a64b0c0d9e9ca39cbdb697bd57e370 | |
parent | cec5c75fce2294021c96eed40e0f719ce53956b9 (diff) | |
download | sdl_android-4d01c4e8bf712d94d2a51107f84f4a952c1dd38d.tar.gz |
Add getBytesAvailable() to FileManager
-rw-r--r-- | base/src/main/java/com/smartdevicelink/managers/file/BaseFileManager.java | 40 |
1 files changed, 32 insertions, 8 deletions
diff --git a/base/src/main/java/com/smartdevicelink/managers/file/BaseFileManager.java b/base/src/main/java/com/smartdevicelink/managers/file/BaseFileManager.java index 12cea8c63..f2ff96d83 100644 --- a/base/src/main/java/com/smartdevicelink/managers/file/BaseFileManager.java +++ b/base/src/main/java/com/smartdevicelink/managers/file/BaseFileManager.java @@ -44,9 +44,11 @@ import com.smartdevicelink.proxy.RPCRequest; import com.smartdevicelink.proxy.RPCResponse; import com.smartdevicelink.proxy.interfaces.ISdl; import com.smartdevicelink.proxy.rpc.DeleteFile; +import com.smartdevicelink.proxy.rpc.DeleteFileResponse; import com.smartdevicelink.proxy.rpc.ListFiles; import com.smartdevicelink.proxy.rpc.ListFilesResponse; import com.smartdevicelink.proxy.rpc.PutFile; +import com.smartdevicelink.proxy.rpc.PutFileResponse; import com.smartdevicelink.proxy.rpc.enums.Result; import com.smartdevicelink.proxy.rpc.listeners.OnMultipleRequestListener; import com.smartdevicelink.proxy.rpc.listeners.OnRPCResponseListener; @@ -77,7 +79,9 @@ import java.util.Map; abstract class BaseFileManager extends BaseSubManager { final static String TAG = "FileManager"; + private final static int SPACE_AVAILABLE_MAX_VALUE = 2000000000; private List<String> remoteFiles, uploadedEphemeralFileNames; + private int bytesAvailable = SPACE_AVAILABLE_MAX_VALUE; BaseFileManager(ISdl internalInterface) { @@ -108,6 +112,14 @@ abstract class BaseFileManager extends BaseSubManager { return remoteFiles; } + /** + * Get the number of bytes still available for files for this app. + * @return int value representing The number of bytes still available + */ + public int getBytesAvailable(){ + return bytesAvailable; + } + private void retrieveRemoteFiles(){ remoteFiles = new ArrayList<>(); // hold list in remoteFiles class var @@ -115,9 +127,12 @@ abstract class BaseFileManager extends BaseSubManager { listFiles.setOnRPCResponseListener(new OnRPCResponseListener() { @Override public void onResponse(int correlationId, RPCResponse response) { - if(response.getSuccess()){ - if(((ListFilesResponse) response).getFilenames() != null){ - remoteFiles.addAll(((ListFilesResponse) response).getFilenames()); + ListFilesResponse listFilesResponse = (ListFilesResponse) response; + if(listFilesResponse.getSuccess()){ + bytesAvailable = listFilesResponse.getSpaceAvailable() != null ? listFilesResponse.getSpaceAvailable() : SPACE_AVAILABLE_MAX_VALUE; + + if(listFilesResponse.getFilenames() != null){ + remoteFiles.addAll(listFilesResponse.getFilenames()); } // on callback set manager to ready state transitionToState(BaseSubManager.READY); @@ -146,12 +161,15 @@ abstract class BaseFileManager extends BaseSubManager { deleteFile.setOnRPCResponseListener(new OnRPCResponseListener() { @Override public void onResponse(int correlationId, RPCResponse response) { - if(response.getSuccess()){ + DeleteFileResponse deleteFileResponse = (DeleteFileResponse) response; + if(deleteFileResponse.getSuccess()){ + bytesAvailable = deleteFileResponse.getSpaceAvailable() != null ? deleteFileResponse.getSpaceAvailable() : SPACE_AVAILABLE_MAX_VALUE; + remoteFiles.remove(fileName); uploadedEphemeralFileNames.remove(fileName); } if(listener != null){ - listener.onComplete(response.getSuccess()); + listener.onComplete(deleteFileResponse.getSuccess()); } } }); @@ -238,7 +256,10 @@ abstract class BaseFileManager extends BaseSubManager { @Override public void onResponse(int correlationId, RPCResponse response) { - if(response.getSuccess()){ + PutFileResponse putFileResponse = (PutFileResponse) response; + if(putFileResponse.getSuccess()){ + bytesAvailable = putFileResponse.getSpaceAvailable() != null ? putFileResponse.getSpaceAvailable() : SPACE_AVAILABLE_MAX_VALUE; + if(fileNameMap.get(correlationId) != null){ if(deletionOperation){ remoteFiles.remove(fileNameMap.get(correlationId)); @@ -269,12 +290,15 @@ abstract class BaseFileManager extends BaseSubManager { putFile.setOnRPCResponseListener(new OnRPCResponseListener() { @Override public void onResponse(int correlationId, RPCResponse response) { - if(response.getSuccess()){ + PutFileResponse putFileResponse = (PutFileResponse) response; + if(putFileResponse.getSuccess()){ + bytesAvailable = putFileResponse.getSpaceAvailable() != null ? putFileResponse.getSpaceAvailable() : SPACE_AVAILABLE_MAX_VALUE; + remoteFiles.add(file.getName()); uploadedEphemeralFileNames.add(file.getName()); } if(listener != null){ - listener.onComplete(response.getSuccess()); + listener.onComplete(putFileResponse.getSuccess()); } } |