rotation: allow landscape in all app

This commit bring auto-rotation for all the screens, according
to user settings (screen rotation locked/unlocked).

It was previously reserved to the CallActivity.
- clean styles.xml
- remove dead code (SettingsActivity)
- layout ajustement across the app to manage toolbars manually
(toolbar title is layouted in the bottom for the AccountManagementFragment)

Tuleap: #727
Change-Id: I0e46ea8afcb88d99627090eb0c33f4ea24f4825c
diff --git a/ring-android/app/src/main/AndroidManifest.xml b/ring-android/app/src/main/AndroidManifest.xml
index 66e8251..f14ae71 100644
--- a/ring-android/app/src/main/AndroidManifest.xml
+++ b/ring-android/app/src/main/AndroidManifest.xml
@@ -66,9 +66,6 @@
     <uses-feature
         android:name="android.hardware.bluetooth"
         android:required="false" />
-    <uses-feature
-        android:name="android.hardware.screen.portrait"
-        android:required="false" />
 
     <application
         android:allowBackup="true"
@@ -78,10 +75,11 @@
         <activity
             android:name=".client.HomeActivity"
             android:label="@string/title_activity_sflphone_home"
-            android:screenOrientation="portrait"
-            android:theme="@style/AppThemeWithOverlay"
+            android:theme="@style/AppThemeBase"
             android:windowSoftInputMode="adjustResize"
-            android:launchMode="singleTask">
+            android:screenOrientation="fullUser"
+            android:launchMode="singleTask"
+            android:configChanges="orientation|screenSize">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
 
@@ -143,8 +141,9 @@
         </activity>
         <activity
             android:name=".client.AccountWizard"
-            android:screenOrientation="portrait"
-            android:theme="@style/AppThemeWithoutOverlayCompat">
+            android:theme="@style/AppThemeBase"
+            android:screenOrientation="fullUser"
+            android:configChanges="orientation|screenSize">
             <meta-data
                 android:name="android.support.PARENT_ACTIVITY"
                 android:value="cx.ring.client.AccountEditionActivity" />
@@ -152,12 +151,14 @@
         <activity
             android:name=".client.AccountEditionActivity"
             android:label="@string/app_name"
-            android:screenOrientation="portrait"
-            android:theme="@style/AppThemeWithoutOverlayCompatNoShadow" />
+            android:theme="@style/AppThemeBase"
+            android:screenOrientation="fullUser"
+            android:configChanges="orientation|screenSize"/>
         <activity
             android:name=".client.NewConversationActivity"
             android:label="@string/app_name"
-            android:theme="@style/AppThemeWithoutOverlay" />
+            android:theme="@style/AppThemeBase"
+            android:screenOrientation="fullUser"/>
 
         <receiver android:name=".service.OutgoingCallHandler">
             <intent-filter>
@@ -175,7 +176,7 @@
         <activity
             android:name=".client.CallActivity"
             android:label="@string/app_name"
-            android:screenOrientation="fullSensor"
+            android:screenOrientation="fullUser"
             android:configChanges="orientation|screenSize"
             android:theme="@style/AppTheme.ActionBar.Transparent"
             android:windowSoftInputMode="adjustPan|stateHidden">
@@ -242,21 +243,11 @@
             android:name=".client.ConversationActivity"
             android:label="@string/app_name"
             android:parentActivityName=".client.HomeActivity"
-            android:screenOrientation="portrait"
-            android:theme="@style/AppThemeWithoutOverlayCompat"
-            android:windowSoftInputMode="adjustResize" />
-        <activity
-            android:name=".client.SettingsActivity"
-            android:label="@string/menu_item_settings"
-            android:theme="@style/AppThemeWithoutOverlayCompat">
-            <intent-filter>
-                <action android:name="android.intent.action.MANAGE_NETWORK_USAGE" />
-
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-        </activity>
+            android:theme="@style/AppThemeBase"
+            android:windowSoftInputMode="adjustResize"
+            android:screenOrientation="fullUser"/>
         <activity android:name=".client.QRCodeScannerActivity"
-            android:screenOrientation="fullSensor"
+            android:screenOrientation="fullUser"
             android:stateNotNeeded="true"
             android:theme="@style/zxing_CaptureTheme"
             android:windowSoftInputMode="stateAlwaysHidden">
diff --git a/ring-android/app/src/main/java/cx/ring/client/AccountEditionActivity.java b/ring-android/app/src/main/java/cx/ring/client/AccountEditionActivity.java
index 724b208..5e12fbf 100644
--- a/ring-android/app/src/main/java/cx/ring/client/AccountEditionActivity.java
+++ b/ring-android/app/src/main/java/cx/ring/client/AccountEditionActivity.java
@@ -46,8 +46,8 @@
 import android.support.v4.app.ActivityCompat;
 import android.support.v4.content.ContextCompat;
 import android.support.v4.view.ViewPager;
-import android.support.v7.app.ActionBar;
 import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
 import android.util.Log;
 import android.util.Pair;
 import android.view.KeyEvent;
@@ -144,9 +144,9 @@
         super.onCreate(savedInstanceState);
 
         setContentView(R.layout.activity_account_settings);
-        final ActionBar actionBar = getSupportActionBar();
-        actionBar.setDisplayHomeAsUpEnabled(true);
-        actionBar.setElevation(0);
+        Toolbar toolbar = (Toolbar) findViewById(R.id.main_toolbar);
+        setSupportActionBar(toolbar);
+        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
 
         if (!mBound) {
             Intent intent = new Intent(this, LocalService.class);
@@ -164,6 +164,7 @@
     @Override
     protected void onDestroy() {
         super.onDestroy();
+
         if (mBound) {
             unbindService(mConnection);
             mBound = false;
@@ -172,14 +173,13 @@
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
-        AlertDialog dialog;
         switch (item.getItemId()) {
             case android.R.id.home:
                 finish();
                 return true;
             case R.id.menuitem_delete:
-                dialog = createDeleteDialog();
-                dialog.show();
+                AlertDialog deleteDialog = createDeleteDialog();
+                deleteDialog.show();
                 break;
             case R.id.menuitem_export:
                 startExport();
@@ -352,6 +352,7 @@
                 if (!checkPassword(pwd, pwd_confirm)) {
                     final String pwd_txt = pwd.getText().toString();
                     alertDialog.dismiss();
+
                     new ExportAccountTask().execute(pwd_txt);
                 }
             }
@@ -382,15 +383,15 @@
     }
 
     private class ExportAccountTask extends AsyncTask<String, Void, Integer> {
-        private ProgressDialog loading_dialog = null;
+        ProgressDialog exportDialog;
         private String path;
 
         @Override
         protected void onPreExecute() {
-            loading_dialog = ProgressDialog.show(AccountEditionActivity.this,
+            exportDialog = ProgressDialog.show(AccountEditionActivity.this,
                     getString(R.string.export_dialog_title),
                     getString(R.string.import_export_wait), true);
-            loading_dialog.setCancelable(false);
+            exportDialog.setCancelable(false);
         }
 
         protected Integer doInBackground(String... args) {
@@ -408,11 +409,13 @@
         }
 
         protected void onPostExecute(Integer ret) {
-            if (loading_dialog != null)
-                loading_dialog.dismiss();
+            if (exportDialog != null){
+                exportDialog.dismiss();
+            }
+
             Log.d(TAG, "Account export to " + path + " returned " + ret);
             if (ret == 0) {
-                Snackbar.make(findViewById(android.R.id.content), getString(R.string.account_export_result, path), Snackbar.LENGTH_INDEFINITE).show();
+                Snackbar.make(findViewById(android.R.id.content), getString(R.string.account_export_result, path), Snackbar.LENGTH_LONG).show();
             } else
                 new AlertDialog.Builder(AccountEditionActivity.this).setTitle(R.string.export_failed_dialog_title)
                         .setMessage(R.string.export_failed_dialog_msg)
diff --git a/ring-android/app/src/main/java/cx/ring/client/AccountWizard.java b/ring-android/app/src/main/java/cx/ring/client/AccountWizard.java
index 91a624f..cffd9d3 100644
--- a/ring-android/app/src/main/java/cx/ring/client/AccountWizard.java
+++ b/ring-android/app/src/main/java/cx/ring/client/AccountWizard.java
@@ -27,21 +27,23 @@
 import android.content.ServiceConnection;
 import android.os.Bundle;
 import android.os.IBinder;
+import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentStatePagerAdapter;
-import android.support.v4.app.Fragment;
 import android.support.v4.view.ViewPager;
 import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
 import android.util.Log;
 import android.view.MenuItem;
+
+import java.util.ArrayList;
+import java.util.Locale;
+
 import cx.ring.R;
 import cx.ring.fragments.AccountCreationFragment;
 import cx.ring.service.IDRingService;
 import cx.ring.service.LocalService;
 
-import java.util.ArrayList;
-import java.util.Locale;
-
 public class AccountWizard extends AppCompatActivity implements LocalService.Callbacks {
     static final String TAG = "AccountWizard";
     private boolean mBound = false;
@@ -65,8 +67,10 @@
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-
         setContentView(R.layout.activity_wizard);
+        Toolbar toolbar = (Toolbar) findViewById(R.id.main_toolbar);
+        setSupportActionBar(toolbar);
+
         mViewPager = (ViewPager) findViewById(R.id.pager);
 
         getSupportActionBar().setDisplayHomeAsUpEnabled(true);
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 a25c6f5..71b1518 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
@@ -95,6 +95,7 @@
         }
 
         setContentView(R.layout.activity_call_layout);
+
         mMainView = findViewById(R.id.maincalllayout);
         mMainView.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -134,7 +135,6 @@
             showSystemUI();
         }
 
-        //hideSystemUI();
         super.onConfigurationChanged(newConfig);
     }
 
diff --git a/ring-android/app/src/main/java/cx/ring/client/ConversationActivity.java b/ring-android/app/src/main/java/cx/ring/client/ConversationActivity.java
index 3248142..e4d28b3 100644
--- a/ring-android/app/src/main/java/cx/ring/client/ConversationActivity.java
+++ b/ring-android/app/src/main/java/cx/ring/client/ConversationActivity.java
@@ -34,10 +34,12 @@
 import android.os.SystemClock;
 import android.support.design.widget.Snackbar;
 import android.support.v7.app.ActionBar;
+import android.support.v7.app.AlertDialog;
 import android.support.v7.app.AppCompatActivity;
 import android.support.v7.widget.DefaultItemAnimator;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
+import android.support.v7.widget.Toolbar;
 import android.util.Log;
 import android.util.Pair;
 import android.view.KeyEvent;
@@ -68,6 +70,7 @@
         Conversation.ConversationActionCallback,
         ClipboardHelper.ClipboardHelperCallback {
     private static final String TAG = ConversationActivity.class.getSimpleName();
+    private static final String CONVERSATION_DELETE = "CONVERSATION_DELETE";
 
     public static final Uri CONTENT_URI = Uri.withAppendedPath(LocalService.AUTHORITY_URI,
             "conversations");
@@ -76,6 +79,8 @@
 
     private boolean mBound = false;
     private boolean mVisible = false;
+    private AlertDialog mDeleteDialog;
+    private boolean mDeleteConversation = false;
 
     private LocalService mService = null;
     private Conversation mConversation = null;
@@ -212,6 +217,11 @@
                 mConversation.mVisible = true;
                 mService.readConversation(mConversation);
             }
+
+            if (mDeleteConversation) {
+                mDeleteDialog = Conversation.launchDeleteAction(ConversationActivity.this, mConversation, ConversationActivity.this);
+            }
+
             mRefreshTaskHandler.postDelayed(refreshTask, REFRESH_INTERVAL_MS);
         }
 
@@ -254,7 +264,12 @@
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setContentView(R.layout.frag_conversation);
+        setContentView(R.layout.activity_conversation);
+        Toolbar toolbar = (Toolbar) findViewById(R.id.main_toolbar);
+        setSupportActionBar(toolbar);
+
+        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+
         mMsgEditTxt = (EditText) findViewById(R.id.msg_input_txt);
         mMsgEditTxt.setOnEditorActionListener(new TextView.OnEditorActionListener() {
             @Override
@@ -302,6 +317,9 @@
 
         mNumberSpinner = (Spinner) findViewById(R.id.number_selector);
 
+        // reload delete conversation state (before rotation)
+        mDeleteConversation = savedInstanceState!=null && savedInstanceState.getBoolean(CONVERSATION_DELETE);
+
         if (!mBound) {
             Log.d(TAG, "onCreate: Binding service...");
             Intent intent = new Intent(this, LocalService.class);
@@ -351,13 +369,28 @@
             unbindService(mConnection);
             mBound = false;
         }
+
+        if (mDeleteConversation) {
+            mDeleteDialog.dismiss();
+        }
+
         super.onDestroy();
     }
 
     @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+
+        // persist the delete popup state in case of Activity rotation
+        mDeleteConversation = mDeleteDialog!=null && mDeleteDialog.isShowing();
+        outState.putBoolean(CONVERSATION_DELETE, mDeleteConversation);
+    }
+
+    @Override
     public boolean onPrepareOptionsMenu(Menu menu) {
-        if (mAddContactBtn != null)
+        if (mAddContactBtn != null) {
             mAddContactBtn.setVisible(mConversation != null && mConversation.getContact().getId() < 0);
+        }
         return super.onPrepareOptionsMenu(menu);
     }
 
@@ -372,6 +405,9 @@
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
+            case android.R.id.home:
+                finish();
+                return true;
             case R.id.conv_action_audiocall:
                 onCallWithVideo(false);
                 return true;
@@ -382,7 +418,7 @@
                 startActivityForResult(mConversation.contact.getAddNumberIntent(), REQ_ADD_CONTACT);
                 return true;
             case R.id.menuitem_delete:
-                Conversation.launchDeleteAction(this, this.mConversation, this);
+                mDeleteDialog = Conversation.launchDeleteAction(this, this.mConversation, this);
                 return true;
             case R.id.menuitem_copy_content:
                 Conversation.launchCopyNumberToClipboardFromContact(this,
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 4775179..889dcf0 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
@@ -49,6 +49,7 @@
 import android.support.v7.app.ActionBarDrawerToggle;
 import android.support.v7.app.AppCompatActivity;
 import android.support.v7.widget.Toolbar;
+import android.text.Layout;
 import android.transition.Explode;
 import android.transition.Fade;
 import android.util.Log;
@@ -58,6 +59,8 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
 
 import com.google.zxing.BarcodeFormat;
 import com.google.zxing.WriterException;
@@ -103,7 +106,9 @@
     private MenuHeaderView fMenuHead = null;
     private DrawerLayout mNavigationDrawer;
     private ActionBarDrawerToggle mDrawerToggle;
-    private Toolbar toolbar;
+    private Toolbar mToolbar;
+    private LinearLayout mToolbarSpacerView;
+    private TextView mToolbarSpacerTitle;
     private float mToolbarSize;
     private FloatingActionButton actionButton;
     protected android.app.Fragment fContent;
@@ -140,10 +145,13 @@
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_home);
 
-        toolbar = (Toolbar) findViewById(R.id.main_toolbar);
-        setSupportActionBar(toolbar);
+        mToolbar = (Toolbar) findViewById(R.id.main_toolbar);
+        setSupportActionBar(mToolbar);
         actionButton = (FloatingActionButton) findViewById(R.id.action_button);
 
+        mToolbarSpacerView = (LinearLayout)findViewById(R.id.toolbar_spacer);
+        mToolbarSpacerTitle = (TextView)findViewById(R.id.toolbar_spacer_title);
+
         fMenu = (NavigationView) findViewById(R.id.left_drawer);
         fMenu.setNavigationItemSelectedListener(this);
         mNavigationDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);
@@ -311,17 +319,29 @@
     }
 
     public void setToolbarState(boolean double_h, int title_res) {
-        ViewGroup.LayoutParams params = toolbar.getLayoutParams();
+
+        mToolbar.setMinimumHeight((int) mToolbarSize);
+        ViewGroup.LayoutParams toolbarSpacerViewParams = mToolbarSpacerView.getLayoutParams();
+
         if (double_h) {
-            params.height = (int) (mToolbarSize * 2);
+            // setting the height of the toolbar spacer with the same height than the toolbar
+            toolbarSpacerViewParams.height = (int)mToolbarSize;
+            mToolbarSpacerView.setLayoutParams(toolbarSpacerViewParams);
+
+            // setting the toolbar spacer title (hiding the real toolbar title)
+            mToolbarSpacerTitle.setText(title_res);
+            mToolbar.setTitle("");
+
+            // the spacer and the action button become visible
+            mToolbarSpacerView.setVisibility(View.VISIBLE);
             actionButton.setVisibility(View.VISIBLE);
         } else {
-            params.height = (int) mToolbarSize;
+            // hide the toolbar spacer and the action button
+            mToolbarSpacerView.setVisibility(View.GONE);
             actionButton.setVisibility(View.GONE);
+            mToolbar.setTitle(title_res);
+
         }
-        toolbar.setLayoutParams(params);
-        toolbar.setMinimumHeight((int) mToolbarSize);
-        toolbar.setTitle(title_res);
     }
 
     public FloatingActionButton getActionButton() {
diff --git a/ring-android/app/src/main/java/cx/ring/client/SettingsActivity.java b/ring-android/app/src/main/java/cx/ring/client/SettingsActivity.java
deleted file mode 100644
index eeb0c11..0000000
--- a/ring-android/app/src/main/java/cx/ring/client/SettingsActivity.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package cx.ring.client;
-
-import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.view.MenuItem;
-
-import cx.ring.fragments.SettingsFragment;
-
-public class SettingsActivity extends AppCompatActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        getFragmentManager().beginTransaction()
-                .replace(android.R.id.content, new SettingsFragment())
-                .commit();
-        getSupportActionBar().setDisplayShowHomeEnabled(true);
-        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            case android.R.id.home:
-                finish();
-                return true;
-        }
-        return super.onOptionsItemSelected(item);
-    }
-}
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/SmartListFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/SmartListFragment.java
index e893201..a8c77cd 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/SmartListFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/SmartListFragment.java
@@ -52,6 +52,7 @@
 import android.widget.AdapterView.OnItemClickListener;
 import android.widget.ImageView;
 import android.widget.ListView;
+import android.widget.ProgressBar;
 import android.widget.TextView;
 import android.widget.Toast;
 
@@ -77,6 +78,7 @@
     private static final String TAG = SmartListFragment.class.getSimpleName();
 
     private static final int USER_INPUT_DELAY = 300;
+    private static final String STATE_LOADING = TAG + ".STATE_LOADING";
 
     private LocalService.Callbacks mCallbacks = LocalService.DUMMY_CALLBACKS;
     private SmartListAdapter mSmartListAdapter;
@@ -88,7 +90,7 @@
     private MenuItem mDialpadMenuItem = null;
 
     private ListView mList = null;
-    private View mLoader = null;
+    private ProgressBar mLoader = null;
     private TextView mEmptyTextView = null;
 
     private ViewGroup mNewContact;
@@ -251,6 +253,16 @@
     }
 
     @Override
+    public void onSaveInstanceState(Bundle outState) {
+        if (null != mLoader) {
+            // if there's another fragment on top of this one, when a rotation is done, this fragment is destroyed and
+            // in the process of recreating it, as it is not shown on the top of the screen, the "onCreateView" method is never called, so the mLoader is null
+            outState.putBoolean(STATE_LOADING, mLoader.isShown());
+        }
+        super.onSaveInstanceState(outState);
+    }
+
+    @Override
     public boolean onQueryTextChange(final String query) {
         if (TextUtils.isEmpty(query)) {
             mNewContact.setVisibility(View.GONE);
@@ -302,8 +314,11 @@
         mList.setOnItemLongClickListener(conversationLongClickListener);
 
         this.mEmptyTextView = (TextView) inflatedView.findViewById(R.id.emptyTextView);
-        this.mLoader = inflatedView.findViewById(android.R.id.empty);
-        this.setLoading(true);
+        this.mLoader = (ProgressBar) inflatedView.findViewById(R.id.loading_indicator);
+
+        if (savedInstanceState != null) {
+            this.setLoading(savedInstanceState.getBoolean(STATE_LOADING, false));
+        }
 
         mNewContact = (ViewGroup) inflatedView.findViewById(R.id.newcontact_element);
         mNewContact.setVisibility(View.GONE);
diff --git a/ring-android/app/src/main/java/cx/ring/model/Conversation.java b/ring-android/app/src/main/java/cx/ring/model/Conversation.java
index 3f28b1f..a7f093f 100644
--- a/ring-android/app/src/main/java/cx/ring/model/Conversation.java
+++ b/ring-android/app/src/main/java/cx/ring/model/Conversation.java
@@ -267,17 +267,17 @@
         void copyContactNumberToClipboard(String contactNumber);
     }
 
-    public static void launchDeleteAction(final Activity activity,
+    public static AlertDialog launchDeleteAction(final Activity activity,
                                           final Conversation conversation,
                                           final ConversationActionCallback callback) {
         if (activity == null) {
             Log.d(TAG, "launchDeleteAction: activity is null");
-            return;
+            return null;
         }
 
         if (conversation == null) {
             Log.d(TAG, "launchDeleteAction: conversation is null");
-            return;
+            return null;
         }
 
         AlertDialog.Builder builder = new AlertDialog.Builder(activity);
@@ -300,6 +300,7 @@
 
         AlertDialog alertDialog = builder.create();
         alertDialog.show();
+        return alertDialog;
     }
 
     public static void presentActions(final Activity activity,
diff --git a/ring-android/app/src/main/res/layout/activity_account_settings.xml b/ring-android/app/src/main/res/layout/activity_account_settings.xml
index 9c7e2fe..41475d2 100644
--- a/ring-android/app/src/main/res/layout/activity_account_settings.xml
+++ b/ring-android/app/src/main/res/layout/activity_account_settings.xml
@@ -1,37 +1,53 @@
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:orientation="vertical"
     tools:context=".client.AccountEditionActivity">
 
-    <com.astuetz.PagerSlidingTabStrip
-        android:id="@+id/sliding_tabs"
+    <LinearLayout
+        android:id="@+id/header_container"
         android:layout_width="match_parent"
-        android:layout_height="48dp"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentStart="true"
+        android:layout_alignParentTop="true"
         android:background="@color/color_primary_light"
+        android:orientation="vertical"
         android:elevation="4dp"
-        android:textColor="@color/text_color_primary_dark"
-        app:pstsUnderlineHeight="0dp"
-        app:pstsShouldExpand="true"
-        app:paddingStart="20dp"
-        app:pstsIndicatorHeight="2dp"
-        app:pstsIndicatorColor="@android:color/white"
-        app:pstsDividerColor="@android:color/transparent"/>
+        app:elevation="4dp">
+
+        <android.support.v7.widget.Toolbar
+            android:id="@+id/main_toolbar"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:minHeight="?attr/actionBarSize"
+            android:popupTheme="@style/Theme.AppCompat.Light.NoActionBar"
+            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+            android:titleTextAppearance="@style/ToolbarTitle"
+            app:contentInsetStart="72dp"
+            app:titleTextAppearance="@style/ToolbarTitle" />
+
+        <com.astuetz.PagerSlidingTabStrip
+            android:id="@+id/sliding_tabs"
+            android:layout_width="match_parent"
+            android:layout_height="48dp"
+            android:textColor="@color/text_color_primary_dark"
+            app:paddingStart="20dp"
+            app:pstsDividerColor="@android:color/transparent"
+            app:pstsIndicatorColor="@android:color/white"
+            app:pstsIndicatorHeight="2dp"
+            app:pstsShouldExpand="true"
+            app:pstsUnderlineHeight="0dp" />
+
+    </LinearLayout>
 
     <android.support.v4.view.ViewPager
         android:id="@+id/pager"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:layout_below="@id/sliding_tabs"
-        android:layout_alignParentBottom="true" />
-
-    <FrameLayout
-        android:id="@+id/hidden_container"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_alignTop="@+id/pager">
-    </FrameLayout>
+        android:layout_alignParentBottom="true"
+        android:layout_below="@id/header_container" />
 
 </RelativeLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/activity_call_layout.xml b/ring-android/app/src/main/res/layout/activity_call_layout.xml
index e8f973d..f12e443 100644
--- a/ring-android/app/src/main/res/layout/activity_call_layout.xml
+++ b/ring-android/app/src/main/res/layout/activity_call_layout.xml
@@ -1,5 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
+<?xml version="1.0" encoding="utf-8"?><!--
 Copyright (C) 2004-2016 Savoir-faire Linux Inc.
                                                                     
 Author: Adrien Beraud <adrien.beraud@savoirfairelinux.com>
@@ -27,23 +26,4 @@
     android:background="@color/cardview_dark_background"
     tools:context=".client.CallActivity">
 
-    <!--
-    <FrameLayout
-        android:id="@+id/message_list_frame"
-        android:layout_width="300dp"
-        android:layout_height="match_parent" />
-
-    <FrameLayout
-        android:id="@+id/ongoingcall_pane"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_gravity="right|center_vertical" />
-
-    <fragment
-        android:id="@+id/ongoingcall_pane"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:name="cx.ring.fragments.CallFragment"
-        tools:layout="@layout/frag_call" />-->
-
 </cx.ring.views.FitsWindowsLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/frag_conversation.xml b/ring-android/app/src/main/res/layout/activity_conversation.xml
similarity index 80%
rename from ring-android/app/src/main/res/layout/frag_conversation.xml
rename to ring-android/app/src/main/res/layout/activity_conversation.xml
index 7e80409..f4236bf 100644
--- a/ring-android/app/src/main/res/layout/frag_conversation.xml
+++ b/ring-android/app/src/main/res/layout/activity_conversation.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
@@ -7,16 +8,34 @@
     android:orientation="vertical"
     tools:context=".client.ConversationActivity">
 
+    <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/color_primary_light"
+        android:elevation="4dp"
+        android:popupTheme="@style/Theme.AppCompat.Light.NoActionBar"
+        android:titleTextAppearance="@style/ToolbarTitle"
+
+        android:minHeight="?attr/actionBarSize"
+        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+        app:contentInsetStart="72dp"
+        app:elevation="4dp"
+        app:titleTextAppearance="@style/ToolbarTitle" />
+
     <android.support.v7.widget.RecyclerView
         android:id="@+id/hist_list"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:layout_below="@id/main_toolbar"
         android:layout_above="@+id/userInputMessageCardView"
         android:layout_alignParentEnd="true"
         android:layout_alignParentLeft="true"
         android:layout_alignParentRight="true"
         android:layout_alignParentStart="true"
-        android:layout_alignParentTop="true"
         android:clipToPadding="false"
         android:divider="@null"
         android:listSelector="@android:color/transparent"
@@ -27,7 +46,7 @@
         android:id="@+id/ongoingcall_pane"
         android:layout_width="match_parent"
         android:layout_height="48dp"
-        android:layout_gravity="center_horizontal"
+        android:layout_below="@id/main_toolbar"
         android:background="#e3c1c1">
 
         <TextView
@@ -75,7 +94,7 @@
                 android:layout_weight="1"
                 android:background="@null"
                 android:hint="@string/write_a_message"
-                android:imeOptions="actionSend"
+                android:imeOptions="actionSend|flagNoExtractUi"
                 android:inputType="textShortMessage|textImeMultiLine|text|textMultiLine|textCapSentences"
                 android:maxLines="5"
                 android:padding="8dp" />
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 a4bca13..67d25c5 100644
--- a/ring-android/app/src/main/res/layout/activity_home.xml
+++ b/ring-android/app/src/main/res/layout/activity_home.xml
@@ -39,17 +39,38 @@
             android:layout_alignParentLeft="true"
             android:layout_alignParentStart="true"
             android:layout_alignParentTop="true"
-            android:background="@color/actionbar"
-            android:elevation="4dp"
-            android:gravity="bottom"
+            android:background="@color/color_primary_light"
             android:minHeight="?attr/actionBarSize"
             android:popupTheme="@style/Theme.AppCompat.Light.NoActionBar"
             android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
-            app:contentInsetStart="72dp"
-            app:elevation="4dp"
-            app:popupTheme="@style/Theme.AppCompat.Light.NoActionBar"
-            app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
-            app:titleMarginBottom="@dimen/action_bar_title_margin_bottom" />
+            android:titleTextAppearance="@style/ToolbarTitle"
+            app:contentInsetStart="@dimen/toolbar_content_inset"
+            android:elevation="@dimen/toolbar_elevation"
+            app:elevation="@dimen/toolbar_elevation"
+            app:titleTextAppearance="@style/ToolbarTitle"/>
+
+        <LinearLayout
+            android:id="@+id/toolbar_spacer"
+            android:layout_width="match_parent"
+            android:layout_height="72sp"
+            android:orientation="horizontal"
+            android:elevation="@dimen/toolbar_elevation"
+            android:layout_below="@+id/main_toolbar"
+            android:background="@color/color_primary_light"
+            android:visibility="visible"
+            android:paddingLeft="@dimen/toolbar_content_inset"
+            android:gravity="center_vertical">
+
+                <TextView
+                    android:id="@+id/toolbar_spacer_title"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/menu_item_accounts"
+                    style="@style/ToolbarTitle"
+                    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+                    />
+
+            </LinearLayout>
 
         <FrameLayout
             android:id="@+id/main_frame"
@@ -57,14 +78,14 @@
             android:layout_height="match_parent"
             android:layout_alignParentLeft="true"
             android:layout_alignParentStart="true"
-            android:layout_below="@id/main_toolbar"
+            android:layout_below="@+id/toolbar_spacer"
             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_alignBottom="@+id/toolbar_spacer"
             android:layout_alignParentLeft="true"
             android:layout_alignParentStart="true"
             android:layout_marginBottom="@dimen/action_button_bpadding"
@@ -76,7 +97,11 @@
             app:elevation="6dp"
             app:fabSize="mini"
             app:pressedTranslationZ="12dp"
-            app:rippleColor="@android:color/white" />
+            app:rippleColor="@android:color/white">
+
+
+
+            </android.support.design.widget.FloatingActionButton>
 
     </RelativeLayout>
 
diff --git a/ring-android/app/src/main/res/layout/activity_new_conversation.xml b/ring-android/app/src/main/res/layout/activity_new_conversation.xml
index 89be1ee..4425009 100644
--- a/ring-android/app/src/main/res/layout/activity_new_conversation.xml
+++ b/ring-android/app/src/main/res/layout/activity_new_conversation.xml
@@ -5,8 +5,8 @@
     tools:context="cx.ring.client.NewConversationActivity">
 
     <fragment
-        android:layout_width="fill_parent"
-        android:layout_height="fill_parent"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
         android:name="cx.ring.fragments.ContactListFragment"
         android:id="@+id/fragment"
         android:layout_alignParentTop="true"
diff --git a/ring-android/app/src/main/res/layout/activity_wizard.xml b/ring-android/app/src/main/res/layout/activity_wizard.xml
index 0f80727..e4dc955 100644
--- a/ring-android/app/src/main/res/layout/activity_wizard.xml
+++ b/ring-android/app/src/main/res/layout/activity_wizard.xml
@@ -1,11 +1,30 @@
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:orientation="vertical" >
+    android:orientation="vertical">
+
+    <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/color_primary_light"
+        android:elevation="4dp"
+        android:minHeight="?attr/actionBarSize"
+        android:popupTheme="@style/Theme.AppCompat.Light.NoActionBar"
+        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
+        android:titleTextAppearance="@style/ToolbarTitle"
+        app:contentInsetStart="72dp"
+        app:elevation="4dp"
+        app:titleTextAppearance="@style/ToolbarTitle" />
 
     <android.support.v4.view.ViewPager
         android:id="@+id/pager"
         android:layout_width="match_parent"
-        android:layout_height="match_parent" />
+        android:layout_height="match_parent"
+        android:layout_below="@id/main_toolbar" />
 
 </RelativeLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/frag_call.xml b/ring-android/app/src/main/res/layout/frag_call.xml
index 1408a13..656d3c7 100644
--- a/ring-android/app/src/main/res/layout/frag_call.xml
+++ b/ring-android/app/src/main/res/layout/frag_call.xml
@@ -27,9 +27,6 @@
         android:id="@+id/video_preview_surface"
         android:layout_width="match_parent"
         android:layout_height="32dp"
-        android:layout_alignParentEnd="false"
-        android:layout_alignParentStart="false"
-        android:layout_centerInParent="true"
         android:layout_gravity="center"
         android:visibility="gone" />
 
@@ -43,78 +40,64 @@
             android:id="@+id/camera_preview_surface"
             android:layout_width="160dp"
             android:layout_height="120dp"
-            android:layout_alignParentBottom="true"
-            android:layout_alignParentEnd="true"
-            android:layout_alignParentRight="true"
+            android:layout_gravity="bottom|end"
             android:layout_margin="8dp"
-            android:layout_gravity="bottom|right"
             android:visibility="gone" />
 
         <LinearLayout
             android:id="@+id/contact_bubble_layout"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
-            android:layout_centerHorizontal="true"
-            android:layout_centerVertical="true"
+            android:layout_gravity="center_vertical"
             android:layout_marginBottom="16dp"
-            android:orientation="vertical"
             android:gravity="center_horizontal"
-            android:layout_gravity="center_vertical">
+            android:orientation="vertical">
 
             <ImageView
                 android:id="@+id/contact_bubble"
                 android:layout_width="160dp"
                 android:layout_height="160dp"
-                android:layout_alignParentStart="false"
-                android:layout_alignParentTop="true"
-                android:layout_centerHorizontal="true"
                 android:layout_marginBottom="16dp"
                 android:layout_marginLeft="16dp"
                 android:layout_marginRight="16dp" />
 
             <TextView
                 android:id="@+id/contact_bubble_txt"
-                android:layout_width="fill_parent"
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_below="@+id/contact_bubble"
                 android:gravity="center_horizontal"
+                android:singleLine="true"
                 android:textAppearance="?android:attr/textAppearanceLarge"
-                android:textColor="@color/text_color_primary_dark"
-                android:singleLine="true" />
+                android:textColor="@color/text_color_primary_dark" />
 
             <TextView
                 android:id="@+id/contact_bubble_num_txt"
-                android:layout_width="fill_parent"
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_alignParentEnd="false"
-                android:layout_below="@+id/contact_bubble_txt"
-                android:gravity="center_horizontal"
-                android:textAppearance="?android:attr/textAppearanceMedium"
-                android:textColor="@color/text_color_secondary_dark"
-                android:singleLine="true"
                 android:ellipsize="middle"
+                android:gravity="center_horizontal"
+                android:paddingEnd="8dp"
                 android:paddingStart="8dp"
-                android:paddingEnd="8dp" />
+                android:singleLine="true"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textColor="@color/text_color_secondary_dark" />
 
             <TextView
                 android:id="@+id/call_status_txt"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_centerVertical="true"
+                android:textAppearance="?android:attr/textAppearanceMedium"
                 android:textColor="@color/text_color_primary_dark"
-                android:textSize="16sp"
-                android:textAppearance="?android:attr/textAppearanceMedium" />
+                android:textSize="16sp" />
 
         </LinearLayout>
 
         <LinearLayout
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:layout_alignParentBottom="true"
-            android:layout_centerHorizontal="true"
+            android:layout_gravity="bottom|center_horizontal"
             android:layout_margin="12dp"
-            android:layout_gravity="bottom|center_horizontal">
+            android:orientation="horizontal">
 
             <android.support.design.widget.FloatingActionButton
                 android:id="@+id/call_refuse_btn"
@@ -145,22 +128,19 @@
             android:id="@+id/call_hangup_btn"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_alignParentBottom="true"
-            android:layout_centerHorizontal="true"
+            android:layout_gravity="bottom|center_horizontal"
             android:layout_margin="28dp"
             android:src="@drawable/ic_call_end_white_24dp"
+            android:visibility="gone"
             app:backgroundTint="@color/error_red"
             app:elevation="6dp"
             app:pressedTranslationZ="12dp"
-            app:rippleColor="@android:color/white"
-            android:layout_gravity="bottom|center_horizontal"
-            android:visibility="gone" />
+            app:rippleColor="@android:color/white" />
 
         <RelativeLayout
             android:id="@+id/call_status_bar"
             android:layout_width="match_parent"
             android:layout_height="?android:attr/actionBarSize"
-            android:layout_alignParentTop="true"
             android:visibility="visible">
 
             <ViewSwitcher
@@ -200,11 +180,11 @@
         </RelativeLayout>
 
         <EditText
+            android:id="@+id/dialpad_edit_text"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:inputType="phone"
             android:ems="10"
-            android:id="@+id/dialpad_edit_text"
+            android:inputType="phone"
             android:visibility="visible" />
 
     </FrameLayout>
diff --git a/ring-android/app/src/main/res/layout/frag_contact_list.xml b/ring-android/app/src/main/res/layout/frag_contact_list.xml
index 5381856..645915e 100644
--- a/ring-android/app/src/main/res/layout/frag_contact_list.xml
+++ b/ring-android/app/src/main/res/layout/frag_contact_list.xml
@@ -23,7 +23,7 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    tools:context=".client.DetailHistoryActivity">
+    tools:context=".client.NewConversationActivity">
 
     <se.emilsjolander.stickylistheaders.StickyListHeadersListView
         android:id="@+id/contacts_stickylv"
diff --git a/ring-android/app/src/main/res/layout/frag_smartlist.xml b/ring-android/app/src/main/res/layout/frag_smartlist.xml
index 0b8ff0d..4e3c8a3 100644
--- a/ring-android/app/src/main/res/layout/frag_smartlist.xml
+++ b/ring-android/app/src/main/res/layout/frag_smartlist.xml
@@ -34,7 +34,7 @@
         android:layout_alignParentLeft="true"
         android:layout_alignParentStart="true"
         android:layout_alignParentTop="true"
-        android:background="#e57373"
+        android:background="@color/error_pane"
         android:padding="16dp"
         android:visibility="visible">
 
@@ -107,7 +107,7 @@
             android:layout_gravity="center" />
 
         <ProgressBar
-            android:id="@android:id/empty"
+            android:id="@+id/loading_indicator"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_gravity="center" />
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 7c7880d..9b4155b 100644
--- a/ring-android/app/src/main/res/values-v21/styles.xml
+++ b/ring-android/app/src/main/res/values-v21/styles.xml
@@ -1,42 +1,13 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <style name="AppThemeWithOverlay" parent="AppThemeBase">
-        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
-        <item name="android:statusBarColor">@color/color_primary_light</item>
-        <item name="android:windowTranslucentStatus">true</item>
-    </style>
-
-    <style name="AppThemeWithoutOverlay" parent="@android:style/Theme.Material.Light.DarkActionBar">
-        <item name="android:actionBarStyle">@style/NativeActionBar</item>
-        <item name="android:colorAccent">@color/color_primary_light</item>
-        <item name="android:colorPrimary">@color/color_primary_light</item>
-        <item name="android:colorPrimaryDark">@color/color_primary_dark</item>
-    </style>
-
     <style name="AppTheme.ActionBar.Transparent" parent="style/Theme.AppCompat">
-        <item name="colorAccent">@color/color_primary_dark</item>
-        <item name="colorPrimary">@color/color_primary_light</item>
-        <item name="colorPrimaryDark">@color/color_primary_dark</item>
-        <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
-        <item name="android:actionBarStyle">@style/ActionBar.Transparent</item>
-        <item name="actionBarStyle">@style/ActionBar.Transparent</item>
-        <item name="android:windowContentOverlay">@null</item>
-        <item name="windowActionBarOverlay">true</item>
         <item name="android:windowTranslucentStatus">true</item>
         <item name="android:windowTranslucentNavigation">true</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowActionBarOverlay">true</item>
+        <item name="windowActionBarOverlay">true</item>
+        <item name="android:actionBarStyle">@style/ActionBar.Transparent</item>
+        <item name="actionBarStyle">@style/ActionBar.Transparent</item>
     </style>
 
-    <style name="NativeActionBar" parent="@android:style/Widget.ActionBar">
-        <item name="android:background">@color/actionbar</item>
-        <item name="android:titleTextStyle">@style/NativeActionBar.Text</item>
-        <item name="android:elevation">4dp</item>
-    </style>
-
-    <style name="ActionBar.Transparent" parent="@android:style/Widget.DeviceDefault.Light.ActionBar.Solid.Inverse">
-        <item name="android:background">@android:color/transparent</item>
-        <item name="android:height">@dimen/abc_action_bar_default_height_material</item>
-        <item name="background">@android:color/transparent</item>
-    </style>
-
-    <style name="NativeActionBar.Text" parent="@android:style/TextAppearance.Material.Widget.ActionBar.Title"></style>
 </resources>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/values/colors.xml b/ring-android/app/src/main/res/values/colors.xml
index bb377d6..ab8d091 100644
--- a/ring-android/app/src/main/res/values/colors.xml
+++ b/ring-android/app/src/main/res/values/colors.xml
@@ -3,44 +3,35 @@
 
     <color name="color_primary_light">#3AC0D2</color>
     <color name="color_primary_light_shadow">#40b5c6</color>
-
     <color name="color_primary_dark">#004C60</color>
 
-
     <color name="action_blue">#004C60</color>
 
-    <color name="actionbar">@color/color_primary_light</color>
-
-
     <!-- SFL colors-->
     <color name="sfl_pantone631_blue">#56B0C9</color>
-    <!-- <color name="sfl_dark_blue">#09353c</color>
-    
     <color name="sfl_another_blue">#051d21</color>
     <color name="sfl_action_blue">#AA2eadda</color>
-     -->
-    
     <color name="sfl_blue_0">#002930</color>
-    
     <color name="sfl_blue_lines">#0a90ce</color>
-    
     <color name="sfl_blue_9">#D932B4E4</color>
     <color name="sfl_light_blue">#006f82</color>
-    
+
     <color name="lighter_gray">#ddd</color>
     <color name="darker_gray">#aaa</color>
     <color name="light">#eee</color>
-    
+
     <color name="text_shadow">#054b55</color>
-    
+
     <color name="white">#FFF</color>
     <color name="black">#000</color>
     <color name="error_red">#f44336</color>
 
+    <color name="error_pane">#e57373</color>
+
     <color name="background_tab_pressed">#6633B5E5</color>
-    
+
     <color name="transparent_light">#AAFFFFFF</color>
-    
+
     <!-- A light Holo shade of blue -->
     <color name="holo_blue_light">#ff33b5e5</color>
     <!-- A light Holo shade of green -->
diff --git a/ring-android/app/src/main/res/values/dimens.xml b/ring-android/app/src/main/res/values/dimens.xml
index fc5c17a..b9df228 100644
--- a/ring-android/app/src/main/res/values/dimens.xml
+++ b/ring-android/app/src/main/res/values/dimens.xml
@@ -48,4 +48,7 @@
 
     <dimen name="alert_dialog_side_padding_list_view">16dp</dimen>
 
+    <dimen name="toolbar_content_inset">72dp</dimen>
+    <dimen name="toolbar_elevation">4dp</dimen>
+
 </resources>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/values/styles.xml b/ring-android/app/src/main/res/values/styles.xml
index 41c4471..24a6337 100644
--- a/ring-android/app/src/main/res/values/styles.xml
+++ b/ring-android/app/src/main/res/values/styles.xml
@@ -1,17 +1,32 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
 
     <style name="AppThemeBase" parent="@style/Theme.AppCompat.Light.NoActionBar">
-        <item name="actionBarStyle">@style/MyActionBar</item>
         <item name="colorAccent">@color/color_primary_dark</item>
         <item name="colorPrimary">@color/color_primary_light</item>
         <item name="colorPrimaryDark">@color/color_primary_dark</item>
-        <item name="android:windowActionBarOverlay">true</item>
-        <item name="windowActionBarOverlay">true</item>
         <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
     </style>
 
-    <style name="AppThemeWithOverlay" parent="AppThemeBase">
-        <item name="android:activatedBackgroundIndicator">@drawable/navigation_selector</item>
+    <style name="AppTheme.ActionBar.Transparent" parent="style/Theme.AppCompat.Light">
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowActionBarOverlay">true</item>
+        <item name="android:actionBarStyle">@style/ActionBar.Transparent</item>
+        <item name="actionBarStyle">@style/ActionBar.Transparent</item>
+    </style>
+
+    <style name="ActionBar.Transparent" parent="@android:style/Widget.DeviceDefault.Light.ActionBar.Solid.Inverse">
+        <item name="android:background">@android:color/transparent</item>
+        <item name="android:height">@dimen/abc_action_bar_default_height_material</item>
+        <item name="background">@android:color/transparent</item>
+    </style>
+
+    <style name="ToolbarTitle" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Title">
+        <item name="android:textSize">20sp</item>
+    </style>
+
+    <style name="MenuHeader" parent="Theme.AppCompat.Light.NoActionBar">
+        <item name="android:textColorPrimary">@color/text_color_primary_dark</item>
+        <item name="android:textColorSecondary">@color/text_color_secondary_dark</item>
     </style>
 
     <style name="AccountFormContainer">
@@ -20,71 +35,6 @@
         <item name="android:padding">16dp</item>
     </style>
 
-    <style name="AppThemeWithoutOverlay" parent="@android:style/Theme.Holo.Light.DarkActionBar">
-        <item name="colorAccent">@color/color_primary_dark</item>
-        <item name="colorPrimary">@color/color_primary_light</item>
-        <item name="colorPrimaryDark">@color/color_primary_dark</item>
-        <item name="android:actionBarStyle">@style/NativeActionBar</item>
-    </style>
-
-    <style name="AppThemeWithoutOverlayCompat" parent="style/Theme.AppCompat.Light.DarkActionBar">
-        <item name="colorAccent">@color/color_primary_dark</item>
-        <item name="colorPrimary">@color/color_primary_light</item>
-        <item name="colorPrimaryDark">@color/color_primary_dark</item>
-        <item name="android:actionBarStyle">@style/NativeActionBar</item>
-        <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
-    </style>
-
-    <style name="AppTheme.ActionBar.Transparent" parent="style/Theme.AppCompat">
-        <item name="colorAccent">@color/color_primary_dark</item>
-        <item name="colorPrimary">@color/color_primary_light</item>
-        <item name="colorPrimaryDark">@color/color_primary_dark</item>
-        <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
-        <item name="android:actionBarStyle">@style/ActionBar.Transparent</item>
-        <item name="actionBarStyle">@style/ActionBar.Transparent</item>
-        <item name="android:windowContentOverlay">@null</item>
-        <item name="windowActionBarOverlay">true</item>
-        <item name="android:windowTranslucentStatus">true</item>
-        <item name="android:windowTranslucentNavigation">true</item>
-    </style>
-
-    <style name="AppThemeWithoutOverlayCompatNoShadow" parent="AppThemeWithoutOverlayCompat">
-        <item name="android:windowContentOverlay">@null</item>
-    </style>
-
-    <style name="NativeActionBar" parent="@android:style/Widget.DeviceDefault.Light.ActionBar.Solid.Inverse">
-        <item name="android:background">@color/color_primary_light</item>
-        <item name="android:height">@dimen/abc_action_bar_default_height_material</item>
-        <item name="elevation">4dp</item>
-    </style>
-
-    <style name="ActionBar.Transparent" parent="@android:style/Widget.DeviceDefault.Light.ActionBar.Solid.Inverse">
-        <item name="android:background">@null</item>
-        <item name="background">@null</item>
-        <item name="android:height">@dimen/abc_action_bar_default_height_material</item>
-    </style>
-
-    <style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid">
-        <item name="android:height">@dimen/abc_action_bar_default_height_material</item>
-        <item name="android:textColorPrimary">@color/text_color_primary_dark</item>
-        <item name="android:textColorHighlight">@color/text_color_primary_dark</item>
-        <item name="android:textColorSecondary">@color/text_color_secondary_dark</item>
-        <item name="colorControlNormal">@color/white</item>
-        <item name="selectableItemBackground">?android:selectableItemBackground</item>
-        <item name="selectableItemBackgroundBorderless">?android:selectableItemBackground</item>
-        <item name="titleTextStyle">@style/MyTitleTextStyle</item>
-        <item name="elevation">4dp</item>
-    </style>
-
-    <style name="MyTitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
-        <item name="android:textColor">@color/error_red</item>
-    </style>
-
-    <style name="MenuHeader" parent="Theme.AppCompat.Light.NoActionBar">
-        <item name="android:textColorPrimary">@color/text_color_primary_dark</item>
-        <item name="android:textColorSecondary">@color/text_color_secondary_dark</item>
-    </style>
-
     <style name="Subheader">
         <item name="android:textSize">14sp</item>
         <item name="android:typeface">normal</item>