From b8f39ec30cc50ebfb63d0dd9d8929a5975dc6c8f Mon Sep 17 00:00:00 2001 From: ktind Date: Sat, 8 Nov 2014 00:40:24 -0600 Subject: [PATCH 1/2] Handle sync gracefully when there are fewer pages available than pages requested. Added sanity check to make sure that page number requested is not a negative number. --- .../java/com/nightscout/android/dexcom/ReadData.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/nightscout/android/dexcom/ReadData.java b/app/src/main/java/com/nightscout/android/dexcom/ReadData.java index 9f901bfd..5a925a0e 100644 --- a/app/src/main/java/com/nightscout/android/dexcom/ReadData.java +++ b/app/src/main/java/com/nightscout/android/dexcom/ReadData.java @@ -44,9 +44,9 @@ public EGVRecord[] getRecentEGVsPages(int numOfRecentPages) { Log.d(TAG, "Reading " + numOfRecentPages + " EGV page(s)..."); numOfRecentPages = numOfRecentPages - 1; EGVRecord[] allPages = new EGVRecord[0]; - for (int i = numOfRecentPages; i >= 0; i--) { + for (int i = Math.min(numOfRecentPages,endPage); i >= 0; i--) { int nextPage = endPage - i; - Log.d(TAG, "Read number " + i + " of EGV pages (page number " + nextPage + ")"); + Log.d(TAG, "Reading #" + i + " EGV pages (page number " + nextPage + ")"); EGVRecord[] ithEGVRecordPage = readDataBasePage(recordType, nextPage); EGVRecord[] result = Arrays.copyOf(allPages, allPages.length + ithEGVRecordPage.length); System.arraycopy(ithEGVRecordPage, 0, result, allPages.length, ithEGVRecordPage.length); @@ -77,9 +77,9 @@ public SensorRecord[] getRecentSensorRecords(int numOfRecentPages) { Log.d(TAG, "Reading " + numOfRecentPages + " Sensor page(s)..."); numOfRecentPages = numOfRecentPages - 1; SensorRecord[] allPages = new SensorRecord[0]; - for (int i = numOfRecentPages; i >= 0; i--) { + for (int i = Math.min(numOfRecentPages,endPage); i >= 0; i--) { int nextPage = endPage - i; - Log.d(TAG, "Read number " + i + " of Sensor pages (page number " + nextPage + ")"); + Log.d(TAG, "Reading #" + i + " Sensor pages (page number " + nextPage + ")"); SensorRecord[] ithSensorRecordPage = readDataBasePage(recordType, nextPage); SensorRecord[] result = Arrays.copyOf(allPages, allPages.length + ithSensorRecordPage.length); System.arraycopy(ithSensorRecordPage, 0, result, allPages.length, ithSensorRecordPage.length); @@ -144,6 +144,9 @@ private int readDataBasePageRange(int recordType) { private T readDataBasePage(int recordType, int page) { byte numOfPages = 1; + if (page < 0){ + throw new IllegalArgumentException("Invalid page requested:" + page); + } ArrayList payload = new ArrayList(); payload.add((byte) recordType); byte[] pageInt = ByteBuffer.allocate(4).putInt(page).array(); From 073a641b8bd22d39c41996420e907bae9868beb7 Mon Sep 17 00:00:00 2001 From: ktind Date: Sat, 8 Nov 2014 22:07:56 -0600 Subject: [PATCH 2/2] Version bump --- app/src/main/AndroidManifest.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 488b6f28..4b4fd136 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="14" + android:versionName="0.1.8">