diff --git a/bin/darkwallet/Inter-Regular.otf b/bin/darkwallet/Inter-Regular.otf deleted file mode 100644 index 2d0bd1d64..000000000 Binary files a/bin/darkwallet/Inter-Regular.otf and /dev/null differ diff --git a/bin/darkwallet/README.android.md b/bin/darkwallet/README.android.md deleted file mode 100644 index 16ea4a610..000000000 --- a/bin/darkwallet/README.android.md +++ /dev/null @@ -1,29 +0,0 @@ -``` -podman system service -podman build -t apk . -``` - -``` -# This command gives an interactive terminal (useful for debugging): -#podman run -v $(pwd):/root/dw -it apk bash - -podman run -v $(pwd):/root/dw -w /root/dw -t apk cargo quad-apk build -``` - -Enable USB debugging in developer options and run the following commands: - -``` -adb install -r target/android-artifacts/debug/apk/darkwallet.apk -# Clear the log -adb logcat -c -adb logcat -s darkfi -``` - -# Debugging Missing Symbols (note to self) - -``` -"hb_ft_font_create_referenced" - -nm libharfbuzz_rs-5d6b743170eb0207.rlib | grep hb_ | less -``` - diff --git a/bin/darkwallet/README.md b/bin/darkwallet/README.md index 640f3dc98..61d2711b7 100644 --- a/bin/darkwallet/README.md +++ b/bin/darkwallet/README.md @@ -1,4 +1,24 @@ -`cargo run` then `python client.py` +# Linux -docker run --rm -v $(pwd)":/root/src" -w /root/src cargo-quad-apk cargo quad-apk build +``` +make +``` + +# Android + +Make sure you have podman installed. Then run `make android`. + +To debug any issues, you can enter an interactive terminal using: + +``` +podman run -v $(pwd):/root/dw -it apk bash +``` + +# Debugging Missing Symbols (note to self) + +``` +"hb_ft_font_create_referenced" + +nm libharfbuzz_rs-5d6b743170eb0207.rlib | grep hb_ | less +``` diff --git a/bin/darkwallet/chatapp.exe b/bin/darkwallet/chatapp.exe deleted file mode 100755 index d2aa75b3a..000000000 --- a/bin/darkwallet/chatapp.exe +++ /dev/null @@ -1,433 +0,0 @@ -#!/usr/bin/python -from gui import * - -def create_layer(name): - win_id = api.lookup_node_id("/window") - - node_id = api.add_node(name, SceneNodeType.RENDER_LAYER) - - prop = Property( - "is_visible", PropertyType.BOOL, PropertySubType.NULL, - None, - "Is Visible", "Visibility of this layer", - False, False, 1, None, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "rect", PropertyType.UINT32, PropertySubType.PIXEL, - None, - "Rectangle", "The position and size within the layer", - False, True, 4, None, None, [] - ) - api.add_property(node_id, prop) - - api.link_node(node_id, win_id) - return node_id - -def create_mesh(name, layer_id): - node_id = api.add_node(name, SceneNodeType.RENDER_MESH) - - prop = Property( - "data", PropertyType.BUFFER, PropertySubType.NULL, - None, - "Mesh Data", "The face and vertex data for the mesh", - False, False, 2, None, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "rect", PropertyType.FLOAT32, PropertySubType.PIXEL, - None, - "Rectangle", "The position and size within the layer", - False, True, 4, None, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "z_index", PropertyType.UINT32, PropertySubType.NULL, - None, - "Z-index", "Z-index: values greater than zero are deferred draws", - False, False, 1, None, None, [] - ) - api.add_property(node_id, prop) - - #prop = Property( - # "is_visible", PropertyType.UINT32, PropertySubType.NULL, - # None, - # "Is Visible", "Visibility of this object", - # False, False, 1, None, None, [] - #) - #api.add_property(node_id, prop) - - api.link_node(node_id, layer_id) - return node_id - -def create_text(name, layer_id): - node_id = api.add_node(name, SceneNodeType.RENDER_TEXT) - - prop = Property( - "rect", PropertyType.FLOAT32, PropertySubType.PIXEL, - None, - "Rectangle", "The position and size within the layer", - False, True, 4, None, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "baseline", PropertyType.FLOAT32, PropertySubType.PIXEL, - None, - "Baseline", "Y offset of baseline inside rect", - False, True, 1, None, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "font_size", PropertyType.FLOAT32, PropertySubType.PIXEL, - None, - "Font Size", "Font Size", - False, True, 1, 0.0, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "text", PropertyType.STR, PropertySubType.NULL, - None, - "Text", "Text", - False, False, 1, None, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "color", PropertyType.FLOAT32, PropertySubType.COLOR, - None, - "Color", "Color of the text", - False, False, 4, 0, 1, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "z_index", PropertyType.UINT32, PropertySubType.NULL, - None, - "Z-index", "Z-index: values greater than zero are deferred draws", - False, False, 1, None, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "debug", PropertyType.BOOL, PropertySubType.NULL, - None, - "Debug", "Draw debug outlines", - False, False, 1, None, None, [] - ) - api.add_property(node_id, prop) - - api.link_node(node_id, layer_id) - return node_id - -def create_editbox(name, layer_id): - node_id = api.add_node("editz", SceneNodeType.EDIT_BOX) - - prop = Property( - "is_active", PropertyType.BOOL, PropertySubType.NULL, - None, - "Is Active", "Whether the editbox is active", - False, True, 1, None, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "rect", PropertyType.FLOAT32, PropertySubType.PIXEL, - None, - "Rectangle", "The position and size within the layer", - False, True, 4, None, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "baseline", PropertyType.FLOAT32, PropertySubType.PIXEL, - None, - "Baseline", "Y offset of baseline inside rect", - False, True, 1, None, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "scroll", PropertyType.FLOAT32, PropertySubType.NULL, - None, - "Scroll", "Current scroll", - False, False, 1, None, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "cursor_pos", PropertyType.UINT32, PropertySubType.NULL, - None, - "Cursor Position", "Cursor position within the text", - False, False, 1, None, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "font_size", PropertyType.FLOAT32, PropertySubType.PIXEL, - None, - "Font Size", "Font Size", - False, True, 1, 0.0, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "text", PropertyType.STR, PropertySubType.NULL, - None, - "Text", "Text", - False, False, 1, None, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "text_color", PropertyType.FLOAT32, PropertySubType.COLOR, - None, - "Text Color", "Color of the text", - False, False, 4, 0, 1, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "cursor_color", PropertyType.FLOAT32, PropertySubType.COLOR, - None, - "Cursor Color", "Color of the cursor", - False, False, 4, 0, 1, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "hi_bg_color", PropertyType.FLOAT32, PropertySubType.COLOR, - None, - "Highlight Bg Color", "Background color for highlighted text", - False, False, 4, 0, 1, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "selected", PropertyType.UINT32, PropertySubType.NULL, - None, - "Selected", "Selected range", - True, False, 2, 0, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "z_index", PropertyType.UINT32, PropertySubType.NULL, - None, - "Z-index", "Z-index: values greater than zero are deferred draws", - False, False, 1, None, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "debug", PropertyType.BOOL, PropertySubType.NULL, - None, - "Debug", "Draw debug outlines", - False, False, 1, None, None, [] - ) - api.add_property(node_id, prop) - - #win_id = api.lookup_node_id("/window") - #arg_data = bytearray() - #serial.write_u32(arg_data, node_id) - #api.call_method(win_id, "create_edit_box", arg_data) - - #api.link_node(node_id, layer_id) - return node_id - -def create_chatview(name, layer_id): - node_id = api.add_node(name, SceneNodeType.CHAT_VIEW) - - prop = Property( - "rect", PropertyType.FLOAT32, PropertySubType.PIXEL, - None, - "Rectangle", "The position and size within the layer", - False, True, 4, None, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "debug", PropertyType.BOOL, PropertySubType.NULL, - None, - "Debug", "Draw debug outlines", - False, False, 1, None, None, [] - ) - api.add_property(node_id, prop) - - prop = Property( - "z_index", PropertyType.UINT32, PropertySubType.NULL, - None, - "Z-index", "Z-index: values greater than zero are deferred draws", - False, False, 1, None, None, [] - ) - api.add_property(node_id, prop) - - win_id = api.lookup_node_id("/window") - arg_data = bytearray() - serial.write_u32(arg_data, node_id) - api.call_method(win_id, "create_chat_view", arg_data) - - api.link_node(node_id, layer_id) - return node_id - -class Buffer: - - def __init__(self): - self.verts = bytearray() - self.faces = bytearray() - self.verts_len = 0 - - def draw_box(self, rect=(0, 0, 1, 1), r=0, g=0, b=0): - x, y, w, h = rect - vert1 = vertex(x, y, r, g, b, 1, 0, 0) - vert2 = vertex(x + w, y, r, g, b, 1, 1, 0) - vert3 = vertex(x, y + h, r, g, b, 1, 0, 1) - vert4 = vertex(x + w, y + h, r, g, b, 1, 1, 1) - verts = vert1 + vert2 + vert3 + vert4 - - k = self.verts_len - faces = face(k, k + 2, k + 1) + face(k + 1, k + 2, k + 3) - self.verts_len += 4 - - self.verts += verts - self.faces += faces - - def draw_outline(self, rect=(0, 0, 1, 1), r=0, g=0, b=0, pad=1, layer_dim=(0, 0)): - layer_w, layer_h = layer_dim - pad_x, pad_y = 1/layer_w, 1/layer_h - x, y, w, h = rect - # left side - self.draw_box((x, y, pad_x, h), r, g, b) - # top side - self.draw_box((x, y, w, pad_y), r, g, b) - # right side - rhs = x + w - self.draw_box((rhs - pad_x, y, pad_x, h), r, g, b) - # bottom side - bhs = y + h - self.draw_box((x, bhs - pad_y, w, pad_y), r, g, b) - -def main(): - layer_id = create_layer("view") - api.set_property_u32(layer_id, "rect", 0, 0) - api.set_property_u32(layer_id, "rect", 1, 0) - code = [["as_u32", ["load", "sw"]]] - api.set_property_expr(layer_id, "rect", 2, code) - code = [["as_u32", ["load", "sh"]]] - api.set_property_expr(layer_id, "rect", 3, code) - - # Make the black background - # Maybe we should use a RenderPass for this instead - node_id = create_mesh("bg", layer_id) - api.set_property_f32(node_id, "rect", 0, 0) - api.set_property_f32(node_id, "rect", 1, 0) - code = [["load", "lw"]] - api.set_property_expr(node_id, "rect", 2, code) - code = [["load", "lh"]] - api.set_property_expr(node_id, "rect", 3, code) - - buff = Buffer() - buff.draw_box(r=0.05, g=0.05, b=0.05) - api.set_property_buf(node_id, "data", 0, buff.verts) - api.set_property_buf(node_id, "data", 1, buff.faces) - - # Make the chatedit bg - node_id = create_mesh("chateditbg", layer_id) - api.set_property_f32(node_id, "rect", 0, 100) - code = [["-", ["load", "lh"], ["f32", 50]]] - api.set_property_expr(node_id, "rect", 1, code) - code = [["-", ["load", "lw"], ["f32", 100]]] - api.set_property_expr(node_id, "rect", 2, code) - api.set_property_f32(node_id, "rect", 3, 50) - - buff = Buffer() - buff.draw_box(r=0.0, g=0.13, b=0.08) - buff.draw_outline(r=0.22, g=0.22, b=0.22, pad=1, layer_dim=(1000, 50)) - api.set_property_buf(node_id, "data", 0, buff.verts) - api.set_property_buf(node_id, "data", 1, buff.faces) - - # Make the nicktext border - node_id = create_mesh("nickbg", layer_id) - api.set_property_f32(node_id, "rect", 0, 0) - code = [["-", ["load", "lh"], ["f32", 50]]] - api.set_property_expr(node_id, "rect", 1, code) - api.set_property_f32(node_id, "rect", 2, 100) - api.set_property_f32(node_id, "rect", 3, 50) - - buff = Buffer() - buff.draw_outline(r=0.0, g=0.13, b=0.08, pad=1, layer_dim=(100, 50)) - api.set_property_buf(node_id, "data", 0, buff.verts) - api.set_property_buf(node_id, "data", 1, buff.faces) - - # The nickname - node_id = create_text("nick", layer_id) - api.set_property_f32(node_id, "rect", 0, 20) - code = [["-", ["load", "lh"], ["f32", 50]]] - api.set_property_expr(node_id, "rect", 1, code) - api.set_property_f32(node_id, "rect", 2, 100) - api.set_property_f32(node_id, "rect", 3, 50) - api.set_property_f32(node_id, "baseline", 0, 30) - api.set_property_f32(node_id, "font_size", 0, 20) - api.set_property_str(node_id, "text", 0, "anon1") - api.set_property_f32(node_id, "color", 0, 0) - api.set_property_f32(node_id, "color", 1, 1) - api.set_property_f32(node_id, "color", 2, 0) - api.set_property_f32(node_id, "color", 3, 1) - api.set_property_u32(node_id, "z_index", 0, 1) - - # Make the text edit - node_id = create_editbox("editz", layer_id) - api.set_property_bool(node_id, "is_active", 0, True) - api.set_property_f32(node_id, "rect", 0, 100) - code = [["-", ["load", "lh"], ["f32", 50]]] - api.set_property_expr(node_id, "rect", 1, code) - code = [["-", ["load", "lw"], ["f32", 100]]] - api.set_property_expr(node_id, "rect", 2, code) - api.set_property_f32(node_id, "rect", 3, 50) - api.set_property_f32(node_id, "baseline", 0, 30) - api.set_property_f32(node_id, "font_size", 0, 20) - api.set_property_str(node_id, "text", 0, "hello king!๐Ÿ˜๐Ÿ†jelly ๐Ÿ†1234") - api.set_property_f32(node_id, "text_color", 0, 1) - api.set_property_f32(node_id, "text_color", 1, 1) - api.set_property_f32(node_id, "text_color", 2, 1) - api.set_property_f32(node_id, "text_color", 3, 1) - api.set_property_f32(node_id, "cursor_color", 0, 1) - api.set_property_f32(node_id, "cursor_color", 1, 0.5) - api.set_property_f32(node_id, "cursor_color", 2, 0.5) - api.set_property_f32(node_id, "cursor_color", 3, 1) - api.set_property_f32(node_id, "hi_bg_color", 0, 1) - api.set_property_f32(node_id, "hi_bg_color", 1, 1) - api.set_property_f32(node_id, "hi_bg_color", 2, 1) - api.set_property_f32(node_id, "hi_bg_color", 3, 0.5) - api.set_property_null(node_id, "selected", 0) - api.set_property_null(node_id, "selected", 1) - api.set_property_u32(node_id, "z_index", 0, 1) - api.set_property_bool(node_id, "debug", 0, False) - - win_id = api.lookup_node_id("/window") - arg_data = bytearray() - serial.write_u32(arg_data, node_id) - api.call_method(win_id, "create_edit_box", arg_data) - api.link_node(node_id, layer_id) - - # Add the chatview - node_id = create_chatview("chatty", layer_id) - api.set_property_f32(node_id, "rect", 0, 0) - api.set_property_f32(node_id, "rect", 1, 0) - code = [["load", "lw"]] - api.set_property_expr(node_id, "rect", 2, code) - code = [["-", ["load", "lh"], ["f32", 50]]] - api.set_property_expr(node_id, "rect", 3, code) - #api.set_property_bool(node_id, "debug", 0, True) - api.set_property_u32(node_id, "z_index", 0, 1) - - api.set_property_bool(layer_id, "is_visible", 0, True) - -main() -print_tree() -