From e0835ad460612dba7351f07c3ae2236dfe7238e0 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Fri, 14 Oct 2016 15:40:27 -0300 Subject: [PATCH] Add "Created by" to ActionBar --- .../conversation/GroupActivity.java | 19 +++++++++++++++++++ .../android/threaded/ThreadListActivity.java | 19 +++++++++++++++---- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/briar-android/src/org/briarproject/android/privategroup/conversation/GroupActivity.java b/briar-android/src/org/briarproject/android/privategroup/conversation/GroupActivity.java index b00fdde45e..0ad5827346 100644 --- a/briar-android/src/org/briarproject/android/privategroup/conversation/GroupActivity.java +++ b/briar-android/src/org/briarproject/android/privategroup/conversation/GroupActivity.java @@ -2,6 +2,8 @@ package org.briarproject.android.privategroup.conversation; import android.os.Bundle; import android.support.annotation.LayoutRes; +import android.support.annotation.Nullable; +import android.support.v7.app.ActionBar; import android.support.v7.widget.LinearLayoutManager; import android.view.Menu; import android.view.MenuInflater; @@ -43,6 +45,23 @@ public class GroupActivity extends return R.layout.activity_forum; } + @Override + protected void setActionBarTitle(@Nullable String title) { + if (title != null) setTitle(title); + loadGroupItem(); + } + + @Override + protected void onGroupItemLoaded(PrivateGroup group) { + super.onGroupItemLoaded(group); + // Created by + ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setSubtitle(getString(R.string.groups_created_by, + group.getAuthor().getName())); + } + } + @Override protected GroupMessageAdapter createAdapter( LinearLayoutManager layoutManager) { diff --git a/briar-android/src/org/briarproject/android/threaded/ThreadListActivity.java b/briar-android/src/org/briarproject/android/threaded/ThreadListActivity.java index e175d3034e..529d588de0 100644 --- a/briar-android/src/org/briarproject/android/threaded/ThreadListActivity.java +++ b/briar-android/src/org/briarproject/android/threaded/ThreadListActivity.java @@ -6,6 +6,7 @@ import android.support.annotation.CallSuper; import android.support.annotation.LayoutRes; import android.support.annotation.Nullable; import android.support.annotation.StringRes; +import android.support.annotation.UiThread; import android.support.design.widget.Snackbar; import android.support.v4.content.ContextCompat; import android.support.v7.widget.LinearLayoutManager; @@ -63,8 +64,7 @@ public abstract class ThreadListActivity<G extends BaseGroup, I extends ThreadIt groupId = new GroupId(b); getController().setGroupId(groupId); String groupName = i.getStringExtra(GROUP_NAME); - if (groupName != null) setTitle(groupName); - else loadAndSetTitle(); + setActionBarTitle(groupName); textInput = (TextInputView) findViewById(R.id.text_input_container); textInput.setVisibility(GONE); @@ -86,12 +86,17 @@ public abstract class ThreadListActivity<G extends BaseGroup, I extends ThreadIt protected abstract A createAdapter(LinearLayoutManager layoutManager); - private void loadAndSetTitle() { + protected void setActionBarTitle(@Nullable String title) { + if (title != null) setTitle(title); + else loadGroupItem(); + } + + protected void loadGroupItem() { getController().loadGroupItem( new UiResultExceptionHandler<G, DbException>(this) { @Override public void onResultUi(G groupItem) { - setTitle(groupItem.getName()); + onGroupItemLoaded(groupItem); } @Override @@ -102,6 +107,12 @@ public abstract class ThreadListActivity<G extends BaseGroup, I extends ThreadIt }); } + @CallSuper + @UiThread + protected void onGroupItemLoaded(G groupItem) { + setTitle(groupItem.getName()); + } + private void loadItems() { getController().loadItems( new UiResultExceptionHandler<Collection<I>, DbException>( -- GitLab