diff --git a/briar-android/res/drawable-hdpi/action_about.png b/briar-android/res/drawable-hdpi/action_about.png deleted file mode 100644 index 8f39c428ac6cacd0ad4fd9e7ab4252a77ce91a53..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-hdpi/action_about.png and /dev/null differ diff --git a/briar-android/res/drawable-hdpi/action_settings.png b/briar-android/res/drawable-hdpi/action_settings.png deleted file mode 100644 index cc32e2d1d2f1838fd2ce1c35dbdeff740957c5a3..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-hdpi/action_settings.png and /dev/null differ diff --git a/briar-android/res/drawable-hdpi/content_new_email.png b/briar-android/res/drawable-hdpi/content_new_email.png deleted file mode 100644 index f1c6bcf2e001d754e21e5d9bad1d4a8de22e369a..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-hdpi/content_new_email.png and /dev/null differ diff --git a/briar-android/res/drawable-hdpi/social_chat.png b/briar-android/res/drawable-hdpi/social_chat.png deleted file mode 100644 index db0c7ac720b017f6ae3522cb238093cb4f9b4d30..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-hdpi/social_chat.png and /dev/null differ diff --git a/briar-android/res/drawable-hdpi/social_person.png b/briar-android/res/drawable-hdpi/social_person.png deleted file mode 100644 index 7b64886f7d79288bdbc7ba5377f73dfd5b1943e8..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-hdpi/social_person.png and /dev/null differ diff --git a/briar-android/res/drawable-hdpi/social_reply_all.png b/briar-android/res/drawable-hdpi/social_reply_all.png deleted file mode 100644 index 377f6286ce9d88bcb8e7e4bc2b331d583f5cd6c3..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-hdpi/social_reply_all.png and /dev/null differ diff --git a/briar-android/res/drawable-mdpi/action_about.png b/briar-android/res/drawable-mdpi/action_about.png deleted file mode 100644 index 7c57436fc57705e300e32dfb04a13508b47ec534..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-mdpi/action_about.png and /dev/null differ diff --git a/briar-android/res/drawable-mdpi/action_settings.png b/briar-android/res/drawable-mdpi/action_settings.png deleted file mode 100644 index dc66d914e83151fd6c6e3a7cd5505c5634e8f1e7..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-mdpi/action_settings.png and /dev/null differ diff --git a/briar-android/res/drawable-mdpi/content_new_email.png b/briar-android/res/drawable-mdpi/content_new_email.png deleted file mode 100644 index 7d96f28d15f5a4a6906724b4a1516b0c1504f6b2..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-mdpi/content_new_email.png and /dev/null differ diff --git a/briar-android/res/drawable-mdpi/social_chat.png b/briar-android/res/drawable-mdpi/social_chat.png deleted file mode 100644 index fe5d96e3c69bb043c27dfbfdc137f45ee558c1d1..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-mdpi/social_chat.png and /dev/null differ diff --git a/briar-android/res/drawable-mdpi/social_person.png b/briar-android/res/drawable-mdpi/social_person.png deleted file mode 100644 index 35e67efb8b279b3f936f0e65c87a10310e4dd55a..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-mdpi/social_person.png and /dev/null differ diff --git a/briar-android/res/drawable-mdpi/social_reply_all.png b/briar-android/res/drawable-mdpi/social_reply_all.png deleted file mode 100644 index 86334552edec456966f3b5bd4b9e00b73a180bd7..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-mdpi/social_reply_all.png and /dev/null differ diff --git a/briar-android/res/drawable-xhdpi/action_about.png b/briar-android/res/drawable-xhdpi/action_about.png deleted file mode 100644 index 2641f142a4684cf149ac36e23417ad56cf021e61..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-xhdpi/action_about.png and /dev/null differ diff --git a/briar-android/res/drawable-xhdpi/action_settings.png b/briar-android/res/drawable-xhdpi/action_settings.png deleted file mode 100644 index 04b65dc343df42d96636a5013dd8250582e7778b..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-xhdpi/action_settings.png and /dev/null differ diff --git a/briar-android/res/drawable-xhdpi/content_new_email.png b/briar-android/res/drawable-xhdpi/content_new_email.png deleted file mode 100644 index 674b69b08715b9978186818d728ce4133d9f1ae2..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-xhdpi/content_new_email.png and /dev/null differ diff --git a/briar-android/res/drawable-xhdpi/device_access_accounts.png b/briar-android/res/drawable-xhdpi/device_access_accounts.png deleted file mode 100644 index 0bb1359520c41d9993caf83f00247ce688768101..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-xhdpi/device_access_accounts.png and /dev/null differ diff --git a/briar-android/res/drawable-xhdpi/social_chat.png b/briar-android/res/drawable-xhdpi/social_chat.png deleted file mode 100644 index 3f58695c5981c55cda078b0b96336b7a4a609b86..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-xhdpi/social_chat.png and /dev/null differ diff --git a/briar-android/res/drawable-xhdpi/social_person.png b/briar-android/res/drawable-xhdpi/social_person.png deleted file mode 100644 index 357229b80de402e4fc169bf28540ac472d448d6a..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-xhdpi/social_person.png and /dev/null differ diff --git a/briar-android/res/drawable-xhdpi/social_reply_all.png b/briar-android/res/drawable-xhdpi/social_reply_all.png deleted file mode 100644 index f10a492c0229009a9b358cbd8ccae910ba21cdab..0000000000000000000000000000000000000000 Binary files a/briar-android/res/drawable-xhdpi/social_reply_all.png and /dev/null differ diff --git a/briar-android/res/drawable/blogs.xml b/briar-android/res/drawable/blogs.xml new file mode 100644 index 0000000000000000000000000000000000000000..cf8009a5b782032b096420e1e9ec4abe81adb515 --- /dev/null +++ b/briar-android/res/drawable/blogs.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:alpha="0.54" + android:viewportHeight="24.0" + android:viewportWidth="24.0"> + <path + android:fillColor="#FF000000" + android:pathData="M13,12h7v1.5h-7zM13,9.5h7L20,11h-7zM13,14.5h7L20,16h-7zM21,4L3,4c-1.1,0 -2,0.9 -2,2v13c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2L23,6c0,-1.1 -0.9,-2 -2,-2zM21,19h-9L12,6h9v13z"/> +</vector> diff --git a/briar-android/res/drawable/ic_contacts_black_24dp.xml b/briar-android/res/drawable/ic_contacts_black_24dp.xml new file mode 100644 index 0000000000000000000000000000000000000000..d7e92099baee0b510e8113d92841303f056adea0 --- /dev/null +++ b/briar-android/res/drawable/ic_contacts_black_24dp.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:alpha="0.54" + android:viewportHeight="24.0" + android:viewportWidth="24.0"> + <path + android:fillColor="#FF000000" + android:pathData="M16,11c1.66,0 2.99,-1.34 2.99,-3S17.66,5 16,5c-1.66,0 -3,1.34 -3,3s1.34,3 3,3zM8,11c1.66,0 2.99,-1.34 2.99,-3S9.66,5 8,5C6.34,5 5,6.34 5,8s1.34,3 3,3zM8,13c-2.33,0 -7,1.17 -7,3.5L1,19h14v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5zM16,13c-0.29,0 -0.62,0.02 -0.97,0.05 1.16,0.84 1.97,1.97 1.97,3.45L17,19h6v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5z"/> +</vector> diff --git a/briar-android/res/drawable/ic_forums_black_24dp.xml b/briar-android/res/drawable/ic_forums_black_24dp.xml new file mode 100644 index 0000000000000000000000000000000000000000..039f929ddbbeca4d75d3e13d02960e2a2525c526 --- /dev/null +++ b/briar-android/res/drawable/ic_forums_black_24dp.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:alpha="0.54" + android:viewportHeight="24.0" + android:viewportWidth="24.0"> + <path + android:fillColor="#FF000000" + android:pathData="M21,6h-2v9L6,15v2c0,0.55 0.45,1 1,1h11l4,4L22,7c0,-0.55 -0.45,-1 -1,-1zM17,12L17,3c0,-0.55 -0.45,-1 -1,-1L3,2c-0.55,0 -1,0.45 -1,1v14l4,-4h10c0.55,0 1,-0.45 1,-1z"/> +</vector> diff --git a/briar-android/res/drawable/ic_settings_black_24dp.xml b/briar-android/res/drawable/ic_settings_black_24dp.xml new file mode 100644 index 0000000000000000000000000000000000000000..ddb38f6d6d258bf88cbaffa541160ff216a2ccaa --- /dev/null +++ b/briar-android/res/drawable/ic_settings_black_24dp.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:alpha="0.54" + android:viewportHeight="24.0" + android:viewportWidth="24.0"> + <path + android:fillColor="#FF000000" + android:pathData="M19.43,12.98c0.04,-0.32 0.07,-0.64 0.07,-0.98s-0.03,-0.66 -0.07,-0.98l2.11,-1.65c0.19,-0.15 0.24,-0.42 0.12,-0.64l-2,-3.46c-0.12,-0.22 -0.39,-0.3 -0.61,-0.22l-2.49,1c-0.52,-0.4 -1.08,-0.73 -1.69,-0.98l-0.38,-2.65C14.46,2.18 14.25,2 14,2h-4c-0.25,0 -0.46,0.18 -0.49,0.42l-0.38,2.65c-0.61,0.25 -1.17,0.59 -1.69,0.98l-2.49,-1c-0.23,-0.09 -0.49,0 -0.61,0.22l-2,3.46c-0.13,0.22 -0.07,0.49 0.12,0.64l2.11,1.65c-0.04,0.32 -0.07,0.65 -0.07,0.98s0.03,0.66 0.07,0.98l-2.11,1.65c-0.19,0.15 -0.24,0.42 -0.12,0.64l2,3.46c0.12,0.22 0.39,0.3 0.61,0.22l2.49,-1c0.52,0.4 1.08,0.73 1.69,0.98l0.38,2.65c0.03,0.24 0.24,0.42 0.49,0.42h4c0.25,0 0.46,-0.18 0.49,-0.42l0.38,-2.65c0.61,-0.25 1.17,-0.59 1.69,-0.98l2.49,1c0.23,0.09 0.49,0 0.61,-0.22l2,-3.46c0.12,-0.22 0.07,-0.49 -0.12,-0.64l-2.11,-1.65zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z"/> +</vector> diff --git a/briar-android/res/drawable/ic_signout_black_24dp.xml b/briar-android/res/drawable/ic_signout_black_24dp.xml new file mode 100644 index 0000000000000000000000000000000000000000..a61a3158ad698f50257f593da606afaf758eef7a --- /dev/null +++ b/briar-android/res/drawable/ic_signout_black_24dp.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:alpha="0.54" + android:viewportHeight="24.0" + android:viewportWidth="24.0"> + <path + android:fillColor="#FF000000" + android:pathData="M13,8.2l-1,-1 -4,4 -4,-4 -1,1 4,4 -4,4 1,1 4,-4 4,4 1,-1 -4,-4 4,-4zM19,1H9c-1.1,0 -2,0.9 -2,2v3h2V4h10v16H9v-2H7v3c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2V3c0,-1.1 -0.9,-2 -2,-2z"/> +</vector> diff --git a/briar-android/res/layout/activity_nav_drawer.xml b/briar-android/res/layout/activity_nav_drawer.xml index 5b167e4ffe3951eb5ed034676dadef175fa7476f..7eb1d4e35dbb8aff2fc8269fc17a9aa16372ef33 100644 --- a/briar-android/res/layout/activity_nav_drawer.xml +++ b/briar-android/res/layout/activity_nav_drawer.xml @@ -13,7 +13,7 @@ <include android:id="@+id/navigation_menu_drawer" layout="@layout/navigation_menu" - android:layout_width="@dimen/nav_drawer_width" + android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start"/> diff --git a/briar-android/res/layout/fragment_blogs.xml b/briar-android/res/layout/fragment_blogs.xml new file mode 100644 index 0000000000000000000000000000000000000000..2e618a9b1e78a86cde64fc731ffa5d318852a0da --- /dev/null +++ b/briar-android/res/layout/fragment_blogs.xml @@ -0,0 +1,46 @@ +<?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.TabLayout + android:id="@+id/tabLayout" + style="@style/BriarTabLayout" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <android.support.design.widget.TabItem + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/blogs_feed"/> + + <android.support.design.widget.TabItem + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/blogs_my_blogs"/> + + <android.support.design.widget.TabItem + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/blogs_blog_list"/> + + <android.support.design.widget.TabItem + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/blogs_available_blogs"/> + + <android.support.design.widget.TabItem + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/blogs_drafts"/> + + </android.support.design.widget.TabLayout> + + <android.support.v4.view.ViewPager + android:id="@+id/pager" + android:layout_width="match_parent" + android:layout_height="match_parent"/> + +</LinearLayout> \ No newline at end of file diff --git a/briar-android/res/layout/fragment_blogs_my.xml b/briar-android/res/layout/fragment_blogs_my.xml new file mode 100644 index 0000000000000000000000000000000000000000..a552dc0fce49e2a0f2c2ca14340ab4c38ae51fff --- /dev/null +++ b/briar-android/res/layout/fragment_blogs_my.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This is just a placeholder to be replaced by the real My Blogs list --> +<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"> + + <TextView + android:id="@+id/num" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center_horizontal" + android:padding="@dimen/margin_activity_horizontal" + android:textSize="128sp" + tools:text="1"/> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="@dimen/margin_activity_horizontal" + android:text="There is nothing for you to see here.\n\nMove along and come back later." + android:textSize="@dimen/text_size_large"/> + +</LinearLayout> \ No newline at end of file diff --git a/briar-android/res/layout/navigation_header.xml b/briar-android/res/layout/navigation_header.xml new file mode 100644 index 0000000000000000000000000000000000000000..7f6b9a89b32d6a38169a426267f2135177a91e84 --- /dev/null +++ b/briar-android/res/layout/navigation_header.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<FrameLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + tools:showIn="@layout/navigation_menu"> + + <ImageView + android:id="@+id/imageView2" + android:layout_width="100dp" + android:layout_height="100dp" + android:layout_gravity="top|center_horizontal" + android:layout_margin="@dimen/margin_medium" + android:contentDescription="@string/app_name" + android:src="@drawable/briar_logo_large"/> + + <View + style="@style/Divider.Horizontal" + android:layout_gravity="bottom"/> + +</FrameLayout> \ No newline at end of file diff --git a/briar-android/res/layout/navigation_menu.xml b/briar-android/res/layout/navigation_menu.xml index f6934e5e011802d5c9b5128dc401f04cd54f7f01..bb66524680923076953d990602bbdeb2d883c985 100644 --- a/briar-android/res/layout/navigation_menu.xml +++ b/briar-android/res/layout/navigation_menu.xml @@ -1,110 +1,28 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - android:layout_width="@dimen/nav_drawer_width" + android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/menu_background" android:orientation="vertical"> - <TextView - android:id="@+id/nav_menu_header" - style="@style/BriarTextTitleInverted" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:background="@color/briar_primary" - android:paddingBottom="@dimen/margin_large" - android:paddingLeft="@dimen/margin_large" - android:paddingTop="@dimen/margin_xlarge" - android:textStyle="bold" - tools:text="Username" - /> - - <ScrollView - android:layout_width="match_parent" + <android.support.design.widget.NavigationView + android:id="@+id/navigation" + android:layout_width="wrap_content" android:layout_height="match_parent" - android:fadingEdge="none" - android:fillViewport="true"> + android:layout_gravity="start" + app:headerLayout="@layout/navigation_header" + app:menu="@menu/navigation_drawer"> - <LinearLayout - android:layout_width="match_parent" + <include + layout="@layout/transports_list" + android:layout_width="wrap_content" android:layout_height="wrap_content" - android:orientation="vertical"> - - <Button - android:id="@+id/nav_btn_contacts" - style="@style/NavMenuButton" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:drawableLeft="@drawable/social_person" - android:onClick="onNavigationClick" - android:text="@string/contact_list_button"/> - - <View - style="@style/Divider" - android:layout_width="match_parent" - android:layout_height="@dimen/nav_separator_height" - android:layout_marginLeft="@dimen/margin_large"/> - - <Button - android:id="@+id/nav_btn_forums" - style="@style/NavMenuButton" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:drawableLeft="@drawable/social_chat" - android:onClick="onNavigationClick" - android:text="@string/forums_button"/> - - <View - style="@style/Divider" - android:layout_width="match_parent" - android:layout_height="@dimen/margin_separator" - android:layout_marginLeft="@dimen/margin_large"/> - - <Button - android:id="@+id/nav_btn_settings" - style="@style/NavMenuButton" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:drawableLeft="@drawable/action_settings" - android:onClick="onNavigationClick" - android:text="@string/settings_button"/> - - <View - style="@style/Divider" - android:layout_width="match_parent" - android:layout_height="@dimen/margin_separator" - android:layout_marginLeft="@dimen/margin_large"/> - - <Button - android:id="@+id/nav_btn_signout" - style="@style/NavMenuButton" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:drawableLeft="@drawable/device_access_accounts" - android:onClick="onNavigationClick" - android:text="@string/sign_out_button"/> - - <View - style="@style/Divider" - android:layout_width="match_parent" - android:layout_height="@dimen/margin_separator" - android:layout_marginLeft="@dimen/margin_large"/> - - <FrameLayout - android:layout_width="match_parent" - android:layout_height="0dp" - android:layout_weight="1.0"/> - - <include - layout="@layout/transports_list" - android:layout_width="match_parent" - android:layout_height="wrap_content" - /> - - </LinearLayout> - - </ScrollView> + android:layout_gravity="bottom" + tools:visibility="gone"/> + </android.support.design.widget.NavigationView> </LinearLayout> \ No newline at end of file diff --git a/briar-android/res/layout/transports_list.xml b/briar-android/res/layout/transports_list.xml index c359d7c1de2a233cdb26db8ec9486726c21726a6..d957210fc44f94f3eea92d48b0a94ce4a70dd561 100644 --- a/briar-android/res/layout/transports_list.xml +++ b/briar-android/res/layout/transports_list.xml @@ -1,9 +1,11 @@ <?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:orientation="vertical" android:layout_width="match_parent" - android:layout_height="wrap_content"> + android:layout_height="wrap_content" + tools:showIn="@layout/navigation_menu"> <View style="@style/Divider.Horizontal"/> @@ -12,6 +14,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="@dimen/margin_medium" - android:numColumns="3"/> + android:numColumns="3" + tools:listitem="@layout/list_item_transport"/> </LinearLayout> diff --git a/briar-android/res/menu/navigation_drawer.xml b/briar-android/res/menu/navigation_drawer.xml new file mode 100644 index 0000000000000000000000000000000000000000..dfeb05e62f5b18361d3e8dc08ea2bda45879a83b --- /dev/null +++ b/briar-android/res/menu/navigation_drawer.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<menu + xmlns:android="http://schemas.android.com/apk/res/android"> + + <group android:checkableBehavior="single"> + <item + android:id="@+id/nav_btn_contacts" + android:icon="@drawable/ic_contacts_black_24dp" + android:title="@string/contact_list_button"/> + <item + android:id="@+id/nav_btn_forums" + android:icon="@drawable/ic_forums_black_24dp" + android:title="@string/forums_button"/> + <item + android:id="@+id/nav_btn_blogs" + android:icon="@drawable/blogs" + android:title="@string/blogs_button"/> + <item + android:id="@+id/nav_btn_settings" + android:icon="@drawable/ic_settings_black_24dp" + android:title="@string/settings_button"/> + <item + android:id="@+id/nav_btn_signout" + android:icon="@drawable/ic_signout_black_24dp" + android:title="@string/sign_out_button"/> + </group> + +</menu> \ No newline at end of file diff --git a/briar-android/res/values/dimens.xml b/briar-android/res/values/dimens.xml index 942a2d5bfa535971982113e90be7fe38970cb91e..fe0f3ad97f24dd5ecf1e8c1f9ba8d34b3c4ebef4 100644 --- a/briar-android/res/values/dimens.xml +++ b/briar-android/res/values/dimens.xml @@ -18,8 +18,6 @@ <dimen name="text_size_medium">16sp</dimen> <dimen name="text_size_large">20sp</dimen> <dimen name="text_size_xlarge">34sp</dimen> - <dimen name="nav_drawer_width">300dp</dimen> - <dimen name="nav_separator_height">1dp</dimen> <dimen name="listitem_horizontal_margin">16dp</dimen> <dimen name="listitem_text_left_margin">72dp</dimen> diff --git a/briar-android/res/values/strings.xml b/briar-android/res/values/strings.xml index 1e1e8e28c510d4217a6d5bf90606c1df58974223..2507e5dd0c8dbaa22f421767b42f209889cae285 100644 --- a/briar-android/res/values/strings.xml +++ b/briar-android/res/values/strings.xml @@ -71,7 +71,6 @@ <string name="no_private_messages">No messages</string> <string name="private_message_hint">Type message</string> <string name="message_sent_toast">Message sent</string> - <string name="forums_title">Forums</string> <string name="no_forums">You don\'t have any forums.\n\nWhy don\'t you create a new one yourself or ask your contacts to share one with you?</string> <plurals name="forums_shared"> <item quantity="one">%d forum shared by contacts</item> @@ -237,5 +236,12 @@ <string name="progress_title_logout">Signing out of Briar..</string> <string name="progress_title_please_wait">Please wait..</string> + <!-- Blogs --> + <string name="blogs_button">Blogs</string> + <string name="blogs_feed">Feed</string> + <string name="blogs_my_blogs">My Blogs</string> + <string name="blogs_blog_list">Blog List</string> + <string name="blogs_available_blogs">Available Blogs</string> + <string name="blogs_drafts">Drafts</string> </resources> diff --git a/briar-android/res/values/styles.xml b/briar-android/res/values/styles.xml index 38f609e83c61ef764ac06e59a6d488fbe5f05850..61f0ce73708f64a1c126de2bab517a565195691e 100644 --- a/briar-android/res/values/styles.xml +++ b/briar-android/res/values/styles.xml @@ -145,4 +145,14 @@ <item name="android:background">?android:attr/listDivider</item> </style> + <style name="BriarTabLayout" parent="Widget.Design.TabLayout"> + <item name="android:background">@color/briar_primary</item> + <item name="tabMode">scrollable</item> + <item name="tabMaxWidth">100dp</item> + <item name="tabIndicatorColor">@color/briar_text_primary_inverse</item> + <item name="tabIndicatorHeight">3dp</item> + <item name="tabSelectedTextColor">@color/briar_text_primary_inverse</item> + <item name="tabTextColor">@color/briar_text_primary_inverse</item> + </style> + </resources> \ No newline at end of file diff --git a/briar-android/src/org/briarproject/android/ActivityComponent.java b/briar-android/src/org/briarproject/android/ActivityComponent.java index f28335cd8aa86d83163479e534f834067e20554d..09a9461eae821a0dea5c623f3e22b56bd207c673 100644 --- a/briar-android/src/org/briarproject/android/ActivityComponent.java +++ b/briar-android/src/org/briarproject/android/ActivityComponent.java @@ -70,6 +70,12 @@ public interface ActivityComponent { @Named("ForumListFragment") BaseFragment newForumListFragment(); + @Named("BlogsFragment") + BaseFragment newBlogsFragment(); + + @Named("MyBlogsFragment") + BaseFragment newMyBlogsFragment(); + @Named("ChooseIdentityFragment") BaseFragment newChooseIdentityFragment(); diff --git a/briar-android/src/org/briarproject/android/ActivityModule.java b/briar-android/src/org/briarproject/android/ActivityModule.java index 6766f38022bfaf9e489cbadc9e17022683cc0545..5ba13b3ec88abbedcae21afa25fefbdae4b89e77 100644 --- a/briar-android/src/org/briarproject/android/ActivityModule.java +++ b/briar-android/src/org/briarproject/android/ActivityModule.java @@ -5,6 +5,8 @@ import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; +import org.briarproject.android.blogs.BlogsFragment; +import org.briarproject.android.blogs.MyBlogsFragment; import org.briarproject.android.contact.ContactListFragment; import org.briarproject.android.controller.BriarController; import org.briarproject.android.controller.BriarControllerImpl; @@ -149,6 +151,20 @@ public class ActivityModule { return fragment; } + @Provides + @Named("BlogsFragment") + BaseFragment provideBlogsFragment(BlogsFragment fragment) { + fragment.setArguments(new Bundle()); + return fragment; + } + + @Provides + @Named("MyBlogsFragment") + BaseFragment provideMyBlogsFragment(MyBlogsFragment fragment) { + fragment.setArguments(new Bundle()); + return fragment; + } + @Provides @Named("ChooseIdentityFragment") BaseFragment provideChooseIdentityFragment( diff --git a/briar-android/src/org/briarproject/android/BriarFragmentActivity.java b/briar-android/src/org/briarproject/android/BriarFragmentActivity.java index dddc8a003892ebbceb6b50148011e9cfd6111d12..ef7a9fd6a53111e6bef31a6493dd0a737c6750c1 100644 --- a/briar-android/src/org/briarproject/android/BriarFragmentActivity.java +++ b/briar-android/src/org/briarproject/android/BriarFragmentActivity.java @@ -7,6 +7,7 @@ import android.support.v7.app.ActionBar; import android.support.v7.app.AlertDialog; import org.briarproject.R; +import org.briarproject.android.blogs.BlogsFragment; import org.briarproject.android.contact.ContactListFragment; import org.briarproject.android.forum.ForumListFragment; import org.briarproject.android.fragment.BaseFragment; @@ -26,6 +27,8 @@ public abstract class BriarFragmentActivity extends BriarActivity { actionBar.setTitle(R.string.contacts_toolbar_header); } else if (fragmentTag.equals(ForumListFragment.TAG)) { actionBar.setTitle(R.string.forums_toolbar_header); + } else if (fragmentTag.equals(BlogsFragment.TAG)) { + actionBar.setTitle(R.string.blogs_button); } } diff --git a/briar-android/src/org/briarproject/android/NavDrawerActivity.java b/briar-android/src/org/briarproject/android/NavDrawerActivity.java index 3c61bbf4883ae8fe5754c69c8d6cbb89b6750cb6..66d7d19b56d6d37cde92d1f06abb64181d4da73e 100644 --- a/briar-android/src/org/briarproject/android/NavDrawerActivity.java +++ b/briar-android/src/org/briarproject/android/NavDrawerActivity.java @@ -6,10 +6,13 @@ import android.content.SharedPreferences; import android.content.res.Configuration; import android.content.res.Resources; import android.os.Bundle; +import android.support.design.widget.NavigationView; +import android.support.design.widget.NavigationView.OnNavigationItemSelectedListener; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; @@ -38,7 +41,8 @@ import static android.support.v4.widget.DrawerLayout.LOCK_MODE_UNLOCKED; import static android.view.View.INVISIBLE; public class NavDrawerActivity extends BriarFragmentActivity implements - BaseFragment.BaseFragmentListener, TransportStateListener { + BaseFragment.BaseFragmentListener, TransportStateListener, + OnNavigationItemSelectedListener { public final static String PREF_SEEN_WELCOME_MESSAGE = "welcome_message"; @@ -90,6 +94,8 @@ public class NavDrawerActivity extends BriarFragmentActivity implements toolbar = (Toolbar) findViewById(R.id.toolbar); drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); + NavigationView navigation = + (NavigationView) findViewById(R.id.navigation); GridView transportsView = (GridView) findViewById(R.id.transportsView); progressTitle = (TextView) findViewById(R.id.title_progress_bar); progressViewGroup = (ViewGroup) findViewById(R.id.container_progress); @@ -101,12 +107,11 @@ public class NavDrawerActivity extends BriarFragmentActivity implements drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.nav_drawer_open_description, R.string.nav_drawer_close_description); - drawerLayout.setDrawerListener(drawerToggle); + drawerLayout.addDrawerListener(drawerToggle); + navigation.setNavigationItemSelectedListener(this); if (state == null) { + navigation.setCheckedItem(R.id.nav_btn_contacts); startFragment(activityComponent.newContactListFragment()); - } else { - currentFragmentId = state.getInt(KEY_CURRENT_FRAGMENT_ID); - loadCurrentFragment(); } checkAuthorHandle(getIntent()); @@ -174,6 +179,9 @@ public class NavDrawerActivity extends BriarFragmentActivity implements case R.id.nav_btn_forums: startFragment(activityComponent.newForumListFragment()); break; + case R.id.nav_btn_blogs: + startFragment(activityComponent.newBlogsFragment()); + break; case R.id.nav_btn_settings: startActivity(new Intent(this, SettingsActivity.class)); break; @@ -183,11 +191,13 @@ public class NavDrawerActivity extends BriarFragmentActivity implements } } - public void onNavigationClick(View view) { + @Override + public boolean onNavigationItemSelected(MenuItem item) { drawerLayout.closeDrawer(START); clearBackStack(); - currentFragmentId = view.getId(); + currentFragmentId = item.getItemId(); loadCurrentFragment(); + return true; } diff --git a/briar-android/src/org/briarproject/android/blogs/BlogsFragment.java b/briar-android/src/org/briarproject/android/blogs/BlogsFragment.java new file mode 100644 index 0000000000000000000000000000000000000000..5d4521803f0fa3fffe95fc47b7d4b53de8ca763e --- /dev/null +++ b/briar-android/src/org/briarproject/android/blogs/BlogsFragment.java @@ -0,0 +1,104 @@ +package org.briarproject.android.blogs; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.design.widget.TabLayout; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentStatePagerAdapter; +import android.support.v4.view.ViewPager; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import org.briarproject.R; +import org.briarproject.android.fragment.BaseFragment; + +import javax.inject.Inject; + +public class BlogsFragment extends BaseFragment { + + public final static String TAG = BlogsFragment.class.getName(); + + // TODO add your first fragment here + //@Inject + //Lazy<MyBlogsFragment> myBlogsFragment; + + private static final String SELECTED_TAB = "selectedTab"; + private TabLayout tabLayout; + + @Inject + public BlogsFragment() { + } + + @Nullable + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + + View v = inflater.inflate(R.layout.fragment_blogs, container, + false); + + tabLayout = (TabLayout) v.findViewById(R.id.tabLayout); + ViewPager viewPager = (ViewPager) v.findViewById(R.id.pager); + + String[] titles = { + getString(R.string.blogs_feed), + getString(R.string.blogs_my_blogs), + getString(R.string.blogs_blog_list), + getString(R.string.blogs_available_blogs), + getString(R.string.blogs_drafts) + }; + TabAdapter tabAdapter = + new TabAdapter(getChildFragmentManager(), titles); + viewPager.setAdapter(tabAdapter); + tabLayout.setupWithViewPager(viewPager); + + if (savedInstanceState != null) { + int position = savedInstanceState.getInt(SELECTED_TAB, 0); + viewPager.setCurrentItem(position); + } + return v; + } + + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + outState.putInt(SELECTED_TAB, tabLayout.getSelectedTabPosition()); + } + + @Override + public String getUniqueTag() { + return TAG; + } + + + private static class TabAdapter extends FragmentStatePagerAdapter { + private String[] titles; + + TabAdapter(FragmentManager fm, String[] titles) { + super(fm); + this.titles = titles; + } + + @Override + public int getCount() { + return titles.length; + } + + @Override + public Fragment getItem(int position) { + switch (position) { + // TODO add your fragments here + default: + return MyBlogsFragment.newInstance(position); + } + } + + @Override + public CharSequence getPageTitle(int position) { + return titles[position]; + } + } + +} diff --git a/briar-android/src/org/briarproject/android/blogs/MyBlogsFragment.java b/briar-android/src/org/briarproject/android/blogs/MyBlogsFragment.java new file mode 100644 index 0000000000000000000000000000000000000000..e20fb6c1e9f065b09db5c39931f5f38a75b60501 --- /dev/null +++ b/briar-android/src/org/briarproject/android/blogs/MyBlogsFragment.java @@ -0,0 +1,55 @@ +package org.briarproject.android.blogs; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import org.briarproject.R; +import org.briarproject.android.fragment.BaseFragment; + +import java.util.logging.Logger; + +import javax.inject.Inject; + +public class MyBlogsFragment extends BaseFragment { + + public final static String TAG = MyBlogsFragment.class.getName(); + + @Inject + public MyBlogsFragment() { + } + + static MyBlogsFragment newInstance(int num) { + MyBlogsFragment f = new MyBlogsFragment(); + + Bundle args = new Bundle(); + args.putInt("num", num); + f.setArguments(args); + + return f; + } + + @Nullable + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + + View v = inflater.inflate(R.layout.fragment_blogs_my, container, + false); + + TextView numView = (TextView) v.findViewById(R.id.num); + String num = String.valueOf(getArguments().getInt("num")); + numView.setText(num); + + return v; + } + + @Override + public String getUniqueTag() { + return TAG; + } + +}