diff options
author | Brett <3911458+BrettyWhite@users.noreply.github.com> | 2019-07-26 14:34:59 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-26 14:34:59 -0400 |
commit | 249ac1ef05ee1c5ae8d85fb912da7c60d27da50e (patch) | |
tree | 66bc56139fa471ea4fb9b0855838c25d46c5e806 | |
parent | eb45bb674191f29b0f7042265e93b8ab2e7b2b33 (diff) | |
parent | 0d386decc8ce12712dfc2677bfad0083b7ed4e22 (diff) | |
download | sdl_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.java | 7 | ||||
-rw-r--r-- | base/src/main/java/com/smartdevicelink/managers/file/BaseFileManager.java | 40 |
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()); } } |