From 726fa82ad8b23d267cdd5b3b5e7d5ab7ac4e25f3 Mon Sep 17 00:00:00 2001 From: LossyDragon Date: Tue, 20 Dec 2022 16:43:14 -0600 Subject: [PATCH] Fix displaying newsitems child in SampleWebApi --- .../_6webapi/SampleWebApi.java | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/javasteam-samples/src/main/java/in/dragonbra/javasteamsamples/_6webapi/SampleWebApi.java b/javasteam-samples/src/main/java/in/dragonbra/javasteamsamples/_6webapi/SampleWebApi.java index 6ac7c6f1..6eca5c13 100644 --- a/javasteam-samples/src/main/java/in/dragonbra/javasteamsamples/_6webapi/SampleWebApi.java +++ b/javasteam-samples/src/main/java/in/dragonbra/javasteamsamples/_6webapi/SampleWebApi.java @@ -149,11 +149,7 @@ private void onLoggedOn(LoggedOnCallback callback) { KeyValue result = api.call("GetNewsForApp", 2, args); - // todo 10-11-2021 - It seems newsitems is returning null for this example. - // When it should return at least 20 items. - for (KeyValue item : result.getChildren()) { - System.out.println("Item: " + item); - } + printKeyValue(result, 1); } catch (IOException e) { e.printStackTrace(); @@ -168,4 +164,21 @@ private void onLoggedOff(LoggedOffCallback callback) { isRunning = false; } + + // Recursively print out child KeyValues. + private void printKeyValue(KeyValue keyValue, int depth) { + StringBuilder spacePadding = new StringBuilder(); + for (int x = 0; x < depth; x++) { + spacePadding.append(" "); + } + + if (keyValue.getChildren().size() == 0) { + System.out.println(spacePadding + keyValue.getName() + ": " + keyValue.getValue()); + } else { + System.out.println(spacePadding + keyValue.getName() + ":"); + for (KeyValue child : keyValue.getChildren()) { + printKeyValue(child, depth + 1); + } + } + } }