Commit Graph

2721 Commits

Author SHA1 Message Date
akwizgran
b3e5d1ff85 Finished renaming entry to item, reduced some visibility. 2016-10-19 20:49:45 +01:00
Torsten Grote
690142ce07 Merge branch '712-bdf-list-out-of-bounds' into 'master'
Throw FormatException if BdfList index is out of bounds

Closes #712

See merge request !359
2016-10-19 17:49:14 +00:00
akwizgran
82eea6bb77 Throw FormatException if BdfList index is out of bounds. 2016-10-19 18:11:31 +01:00
Torsten Grote
3ad3332649 Merge branch '663-implement-ux-for-displaying-message-threads-in-private-groups' into 'master'
Private Group Threaded Conversation

This MR refactors the forum activity, its controller, its adapter and view holder so *most* of the code can be re-used for private groups by making heavy use of generics.

The refactoring has 1383 additions and 1087 deletions, so just grows the code-base slightly and adding the private group conversation just takes an additional 400 lines.

The MR also includes one commit that moves post/message creation more into clients, so the UI doesn't need to keep track of timestamps. This commit can of course be split out into a separate MR if desired.

Closes #662, #663 

See merge request !350
2016-10-19 16:42:24 +00:00
Torsten Grote
5a0fa5dcc7 Last round of addressing review issues 2016-10-19 14:38:11 -02:00
Torsten Grote
8f882dc910 Addressing second round of review issues 2016-10-19 10:43:02 -02:00
Torsten Grote
0523c4e718 Address issues found in code review 2016-10-19 10:43:01 -02:00
Torsten Grote
7bf4aebdaf Move post/message creation into clients
This way the forum and private group client do not need to keep track of
message timestamps themselves and do not need to interact with
post/message factories.
2016-10-19 10:43:01 -02:00
Torsten Grote
6db59ffce5 Parsing and retrieval of private groups in PrivateGroupManager 2016-10-19 10:43:01 -02:00
Torsten Grote
e0835ad460 Add "Created by" to ActionBar 2016-10-19 10:43:00 -02:00
Torsten Grote
c83d4bbb39 Implement first prototype of private group message threads 2016-10-19 10:43:00 -02:00
Torsten Grote
65b47bb5d2 Refactor Forum Controller, so it can be used by private groups 2016-10-19 10:42:59 -02:00
Torsten Grote
9ce95d6de7 Refactor Forum Activity and adapters to be re-used for private groups 2016-10-19 10:42:59 -02:00
akwizgran
9d2c56e75f Upgraded Gradle plugin to 2.2.1. 2016-10-19 12:24:22 +01:00
akwizgran
32c4f61e68 Merge branch '670-uncaught-exceptions-do-not-print-a-stack-trace-in-introductionintegrationtest' into 'master'
Print stack trace for uncaught exceptions during tests for easier debugging

Closes #670

See merge request !355
2016-10-14 12:14:05 +00:00
Torsten Grote
6e04664915 Print stack trace for uncaught exceptions during tests for easier debugging 2016-10-14 08:44:47 -03:00
akwizgran
5674ee2d88 Converted group list controller to constructor injection. 2016-10-12 17:28:44 +01:00
akwizgran
8637faf858 Merge branch '704-constructor-injection' into 'master'
Use constructor injection for controllers

Also made some listeners volatile.

This is part of #704 - if I don't find any other classes that need constructor injection I'll close the ticket.

See merge request !351
2016-10-12 16:02:53 +00:00
akwizgran
970cbbf557 Merge branch 'not-null-by-default' into 'master'
Null safety annotations

The @NotNullByDefault annotation marks all fields, methods and parameters in a class or package @NotNull, so Android Studio will warn if values that may be null are used. Please use this annotation for new classes, and specify @Nullable for any fields, methods and parameters that may be null.

Injected fields are initialised to null, so injected classes should use @MethodsNotNullByDefault and @ParametersNotNullByDefault, or specify @Nullable for injected fields.

See merge request !349
2016-10-12 16:00:54 +00:00
akwizgran
57ac4a5374 Removed Maven Central repo. 2016-10-12 17:00:03 +01:00
akwizgran
2b91631ba5 Use constructor injection for controllers.
Also made some listeners volatile.
2016-10-11 12:31:21 +01:00
akwizgran
b327122255 Merge branch '660-implement-ux-for-the-list-of-private-groups' into 'master'
Private Group List UI

This MR implements the UI for the list of private groups.

It reacts to three types of events to refresh the displayed data:
* new group message received
* private group added
* private group removed

Missing from final implementation:
* entering groups
* adding new groups
* reacting to a future group dissolved event
* actually removing a dissolved group

![device-2016-09-29-180741](/uploads/666f04e8c9e2c81bdfe7f5648c14e71d/device-2016-09-29-180741.png)
![device-2016-10-03-141200](/uploads/5d0a54ea5a31d64404591c03ccf1e3b6/device-2016-10-03-141200.png)
![groups](/uploads/3eba757e21837739a129aab15100c06a/groups.gif)

Closes #660

See merge request !335
2016-10-11 10:22:26 +00:00
akwizgran
0b3ec9aa4c Merge branch '676-keyboard-isn-t-shown-when-forum-text-entry-field-gets-focus' into 'master'
Always show the keyboard when asked for it

The main fix is maintaining the internal keyboard state when the entire view gets hidden, because `onMeasure()` isn't called anymore in that case and can't update it itself.

Closes #676

See merge request !348
2016-10-11 09:47:27 +00:00
Torsten Grote
154e02723f Always show the keyboard when asked for it
and maintain keyboard state when hiding view.
2016-10-10 13:53:53 -03:00
Torsten Grote
b09e30a95f Private Group List 2016-10-10 13:48:34 -03:00
akwizgran
3ea36bbd40 Merge branch '551-destroyable-context' into 'master'
Always check whether the context has been destroyed

#551 has the same root cause as #610, which is that when a background operation completes, we need to check whether the activity or fragment that started the operation has been destroyed before doing anything with the UI. 

DestroyableActivity has been renamed to DestroyableContext because it's now implemented by some fragments as well. Various existing listener interfaces now extend DestroyableContext.

I also modified the ActivityLifecycleController interface so the activity is passed into the onActivityCreate() method rather than being injected - @ernir please check I haven't broken anything!

Closes #551

See merge request !341
2016-10-10 15:00:15 +00:00
akwizgran
cb983f02c2 Always check whether context has been destroyed. 2016-10-10 15:54:08 +01:00
akwizgran
f1730aa7d9 Merge branch '696-npe-key-agreement-task' into 'master'
Fix NPE when stopping KeyAgreementTask, improve thread safety

This branch fixes #696 and improves the thread safety of the camera code, mostly by adding @UiThread annotations and occasionally by moving stuff onto the UI thread that might have happened on other threads before.

Closes #696

See merge request !345
2016-10-10 14:46:25 +00:00
akwizgran
857665db79 Merge branch '373-slow-contact-list' into 'master'
Use new group metadata for showing lists

What was supposed to be a minimal change turned into a rather large MR. I did my best to keep things in separate commits, so I can still split this into smaller MRs if desired.

While making use of the new group metadata in the contact and forum list, I noticed some other things in need of improvement to get rid of needing to load all messages:
* Refactor `SharingManager` so its events provide message headers that can be used to update list items
* Add `GroupId` to conversation items, so the metadata of the respective group can be updated as well when marking the items read
* Create a very basic `ConversationManager` so the GroupCount for the various clients can be queried in one go without needing to know all their groups per contact
* Fix a nasty bug that caused forum and blog invitation to not update their read state
* Fix some bugs related to displaying the forum list with proper unread count

Some casual measurements with just a few contacts and messages showed a reduction of the contact list load time by one third.

See merge request !343
2016-10-10 14:00:36 +00:00
Torsten Grote
7f2db71160 Address review comments 2016-10-10 10:46:30 -03:00
akwizgran
60dee5c4cb Added null safety annotations. 2016-10-10 14:32:26 +01:00
Torsten Grote
784561144a Use new GroupCount to display Forum List
Fixes #531, #532
2016-10-10 08:00:17 -03:00
Torsten Grote
70d39d03bc Use group metadata from ConversationManager for showing contact lists
Fixes #373
2016-10-10 08:00:17 -03:00
Torsten Grote
48a3db46bc Properly pass message read state for sharing invitations and responses
Fixes #350
2016-10-10 08:00:16 -03:00
Torsten Grote
f52819f4ca Create a basic ConversationManager for querying GroupCount
This is also lays the groundwork for #384
2016-10-10 08:00:16 -03:00
Torsten Grote
457c30f3f2 Add GroupId to conversation items 2016-10-10 08:00:15 -03:00
Torsten Grote
1731369d7a Refactor SharingManager so its events provide message header 2016-10-10 08:00:12 -03:00
akwizgran
064b920626 Merge branch '687-refactor-adapters' into 'master'
Refactor existing adapters into a generic superclass

This MR also moves various blog classes into their own packages and makes the required visibility changes.

Closes #687

See merge request !346
2016-10-10 10:15:13 +00:00
Torsten Grote
b2fa039474 Refactor existing adapters into a generic superclass
This commit also moves various blog classes into their own packages and
makes the required visibility changes.
2016-10-06 11:30:10 -03:00
akwizgran
9112d17a4b Merge branch '611-body-cache-thread-safety' into 'master'
Make body cache thread-safe, reduce visibility of classes

Closes #611

See merge request !347
2016-10-06 13:43:09 +00:00
akwizgran
86fbb89637 Make body cache thread-safe, reduce visibility of classes. 2016-10-06 14:41:55 +01:00
akwizgran
b3bea1f945 Merge branch 'fix-introduction-unit-tests' into 'master'
Fix IntroductionManager unit tests

I forgot to run the unit tests after changing the `GroupCount` serialization in response to a review comment. This MR fixes the tests.

See merge request !344
2016-10-06 10:59:27 +00:00
akwizgran
543304973e Fixed an NPE, improved thread safety of camera code. 2016-10-06 11:53:07 +01:00
akwizgran
fc38738428 Merge branch '598-remove-unused-code' into 'master'
Remove unused UI code and layouts

If we ever need this code, it will be in the git history.

Closes #598

See merge request !342
2016-10-06 08:55:33 +00:00
Torsten Grote
d661fa0661 Fix IntroductionManager unit tests 2016-10-05 18:51:03 -03:00
akwizgran
e2eda8fef0 Merge branch '584-store-latest-timestamp-and-unread-count-in-group-metadata-for-private-messaging' into 'master'
Store message count, unread count and timestamp of latest message in group metadata

This is to eventually address #373 and slowness of other lists. The group metadata is not yet used, but if this MR isn't merged fast, another commit that actually uses it and thus takes care of the slowness will be added.

Closes #584, #585, #586

See merge request !336
2016-10-05 16:20:32 +00:00
akwizgran
604542c19b Remove unused UI code and layouts. 2016-10-05 17:09:16 +01:00
Torsten Grote
a727a0817e Store message count, unread count and timestamp of latest message
in group metadata to be able to speed up group listings.

Closes #584, #586, #585
2016-10-05 12:34:37 -03:00
Torsten Grote
3fa84ec7a8 Merge branch '680-release-camera-surface' into 'master'
Release camera surface to work around Android bug #54285

Closes #680

See merge request !340
2016-10-05 14:41:19 +00:00
Torsten Grote
e5f5511112 Merge branch 'identicon-cleanup' into 'master'
Clean up identicon code, remove unused classes

I noticed some debug-level logging coming from the identicon code, went in there to remove it, and realised half the code was unused, so I removed that too.

No functional changes except that the logging is gone and the opacity is now OPAQUE rather than UNKNOWN, which wasn't valid in this context.

See merge request !339
2016-10-05 14:38:17 +00:00