From 7afb84d6cfcc9bad516a95ce752472ad3cb5bcc8 Mon Sep 17 00:00:00 2001 From: Steve Mills Date: Fri, 7 Oct 2011 09:20:33 +0100 Subject: [PATCH 1/3] Initial copy with fonts copied and first pass Menu changes. --- cicada/assets/fonts | 1 - 1 file changed, 1 deletion(-) delete mode 120000 cicada/assets/fonts diff --git a/cicada/assets/fonts b/cicada/assets/fonts deleted file mode 120000 index 1d90179..0000000 --- a/cicada/assets/fonts +++ /dev/null @@ -1 +0,0 @@ -../../apollolib/assets/fonts \ No newline at end of file From f279b24d7b8f46b8ffd701abcfb004fed8b42c17 Mon Sep 17 00:00:00 2001 From: Steve Mills Date: Fri, 7 Oct 2011 09:24:31 +0100 Subject: [PATCH 2/3] Fonts copied locally and Menu changes in AppsList. --- .../fonts/metawatch_16pt_11pxl_proto1.ttf | Bin 0 -> 14576 bytes .../fonts/metawatch_8pt_5pxl_CAPS_proto1.ttf | Bin 0 -> 12408 bytes .../fonts/metawatch_8pt_7pxl_CAPS_proto1.ttf | Bin 0 -> 15212 bytes cicada/src/org/cicadasong/cicada/AppList.java | 72 +++++++++++++++--- 4 files changed, 60 insertions(+), 12 deletions(-) create mode 100644 cicada/assets/fonts/metawatch_16pt_11pxl_proto1.ttf create mode 100644 cicada/assets/fonts/metawatch_8pt_5pxl_CAPS_proto1.ttf create mode 100644 cicada/assets/fonts/metawatch_8pt_7pxl_CAPS_proto1.ttf diff --git a/cicada/assets/fonts/metawatch_16pt_11pxl_proto1.ttf b/cicada/assets/fonts/metawatch_16pt_11pxl_proto1.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9aeb8b39c984675ee6445c3d332fffc4bb5f86b2 GIT binary patch literal 14576 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 X-xYa^+@JbG;CuY7;z0mkPrv`aVaN11 literal 0 HcmV?d00001 diff --git a/cicada/assets/fonts/metawatch_8pt_5pxl_CAPS_proto1.ttf b/cicada/assets/fonts/metawatch_8pt_5pxl_CAPS_proto1.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a6b8f303551f90ad475bb00a697911ad0f862454 GIT binary patch literal 12408 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 Y$VJeNek^k52>^8OTmrldfXs3EHz1Z2D*ylh literal 0 HcmV?d00001 diff --git a/cicada/assets/fonts/metawatch_8pt_7pxl_CAPS_proto1.ttf b/cicada/assets/fonts/metawatch_8pt_7pxl_CAPS_proto1.ttf new file mode 100644 index 0000000000000000000000000000000000000000..72eda9ed0beb397ef9df93eeb045531bfd337161 GIT binary patch literal 15212 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 literal 0 HcmV?d00001 diff --git a/cicada/src/org/cicadasong/cicada/AppList.java b/cicada/src/org/cicadasong/cicada/AppList.java index 534a023..4133d3e 100644 --- a/cicada/src/org/cicadasong/cicada/AppList.java +++ b/cicada/src/org/cicadasong/cicada/AppList.java @@ -138,8 +138,12 @@ protected void onButtonPress(WatchButton button) { private void changeSelection(int newIndex) { selectedIndex = newIndex; - selectedIndex = Math.min(apps.size() - 1, selectedIndex); - selectedIndex = Math.max(0, selectedIndex); + // Wrap around across top or bottom + if (selectedIndex < 0) { + selectedIndex = apps.size() - 1; + } else if (selectedIndex >= apps.size()) { + selectedIndex = 0; + } invalidate(); } @@ -154,19 +158,63 @@ private void launchSelectedApp() { sendBroadcast(intent); } + private int lastStartIndex = -1; + private int lastSelectedRow = -1; + private final int listSize = 7; + protected void onDraw(Canvas canvas) { float y = -paint.ascent(); - int startIndex = Math.max(0, selectedIndex - 2); - for (int i = startIndex; (i < apps.size()) && (i < startIndex + 7); i++) { - if (i == selectedIndex) { - paint.setColor(Color.BLACK); - canvas.drawRect(new Rect(0, - (int)(y + paint.ascent()), canvas.getWidth(), (int)(y + paint.descent() + 1)), paint); - } - paint.setColor(i == selectedIndex ? Color.WHITE : Color.BLACK); - canvas.drawText(apps.get(i).appName, LEFT_MARGIN, y, paint); - y += paint.getFontSpacing(); + int startIndex = 0; + if (selectedIndex < lastStartIndex) { + startIndex = selectedIndex - (int)(listSize/2); // Put our item in the centre of the list if scrolling upwards + } else if (selectedIndex > (lastStartIndex + listSize -1)) { + startIndex = selectedIndex - (int)(listSize/2); // Put our item in the centre of the list if scrolling downwards + } + if ((startIndex + listSize) >= apps.size()) { + startIndex = apps.size() - listSize; // If there would be blank lines then adjust so that doesn't happen if we can + } + if (startIndex < 0) { + startIndex = 0; // If we're off the top then fix it + } + + // The block below was designed so that instead of repainting the whole screen + // we would just repaint the two lines that had changed. + // Unfortunately that didn't work because the other lines all went blank + // if (startIndex == lastStartIndex) { + if (false) { + // If the start indexes are the same then the screen content won't change + // So there's no need to repaint the whole screen we just need to move the highlight + // Turn off the previous highlight + y = -paint.ascent() + (lastSelectedRow - 1) * paint.getFontSpacing(); + paint.setColor(Color.WHITE); + canvas.drawRect(new Rect(0, + (int)(y + paint.ascent()), canvas.getWidth(), (int)(y + paint.descent() + 1)), paint); + paint.setColor(Color.BLACK); + canvas.drawText(apps.get(startIndex + lastSelectedRow -1).appName, LEFT_MARGIN, y, paint); + // Turn on the new highlight + lastSelectedRow = selectedIndex - startIndex + 1; + y = -paint.ascent() + (lastSelectedRow - 1) * paint.getFontSpacing(); + paint.setColor(Color.BLACK); + canvas.drawRect(new Rect(0, + (int)(y + paint.ascent()), canvas.getWidth(), (int)(y + paint.descent() + 1)), paint); + paint.setColor(Color.WHITE); + canvas.drawText(apps.get(startIndex + lastSelectedRow -1).appName, LEFT_MARGIN, y, paint); + } + else { + lastStartIndex = startIndex; + + for (int i = startIndex; (i < apps.size()) && (i < startIndex + 7); i++) { + if (i == selectedIndex) { + paint.setColor(Color.BLACK); + canvas.drawRect(new Rect(0, + (int)(y + paint.ascent()), canvas.getWidth(), (int)(y + paint.descent() + 1)), paint); + lastSelectedRow = selectedIndex - startIndex + 1; + } + paint.setColor(i == selectedIndex ? Color.WHITE : Color.BLACK); + canvas.drawText(apps.get(i).appName, LEFT_MARGIN, y, paint); + y += paint.getFontSpacing(); + } } } From f32bbebbba06fb0885055f769645cf4236d8a58d Mon Sep 17 00:00:00 2001 From: Steve Mills Date: Fri, 7 Oct 2011 14:48:26 +0100 Subject: [PATCH 3/3] Menu uncreachable code tidied up. --- cicada/src/org/cicadasong/cicada/AppList.java | 29 +------------------ 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/cicada/src/org/cicadasong/cicada/AppList.java b/cicada/src/org/cicadasong/cicada/AppList.java index 4133d3e..8633b70 100644 --- a/cicada/src/org/cicadasong/cicada/AppList.java +++ b/cicada/src/org/cicadasong/cicada/AppList.java @@ -159,7 +159,6 @@ private void launchSelectedApp() { } private int lastStartIndex = -1; - private int lastSelectedRow = -1; private final int listSize = 7; protected void onDraw(Canvas canvas) { @@ -178,44 +177,18 @@ protected void onDraw(Canvas canvas) { startIndex = 0; // If we're off the top then fix it } - // The block below was designed so that instead of repainting the whole screen - // we would just repaint the two lines that had changed. - // Unfortunately that didn't work because the other lines all went blank - // if (startIndex == lastStartIndex) { - if (false) { - // If the start indexes are the same then the screen content won't change - // So there's no need to repaint the whole screen we just need to move the highlight - // Turn off the previous highlight - y = -paint.ascent() + (lastSelectedRow - 1) * paint.getFontSpacing(); - paint.setColor(Color.WHITE); - canvas.drawRect(new Rect(0, - (int)(y + paint.ascent()), canvas.getWidth(), (int)(y + paint.descent() + 1)), paint); - paint.setColor(Color.BLACK); - canvas.drawText(apps.get(startIndex + lastSelectedRow -1).appName, LEFT_MARGIN, y, paint); - // Turn on the new highlight - lastSelectedRow = selectedIndex - startIndex + 1; - y = -paint.ascent() + (lastSelectedRow - 1) * paint.getFontSpacing(); - paint.setColor(Color.BLACK); - canvas.drawRect(new Rect(0, - (int)(y + paint.ascent()), canvas.getWidth(), (int)(y + paint.descent() + 1)), paint); - paint.setColor(Color.WHITE); - canvas.drawText(apps.get(startIndex + lastSelectedRow -1).appName, LEFT_MARGIN, y, paint); - } - else { - lastStartIndex = startIndex; + lastStartIndex = startIndex; for (int i = startIndex; (i < apps.size()) && (i < startIndex + 7); i++) { if (i == selectedIndex) { paint.setColor(Color.BLACK); canvas.drawRect(new Rect(0, (int)(y + paint.ascent()), canvas.getWidth(), (int)(y + paint.descent() + 1)), paint); - lastSelectedRow = selectedIndex - startIndex + 1; } paint.setColor(i == selectedIndex ? Color.WHITE : Color.BLACK); canvas.drawText(apps.get(i).appName, LEFT_MARGIN, y, paint); y += paint.getFontSpacing(); } - } } }