briar issueshttps://code.briarproject.org/briar/briar/-/issues2017-12-18T07:40:36Zhttps://code.briarproject.org/briar/briar/-/issues/757Remove DeviceId code2017-12-18T07:40:36ZakwizgranRemove DeviceId codeThe DeviceId is a leftover from an early attempt to add multi-device support. Remove it as part of the Grand Refactoring of #136.The DeviceId is a leftover from an early attempt to add multi-device support. Remove it as part of the Grand Refactoring of #136.Milestone FTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/756Creator discards new member's join message2017-12-18T07:40:36ZakwizgranCreator discards new member's join messageThe creator of a private group will discard a join message from a new member that arrives before the corresponding invitation protocol message has been handled. The new member will eventually retransmit the message and the creator will h...The creator of a private group will discard a join message from a new member that arrives before the corresponding invitation protocol message has been handled. The new member will eventually retransmit the message and the creator will handle it, but this causes an unnecessary delay in the creator handling the new member's join message.Milestone Eakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/755Timestamp of new group message should be higher than that of all messages in ...2017-12-18T07:40:36ZTorsten GroteTimestamp of new group message should be higher than that of all messages in the groupMilestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/754Add visibility information to group member list2017-12-18T07:40:36ZTorsten GroteAdd visibility information to group member listThe member list currently only says if the group is shared with a contact or not using a sharing icon. It does not give any details on whether the relationship to that user is revealed or not.The member list currently only says if the group is shared with a contact or not using a sharing icon. It does not give any details on whether the relationship to that user is revealed or not.Milestone FTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/752Break up ActivityModule so controller implementations can be package-private2017-12-18T07:40:36ZakwizgranBreak up ActivityModule so controller implementations can be package-privateController implementations need to be public so that ActivityModule can access them. Break up ActivityModule into smaller package-specific modules, like we do in the core, so we can reduce the visibility of the controllers.
Related to #...Controller implementations need to be public so that ActivityModule can access them. Break up ActivityModule into smaller package-specific modules, like we do in the core, so we can reduce the visibility of the controllers.
Related to #368.Milestone Fhttps://code.briarproject.org/briar/briar/-/issues/749Emoji are invisible on some devices when using LAYER_TYPE_NONE2018-09-03T12:14:15ZakwizgranEmoji are invisible on some devices when using LAYER_TYPE_NONEThis issue can be reproduced on master with the Samsung Galaxy Ace 2 (Android 4.1.2) by creating a large EmojiTextView (for example a long forum post), so that rendering switches from LAYER_TYPE_SOFTWARE to LAYER_TYPE_NONE. In the screen...This issue can be reproduced on master with the Samsung Galaxy Ace 2 (Android 4.1.2) by creating a large EmojiTextView (for example a long forum post), so that rendering switches from LAYER_TYPE_SOFTWARE to LAYER_TYPE_NONE. In the screenshot below, the post at the top of the screen is below the threshold and uses LAYER_TYPE_SOFTWARE, while the invisible post filling the rest of the screen is above the threshold and uses LAYER_TYPE_NONE.
![device-2016-11-10-144841](/uploads/c55ea098cebfb45b5974816af3be4353/device-2016-11-10-144841.png)
The issue can be reproduced with EmojiTextViews of any size by changing the code to always use LAYER_TYPE_NONE. This makes it easier to see that emoji are sometimes drawn and sometimes not. For example, the screenshot below shows a mixture of posts, all of which use LAYER_TYPE_NONE and contain strings of emoji.
![device-2016-11-10-135603](/uploads/e0a04004b56ed1a4cc3286b09c60b3fa/device-2016-11-10-135603.png)
The issue also affects EmojiEditText if the rendering type is changed to LAYER_TYPE_NONE. In the screenshot below, one emoji has been typed but it's invisible.
![device-2016-11-10-135216](/uploads/9c3b4a7ca9afbf2ed24ab741d6c9d1cc/device-2016-11-10-135216.png)
Selecting invisible emoji makes them visible.
![device-2016-11-10-144910](/uploads/e7fecfe91ad52b0676343fde866fa805/device-2016-11-10-144910.png)
The issue also occurs on master with the Huawei Ascend Y330 (Android 4.2.2).
![device-2016-11-10-152529](/uploads/6893ab42d5ae585c38a76337c9186ad6/device-2016-11-10-152529.png)
If an EmojiTextView contains a mixture of emoji and text, the text is rendered normally. In the following screenshot, the post starts with one emoji, which is invisible.
![device-2016-11-10-150808](/uploads/de3bd61eb4f0aa9cf3955d5a837dbecb/device-2016-11-10-150808.png)Android 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/748Re-encoding of QR code payloads may produce different results2017-12-18T07:40:37ZakwizgranRe-encoding of QR code payloads may produce different resultsSince !394, adding a contact sometimes fails at the confirmation stage.
The Payload class contains a map from TransportIds to BdfLists. When calculating confirmation records, the Payload object received from the contact is re-encoded us...Since !394, adding a contact sometimes fails at the confirmation stage.
The Payload class contains a map from TransportIds to BdfLists. When calculating confirmation records, the Payload object received from the contact is re-encoded using the map's iteration order. The map is implemented as a HashMap, which doesn't have a defined iteration order. Devices with different HashMap implementations may re-encode each other's payloads differently from the original encoding, thus producing different confirmation records.Milestone Fakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/747Remove injected field from BlogManagerImplTest2017-12-18T07:40:37ZakwizgranRemove injected field from BlogManagerImplTestBlogManagerImplTest has an @Inject annotated field, but injections aren't used in the briar-tests module. Replace it with a mock.BlogManagerImplTest has an @Inject annotated field, but injections aren't used in the briar-tests module. Replace it with a mock.Milestone Fakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/746Crash while trying to add contact2017-12-18T07:40:37ZMegaloxCrash while trying to add contact@ernir installed the newest version of briar on my two test devices this morning (Nexus 5 and Sony Xperia M2). I tried to add these as contacts and both devices crashed after scanning the QR code. I reproduced this crash three times.@ernir installed the newest version of briar on my two test devices this morning (Nexus 5 and Sony Xperia M2). I tried to add these as contacts and both devices crashed after scanning the QR code. I reproduced this crash three times.akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/742Use unique request IDs across the app2017-12-18T07:40:37ZakwizgranUse unique request IDs across the app@ernir came up with a nice solution for this: a static method that returns an incrementing counter.
```
private final static int REQUEST_INVITE = SomeUtil.getUniqueRequestId();
```@ernir came up with a nice solution for this: a static method that returns an incrementing counter.
```
private final static int REQUEST_INVITE = SomeUtil.getUniqueRequestId();
```Milestone FTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/741Move events into their respective packages2017-12-18T07:40:37ZakwizgranMove events into their respective packagesAll events are currently in the package `org.briarproject.api.event`. Events that are specific to a given package should be moved into the package that uses them.
Sub-task of #136All events are currently in the package `org.briarproject.api.event`. Events that are specific to a given package should be moved into the package that uses them.
Sub-task of #136Milestone Fakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/740App silently quits when out of memory2019-02-25T10:04:29ZTorsten GroteApp silently quits when out of memory```
11-07 13:04:42.066 D/dalvikvm: GC_FOR_ALLOC freed 618K, 40% free 28656K/47559K, paused 75ms, total 76ms
11-07 13:04:42.066 I/dalvikvm-heap: Forcing collection of SoftReferences for 2385116-byte allocation
11-07 13:04:42.146 D/dalv...```
11-07 13:04:42.066 D/dalvikvm: GC_FOR_ALLOC freed 618K, 40% free 28656K/47559K, paused 75ms, total 76ms
11-07 13:04:42.066 I/dalvikvm-heap: Forcing collection of SoftReferences for 2385116-byte allocation
11-07 13:04:42.146 D/dalvikvm: GC_BEFORE_OOM freed 26K, 40% free 28629K/47559K, paused 84ms, total 84ms
11-07 13:04:42.146 E/dalvikvm-heap: Out of memory on a 2385116-byte allocation.
11-07 13:04:42.146 I/dalvikvm: "main" prio=5 tid=1 RUNNABLE
11-07 13:04:42.146 I/dalvikvm: | group="main" sCount=0 dsCount=0 obj=0x2b545568 self=0x12ad8
11-07 13:04:42.146 I/dalvikvm: | sysTid=24662 nice=0 sched=0/0 cgrp=apps handle=715976496
11-07 13:04:42.146 I/dalvikvm: | schedstat=( 0 0 0 ) utm=5505 stm=1699 core=0
11-07 13:04:42.146 I/dalvikvm: at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
11-07 13:04:42.146 I/dalvikvm: at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:500)
11-07 13:04:42.146 I/dalvikvm: at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:353)
11-07 13:04:42.146 I/dalvikvm: at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:781)
11-07 13:04:42.146 I/dalvikvm: at android.content.res.Resources.loadDrawable(Resources.java:1959)
11-07 13:04:42.146 I/dalvikvm: at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
11-07 13:04:42.146 I/dalvikvm: at android.widget.ImageView.<init>(ImageView.java:120)
11-07 13:04:42.156 I/dalvikvm: at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:57)
11-07 13:04:42.156 I/dalvikvm: at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:53)
11-07 13:04:42.156 I/dalvikvm: at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:106)
11-07 13:04:42.156 I/dalvikvm: at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:972)
11-07 13:04:42.156 I/dalvikvm: at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:1031)
11-07 13:04:42.156 I/dalvikvm: at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)
11-07 13:04:42.156 I/dalvikvm: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:675)
11-07 13:04:42.156 I/dalvikvm: at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
11-07 13:04:42.156 I/dalvikvm: at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
11-07 13:04:42.156 I/dalvikvm: at android.support.design.internal.NavigationMenuPresenter.inflateHeaderView(NavigationMenuPresenter.java:189)
11-07 13:04:42.156 I/dalvikvm: at android.support.design.widget.NavigationView.inflateHeaderView(NavigationView.java:258)
11-07 13:04:42.156 I/dalvikvm: at android.support.design.widget.NavigationView.<init>(NavigationView.java:173)
11-07 13:04:42.156 I/dalvikvm: at android.support.design.widget.NavigationView.<init>(NavigationView.java:95)
11-07 13:04:42.156 I/dalvikvm: at java.lang.reflect.Constructor.constructNative(Native Method)
11-07 13:04:42.156 I/dalvikvm: at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
11-07 13:04:42.156 I/dalvikvm: at android.view.LayoutInflater.createView(LayoutInflater.java:587)
11-07 13:04:42.156 I/dalvikvm: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
11-07 13:04:42.156 I/dalvikvm: at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
11-07 13:04:42.156 I/dalvikvm: at android.view.LayoutInflater.parseInclude(LayoutInflater.java:830)
11-07 13:04:42.156 I/dalvikvm: at android.view.LayoutInflater.rInflate(LayoutInflater.java:736)
11-07 13:04:42.156 I/dalvikvm: at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
11-07 13:04:42.156 I/dalvikvm: at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
11-07 13:04:42.156 I/dalvikvm: at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
11-07 13:04:42.156 I/dalvikvm: at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)
11-07 13:04:42.156 I/dalvikvm: at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
11-07 13:04:42.156 I/dalvikvm: at org.briarproject.android.NavDrawerActivity.onCreate(NavDrawerActivity.java:96)
```https://code.briarproject.org/briar/briar/-/issues/738Older devices show overflow icon on some screens but not others2017-12-18T07:40:37ZakwizgranOlder devices show overflow icon on some screens but not othersOn the Sony Xperia Tipo (Android 4.0.4), which has a hardware menu button, the action bar overflow icon is shown on some screens but not others. For example, it's shown in the private conversation, but not in private groups. This should ...On the Sony Xperia Tipo (Android 4.0.4), which has a hardware menu button, the action bar overflow icon is shown on some screens but not others. For example, it's shown in the private conversation, but not in private groups. This should be consistent across the app.
In screens where it's shown, the menu can be opened by pressing either the overflow icon or the hardware button.Milestone FTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/737Private group conversation is not updated when group is dissolved2017-12-18T07:40:37ZakwizgranPrivate group conversation is not updated when group is dissolvedIf a private group is dissolved while it's being viewed, the view doesn't update until the activity is recreated.If a private group is dissolved while it's being viewed, the view doesn't update until the activity is recreated.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/736Private group list is not updated when group is dissolved2017-12-18T07:40:37ZakwizgranPrivate group list is not updated when group is dissolvedThe activity has to be recreated for the change to appear.The activity has to be recreated for the change to appear.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/735Back button in Invite Members screen returns to group list2017-12-18T07:40:38ZakwizgranBack button in Invite Members screen returns to group listPressing the back button in the private group Invite Members screen should return to the group, not the group list.Pressing the back button in the private group Invite Members screen should return to the group, not the group list.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/734Notifications for private group messages2017-12-18T07:40:38ZakwizgranNotifications for private group messagesNotifications should be shown for private group messages as they are for blog and forum posts.Notifications should be shown for private group messages as they are for blog and forum posts.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/733Incoming messages aren't added to private group conversation2017-12-18T07:40:38ZakwizgranIncoming messages aren't added to private group conversationWhen a new private message arrives, it isn't shown in the conversation until the activity is recreated.When a new private message arrives, it isn't shown in the conversation until the activity is recreated.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/732Implement UX design for revealing contacts to a private group2017-12-18T07:40:38ZTorsten GroteImplement UX design for revealing contacts to a private groupSubticket of #654 and #127.
![654_reveal_neu_v01](/uploads/e88db85207db1a8b807e08f34722a303/654_reveal_neu_v01.jpg)Subticket of #654 and #127.
![654_reveal_neu_v01](/uploads/e88db85207db1a8b807e08f34722a303/654_reveal_neu_v01.jpg)Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/731Open BDF Lists and Dictionary throw IllegalStateException2017-12-18T07:40:38ZTorsten GroteOpen BDF Lists and Dictionary throw IllegalStateExceptionThese tests should not fail:
```java
@Test(expected = FormatException.class)
public void testOpenList() throws Exception {
// A list that is not closed
String list = "60";
setContents(list);
r.readList();
}
@Test(expected = ...These tests should not fail:
```java
@Test(expected = FormatException.class)
public void testOpenList() throws Exception {
// A list that is not closed
String list = "60";
setContents(list);
r.readList();
}
@Test(expected = FormatException.class)
public void testOpenDictionary() throws Exception {
// A dictionary that is not closed
String dicts = "70" + "41" + "03" + "666F6F";
setContents(dicts);
r.readDictionary();
}
```Milestone Fakwizgranakwizgran