diff --git a/briar-android/src/main/AndroidManifest.xml b/briar-android/src/main/AndroidManifest.xml index e3268b74081d0d2021e7d60968d8df316e27ea5e..db928100660fcc736c1165d9d5d507a292a6a2e7 100644 --- a/briar-android/src/main/AndroidManifest.xml +++ b/briar-android/src/main/AndroidManifest.xml @@ -111,6 +111,7 @@ android:name=".android.privategroup.conversation.GroupActivity" android:label="@string/app_name" android:parentActivityName=".android.navdrawer.NavDrawerActivity" + android:theme="@style/BriarThemeNoActionBar.Default" android:windowSoftInputMode="adjustResize|stateHidden"> <meta-data android:name="android.support.PARENT_ACTIVITY" @@ -194,6 +195,7 @@ android:name=".android.forum.ForumActivity" android:label="@string/app_name" android:parentActivityName=".android.navdrawer.NavDrawerActivity" + android:theme="@style/BriarThemeNoActionBar.Default" android:windowSoftInputMode="adjustResize|stateHidden"> <meta-data android:name="android.support.PARENT_ACTIVITY" @@ -245,11 +247,11 @@ <activity android:name=".android.blog.BlogActivity" - android:parentActivityName=".android.navdrawer.NavDrawerActivity"> + android:parentActivityName=".android.navdrawer.NavDrawerActivity" + android:theme="@style/BriarThemeNoActionBar.Default"> <meta-data android:name="android.support.PARENT_ACTIVITY" - android:value=".android.navdrawer.NavDrawerActivity" - /> + android:value=".android.navdrawer.NavDrawerActivity"/> </activity> <activity diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java index c2e4f113c1e26112fcbb5a149e9bdc0c6f3236a0..773208adce0dc2ef2e2e46f567936301b93d9b57 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java @@ -3,6 +3,9 @@ package org.briarproject.briar.android.activity; import android.annotation.SuppressLint; import android.content.Intent; import android.os.Build; +import android.support.annotation.Nullable; +import android.support.v7.app.ActionBar; +import android.support.v7.widget.Toolbar; import android.transition.Slide; import android.transition.Transition; import android.view.Gravity; @@ -94,6 +97,27 @@ public abstract class BriarActivity extends BaseActivity { window.setBackgroundDrawableResource(android.R.color.transparent); } + /** + * This should be called after the content view has been added in onCreate() + * + * @param ownLayout true if the custom toolbar brings its own layout + * @return the Toolbar object or null if content view did not contain one + */ + @Nullable + protected Toolbar setUpCustomToolbar(boolean ownLayout) { + // Custom Toolbar + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + ActionBar ab = getSupportActionBar(); + if (ab != null) { + ab.setDisplayShowHomeEnabled(true); + ab.setDisplayHomeAsUpEnabled(true); + ab.setDisplayShowCustomEnabled(ownLayout); + ab.setDisplayShowTitleEnabled(!ownLayout); + } + return toolbar; + } + protected void signOut(final boolean removeFromRecentApps) { briarController.signOut(new UiResultHandler<Void>(this) { @Override diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogActivity.java index 229e1702ff5756960186e3280069d60d1d861575..bfd880303453754a0cb559882bb3fa2834360eb2 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogActivity.java @@ -3,6 +3,7 @@ package org.briarproject.briar.android.blog; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; +import android.support.v7.widget.Toolbar; import android.view.View; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; @@ -38,12 +39,12 @@ public class BlogActivity extends BriarActivity final GroupId groupId = new GroupId(b); blogController.setGroupId(groupId); - setContentView(R.layout.activity_fragment_container); + setContentView(R.layout.activity_fragment_container_toolbar); + Toolbar toolbar = setUpCustomToolbar(false); - // Open Sharing Status on ActionBar click - View actionBar = findViewById(R.id.action_bar); - if (actionBar != null) { - actionBar.setOnClickListener( + // Open Sharing Status on Toolbar click + if (toolbar != null) { + toolbar.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationActivity.java index 11780653a2ca71a44b65162531b6b710351c7208..54f17282bc2b02d73f98e88f4d32447e5842f5c0 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationActivity.java @@ -6,7 +6,6 @@ import android.os.Bundle; import android.support.annotation.UiThread; import android.support.design.widget.Snackbar; import android.support.v4.content.ContextCompat; -import android.support.v7.app.ActionBar; import android.support.v7.app.AlertDialog; import android.support.v7.widget.ActionMenuView; import android.support.v7.widget.LinearLayoutManager; @@ -176,21 +175,13 @@ public class ConversationActivity extends BriarActivity setContentView(R.layout.activity_conversation); // Custom Toolbar - toolbar = (Toolbar) findViewById(R.id.toolbar); + toolbar = setUpCustomToolbar(true); if (toolbar != null) { toolbarAvatar = (CircleImageView) toolbar.findViewById(R.id.contactAvatar); toolbarStatus = (ImageView) toolbar.findViewById(R.id.contactStatus); toolbarTitle = (TextView) toolbar.findViewById(R.id.contactName); - setSupportActionBar(toolbar); - } - ActionBar ab = getSupportActionBar(); - if (ab != null) { - ab.setDisplayShowHomeEnabled(true); - ab.setDisplayHomeAsUpEnabled(true); - ab.setDisplayShowCustomEnabled(true); - ab.setDisplayShowTitleEnabled(false); } setTransitionName(toolbarAvatar, getAvatarTransitionName(contactId)); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java index 95c80e49c6eeb8fba0b794237587e25d569a6913..5729e4c8b787c66b9685ba01eac73f477ba0a512 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java @@ -8,6 +8,7 @@ import android.support.annotation.LayoutRes; import android.support.annotation.StringRes; import android.support.v7.app.AlertDialog; import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; @@ -63,15 +64,16 @@ public class ForumActivity extends public void onCreate(@Nullable Bundle state) { super.onCreate(state); + Toolbar toolbar = setUpCustomToolbar(false); + Intent i = getIntent(); String groupName = i.getStringExtra(GROUP_NAME); if (groupName != null) setTitle(groupName); else loadNamedGroup(); - // Open Sharing Status on ActionBar click - View actionBar = findViewById(R.id.action_bar); - if (actionBar != null) { - actionBar.setOnClickListener( + // Open member list on Toolbar click + if (toolbar != null) { + toolbar.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { @@ -92,7 +94,7 @@ public class ForumActivity extends @Override @LayoutRes protected int getLayout() { - return R.layout.activity_forum; + return R.layout.activity_threaded_conversation; } @Override diff --git a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementActivity.java index 446f4d1d43e5e164705532667a403ea62f12cb43..b66577b67c170419bb618cd22364e597f1a0a6d3 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementActivity.java @@ -60,7 +60,7 @@ public class KeyAgreementActivity extends BriarActivity implements @Override public void onCreate(@Nullable Bundle state) { super.onCreate(state); - setContentView(R.layout.activity_plain); + setContentView(R.layout.activity_fragment_container_toolbar); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java index 62131cb41ddbe081a3ce3dea326859a76ad6151f..1f6dab890927789d2bef1e9f1605fde3e9af7e08 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java @@ -8,6 +8,7 @@ import android.support.annotation.LayoutRes; import android.support.annotation.StringRes; import android.support.v7.app.AlertDialog; import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; @@ -68,15 +69,16 @@ public class GroupActivity extends public void onCreate(@Nullable Bundle state) { super.onCreate(state); + Toolbar toolbar = setUpCustomToolbar(false); + Intent i = getIntent(); String groupName = i.getStringExtra(GROUP_NAME); if (groupName != null) setTitle(groupName); loadNamedGroup(); - // Open member list on ActionBar click - View actionBar = findViewById(R.id.action_bar); - if (actionBar != null) { - actionBar.setOnClickListener( + // Open member list on Toolbar click + if (toolbar != null) { + toolbar.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { @@ -94,7 +96,7 @@ public class GroupActivity extends @Override @LayoutRes protected int getLayout() { - return R.layout.activity_forum; + return R.layout.activity_threaded_conversation; } @Override diff --git a/briar-android/src/main/res/layout/activity_dev_report.xml b/briar-android/src/main/res/layout/activity_dev_report.xml index 90f52efcf27550e0f129c5852280600cb76b1a07..fc9e649cec55f4f355267f2fea24b23333b7ba2f 100644 --- a/briar-android/src/main/res/layout/activity_dev_report.xml +++ b/briar-android/src/main/res/layout/activity_dev_report.xml @@ -11,17 +11,7 @@ android:orientation="vertical" tools:context=".android.reporting.DevReportActivity"> - <android.support.design.widget.AppBarLayout - android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <android.support.v7.widget.Toolbar - android:id="@+id/toolbar" - style="@style/BriarToolbar" - android:layout_width="match_parent" - android:layout_height="wrap_content"/> - - </android.support.design.widget.AppBarLayout> + <include layout="@layout/toolbar"/> <RelativeLayout android:layout_width="match_parent" diff --git a/briar-android/src/main/res/layout/activity_fragment_container_toolbar.xml b/briar-android/src/main/res/layout/activity_fragment_container_toolbar.xml new file mode 100644 index 0000000000000000000000000000000000000000..442bc6de79f4ecb49910578601cdd48d7b8f6192 --- /dev/null +++ b/briar-android/src/main/res/layout/activity_fragment_container_toolbar.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + tools:context=".android.keyagreement.KeyAgreementActivity"> + + <include layout="@layout/toolbar"/> + + <FrameLayout + android:id="@+id/fragmentContainer" + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent"/> + +</LinearLayout> diff --git a/briar-android/src/main/res/layout/activity_nav_drawer.xml b/briar-android/src/main/res/layout/activity_nav_drawer.xml index 2c2ea040232b2ff387a9442ad5c7ddbee748f198..aceb673742bf6f7294536f05486af9bb480a0562 100644 --- a/briar-android/src/main/res/layout/activity_nav_drawer.xml +++ b/briar-android/src/main/res/layout/activity_nav_drawer.xml @@ -2,8 +2,10 @@ <android.support.v4.widget.DrawerLayout android:id="@+id/drawer_layout" xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + tools:context=".android.navdrawer.NavDrawerActivity"> <!-- The first child(root) is the content view --> <LinearLayout @@ -11,17 +13,7 @@ android:layout_height="match_parent" android:orientation="vertical"> - <android.support.design.widget.AppBarLayout - android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <android.support.v7.widget.Toolbar - android:id="@+id/toolbar" - style="@style/BriarToolbar" - android:layout_width="match_parent" - android:layout_height="wrap_content"/> - - </android.support.design.widget.AppBarLayout> + <include layout="@layout/toolbar"/> <FrameLayout android:id="@+id/fragmentContainer" diff --git a/briar-android/src/main/res/layout/activity_plain.xml b/briar-android/src/main/res/layout/activity_plain.xml deleted file mode 100644 index 887c14a610cf4a6e18984e749344ad9ef720c84b..0000000000000000000000000000000000000000 --- a/briar-android/src/main/res/layout/activity_plain.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<LinearLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="vertical"> - - <android.support.design.widget.AppBarLayout - android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <android.support.v7.widget.Toolbar - android:id="@+id/toolbar" - style="@style/BriarToolbar" - android:layout_width="match_parent" - android:layout_height="wrap_content"/> - - </android.support.design.widget.AppBarLayout> - - <FrameLayout - android:id="@+id/fragmentContainer" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="@color/window_background"/> - -</LinearLayout> \ No newline at end of file diff --git a/briar-android/src/main/res/layout/activity_forum.xml b/briar-android/src/main/res/layout/activity_threaded_conversation.xml similarity index 81% rename from briar-android/src/main/res/layout/activity_forum.xml rename to briar-android/src/main/res/layout/activity_threaded_conversation.xml index 3f26d7a0103b77f6e78a694ff7df44ff4419101b..9847ed644e3ee550b0f427cd3b2f5e8d03d6cfaf 100644 --- a/briar-android/src/main/res/layout/activity_forum.xml +++ b/briar-android/src/main/res/layout/activity_threaded_conversation.xml @@ -4,7 +4,11 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical"> + android:orientation="vertical" + xmlns:tools="http://schemas.android.com/tools" + tools:context=".android.forum.ForumActivity"> + + <include layout="@layout/toolbar"/> <org.briarproject.briar.android.view.BriarRecyclerView android:id="@+id/list" @@ -22,4 +26,4 @@ android:elevation="@dimen/margin_tiny" app:hint="@string/forum_new_message_hint"/> -</LinearLayout> \ No newline at end of file +</LinearLayout> diff --git a/briar-android/src/main/res/layout/toolbar.xml b/briar-android/src/main/res/layout/toolbar.xml new file mode 100644 index 0000000000000000000000000000000000000000..9a17ba10dd162b140bba9db8fbe1b307e621e47b --- /dev/null +++ b/briar-android/src/main/res/layout/toolbar.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<android.support.design.widget.AppBarLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <android.support.v7.widget.Toolbar + android:id="@+id/toolbar" + style="@style/BriarToolbar" + android:layout_width="match_parent" + android:layout_height="wrap_content"/> + +</android.support.design.widget.AppBarLayout> diff --git a/briar-android/src/main/res/values/styles.xml b/briar-android/src/main/res/values/styles.xml index cb439b1c5866044000ddd0cb8397d150feb484fb..6dfcf55af98cba83dcba6993421491a50f069811 100644 --- a/briar-android/src/main/res/values/styles.xml +++ b/briar-android/src/main/res/values/styles.xml @@ -6,7 +6,8 @@ <item name="android:textColorPrimary">@color/briar_text_primary_inverse</item> <item name="android:textSize">@dimen/text_size_medium</item> <item name="colorPrimary">@color/briar_primary</item> - <item name="titleTextAppearance">@style/BriarToolbarTextAppearance</item> + <item name="titleTextAppearance">@style/BriarToolbarTitleTextAppearance</item> + <item name="subtitleTextAppearance">@style/BriarToolbarSubTitleTextAppearance</item> <item name="android:theme">@style/BriarToolbarTheme</item> </style> @@ -14,10 +15,14 @@ <item name="colorControlNormal">@color/briar_text_primary_inverse</item> </style> - <style name="BriarToolbarTextAppearance" parent="TextAppearance.Widget.AppCompat.Toolbar.Title"> + <style name="BriarToolbarTitleTextAppearance" parent="TextAppearance.Widget.AppCompat.Toolbar.Title"> <item name="android:textColor">@color/briar_text_primary_inverse</item> </style> + <style name="BriarToolbarSubTitleTextAppearance" parent="TextAppearance.Widget.AppCompat.Toolbar.Subtitle"> + <item name="android:textColor">@color/briar_text_secondary_inverse</item> + </style> + <style name="BriarButton.Default"> <item name="android:textAllCaps">true</item> </style>