diff --git a/ring-android/app/src/main/java/cx/ring/adapters/AccountSelectionAdapter.java b/ring-android/app/src/main/java/cx/ring/adapters/AccountSelectionAdapter.java
index 9b480bf..5f3ba7e 100644
--- a/ring-android/app/src/main/java/cx/ring/adapters/AccountSelectionAdapter.java
+++ b/ring-android/app/src/main/java/cx/ring/adapters/AccountSelectionAdapter.java
@@ -83,30 +83,66 @@
 
         if (rowView == null) {
             LayoutInflater inflater = LayoutInflater.from(mContext);
+            rowView = inflater.inflate(R.layout.item_account_selected, null);
+
+            entryView = new AccountView();
+            entryView.alias = (TextView) rowView.findViewById(R.id.account_alias);
+            entryView.host = (TextView) rowView.findViewById(R.id.account_host);
+            entryView.error = (ImageView) rowView.findViewById(R.id.error_indicator);
+            rowView.setTag(entryView);
+        } else {
+            entryView = (AccountView) rowView.getTag();
+        }
+/*
+        entryView.alias.setText(accounts.get(pos).getAlias());
+
+        entryView.host.setText(accounts.get(pos).getHost() + " - " + accounts.get(pos).getRegistered_state());
+        // accManager.displayAccountDetails(accounts.get(pos), entryView);
+        entryView.error.setVisibility(View.GONE);
+*/
+        updateAccountView(entryView, accounts.get(pos));
+
+        return rowView;
+    }
+
+    @Override
+    public View getDropDownView(int pos, View convertView, ViewGroup parent) {
+        View rowView = convertView;
+        AccountView entryView = null;
+
+        if (rowView == null) {
+            LayoutInflater inflater = LayoutInflater.from(mContext);
             rowView = inflater.inflate(R.layout.item_account, null);
 
             entryView = new AccountView();
             entryView.alias = (TextView) rowView.findViewById(R.id.account_alias);
             entryView.host = (TextView) rowView.findViewById(R.id.account_host);
-            entryView.select = (ImageView) rowView.findViewById(R.id.account_selected);
+            entryView.error = (ImageView) rowView.findViewById(R.id.error_indicator);
             rowView.setTag(entryView);
         } else {
             entryView = (AccountView) rowView.getTag();
         }
-
+/*
         entryView.alias.setText(accounts.get(pos).getAlias());
 
         entryView.host.setText(accounts.get(pos).getHost() + " - " + accounts.get(pos).getRegistered_state());
         // accManager.displayAccountDetails(accounts.get(pos), entryView);
         if (pos == selectedAccount) {
-            entryView.select.setVisibility(View.VISIBLE);
+            entryView.error.setVisibility(View.VISIBLE);
         } else {
-            entryView.select.setVisibility(View.GONE);
+            entryView.error.setVisibility(View.GONE);
         }
-
+*/
+        updateAccountView(entryView, accounts.get(pos));
         return rowView;
     }
 
+    private void updateAccountView(AccountView entryView, Account acc) {
+        entryView.alias.setText(acc.getAlias());
+        entryView.host.setText(acc.getHost() + " - " + acc.getRegistered_state());
+        entryView.error.setVisibility(View.GONE);
+    }
+
     public Account getAccount(String accountID) {
         for(Account acc : accounts) {
             if(acc.getAccountID().contentEquals(accountID))
@@ -121,7 +157,7 @@
     public class AccountView {
         public TextView alias;
         public TextView host;
-        public ImageView select;
+        public ImageView error;
     }
 
     public void setSelectedAccount(int pos) {
diff --git a/ring-android/app/src/main/java/cx/ring/adapters/SectionsPagerAdapter.java b/ring-android/app/src/main/java/cx/ring/adapters/SectionsPagerAdapter.java
index bae0414..b9b2d13 100644
--- a/ring-android/app/src/main/java/cx/ring/adapters/SectionsPagerAdapter.java
+++ b/ring-android/app/src/main/java/cx/ring/adapters/SectionsPagerAdapter.java
@@ -34,8 +34,8 @@
 import java.util.ArrayList;
 import java.util.Locale;
 
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
+import android.app.Fragment;
+import android.app.FragmentManager;
 import cx.ring.R;
 import cx.ring.fragments.CallListFragment;
 import cx.ring.fragments.DialingFragment;
@@ -43,9 +43,10 @@
 import com.astuetz.PagerSlidingTabStrip;
 
 import android.content.Context;
+import android.support.v13.app.FragmentStatePagerAdapter;
 import android.util.Log;
 
-public class SectionsPagerAdapter extends android.support.v4.app.FragmentStatePagerAdapter implements PagerSlidingTabStrip.IconTabProvider {
+public class SectionsPagerAdapter extends FragmentStatePagerAdapter implements PagerSlidingTabStrip.IconTabProvider {
 
     private static final String TAG = SectionsPagerAdapter.class.getSimpleName();
     Context mContext;
diff --git a/ring-android/app/src/main/java/cx/ring/client/CallActivity.java b/ring-android/app/src/main/java/cx/ring/client/CallActivity.java
index 9f2071c..8df8c72 100644
--- a/ring-android/app/src/main/java/cx/ring/client/CallActivity.java
+++ b/ring-android/app/src/main/java/cx/ring/client/CallActivity.java
@@ -35,7 +35,7 @@
 
 import java.util.*;
 
-import android.support.v4.app.FragmentActivity;
+import android.app.Activity;
 import android.util.Log;
 import cx.ring.R;
 import cx.ring.fragments.CallFragment;
@@ -68,7 +68,7 @@
 import android.view.Window;
 import android.view.WindowManager;
 
-public class CallActivity extends FragmentActivity implements IMFragment.Callbacks, CallFragment.Callbacks, CallProximityManager.ProximityDirector {
+public class CallActivity extends Activity implements IMFragment.Callbacks, CallFragment.Callbacks, CallProximityManager.ProximityDirector {
 
     @SuppressWarnings("unused")
     static final String TAG = "CallActivity";
@@ -112,7 +112,7 @@
         }
 
         mSlidingPaneLayout.setCurFragment(mCurrentCallFragment);
-        getSupportFragmentManager().beginTransaction().replace(R.id.ongoingcall_pane, mCurrentCallFragment)
+        getFragmentManager().beginTransaction().replace(R.id.ongoingcall_pane, mCurrentCallFragment)
                 .replace(R.id.message_list_frame, mIMFragment).commit();
     }
 
diff --git a/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java b/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java
index 7b4049c..9358e7e 100644
--- a/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java
+++ b/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java
@@ -42,7 +42,6 @@
 
 import android.app.Activity;
 import android.app.AlertDialog;
-import android.support.v4.app.*;
 import cx.ring.R;
 import cx.ring.fragments.AboutFragment;
 import cx.ring.fragments.AccountsManagementFragment;
@@ -62,6 +61,10 @@
 import cx.ring.views.SlidingUpPanelLayout;
 import cx.ring.views.SlidingUpPanelLayout.PanelSlideListener;
 
+import android.app.Fragment;
+import android.app.FragmentManager;
+
+import android.app.FragmentTransaction;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.DialogInterface;
@@ -77,22 +80,31 @@
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.CommonDataKinds.SipAddress;
+import android.support.design.widget.FloatingActionButton;
+import android.support.design.widget.NavigationView;
+import android.support.v4.app.FragmentActivity;
 import android.support.v4.view.GravityCompat;
 import android.support.v4.widget.DrawerLayout;
+import android.support.v7.app.ActionBarDrawerToggle;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
 import android.util.Log;
+import android.util.TypedValue;
 import android.view.Gravity;
 import android.view.MenuItem;
 import android.view.View;
+import android.view.ViewGroup;
 import android.widget.RelativeLayout;
 import android.widget.Toast;
 
-public class HomeActivity extends FragmentActivity implements DialingFragment.Callbacks, AccountsManagementFragment.Callbacks,
-        ContactListFragment.Callbacks, CallListFragment.Callbacks, HistoryFragment.Callbacks, MenuFragment.Callbacks {
+public class HomeActivity extends AppCompatActivity implements DialingFragment.Callbacks, AccountsManagementFragment.Callbacks,
+        ContactListFragment.Callbacks, CallListFragment.Callbacks, HistoryFragment.Callbacks, NavigationView.OnNavigationItemSelectedListener, MenuFragment.Callbacks {
 
     static final String TAG = HomeActivity.class.getSimpleName();
 
     private ContactListFragment mContactsFragment = null;
-    private MenuFragment fMenu;
+    private NavigationView fMenu;
+    private MenuFragment fMenuHead = null;
 
     private boolean mBound = false;
     private ISipService service;
@@ -103,6 +115,8 @@
     SlidingUpPanelLayout mContactDrawer;
     private DrawerLayout mNavigationDrawer;
     private ActionBarDrawerToggle mDrawerToggle;
+    private Toolbar toolbar;
+    private FloatingActionButton actionButton;
 
     private boolean isClosing = false;
     private Timer t = new Timer();
@@ -128,6 +142,13 @@
             bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
         }
 
+        toolbar = (Toolbar) findViewById(R.id.main_toolbar);
+        setSupportActionBar(toolbar);
+        actionButton = (FloatingActionButton) findViewById(R.id.action_button);
+
+        fMenu = (NavigationView) findViewById(R.id.left_drawer);
+        fMenu.setNavigationItemSelectedListener(this);
+
         mContactsFragment = new ContactListFragment();
         getFragmentManager().beginTransaction().replace(R.id.contacts_frame, mContactsFragment).commit();
 
@@ -141,12 +162,12 @@
             @Override
             public void onPanelSlide(View panel, float slideOffset) {
                 if (slideOffset < 0.2) {
-                    if (getActionBar().isShowing()) {
-                        getActionBar().hide();
+                    if (getSupportActionBar().isShowing()) {
+                        getSupportActionBar().hide();
                     }
                 } else {
-                    if (!getActionBar().isShowing()) {
-                        getActionBar().show();
+                    if (!getSupportActionBar().isShowing()) {
+                        getSupportActionBar().show();
                     }
                 }
             }
@@ -169,27 +190,23 @@
 
         mNavigationDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);
 
-        // set a custom shadow that overlays the main content when the drawer opens
-        mNavigationDrawer.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
-
-        getActionBar().setDisplayHomeAsUpEnabled(true);
-        getActionBar().setHomeButtonEnabled(true);
+        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+        getSupportActionBar().setHomeButtonEnabled(true);
 
         mDrawerToggle = new ActionBarDrawerToggle(this, /* host Activity */
                 mNavigationDrawer, /* DrawerLayout object */
-                R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */
+                //  R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */
                 R.string.drawer_open, /* "open drawer" description for accessibility */
                 R.string.drawer_close /* "close drawer" description for accessibility */
         ) {
             @Override
             public void onDrawerClosed(View view) {
-                invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
+                invalidateOptionsMenu();
             }
 
             @Override
             public void onDrawerOpened(View drawerView) {
-                // getActionBar().setTitle(mDrawerTitle);
-                invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
+                invalidateOptionsMenu();
             }
         };
 
@@ -203,7 +220,7 @@
         // Sync the toggle state after onRestoreInstanceState has occurred.
         mDrawerToggle.syncState();
         if (mContactDrawer.isExpanded()) {
-            getActionBar().hide();
+            getSupportActionBar().hide();
         }
     }
 
@@ -227,6 +244,29 @@
 
     }
 
+    public void setToolbarState(boolean double_h, int title_res) {
+        TypedValue tv = new TypedValue();
+        if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) {
+            int abSz = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
+            ViewGroup.LayoutParams params = toolbar.getLayoutParams();
+            if (double_h) {
+                params.height = abSz*2;
+                actionButton.setVisibility(View.VISIBLE);
+            }
+            else {
+                params.height = abSz;
+                actionButton.setVisibility(View.GONE);
+            }
+            toolbar.setLayoutParams(params);
+            toolbar.setMinimumHeight(abSz);
+        }
+        toolbar.setTitle(title_res);
+    }
+
+    public FloatingActionButton getActionButton() {
+        return actionButton;
+    }
+
     private static boolean copyAssetFolder(AssetManager assetManager, String fromAssetPath, String toPath) {
         try {
             String[] files = assetManager.list(fromAssetPath);
@@ -301,9 +341,9 @@
             return;
         }
 
-        if (getSupportFragmentManager().getBackStackEntryCount() > 1) {
+        if (getFragmentManager().getBackStackEntryCount() > 1) {
             popCustomBackStack();
-            fMenu.backToHome();
+            fMenu.getMenu().findItem(R.id.menuitem_home).setChecked(true);
             return;
         }
 
@@ -324,7 +364,7 @@
     }
 
     private void popCustomBackStack() {
-        FragmentManager fm = getSupportFragmentManager();
+        FragmentManager fm = getFragmentManager();
         FragmentManager.BackStackEntry entry = fm.getBackStackEntryAt(0);
         fContent = fm.findFragmentByTag(entry.getName());
         for (int i = 0; i < fm.getBackStackEntryCount() - 1; ++i) {
@@ -372,15 +412,23 @@
         @Override
         public void onServiceConnected(ComponentName className, IBinder binder) {
             service = ISipService.Stub.asInterface(binder);
-            fMenu = new MenuFragment();
             fContent = new HomeFragment();
-            getSupportFragmentManager().beginTransaction().replace(R.id.left_drawer, fMenu).replace(R.id.main_frame, fContent, "Home").addToBackStack("Home").commit();
+            if (fMenuHead != null)
+                fMenu.removeHeaderView(fMenuHead.getView());
+            fMenu.inflateHeaderView(R.layout.menuheader);
+            fMenuHead = (MenuFragment) getFragmentManager().findFragmentById(R.id.accountselector);
+
+            getFragmentManager().beginTransaction().replace(R.id.main_frame, fContent, "Home").addToBackStack("Home").commit();
             mBound = true;
             Log.d(TAG, "Service connected service=" + service);
         }
 
         @Override
         public void onServiceDisconnected(ComponentName arg0) {
+            if (fMenuHead != null) {
+                fMenu.removeHeaderView(fMenuHead.getView());
+                fMenuHead = null;
+            }
 
             mBound = false;
             Log.d(TAG, "Service disconnected service=" + service);
@@ -405,8 +453,8 @@
         switch (requestCode) {
             case REQUEST_CODE_PREFERENCES:
             case AccountsManagementFragment.ACCOUNT_EDIT_REQUEST:
-                if (fMenu != null)
-                    fMenu.updateAllAccounts();
+                if (fMenuHead != null)
+                    fMenuHead.updateAllAccounts();
                 break;
             case REQUEST_CODE_CALL:
                 if (resultCode == CallActivity.RESULT_FAILURE) {
@@ -438,17 +486,17 @@
     @Override
     public void onCallContact(final CallContact c) {
 
-        if (fMenu.getSelectedAccount() == null) {
+        if (fMenuHead.getSelectedAccount() == null) {
             createAccountDialog().show();
             return;
         }
 
-        if (!fMenu.getSelectedAccount().isRegistered()) {
+        if (!fMenuHead.getSelectedAccount().isRegistered()) {
             createNotRegisteredDialog().show();
             return;
         }
 
-        getActionBar().show();
+        getSupportActionBar().show();
         Thread launcher = new Thread(new Runnable() {
 
             final String[] CONTACTS_PHONES_PROJECTION = new String[]{Phone.NUMBER, Phone.TYPE};
@@ -459,7 +507,7 @@
 
                 Bundle args = new Bundle();
                 args.putString(SipCall.ID, Integer.toString(Math.abs(new Random().nextInt())));
-                args.putParcelable(SipCall.ACCOUNT, fMenu.getSelectedAccount());
+                args.putParcelable(SipCall.ACCOUNT, fMenuHead.getSelectedAccount());
                 args.putInt(SipCall.STATE, SipCall.state.CALL_STATE_NONE);
                 args.putInt(SipCall.TYPE, SipCall.direction.CALL_TYPE_OUTGOING);
 
@@ -492,7 +540,7 @@
     @Override
     public void onCallHistory(HistoryEntry to) {
 
-        Account usedAccount = fMenu.retrieveAccountById(to.getAccountID());
+        Account usedAccount = fMenuHead.retrieveAccountById(to.getAccountID());
 
         if (usedAccount == null) {
             createAccountDialog().show();
@@ -519,14 +567,14 @@
 
     @Override
     public void onCallDialed(String to) {
-        Account usedAccount = fMenu.getSelectedAccount();
+        Account usedAccount = fMenuHead.getSelectedAccount();
 
         if (usedAccount == null) {
             createAccountDialog().show();
             return;
         }
 
-        if (fMenu.getSelectedAccount().isRegistered()) {
+        if (usedAccount.isRegistered() || usedAccount.isIP2IP()) {
             Bundle args = new Bundle();
             args.putString(SipCall.ID, Integer.toString(Math.abs(new Random().nextInt())));
             args.putParcelable(SipCall.ACCOUNT, usedAccount);
@@ -615,37 +663,39 @@
     }
 
     @Override
-    public void onSectionSelected(int pos) {
-
+    public boolean onNavigationItemSelected(MenuItem pos) {
+        pos.setChecked(true);
         mNavigationDrawer.closeDrawers();
 
-        switch (pos) {
-            case 0:
+        switch (pos.getItemId()) {
+            case R.id.menuitem_home:
 
                 if (fContent instanceof HomeFragment)
                     break;
 
-                if (getSupportFragmentManager().getBackStackEntryCount() == 1)
+                if (getFragmentManager().getBackStackEntryCount() == 1)
                     break;
 
                 popCustomBackStack();
 
                 break;
-            case 1:
+            case  R.id.menuitem_accounts:
                 if (fContent instanceof AccountsManagementFragment)
                     break;
                 fContent = new AccountsManagementFragment();
-                getSupportFragmentManager().beginTransaction().setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).replace(R.id.main_frame, fContent, "Accounts").addToBackStack("Accounts").commit();
+                getFragmentManager().beginTransaction().setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).replace(R.id.main_frame, fContent, "Accounts").addToBackStack("Accounts").commit();
                 break;
-            case 2:
+            case R.id.menuitem_about:
                 if (fContent instanceof AboutFragment)
                     break;
                 fContent = new AboutFragment();
-                getSupportFragmentManager().beginTransaction().setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).replace(R.id.main_frame, fContent, "About").addToBackStack("About").commit();
+                getFragmentManager().beginTransaction().setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).replace(R.id.main_frame, fContent, "About").addToBackStack("About").commit();
                 break;
+            default:
+                return false;
         }
 
-
+        return true;
     }
 
 }
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/AboutFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/AboutFragment.java
index be1037c..27605be 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/AboutFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/AboutFragment.java
@@ -2,7 +2,7 @@
 
 import android.content.pm.PackageManager;
 import android.os.Bundle;
-import android.support.v4.app.Fragment;
+import android.app.Fragment;
 import android.text.Html;
 import android.text.method.LinkMovementMethod;
 import android.view.LayoutInflater;
@@ -10,13 +10,14 @@
 import android.view.ViewGroup;
 import android.widget.TextView;
 import cx.ring.R;
+import cx.ring.client.HomeActivity;
 
 public class AboutFragment extends Fragment {
 
     @Override
     public void onResume() {
         super.onResume();
-        getActivity().getActionBar().setTitle(R.string.menu_item_about);
+        ((HomeActivity)getActivity()).setToolbarState(false, R.string.menu_item_about);
     }
 
     @Override
@@ -32,7 +33,7 @@
         }
 
         TextView link = (TextView) inflatedView.findViewById(R.id.web_site);
-        String linkText = "<a href='http://sflphone.org/'>" + getResources().getString(R.string.web_site) + "</a>";
+        String linkText = "<a href='http://ring.cx'>" + getResources().getString(R.string.web_site) + "</a>";
         link.setText(Html.fromHtml(linkText));
         link.setMovementMethod(LinkMovementMethod.getInstance());
 
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/AccountWrapperFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/AccountWrapperFragment.java
index 6172708..80257f3 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/AccountWrapperFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/AccountWrapperFragment.java
@@ -36,7 +36,7 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.os.Bundle;
-import android.support.v4.app.Fragment;
+import android.app.Fragment;
 import android.util.Log;
 import cx.ring.interfaces.AccountsInterface;
 import cx.ring.service.ConfigurationManagerCallback;
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/AccountsManagementFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/AccountsManagementFragment.java
index 09da403..7384c9a 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/AccountsManagementFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/AccountsManagementFragment.java
@@ -35,24 +35,33 @@
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
 import android.app.Activity;
+import android.app.LoaderManager;
+import android.content.AsyncTaskLoader;
 import android.content.Context;
 import android.content.Intent;
+import android.content.Loader;
+import android.graphics.PorterDuff;
 import android.os.Bundle;
 import android.os.RemoteException;
-import android.support.v4.app.LoaderManager;
-import android.support.v4.content.AsyncTaskLoader;
-import android.support.v4.content.Loader;
+import android.support.design.widget.FloatingActionButton;
+import android.support.v7.app.ActionBar;
+import android.support.v7.widget.*;
+import android.support.v7.widget.Toolbar;
 import android.util.Log;
+import android.util.TypedValue;
 import android.view.*;
 import android.view.View.OnClickListener;
 import android.widget.*;
 import android.widget.AdapterView.OnItemClickListener;
+
 import cx.ring.R;
 import cx.ring.client.AccountEditionActivity;
 import cx.ring.client.AccountWizard;
+import cx.ring.client.HomeActivity;
 import cx.ring.loaders.AccountsLoader;
 import cx.ring.loaders.LoaderConstants;
 import cx.ring.model.account.Account;
+import cx.ring.model.account.AccountDetailBasic;
 import cx.ring.service.ISipService;
 import cx.ring.views.dragsortlv.DragSortListView;
 
@@ -60,7 +69,7 @@
 import java.util.ArrayList;
 
 public class AccountsManagementFragment extends AccountWrapperFragment implements LoaderManager.LoaderCallbacks<Bundle> {
-    static final String TAG = "AccountManagementFragment";
+    static final String TAG = "AccountManagementFrag";
     static final String DEFAULT_ACCOUNT_ID = "IP2IP";
     static final int ACCOUNT_CREATE_REQUEST = 1;
     public static final int ACCOUNT_EDIT_REQUEST = 2;
@@ -138,7 +147,7 @@
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
         View inflatedView = inflater.inflate(R.layout.frag_accounts_list, parent, false);
-        ((ListView)inflatedView.findViewById(R.id.accounts_list)).setAdapter(mAccountsAdapter);
+        ((ListView) inflatedView.findViewById(R.id.accounts_list)).setAdapter(mAccountsAdapter);
 
         return inflatedView;
     }
@@ -179,7 +188,16 @@
     public void onResume() {
         super.onResume();
         accountsLoader.onContentChanged();
-        getActivity().getActionBar().setTitle(R.string.menu_item_accounts);
+        ((HomeActivity) getActivity()).setToolbarState(true, R.string.menu_item_accounts);
+        FloatingActionButton btn = ((HomeActivity) getActivity()).getActionButton();
+        btn.setImageResource(R.drawable.ic_add_white_24dp);
+        btn.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent().setClass(getActivity(), AccountWizard.class);
+                startActivityForResult(intent, ACCOUNT_CREATE_REQUEST);
+            }
+        });
     }
 
     @Override
@@ -287,6 +305,7 @@
                 rowView = inflater.inflate(R.layout.item_account_pref, null);
 
                 entryView = new AccountView();
+                entryView.handle = (ImageView) rowView.findViewById(R.id.drag_handle);
                 entryView.alias = (TextView) rowView.findViewById(R.id.account_alias);
                 entryView.host = (TextView) rowView.findViewById(R.id.account_host);
                 entryView.enabled = (CheckBox) rowView.findViewById(R.id.account_checked);
@@ -300,15 +319,18 @@
             if (item.isIP2IP()) {
                 entryView.host.setText(item.getRegistered_state());
                 entryView.enabled.setVisibility(View.GONE);
+                entryView.handle.setVisibility(View.INVISIBLE);
             } else {
-                entryView.host.setText(item.getHost() + " - " + item.getRegistered_state());
+                if (item.isSip())
+                    entryView.host.setText(item.getHost() + " - " + item.getRegistered_state());
+                else
+                    entryView.host.setText(item.getBasicDetails().getDetailString(AccountDetailBasic.CONFIG_ACCOUNT_USERNAME));
                 entryView.enabled.setChecked(item.isEnabled());
                 entryView.enabled.setOnClickListener(new OnClickListener() {
 
                     @Override
                     public void onClick(View v) {
                         item.setEnabled(!item.isEnabled());
-
                         try {
                             mCallbacks.getService().setAccountDetails(item.getAccountID(), item.getDetails());
                         } catch (RemoteException e) {
@@ -327,6 +349,7 @@
          * *******************
          */
         public class AccountView {
+            public ImageView handle;
             public TextView alias;
             public TextView host;
             public CheckBox enabled;
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java
index b2b2406..24bd94f 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java
@@ -32,6 +32,7 @@
 package cx.ring.fragments;
 
 import android.app.Activity;
+import android.app.FragmentManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -46,7 +47,6 @@
 import android.os.PowerManager;
 import android.os.PowerManager.WakeLock;
 import android.os.RemoteException;
-import android.support.v4.app.FragmentManager;
 import android.util.FloatMath;
 import android.util.Log;
 import android.view.*;
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/CallableWrapperFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/CallableWrapperFragment.java
index 53ccc01..eb0a632 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/CallableWrapperFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/CallableWrapperFragment.java
@@ -36,7 +36,7 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.os.Bundle;
-import android.support.v4.app.Fragment;
+import android.app.Fragment;
 import android.util.Log;
 import cx.ring.interfaces.CallInterface;
 import cx.ring.model.Conference;
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/DialingFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/DialingFragment.java
index 7a634f9..71425d4 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/DialingFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/DialingFragment.java
@@ -33,7 +33,7 @@
 
 import java.util.Locale;
 
-import android.support.v4.app.Fragment;
+import android.app.Fragment;
 import cx.ring.R;
 import cx.ring.service.ISipService;
 import cx.ring.views.ClearableEditText;
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/DropActionsChoice.java b/ring-android/app/src/main/java/cx/ring/fragments/DropActionsChoice.java
index 5e09f23..9dd2ebc 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/DropActionsChoice.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/DropActionsChoice.java
@@ -31,7 +31,7 @@
 
 package cx.ring.fragments;
 
-import android.support.v4.app.DialogFragment;
+import android.app.DialogFragment;
 import cx.ring.R;
 
 import android.app.AlertDialog;
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/HistoryFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/HistoryFragment.java
index 7a04f0a..c7221b3 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/HistoryFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/HistoryFragment.java
@@ -34,10 +34,10 @@
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
-import android.support.v4.app.ListFragment;
-import android.support.v4.app.LoaderManager;
-import android.support.v4.content.AsyncTaskLoader;
-import android.support.v4.content.Loader;
+import android.app.ListFragment;
+import android.app.LoaderManager;
+import android.content.AsyncTaskLoader;
+import android.content.Loader;
 import android.view.*;
 import cx.ring.R;
 import cx.ring.adapters.ContactPictureTask;
@@ -62,7 +62,8 @@
 import android.widget.ListAdapter;
 import android.widget.TextView;
 
-public class HistoryFragment extends ListFragment implements LoaderManager.LoaderCallbacks<ArrayList<HistoryEntry>> {
+public class HistoryFragment extends ListFragment implements LoaderManager.LoaderCallbacks<ArrayList<HistoryEntry>>
+{
 
     private static final String TAG = HistoryFragment.class.getSimpleName();
 
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/HomeFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/HomeFragment.java
index b89841d..b0c58d8 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/HomeFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/HomeFragment.java
@@ -30,12 +30,15 @@
  */
 package cx.ring.fragments;
 
-import android.support.v4.app.Fragment;
 import cx.ring.R;
 import cx.ring.adapters.SectionsPagerAdapter;
+import cx.ring.client.HomeActivity;
+
 import com.astuetz.PagerSlidingTabStrip;
 
 import android.app.Activity;
+import android.app.Fragment;
+
 import android.content.Intent;
 import android.os.Bundle;
 import android.support.v4.view.ViewPager;
@@ -55,7 +58,7 @@
     @Override
     public void onResume() {
         super.onResume();
-        getActivity().getActionBar().setTitle(R.string.menu_item_home);
+        ((HomeActivity)getActivity()).setToolbarState(false, R.string.app_name);
     }
 
     @Override
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/MenuFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/MenuFragment.java
index d7653d8..42bc786 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/MenuFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/MenuFragment.java
@@ -31,18 +31,17 @@
 package cx.ring.fragments;
 
 import android.app.Activity;
+import android.app.LoaderManager;
+import android.content.AsyncTaskLoader;
 import android.content.Intent;
+import android.content.Loader;
 import android.os.Bundle;
 import android.os.RemoteException;
-import android.support.v4.app.LoaderManager;
-import android.support.v4.content.AsyncTaskLoader;
-import android.support.v4.content.Loader;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.*;
-import android.widget.AdapterView.OnItemClickListener;
 import android.widget.AdapterView.OnItemSelectedListener;
 import cx.ring.R;
 import cx.ring.adapters.AccountSelectionAdapter;
@@ -63,20 +62,11 @@
     AccountSelectionAdapter mAccountAdapter;
     private Spinner spinnerAccounts;
     private Callbacks mCallbacks = sDummyCallbacks;
-
-    private ListView sections;
-
     private static Callbacks sDummyCallbacks = new Callbacks() {
-
         @Override
         public ISipService getService() {
             return null;
         }
-
-        @Override
-        public void onSectionSelected(int pos) {
-
-        }
     };
 
     public Account retrieveAccountById(String accountID) {
@@ -90,11 +80,7 @@
     }
 
     public interface Callbacks {
-
-        public ISipService getService();
-
-        public void onSectionSelected(int pos);
-
+        ISipService getService();
     }
 
     @Override
@@ -140,20 +126,7 @@
 
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
-        View inflatedView = inflater.inflate(R.layout.frag_menu, parent, false);
-
-        ArrayAdapter<String> paramAdapter = new ArrayAdapter<String>(getActivity(), R.layout.item_menu, getResources().getStringArray(
-                R.array.menu_items_param));
-        sections = (ListView) inflatedView.findViewById(R.id.listView);
-        sections.setAdapter(paramAdapter);
-        backToHome();
-        sections.setOnItemClickListener(new OnItemClickListener() {
-
-            @Override
-            public void onItemClick(AdapterView<?> arg0, View selected, int pos, long arg3) {
-                mCallbacks.onSectionSelected(pos);
-            }
-        });
+        View inflatedView = inflater.inflate(R.layout.frag_menu_header, parent, false);
 
         spinnerAccounts = (Spinner) inflatedView.findViewById(R.id.account_selection);
         mAccountAdapter = new AccountSelectionAdapter(getActivity(), new ArrayList<Account>());
@@ -162,8 +135,9 @@
 
             @Override
             public void onItemSelected(AdapterView<?> arg0, View view, int pos, long arg3) {
+                Log.w(TAG, "onItemSelected -> setSelectedAccount" + pos);
                 mAccountAdapter.setSelectedAccount(pos);
-                view.findViewById(R.id.account_selected).setVisibility(View.GONE);
+                //view.findViewById(R.id.account_selected).setVisibility(View.GONE);
                 try {
                     mCallbacks.getService().setAccountOrder(mAccountAdapter.getAccountOrder());
                 } catch (RemoteException e) {
@@ -173,6 +147,7 @@
 
             @Override
             public void onNothingSelected(AdapterView<?> arg0) {
+                Log.w(TAG, "onNothingSelected -1");
                 mAccountAdapter.setSelectedAccount(-1);
             }
         });
@@ -191,6 +166,8 @@
     }
 
     public Account getSelectedAccount() {
+        Log.w(TAG, "getSelectedAccount " + mAccountAdapter.getSelectedAccount().getAccountID());
+
         return mAccountAdapter.getSelectedAccount();
     }
 
@@ -207,6 +184,8 @@
 
     @Override
     public void accountStateChanged(String accoundID, String state, int code) {
+        Log.w(TAG, "accountStateChanged " + accoundID + " " + state);
+
         if (mAccountAdapter != null)
             mAccountAdapter.updateAccount(accoundID, state, code);
     }
@@ -222,6 +201,7 @@
     public void onLoadFinished(Loader<Bundle> loader, Bundle data) {
         mAccountAdapter.removeAll();
         ArrayList<Account> accounts = data.getParcelableArrayList(AccountsLoader.ACCOUNTS);
+        accounts.add((Account)data.getParcelable(AccountsLoader.ACCOUNT_IP2IP));
         mAccountAdapter.addAll(accounts);
     }
 
@@ -230,8 +210,4 @@
 
     }
 
-    public void backToHome() {
-        sections.setItemChecked(0, true);
-    }
-
 }
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/TransferDFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/TransferDFragment.java
index 9d51c78..cb331de 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/TransferDFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/TransferDFragment.java
@@ -36,7 +36,7 @@
 import java.util.List;
 
 import android.app.Dialog;
-import android.support.v4.app.DialogFragment;
+import android.app.DialogFragment;
 import cx.ring.R;
 import cx.ring.loaders.ContactsLoader;
 import cx.ring.model.Conference;
diff --git a/ring-android/app/src/main/java/cx/ring/loaders/AccountsLoader.java b/ring-android/app/src/main/java/cx/ring/loaders/AccountsLoader.java
index 0f9eb39..962fe02 100644
--- a/ring-android/app/src/main/java/cx/ring/loaders/AccountsLoader.java
+++ b/ring-android/app/src/main/java/cx/ring/loaders/AccountsLoader.java
@@ -35,10 +35,10 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import android.support.v4.content.AsyncTaskLoader;
 import cx.ring.model.account.Account;
 import cx.ring.service.ISipService;
 
+import android.content.AsyncTaskLoader;
 import android.content.Context;
 import android.os.Bundle;
 import android.os.RemoteException;
@@ -78,6 +78,7 @@
                 if (id.contentEquals(ACCOUNT_IP2IP)) {
                     details = (HashMap<String, String>) service.getAccountDetails(id);
                     IP2IP = new Account(ACCOUNT_IP2IP, details, new ArrayList<Map<String, String>>()); // Empty credentials
+                    //accounts.add(IP2IP);
                     continue;
                 }
                 details = (Map<String, String>) service.getAccountDetails(id);
diff --git a/ring-android/app/src/main/java/cx/ring/loaders/HistoryLoader.java b/ring-android/app/src/main/java/cx/ring/loaders/HistoryLoader.java
index 5d878aa..b6712ea 100644
--- a/ring-android/app/src/main/java/cx/ring/loaders/HistoryLoader.java
+++ b/ring-android/app/src/main/java/cx/ring/loaders/HistoryLoader.java
@@ -31,10 +31,10 @@
 
 package cx.ring.loaders;
 
+import android.content.AsyncTaskLoader;
 import android.content.Context;
 import android.database.Cursor;
 import android.provider.ContactsContract;
-import android.support.v4.content.AsyncTaskLoader;
 import cx.ring.history.HistoryCall;
 import cx.ring.history.HistoryEntry;
 import cx.ring.history.HistoryManager;
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ic_add_circle_white_48dp.png b/ring-android/app/src/main/res/drawable-hdpi/ic_add_circle_white_48dp.png
new file mode 100644
index 0000000..de713bc
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-hdpi/ic_add_circle_white_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ic_add_white_24dp.png b/ring-android/app/src/main/res/drawable-hdpi/ic_add_white_24dp.png
new file mode 100644
index 0000000..694179b
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-hdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ic_error_white_24dp.png b/ring-android/app/src/main/res/drawable-hdpi/ic_error_white_24dp.png
new file mode 100644
index 0000000..69cbb1e
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-hdpi/ic_error_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ic_group_black_48dp.png b/ring-android/app/src/main/res/drawable-hdpi/ic_group_black_48dp.png
new file mode 100644
index 0000000..5a8b5d0
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-hdpi/ic_group_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ic_home_black_48dp.png b/ring-android/app/src/main/res/drawable-hdpi/ic_home_black_48dp.png
new file mode 100644
index 0000000..2e86cc2
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-hdpi/ic_home_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ic_info_black_48dp.png b/ring-android/app/src/main/res/drawable-hdpi/ic_info_black_48dp.png
new file mode 100644
index 0000000..a81eeb9
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-hdpi/ic_info_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ic_reorder_black_24dp.png b/ring-android/app/src/main/res/drawable-hdpi/ic_reorder_black_24dp.png
new file mode 100644
index 0000000..142d715
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-hdpi/ic_reorder_black_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ic_reorder_black_36dp.png b/ring-android/app/src/main/res/drawable-hdpi/ic_reorder_black_36dp.png
new file mode 100644
index 0000000..b439931
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-hdpi/ic_reorder_black_36dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-mdpi/ic_add_circle_white_48dp.png b/ring-android/app/src/main/res/drawable-mdpi/ic_add_circle_white_48dp.png
new file mode 100644
index 0000000..4d1cbca
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-mdpi/ic_add_circle_white_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-mdpi/ic_add_white_24dp.png b/ring-android/app/src/main/res/drawable-mdpi/ic_add_white_24dp.png
new file mode 100644
index 0000000..3856041
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-mdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-mdpi/ic_error_white_24dp.png b/ring-android/app/src/main/res/drawable-mdpi/ic_error_white_24dp.png
new file mode 100644
index 0000000..ca148fc
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-mdpi/ic_error_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-mdpi/ic_group_black_48dp.png b/ring-android/app/src/main/res/drawable-mdpi/ic_group_black_48dp.png
new file mode 100644
index 0000000..c2e9ffe
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-mdpi/ic_group_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-mdpi/ic_home_black_48dp.png b/ring-android/app/src/main/res/drawable-mdpi/ic_home_black_48dp.png
new file mode 100644
index 0000000..dcdcfc0
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-mdpi/ic_home_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-mdpi/ic_info_black_48dp.png b/ring-android/app/src/main/res/drawable-mdpi/ic_info_black_48dp.png
new file mode 100644
index 0000000..46ed12a
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-mdpi/ic_info_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-mdpi/ic_reorder_black_24dp.png b/ring-android/app/src/main/res/drawable-mdpi/ic_reorder_black_24dp.png
new file mode 100644
index 0000000..d18997c
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-mdpi/ic_reorder_black_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-mdpi/ic_reorder_black_36dp.png b/ring-android/app/src/main/res/drawable-mdpi/ic_reorder_black_36dp.png
new file mode 100644
index 0000000..142d715
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-mdpi/ic_reorder_black_36dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ic_add_circle_white_48dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ic_add_circle_white_48dp.png
new file mode 100644
index 0000000..4244b5e
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xhdpi/ic_add_circle_white_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ic_add_white_24dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ic_add_white_24dp.png
new file mode 100644
index 0000000..67bb598
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xhdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ic_error_white_24dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ic_error_white_24dp.png
new file mode 100644
index 0000000..9829698
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xhdpi/ic_error_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ic_group_black_48dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ic_group_black_48dp.png
new file mode 100644
index 0000000..2994e7c
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xhdpi/ic_group_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ic_home_black_48dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ic_home_black_48dp.png
new file mode 100644
index 0000000..04e2b26
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xhdpi/ic_home_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ic_info_black_48dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ic_info_black_48dp.png
new file mode 100644
index 0000000..c8f86b9
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xhdpi/ic_info_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ic_reorder_black_24dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ic_reorder_black_24dp.png
new file mode 100644
index 0000000..0b080a1
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xhdpi/ic_reorder_black_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ic_reorder_black_36dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ic_reorder_black_36dp.png
new file mode 100644
index 0000000..0a66529
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xhdpi/ic_reorder_black_36dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ic_add_circle_white_48dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ic_add_circle_white_48dp.png
new file mode 100644
index 0000000..4f5005d
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxhdpi/ic_add_circle_white_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png
new file mode 100644
index 0000000..0fdced8
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ic_error_white_24dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ic_error_white_24dp.png
new file mode 100644
index 0000000..abe2573
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxhdpi/ic_error_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ic_group_black_48dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ic_group_black_48dp.png
new file mode 100644
index 0000000..1fa4b3c
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxhdpi/ic_group_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ic_home_black_48dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ic_home_black_48dp.png
new file mode 100644
index 0000000..d66401c
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxhdpi/ic_home_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ic_info_black_48dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ic_info_black_48dp.png
new file mode 100644
index 0000000..74b5ecb
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxhdpi/ic_info_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ic_reorder_black_24dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ic_reorder_black_24dp.png
new file mode 100644
index 0000000..0a66529
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxhdpi/ic_reorder_black_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ic_reorder_black_36dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ic_reorder_black_36dp.png
new file mode 100644
index 0000000..d72a9b9
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxhdpi/ic_reorder_black_36dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ic_add_circle_white_48dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_add_circle_white_48dp.png
new file mode 100644
index 0000000..7332c75
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_add_circle_white_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png
new file mode 100644
index 0000000..d64c22e
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ic_error_white_24dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_error_white_24dp.png
new file mode 100644
index 0000000..830fb7e
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_error_white_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ic_group_black_48dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_group_black_48dp.png
new file mode 100644
index 0000000..b9f2b92
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_group_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ic_home_black_48dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_home_black_48dp.png
new file mode 100644
index 0000000..8fac2c3
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_home_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ic_info_black_48dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_info_black_48dp.png
new file mode 100644
index 0000000..4192281
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_info_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ic_reorder_black_24dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_reorder_black_24dp.png
new file mode 100644
index 0000000..56a5bc8
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_reorder_black_24dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ic_reorder_black_36dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_reorder_black_36dp.png
new file mode 100644
index 0000000..b5cfb69
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_reorder_black_36dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/layout/activity_home.xml b/ring-android/app/src/main/res/layout/activity_home.xml
index 66422c9..5bbadcc 100644
--- a/ring-android/app/src/main/res/layout/activity_home.xml
+++ b/ring-android/app/src/main/res/layout/activity_home.xml
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
+<?xml version="1.0" encoding="utf-8"?><!--
 Copyright (C) 2004-2014 Savoir-Faire Linux Inc.                     
                                                                     
-Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>                     
-                                                                    
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 3 of the License, or   
@@ -31,22 +31,66 @@
 -->
 
 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/drawer_layout"
     android:layout_width="match_parent"
-    android:layout_height="match_parent" >
+    android:layout_height="match_parent"
+    android:fitsSystemWindows="true">
 
     <cx.ring.views.SlidingUpPanelLayout
         android:id="@+id/contact_panel"
         android:layout_width="match_parent"
-        android:layout_height="match_parent" >
+        android:layout_height="match_parent">
 
-        <FrameLayout
-            android:id="@+id/main_frame"
+        <RelativeLayout
             android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:paddingTop="?android:attr/actionBarSize"
-            android:orientation="vertical" >
-        </FrameLayout>
+            android:layout_height="match_parent">
+
+            <android.support.v7.widget.Toolbar
+                android:id="@+id/main_toolbar"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_alignParentLeft="true"
+                android:layout_alignParentStart="true"
+                android:layout_alignParentTop="true"
+
+                android:background="@color/sfl_dark_blue"
+                android:elevation="4dp"
+                android:gravity="bottom"
+                android:longClickable="true"
+                android:minHeight="?android:attr/actionBarSize"
+                android:popupTheme="@style/Theme.AppCompat.Light.NoActionBar"
+                android:theme="@style/MyActionBar"
+                app:contentInsetStart="72dp"
+                app:elevation="4dp"
+                app:popupTheme="@style/Theme.AppCompat.Light.NoActionBar"
+                app:titleMarginBottom="16dp" />
+
+            <FrameLayout
+                android:id="@+id/main_frame"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_alignParentLeft="true"
+                android:layout_alignParentStart="true"
+                android:layout_below="@id/main_toolbar"
+                android:orientation="vertical" />
+
+            <android.support.design.widget.FloatingActionButton
+                android:id="@+id/action_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignBottom="@id/main_toolbar"
+                android:layout_alignParentLeft="true"
+                android:layout_alignParentStart="true"
+                android:layout_centerVertical="true"
+                android:layout_marginBottom="-20dp"
+                android:layout_marginLeft="16dp"
+                android:layout_marginStart="20dp"
+                android:elevation="4dp"
+                android:visibility="gone"
+                app:elevation="4dp"
+                app:fabSize="mini" />
+        </RelativeLayout>
 
         <FrameLayout
             android:id="@+id/contacts_frame"
@@ -57,13 +101,15 @@
             android:focusableInTouchMode="true" />
     </cx.ring.views.SlidingUpPanelLayout>
 
-    <FrameLayout
+    <android.support.design.widget.NavigationView
         android:id="@+id/left_drawer"
-        android:layout_width="300dp"
+        android:layout_width="wrap_content"
         android:layout_height="match_parent"
         android:layout_gravity="start"
-        android:choiceMode="singleChoice"
-        android:divider="@android:color/transparent"
-        android:dividerHeight="0dp" />
+        android:fitsSystemWindows="true"
+        android:theme="@style/AppThemeBase"
+        android:windowBackground="@color/white"
+        app:itemTextColor="?android:textColorPrimary"
+        app:menu="@menu/drawer" />
 
 </android.support.v4.widget.DrawerLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/frag_accounts_list.xml b/ring-android/app/src/main/res/layout/frag_accounts_list.xml
index c0fee12..22d71dc 100644
--- a/ring-android/app/src/main/res/layout/frag_accounts_list.xml
+++ b/ring-android/app/src/main/res/layout/frag_accounts_list.xml
@@ -1,75 +1,65 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:dslv="http://schemas.android.com/apk/res/cx.ring"
+    xmlns:dslv="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:orientation="vertical" >
-
-    <TextView
-        android:id="@+id/normal_account_list"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:background="@color/sfl_another_blue"
-        android:paddingLeft="5dp"
-        android:singleLine="true"
-        android:text="@string/preference_section1"
-        android:textAppearance="@android:style/TextAppearance.Holo.Medium.Inverse"
-        android:textColor="@color/white" />
-
-    <RelativeLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content" >
-
-        <cx.ring.views.dragsortlv.DragSortListView
-            android:id="@+id/accounts_list"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:background="@color/white"
-            android:choiceMode="multipleChoice"
-            android:dividerHeight="1px"
-            android:visibility="gone"
-            dslv:collapsed_height="1px"
-            dslv:drag_enabled="true"
-            dslv:drag_handle_id="@id/drag_handle"
-            dslv:drag_scroll_start="0.33"
-            dslv:drag_start_mode="onDown"
-            dslv:float_alpha="0.6"
-            dslv:float_background_color="@color/sfl_action_blue"
-            dslv:remove_enabled="false"
-            dslv:slide_shuffle_speed="0.3" />
-
-        <ProgressBar
-            android:id="@+id/loading_spinner"
-            style="?android:progressBarStyle"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_margin="15dp"
-            android:layout_centerInParent="true"
-            android:layout_gravity="center" />
+    android:orientation="vertical"
+    android:background="@color/white"
+    >
 
         <TextView
-            android:id="@+id/empty_account_list"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_centerInParent="true"
-            android:layout_gravity="center"
-            android:gravity="center"
-            android:text="@string/empty_account_list"
-            android:textSize="40sp"
-            android:visibility="gone" >
-        </TextView>
-    </RelativeLayout>
+            android:layout_width="match_parent"
+            android:layout_height="48dp"
+            android:paddingLeft="72dp"
+            android:text="Comptes"
+            style="@style/Subheader"
+            android:gravity="center_vertical" />
 
-    <TextView
-        android:id="@+id/ip2ip_account"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:background="@color/sfl_another_blue"
-        android:paddingLeft="5dp"
-        android:singleLine="true"
-        android:text="@string/ip2ip_account"
-        android:textAppearance="@android:style/TextAppearance.Holo.Medium.Inverse"
-        android:textColor="@color/white" />
+       <RelativeLayout
+           android:layout_width="match_parent"
+           android:layout_height="wrap_content" >
+
+           <cx.ring.views.dragsortlv.DragSortListView
+               android:id="@+id/accounts_list"
+               android:layout_width="match_parent"
+               android:layout_height="wrap_content"
+               android:background="@color/white"
+               android:choiceMode="multipleChoice"
+               android:dividerHeight="1px"
+               android:visibility="gone"
+               dslv:collapsed_height="1px"
+               dslv:drag_enabled="true"
+               dslv:drag_handle_id="@id/drag_handle"
+               dslv:drag_scroll_start="0.33"
+               dslv:drag_start_mode="onDown"
+               dslv:float_alpha="0.6"
+               dslv:float_background_color="@color/sfl_action_blue"
+               dslv:remove_enabled="false"
+               dslv:slide_shuffle_speed="0.3" />
+
+           <ProgressBar
+               android:id="@+id/loading_spinner"
+               style="?android:progressBarStyle"
+               android:layout_width="wrap_content"
+               android:layout_height="wrap_content"
+               android:layout_margin="5dp"
+               android:layout_centerInParent="true"
+               android:layout_gravity="center"
+               android:indeterminate="false" />
+
+           <TextView
+               android:id="@+id/empty_account_list"
+               android:layout_width="wrap_content"
+               android:layout_height="wrap_content"
+               android:layout_centerInParent="true"
+               android:layout_gravity="center"
+               android:gravity="center"
+               android:text="@string/empty_account_list"
+               android:textAppearance="?android:attr/textAppearanceMedium"
+               android:visibility="gone">
+           </TextView>
+
+       </RelativeLayout>
 
     <ListView
         android:id="@+id/ip2ip"
diff --git a/ring-android/app/src/main/res/layout/frag_menu.xml b/ring-android/app/src/main/res/layout/frag_menu.xml
deleted file mode 100644
index c643ed9..0000000
--- a/ring-android/app/src/main/res/layout/frag_menu.xml
+++ /dev/null
@@ -1,67 +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:background="@color/light"
-    android:orientation="vertical"
-    android:paddingTop="?android:attr/actionBarSize" >
-
-    <RelativeLayout
-        android:layout_width="match_parent"
-        android:layout_height="100dp"
-        android:background="@color/sfl_blue_0"
-        android:padding="5dp" >
-
-        <ImageView
-            android:id="@+id/user_photo"
-            android:layout_width="70dp"
-            android:layout_height="70dp"
-            android:layout_alignParentLeft="true"
-            android:layout_centerVertical="true" />
-
-        <TextView
-            android:id="@+id/user_name"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_alignParentRight="true"
-            android:layout_marginLeft="15dp"
-            android:layout_toRightOf="@+id/user_photo"
-            android:singleLine="true"
-            android:textColor="@color/white"
-            android:textSize="20sp"
-            android:textStyle="bold" />
-
-        <RelativeLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_alignLeft="@+id/user_name"
-            android:layout_alignParentBottom="true"
-            android:layout_alignRight="@+id/user_name"
-            android:layout_below="@+id/user_name" >
-
-            <Spinner
-                android:id="@+id/account_selection"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:background="@color/sfl_blue_0" />
-
-            <ImageView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_alignParentRight="true"
-                android:layout_centerVertical="true"
-                android:clickable="false"
-                android:focusable="false"
-                android:src="@drawable/ic_action_expand_light" />
-        </RelativeLayout>
-    </RelativeLayout>
-
-    <ListView
-        android:id="@+id/listView"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:choiceMode="singleChoice"
-        android:listSelector="@drawable/navigation_selector" >
-    </ListView>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/frag_menu_header.xml b/ring-android/app/src/main/res/layout/frag_menu_header.xml
new file mode 100644
index 0000000..43686ad
--- /dev/null
+++ b/ring-android/app/src/main/res/layout/frag_menu_header.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@color/sfl_blue_0"
+    android:paddingBottom="8dp"
+    android:paddingRight="5dp"
+    android:paddingTop="40dp"
+    android:theme="@style/MenuHeader"
+    android:paddingLeft="16dp">
+
+    <ImageView
+        android:id="@+id/user_photo"
+        android:layout_width="70dp"
+        android:layout_height="70dp"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentStart="true"
+        android:layout_alignParentTop="true"
+        android:layout_marginBottom="8dp" />
+
+    <TextView
+        android:id="@+id/user_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentEnd="true"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentRight="true"
+        android:layout_alignParentStart="true"
+        android:layout_below="@+id/user_photo"
+        android:singleLine="true"
+        android:textSize="20sp"
+        android:textStyle="bold"
+        android:textColor="@color/white" />
+
+    <Spinner
+        android:id="@+id/account_selection"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentStart="true"
+        android:layout_below="@+id/user_name"/>
+</RelativeLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/item_account.xml b/ring-android/app/src/main/res/layout/item_account.xml
index 3f08521..422d7ef 100644
--- a/ring-android/app/src/main/res/layout/item_account.xml
+++ b/ring-android/app/src/main/res/layout/item_account.xml
@@ -1,9 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:background="@color/sfl_blue_0"
-    android:padding="4dp" >
+    android:layout_height="72dp"
+    android:padding="16dp">
 
     <TextView
         android:id="@+id/account_alias"
@@ -11,30 +10,24 @@
         android:layout_height="wrap_content"
         android:layout_alignParentLeft="true"
         android:layout_alignParentTop="true"
-        android:layout_marginBottom="4dp"
-        android:layout_marginLeft="4dp"
-        android:textAppearance="?android:attr/textAppearanceLargeInverse" />
-    
-        <TextView
+        android:textAppearance="@style/ListPrimary" />
+
+    <TextView
         android:id="@+id/account_host"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentLeft="true"
         android:layout_below="@+id/account_alias"
-        android:layout_marginBottom="4dp"
-        android:layout_marginLeft="4dp"
-        android:textAppearance="?android:attr/textAppearanceSmallInverse" />
-
+        android:textAppearance="@style/ListSecondary" />
 
     <ImageView
-        android:id="@+id/account_selected"
+        android:id="@+id/error_indicator"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentRight="true"
         android:layout_centerVertical="true"
-        android:background="@null"
         android:clickable="false"
         android:focusable="false"
-        android:src="@drawable/ic_action_accept" />
+        android:src="@drawable/ic_error_white_24dp" />
 
 </RelativeLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/item_account_pref.xml b/ring-android/app/src/main/res/layout/item_account_pref.xml
index 8785b10..89193fe 100644
--- a/ring-android/app/src/main/res/layout/item_account_pref.xml
+++ b/ring-android/app/src/main/res/layout/item_account_pref.xml
@@ -12,7 +12,7 @@
             android:layout_centerVertical="true"
             android:layout_alignParentLeft="true"
             android:layout_marginLeft="16dp"
-            android:src="@drawable/handle"/>
+            android:src="@drawable/ic_reorder_black_24dp"/>
 
     <TextView
         android:id="@+id/account_alias"
diff --git a/ring-android/app/src/main/res/layout/item_account_selected.xml b/ring-android/app/src/main/res/layout/item_account_selected.xml
new file mode 100644
index 0000000..ba3b8c0
--- /dev/null
+++ b/ring-android/app/src/main/res/layout/item_account_selected.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="72dp"
+    android:paddingTop="16dp"
+    android:paddingRight="16dp"
+    android:minHeight="72dp"
+    android:paddingBottom="16dp">
+
+    <TextView
+        android:id="@+id/account_alias"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentTop="true"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:textColor="@color/white" />
+
+    <TextView
+        android:id="@+id/account_host"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_below="@+id/account_alias"
+        android:textAppearance="?android:attr/textAppearanceSmall"
+        android:textColor="@color/white" />
+
+    <ImageView
+        android:id="@+id/error_indicator"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:layout_centerVertical="true"
+        android:clickable="false"
+        android:focusable="false"
+        android:src="@drawable/ic_error_white_24dp" />
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/item_codec.xml b/ring-android/app/src/main/res/layout/item_codec.xml
index e91cb8a..a604aa1 100644
--- a/ring-android/app/src/main/res/layout/item_codec.xml
+++ b/ring-android/app/src/main/res/layout/item_codec.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@id/container"
+    android:id="@+id/codec_container"
     android:layout_width="match_parent"
     android:layout_height="?android:attr/listPreferredItemHeight" >
 
diff --git a/ring-android/app/src/main/res/layout/menuheader.xml b/ring-android/app/src/main/res/layout/menuheader.xml
index 3509b84..49dd54d 100644
--- a/ring-android/app/src/main/res/layout/menuheader.xml
+++ b/ring-android/app/src/main/res/layout/menuheader.xml
@@ -1,6 +1,13 @@
 <?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="match_parent">
 
+    <fragment
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:name="cx.ring.fragments.MenuFragment"
+        android:id="@+id/accountselector"
+        tools:layout="@layout/frag_menu_header" />
 </LinearLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/menu/drawer.xml b/ring-android/app/src/main/res/menu/drawer.xml
new file mode 100644
index 0000000..0c0a18b
--- /dev/null
+++ b/ring-android/app/src/main/res/menu/drawer.xml
@@ -0,0 +1,18 @@
+<?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/menuitem_home"
+            android:checked="true"
+            android:icon="@drawable/ic_home_black_48dp"
+            android:title="@string/menu_item_home"/>
+        <item
+            android:id="@+id/menuitem_accounts"
+            android:icon="@drawable/ic_group_black_48dp"
+            android:title="@string/menu_item_accounts"/>
+        <item
+            android:id="@+id/menuitem_about"
+            android:icon="@drawable/ic_info_black_48dp"
+            android:title="@string/menu_item_about"/>
+    </group>
+</menu>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/values-fr/strings_account.xml b/ring-android/app/src/main/res/values-fr/strings_account.xml
index 23edba2..92971c3 100644
--- a/ring-android/app/src/main/res/values-fr/strings_account.xml
+++ b/ring-android/app/src/main/res/values-fr/strings_account.xml
@@ -36,7 +36,7 @@
     <string name="prompt_hostname">Nom du serveur</string>
     <string name="prompt_username">Nom d\'utilisateur</string>
     <string name="prompt_password">Mot de passe</string>
-    <string name="action_create"><b>Enregistrer le compte</b></string>
+    <string name="action_create">Ajouter le compte</string>
     <string name="action_create_short">Enregistrer</string>
     <string name="error_field_required">Ce champ est requis</string>
 
diff --git a/ring-android/app/src/main/res/values-v21/styles.xml b/ring-android/app/src/main/res/values-v21/styles.xml
index 00080de..cbf5228 100644
--- a/ring-android/app/src/main/res/values-v21/styles.xml
+++ b/ring-android/app/src/main/res/values-v21/styles.xml
@@ -1,38 +1,24 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <style name="AppThemeWithOverlay" parent="android:Theme.Material.Light.DarkActionBar">
+    <style name="AppThemeWithOverlay" parent="AppThemeBase">
         <item name="android:actionBarStyle">@style/MyActionBar</item>
-        <item name="android:actionMenuTextAppearance">@style/MyActionBar.MenuTextStyle</item>
         <item name="android:windowActionBarOverlay">true</item>
+        <item name="windowActionBarOverlay">true</item>
         <item name="android:windowBackground">@drawable/bg_72</item>
-        <item name="android:activatedBackgroundIndicator">@drawable/navigation_selector</item>
+        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
+        <item name="android:statusBarColor">@android:color/transparent</item>
+        <item name="android:windowTranslucentStatus">true</item>
     </style>
 
-    <style name="AccountFormContainer">
-        <item name="android:layout_width">match_parent</item>
-        <item name="android:layout_height">wrap_content</item>
-        <item name="android:padding">16dp</item>
+    <style name="AppThemeWithoutOverlay" parent="@android:style/Theme.Material.Light.DarkActionBar">
+        <item name="android:actionBarStyle">@style/NativeActionBar</item>
     </style>
 
-    <style name="AppThemeWithoutOverlay" parent="android:Theme.Material.Light.DarkActionBar">
-        <item name="android:actionBarStyle">@style/MyActionBar</item>
-        <item name="android:actionMenuTextAppearance">@style/MyActionBar.MenuTextStyle</item>
-        <item name="android:windowActionBarOverlay">false</item>
-    </style>
-
-    <style name="MyActionBar" parent="@android:style/Widget.ActionBar">
+    <style name="NativeActionBar" parent="@android:style/Widget.ActionBar">
         <item name="android:background">@color/sfl_dark_blue</item>
-        <item name="android:titleTextStyle">@style/MyActionBar.Text</item>
+        <item name="android:titleTextStyle">@style/NativeActionBar.Text</item>
     </style>
 
-    <style name="MyActionBar.Text" parent="@android:style/TextAppearance.Material.Widget.ActionBar.Title">
-        <item name="android:textColor">@color/white</item>
-        <item name="android:textSize">18sp</item>
+    <style name="NativeActionBar.Text" parent="@android:style/TextAppearance.Material.Widget.ActionBar.Title">
     </style>
-
-    <style name="MyActionBar.MenuTextStyle" parent="android:style/TextAppearance.Material.Widget.ActionBar.Menu">
-        <item name="android:textColor">#FF0</item>
-        <item name="android:textSize">20sp</item>
-    </style>
-
 </resources>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/values/strings_account.xml b/ring-android/app/src/main/res/values/strings_account.xml
index e769eb4..974290f 100644
--- a/ring-android/app/src/main/res/values/strings_account.xml
+++ b/ring-android/app/src/main/res/values/strings_account.xml
@@ -36,7 +36,7 @@
     <string name="prompt_hostname">Hostname</string>
     <string name="prompt_username">Username</string>
     <string name="prompt_password">Password</string>
-    <string name="action_create"><b>Register Account</b></string>
+    <string name="action_create">Add account</string>
     <string name="action_create_short">Register</string>
     <string name="error_field_required">This field is required</string>
 
diff --git a/ring-android/app/src/main/res/values/styles.xml b/ring-android/app/src/main/res/values/styles.xml
index baab018..89379e3 100644
--- a/ring-android/app/src/main/res/values/styles.xml
+++ b/ring-android/app/src/main/res/values/styles.xml
@@ -1,9 +1,15 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <style name="AppThemeWithOverlay" parent="android:Theme.Holo.Light.DarkActionBar">
+    <style name="AppThemeBase" parent="Theme.AppCompat.Light.NoActionBar">
+
+    </style>
+
+    <style name="AppThemeWithOverlay" parent="AppThemeBase">
+
         <item name="android:actionBarStyle">@style/MyActionBar</item>
-        <item name="android:actionMenuTextAppearance">@style/MyActionBar.MenuTextStyle</item>
+
         <item name="android:windowActionBarOverlay">true</item>
+        <item name="windowActionBarOverlay">true</item>
         <item name="android:windowBackground">@drawable/bg_72</item>
         <item name="android:activatedBackgroundIndicator">@drawable/navigation_selector</item>
     </style>
@@ -14,25 +20,47 @@
         <item name="android:padding">16dp</item>
     </style>
 
-    <style name="AppThemeWithoutOverlay" parent="android:Theme.Holo.Light.DarkActionBar">
-        <item name="android:actionBarStyle">@style/MyActionBar</item>
-        <item name="android:actionMenuTextAppearance">@style/MyActionBar.MenuTextStyle</item>
-        <item name="android:windowActionBarOverlay">false</item>
+    <style name="AppThemeWithoutOverlay" parent="@android:style/Theme.Holo.Light.DarkActionBar">
+        <item name="android:actionBarStyle">@style/NativeActionBar</item>
     </style>
 
-    <style name="MyActionBar" parent="@android:style/Widget.ActionBar">
+    <style name="NativeActionBar" parent="@android:style/Widget.ActionBar">
         <item name="android:background">@color/sfl_dark_blue</item>
-        <item name="android:titleTextStyle">@style/MyActionBar.Text</item>
+        <item name="titleTextStyle">@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse</item>
+
     </style>
 
-    <style name="MyActionBar.Text" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
-        <item name="android:textColor">@color/white</item>
-        <item name="android:textSize">18sp</item>
+    <style name="NativeActionBar.Text" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
     </style>
 
-    <style name="MyActionBar.MenuTextStyle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Menu">
-        <item name="android:textColor">#FF0</item>
-        <item name="android:textSize">20sp</item>
+    <style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
+        <item name="android:textColorPrimary">@android:color/primary_text_dark</item>
+        <item name="android:textColorSecondary">@android:color/secondary_text_dark</item>
+        <item name="selectableItemBackground">?android:selectableItemBackground</item>
+        <item name="selectableItemBackgroundBorderless">?android:selectableItemBackground</item>
+        <item name="actionMenuTextColor">@color/abc_primary_text_material_light</item>
+    </style>
+    <style name="MenuHeader" parent="Theme.AppCompat.Light.NoActionBar">
+        <item name="android:textColorPrimary">@android:color/primary_text_dark</item>
+        <item name="android:textColorSecondary">@android:color/secondary_text_dark</item>
+    </style>
+
+    <style name="Subheader">
+        <item name="android:textSize">14sp</item>
+        <item name="android:typeface">normal</item>
+        <item name="android:textColor">@android:color/tertiary_text_light</item>
+    </style>
+
+    <style name="ListPrimary">
+        <item name="android:textSize">16sp</item>
+        <item name="android:typeface">normal</item>
+        <item name="android:textColor">@android:color/primary_text_light</item>
+    </style>
+
+    <style name="ListSecondary">
+        <item name="android:textSize">14sp</item>
+        <item name="android:typeface">normal</item>
+        <item name="android:textColor">@android:color/tertiary_text_light</item>
     </style>
 
 </resources>
\ No newline at end of file
