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 8f39c428a..000000000
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 cc32e2d1d..000000000
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 f1c6bcf2e..000000000
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 db0c7ac72..000000000
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 7b64886f7..000000000
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 377f6286c..000000000
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 7c57436fc..000000000
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 dc66d914e..000000000
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 7d96f28d1..000000000
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 fe5d96e3c..000000000
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 35e67efb8..000000000
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 86334552e..000000000
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 2641f142a..000000000
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 04b65dc34..000000000
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 674b69b08..000000000
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 0bb135952..000000000
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 3f58695c5..000000000
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 357229b80..000000000
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 f10a492c0..000000000
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 000000000..cf8009a5b
--- /dev/null
+++ b/briar-android/res/drawable/blogs.xml
@@ -0,0 +1,10 @@
+
+
+
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 000000000..d7e92099b
--- /dev/null
+++ b/briar-android/res/drawable/ic_contacts_black_24dp.xml
@@ -0,0 +1,10 @@
+
+
+
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 000000000..039f929dd
--- /dev/null
+++ b/briar-android/res/drawable/ic_forums_black_24dp.xml
@@ -0,0 +1,10 @@
+
+
+
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 000000000..ddb38f6d6
--- /dev/null
+++ b/briar-android/res/drawable/ic_settings_black_24dp.xml
@@ -0,0 +1,10 @@
+
+
+
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 000000000..a61a3158a
--- /dev/null
+++ b/briar-android/res/drawable/ic_signout_black_24dp.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/briar-android/res/layout/activity_nav_drawer.xml b/briar-android/res/layout/activity_nav_drawer.xml
index 5b167e4ff..7eb1d4e35 100644
--- a/briar-android/res/layout/activity_nav_drawer.xml
+++ b/briar-android/res/layout/activity_nav_drawer.xml
@@ -13,7 +13,7 @@
diff --git a/briar-android/res/layout/fragment_blogs.xml b/briar-android/res/layout/fragment_blogs.xml
new file mode 100644
index 000000000..2e618a9b1
--- /dev/null
+++ b/briar-android/res/layout/fragment_blogs.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 000000000..a552dc0fc
--- /dev/null
+++ b/briar-android/res/layout/fragment_blogs_my.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
\ 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 000000000..7f6b9a89b
--- /dev/null
+++ b/briar-android/res/layout/navigation_header.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
\ 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 f6934e5e0..bb6652468 100644
--- a/briar-android/res/layout/navigation_menu.xml
+++ b/briar-android/res/layout/navigation_menu.xml
@@ -1,110 +1,28 @@
-
-
-
+ android:layout_gravity="start"
+ app:headerLayout="@layout/navigation_header"
+ app:menu="@menu/navigation_drawer">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_gravity="bottom"
+ tools:visibility="gone"/>
+
\ 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 c359d7c1d..d957210fc 100644
--- a/briar-android/res/layout/transports_list.xml
+++ b/briar-android/res/layout/transports_list.xml
@@ -1,9 +1,11 @@
+ android:layout_height="wrap_content"
+ tools:showIn="@layout/navigation_menu">
@@ -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"/>
diff --git a/briar-android/res/menu/navigation_drawer.xml b/briar-android/res/menu/navigation_drawer.xml
new file mode 100644
index 000000000..dfeb05e62
--- /dev/null
+++ b/briar-android/res/menu/navigation_drawer.xml
@@ -0,0 +1,28 @@
+
+
\ No newline at end of file
diff --git a/briar-android/res/values/dimens.xml b/briar-android/res/values/dimens.xml
index 942a2d5bf..fe0f3ad97 100644
--- a/briar-android/res/values/dimens.xml
+++ b/briar-android/res/values/dimens.xml
@@ -18,8 +18,6 @@
16sp
20sp
34sp
- 300dp
- 1dp
16dp
72dp
diff --git a/briar-android/res/values/strings.xml b/briar-android/res/values/strings.xml
index 1e1e8e28c..2507e5dd0 100644
--- a/briar-android/res/values/strings.xml
+++ b/briar-android/res/values/strings.xml
@@ -71,7 +71,6 @@
No messages
Type message
Message sent
- 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?
- %d forum shared by contacts
@@ -237,5 +236,12 @@
Signing out of Briar..
Please wait..
+
+ Blogs
+ Feed
+ My Blogs
+ Blog List
+ Available Blogs
+ Drafts
diff --git a/briar-android/res/values/styles.xml b/briar-android/res/values/styles.xml
index 38f609e83..61f0ce737 100644
--- a/briar-android/res/values/styles.xml
+++ b/briar-android/res/values/styles.xml
@@ -145,4 +145,14 @@
- ?android:attr/listDivider
+
+
\ 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 f28335cd8..09a9461ea 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 6766f3802..5ba13b3ec 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 dddc8a003..ef7a9fd6a 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 3c61bbf48..66d7d19b5 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 000000000..5d4521803
--- /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;
+
+ 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 000000000..e20fb6c1e
--- /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;
+ }
+
+}