1
0
Fork 0
mirror of https://github.com/syncthing/syncthing-android.git synced 2024-11-26 14:21:16 +00:00

Fixed crash when values is read from RestApi before fully initialized (fixes #159).

This commit is contained in:
Felix Ableitner 2014-10-26 02:47:37 +03:00
parent 6bb99f2ae4
commit 84355c2dcf
2 changed files with 10 additions and 6 deletions

View file

@ -69,12 +69,6 @@ public class RestApiTest extends AndroidTestCase {
ConfigXml.getConfigFile(new MockContext(getContext())).delete(); ConfigXml.getConfigFile(new MockContext(getContext())).delete();
} }
@SmallTest
public void testGetVersion() {
assertNotNull(mApi.getVersion());
assertFalse(mApi.getVersion().equals(""));
}
@SmallTest @SmallTest
public void testGetDevices() { public void testGetDevices() {
assertNotNull(mApi.getDevices()); assertNotNull(mApi.getDevices());
@ -151,4 +145,10 @@ public class RestApiTest extends AndroidTestCase {
latch.await(1, TimeUnit.SECONDS); latch.await(1, TimeUnit.SECONDS);
} }
@SmallTest
public void testGetValueEarly() {
// Should never throw an exception.
mApi.getValue("Options", "ListenAddress");
}
} }

View file

@ -279,6 +279,10 @@ public class RestApi implements SyncthingService.OnWebGuiAvailableListener,
* @return The value as a String, or null on failure. * @return The value as a String, or null on failure.
*/ */
public String getValue(String name, String key) { public String getValue(String name, String key) {
// Happens if this functions is called before class is fully initialized.
if (mConfig == null)
return null;
try { try {
Object value = mConfig.getJSONObject(name).get(key); Object value = mConfig.getJSONObject(name).get(key);
return (value instanceof JSONArray) return (value instanceof JSONArray)