summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrett <3911458+BrettyWhite@users.noreply.github.com>2019-07-26 14:34:59 -0400
committerGitHub <noreply@github.com>2019-07-26 14:34:59 -0400
commit249ac1ef05ee1c5ae8d85fb912da7c60d27da50e (patch)
tree66bc56139fa471ea4fb9b0855838c25d46c5e806
parenteb45bb674191f29b0f7042265e93b8ab2e7b2b33 (diff)
parent0d386decc8ce12712dfc2677bfad0083b7ed4e22 (diff)
downloadsdl_android-249ac1ef05ee1c5ae8d85fb912da7c60d27da50e.tar.gz
Merge pull request #1134 from smartdevicelink/feature/bytes_available
Add getBytesAvailable() to FileManager
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/file/FileManagerTests.java7
-rw-r--r--base/src/main/java/com/smartdevicelink/managers/file/BaseFileManager.java40
2 files changed, 37 insertions, 10 deletions
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/file/FileManagerTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/file/FileManagerTests.java
index b4e27f205..96d78584d 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/file/FileManagerTests.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/file/FileManagerTests.java
@@ -39,7 +39,6 @@ import static org.mockito.Mockito.mock;
*/
public class FileManagerTests extends AndroidTestCase2 {
public static final String TAG = "FileManagerTests";
- private FileManager fileManager;
private Context mTestContext;
private SdlFile validFile;
@@ -101,6 +100,7 @@ public class FileManagerTests extends AndroidTestCase2 {
int correlationId = message.getCorrelationID();
PutFileResponse putFileResponse = new PutFileResponse();
putFileResponse.setSuccess(true);
+ putFileResponse.setSpaceAvailable(Test.GENERAL_INT);
message.getOnRPCResponseListener().onResponse(correlationId, putFileResponse);
}
return null;
@@ -153,8 +153,9 @@ public class FileManagerTests extends AndroidTestCase2 {
@Override
public void onComplete(boolean success) {
assertTrue(success);
- Assert.assertEquals(fileManager.getState(), BaseSubManager.READY);
+ assertEquals(fileManager.getState(), BaseSubManager.READY);
assertEquals(fileManager.getRemoteFileNames(), Test.GENERAL_STRING_LIST);
+ assertEquals(Test.GENERAL_INT, fileManager.getBytesAvailable());
}
});
}
@@ -170,6 +171,7 @@ public class FileManagerTests extends AndroidTestCase2 {
public void onComplete(boolean success) {
assertFalse(success);
assertEquals(fileManager.getState(), BaseSubManager.ERROR);
+ assertEquals(BaseFileManager.SPACE_AVAILABLE_MAX_VALUE, fileManager.getBytesAvailable());
}
});
}
@@ -191,6 +193,7 @@ public class FileManagerTests extends AndroidTestCase2 {
assertTrue(success);
assertTrue(fileManager.getRemoteFileNames().contains(validFile.getName()));
assertTrue(fileManager.hasUploadedFile(validFile));
+ assertEquals(Test.GENERAL_INT, fileManager.getBytesAvailable());
}
});
}
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..a02cd58db 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";
+ 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());
}
}