Skip to content
Snippets Groups Projects
  1. Nov 16, 2016
  2. Nov 14, 2016
    • akwizgran's avatar
      Merge branch '732-reveal-contacts-ui-onboarding' into 'master' · c4a152b5
      akwizgran authored
      Add onboarding dialog for revealing contacts screen
      
      This MR is based on !406.
      
      ![device-2016-11-11-162417](/uploads/8df831905eebf41ecdbe368890cdd429/device-2016-11-11-162417.png)
      
      See merge request !407
      c4a152b5
    • Torsten Grote's avatar
      ed728e81
    • akwizgran's avatar
      Merge branch '732-reveal-contacts-ui' into 'master' · efbce953
      akwizgran authored
      Add UI for revealing contacts within a private group
      
      This addresses one part of #732. Join notices and onboarding will follow in separate MRs.
      
      Although this MR is technically not based on !402, it does require it to be merged first to compile.
      
      ![device-2016-11-11-160454](/uploads/8cb6d8bdd0f3761657875024739e730a/device-2016-11-11-160454.png)
      
      See merge request !406
      efbce953
    • akwizgran's avatar
      Merge branch '709-reveal-relationships' into 'master' · 98c81f71
      akwizgran authored
      Mark relationship visible when syncing group with peer
      
      This branch updates the private group invitation protocol to use @grote's new method for marking a contact relationship visible to the group.
      
      I've changed the method slightly because the protocol state machine allows us to leave and re-enter the BOTH_JOINED state (see diagram on #659), so the relationship may already be visible when the method is called. In that case the visibility isn't updated, so we stick with whichever of revealed-by-us and revealed-by-contact happened first.
      
      See merge request !402
      98c81f71
    • akwizgran's avatar
      Added javadocs, removed redundant exception. · da543c10
      akwizgran authored
      da543c10
  3. Nov 11, 2016
  4. Nov 10, 2016
  5. Nov 09, 2016
  6. Nov 08, 2016
    • akwizgran's avatar
      Merge branch '346-smaller-qr-codes' into 'master' · 138a6e11
      akwizgran authored
      Encode transport properties more compactly in QR codes
      
      The [original BQP spec](https://code.briarproject.org/akwizgran/briar/wikis/BQP) described a compact encoding for transport properties, with the goal of making the QR code as small as possible. At some point during the implementation, I asked @str4d to use TransportIds and TransportProperties instead, as described in the [current spec](https://code.briarproject.org/akwizgran/briar-spec/blob/master/protocols/BQP.md). That was a mistake.
      
      Using the original format reduces the payload from 60 to 34 bytes (43% smaller) for Bluetooth only, and from 96 to 49 bytes (49% smaller) for Bluetooth and LAN. This makes it easier to scan codes from low-resolution screens using fixed-focus and/or low-resolution cameras. Using this branch I can exchange codes between the Sony Xperia Tipo (320x480 screen, fixed focus, 640x480 preview size) and the Huawei Ascend Y300 (480x800 screen, infinity focus, 1280x720 preview size).
      
      This also removes an obstacle to implementing #558, as TransportIds are no longer included in QR codes.
      
      Closes #346.
      
      See merge request !394
      138a6e11
    • akwizgran's avatar
      Merge branch '709-private-group-invitation-protocol' into 'master' · 178d7211
      akwizgran authored
      Private group invitation protocol
      
      This branch implements the private group invitation protocol. The implementation is something of an experiment with a new way of writing client protocols.
      
      We start with a role enum that lists the roles in the protocol, and a state enum for each role, which lists the states in the role's state machine. Then there's a session class, parameterised by the state class and therefore by the role, which represents the session information held by that role. Then there's an engine interface, parameterised by the session class and therefore by the role, which encapsulates the protocol logic for the role. Most of this stuff can be created pretty mechanically from the state machine diagrams.
      
      The engine interface has a method for each type of message and each local action. I started out with one method for all messages and another for all local actions, but that turned out to be a bad design - the information about what kind of message was being handled was lost when the message was passed to the engine, and had to be recovered using an instanceof ladder.
      
      Each engine method takes a message or an action and a session, and returns an updated session. A transaction is passed in so the engine can send messages, attach events, and do any other work it needs to do (such as changing the visibility of groups, in the case of this protocol). This removes the need to run tasks outside the engine, so the protocol logic is better encapsulated inside the engine.
      
      Parsing and encoding of messages and sessions is separated from protocol logic. MessageParser, MessageEncoder and the validator are the only classes that know how messages and their metadata are formatted, and likewise SessionParser and SessionEncoder are the only classes that know how sessions are formatted. The metadata keys are declared in a package-private interface.
      
      It's common knowledge that I never make mistakes, so to keep things interesting I've hidden 114 deliberate mistakes in this code. See how many you can spot!
      
      Needs tests before #709 is closed.
      
      See merge request !382
      178d7211
    • Torsten Grote's avatar
      Merge branch '709-preliminaries' into 'master' · c1f1eb7d
      Torsten Grote authored
      Preliminaries for private group invitation protocol
      
      As promised, here's the preliminary stuff for #709 as a separate MR.
      
      See merge request !395
      c1f1eb7d
    • akwizgran's avatar
      d2a3804c
    • akwizgran's avatar
      fb095c1f
    • akwizgran's avatar
      f89d8cbe
    • akwizgran's avatar
      Private group invitation protocol. · d2434123
      akwizgran authored
      d2434123
    • akwizgran's avatar
      edbf5ff5
    • akwizgran's avatar
      32f0b53d
    • akwizgran's avatar
      Merge branch '557-use-namespaced-strings-for-client-ids' into 'master' · 55ecdd9a
      akwizgran authored
      Use namespaced strings for client IDs
      
      Closes #557
      
      See merge request !393
      55ecdd9a
Loading