diff --git a/ring-android/app/src/main/AndroidManifest.xml b/ring-android/app/src/main/AndroidManifest.xml
index f0e0ef6..03f54ec 100644
--- a/ring-android/app/src/main/AndroidManifest.xml
+++ b/ring-android/app/src/main/AndroidManifest.xml
@@ -113,7 +113,7 @@
             android:name=".client.AccountEditionActivity"
             android:label="@string/app_name"
             android:screenOrientation="portrait"
-            android:theme="@style/AppThemeWithoutOverlay" />
+            android:theme="@style/AppThemeWithoutOverlayCompatNoShadow" />
         <activity
             android:name=".client.DetailHistoryActivity"
             android:label="@string/app_name"
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 d53f4cb..5d3c11f 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
@@ -1,8 +1,9 @@
 /*
- *  Copyright (C) 2004-2014 Savoir-Faire Linux Inc.
+ *  Copyright (C) 2004-2015 Savoir-faire Linux Inc.
  *
  *  Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
  *          Alexandre Savard <alexandre.savard@savoirfairelinux.com>
+ *          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
@@ -17,17 +18,6 @@
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- *  Additional permission under GNU GPL version 3 section 7:
- *
- *  If you modify this program, or any covered work, by linking or
- *  combining it with the OpenSSL project's OpenSSL library (or a
- *  modified version of that library), containing parts covered by the
- *  terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
- *  grants you additional permission to convey the resulting work.
- *  Corresponding Source for a non-source form of such a combination
- *  shall include the source code for the parts of OpenSSL used as well
- *  as that of the covered work.
  */
 
 package cx.ring.client;
@@ -41,9 +31,12 @@
 import android.os.Bundle;
 import android.os.IBinder;
 import android.os.RemoteException;
-import android.support.v13.app.FragmentStatePagerAdapter;
+import android.support.v13.app.FragmentPagerAdapter;
 import android.support.v4.view.ViewPager;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
 import android.util.Log;
+import android.util.Pair;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
@@ -55,16 +48,14 @@
 import cx.ring.model.account.Account;
 import cx.ring.service.IDRingService;
 import cx.ring.service.LocalService;
-import com.astuetz.PagerSlidingTabStrip;
 import java.util.ArrayList;
-import java.util.Locale;
 import java.util.Map;
 import java.util.Observable;
 import java.util.Observer;
 
 import cx.ring.fragments.GeneralAccountFragment;
 
-public class AccountEditionActivity extends Activity implements LocalService.Callbacks, GeneralAccountFragment.Callbacks, AudioManagementFragment.Callbacks,
+public class AccountEditionActivity extends AppCompatActivity implements LocalService.Callbacks, GeneralAccountFragment.Callbacks, AudioManagementFragment.Callbacks,
         AdvancedAccountFragment.Callbacks, SecurityAccountFragment.Callbacks, NestedSettingsFragment.Callbacks {
     private static final String TAG = AccountEditionActivity.class.getSimpleName();
 
@@ -96,36 +87,38 @@
             mBound = true;
 
             setContentView(R.layout.activity_account_settings);
-            getActionBar().setDisplayHomeAsUpEnabled(true);
+
+            final ActionBar actionBar = getSupportActionBar();
+
+            actionBar.setDisplayHomeAsUpEnabled(true);
+            actionBar.setElevation(0);
+
             String account_id = getIntent().getData().getLastPathSegment();
             Log.i(TAG, "Service connected " + className.getClassName() + " " + getIntent().getData().toString());
 
             acc_selected = service.getAccount(account_id);
             acc_selected.addObserver(mAccountObserver);
-            getActionBar().setTitle(acc_selected.getAlias());
+            actionBar.setTitle(acc_selected.getAlias());
 
-            ArrayList<Fragment> fragments = new ArrayList<>();
+            ArrayList<Pair<String, Fragment>> fragments = new ArrayList<>();
             if (acc_selected.isIP2IP()) {
-                fragments.add(new AudioManagementFragment());
+                fragments.add(new Pair<String, Fragment>(getString(R.string.account_preferences_audio_tab), new AudioManagementFragment()));
             } else {
-                fragments.add(new GeneralAccountFragment());
-                fragments.add(new AudioManagementFragment());
+                fragments.add(new Pair<String, Fragment>(getString(R.string.account_preferences_basic_tab), new GeneralAccountFragment()));
+                fragments.add(new Pair<String, Fragment>(getString(R.string.account_preferences_audio_tab), new AudioManagementFragment()));
                 if(acc_selected.isSip())
                 {
-                    fragments.add(new AdvancedAccountFragment());
-                    fragments.add(new SecurityAccountFragment());
+                    fragments.add(new Pair<String, Fragment>(getString(R.string.account_preferences_advanced_tab), new AdvancedAccountFragment()));
+                    fragments.add(new Pair<String, Fragment>(getString(R.string.account_preferences_security_tab), new SecurityAccountFragment()));
                 }
             }
 
-            ViewPager mViewPager = (ViewPager) findViewById(R.id.pager);
-
+            final ViewPager mViewPager = (ViewPager) findViewById(R.id.pager);
             mPreferencesPagerAdapter = new PreferencesPagerAdapter(AccountEditionActivity.this, getFragmentManager(), fragments);
             mViewPager.setAdapter(mPreferencesPagerAdapter);
             mViewPager.setOffscreenPageLimit(3);
-
-            final PagerSlidingTabStrip strip = PagerSlidingTabStrip.class.cast(findViewById(R.id.pager_sliding_strip));
-
-            strip.setViewPager(mViewPager);
+            com.astuetz.PagerSlidingTabStrip mSlidingTabLayout = (com.astuetz.PagerSlidingTabStrip) findViewById(R.id.sliding_tabs);
+            mSlidingTabLayout.setViewPager(mViewPager);
         }
 
         @Override
@@ -215,7 +208,7 @@
             Map<String, String> details = acc_selected.getDetails();
             service.getRemoteService().setAccountDetails(acc_selected.getAccountID(), details);
             Log.w(TAG, "service.setAccountDetails " + details.get("Account.hostname"));
-            getActionBar().setTitle(acc_selected.getAlias());;
+            getSupportActionBar().setTitle(acc_selected.getAlias());;
 
         } catch (RemoteException e) {
             e.printStackTrace();
@@ -263,16 +256,15 @@
         return service;
     }
 
-    public class PreferencesPagerAdapter extends FragmentStatePagerAdapter {
+    public class PreferencesPagerAdapter extends FragmentPagerAdapter {
 
         Context mContext;
-        ArrayList<Fragment> fragments;
+        ArrayList<Pair<String, Fragment>> fragments;
 
-        public PreferencesPagerAdapter(Context c, FragmentManager fm, ArrayList<Fragment> items) {
+        public PreferencesPagerAdapter(Context c, FragmentManager fm, ArrayList<Pair<String, Fragment>> items) {
             super(fm);
             mContext = c;
-            fragments = new ArrayList<Fragment>(items);
-
+            fragments = items;
         }
 
         @Override
@@ -282,29 +274,12 @@
 
         @Override
         public Fragment getItem(int position) {
-            return fragments.get(position);
+            return fragments.get(position).second;
         }
 
         @Override
         public CharSequence getPageTitle(int position) {
-            switch (position) {
-            case 0:
-                if (acc_selected.isIP2IP()) {
-                    return getString(R.string.account_preferences_audio_tab).toUpperCase(Locale.getDefault());
-                } else {
-                    return getString(R.string.account_preferences_basic_tab).toUpperCase(Locale.getDefault());
-                }
-            case 1:
-                return getString(R.string.account_preferences_audio_tab).toUpperCase(Locale.getDefault());
-            case 2:
-                return getString(R.string.account_preferences_advanced_tab).toUpperCase(Locale.getDefault());
-            case 3:
-                return getString(R.string.account_preferences_security_tab).toUpperCase(Locale.getDefault());
-            default:
-                Log.e(TAG, "getPreferencePageTitle: unknown tab position " + position);
-                break;
-            }
-            return null;
+            return fragments.get(position).first;
         }
     }
 
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/AccountCreationFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/AccountCreationFragment.java
index 07e0d53..5bc1c7f 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/AccountCreationFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/AccountCreationFragment.java
@@ -39,9 +39,7 @@
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.AdapterView;
 import android.widget.EditText;
-import android.widget.Spinner;
 import android.widget.TextView;
 import android.widget.TextView.OnEditorActionListener;
 import android.widget.Toast;
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 065dada..fd47509 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
@@ -122,7 +122,6 @@
         this.setHasOptionsMenu(true);
 
         mShortAnimationDuration = getResources().getInteger(android.R.integer.config_mediumAnimTime);
-        Log.i(TAG, "anim time: " + mShortAnimationDuration);
         //getLoaderManager().initLoader(LoaderConstants.ACCOUNTS_LOADER, null, this);
 
         IntentFilter intentFilter = new IntentFilter();
@@ -416,11 +415,14 @@
 
     private void refreshAccountList() {
         Log.i(TAG, "refreshAccountList");
-        mAccountsAdapter.replaceAll(mCallbacks.getService().getAccounts());
+        LocalService service = mCallbacks.getService();
+        if (service == null)
+            return;
+        mAccountsAdapter.replaceAll(service.getAccounts());
         if (mAccountsAdapter.isEmpty()) {
             mDnDListView.setEmptyView(getView().findViewById(R.id.empty_account_list));
         }
-        mIP2IPAdapter.replaceAll(mCallbacks.getService().getIP2IPAccount());
+        mIP2IPAdapter.replaceAll(service.getIP2IPAccount());
         Log.i(TAG, "refreshAccountList DONE");
         mAccountsAdapter.notifyDataSetChanged();
         mIP2IPAdapter.notifyDataSetChanged();
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/AdvancedAccountFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/AdvancedAccountFragment.java
index 71e7da4..a25e6f1 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/AdvancedAccountFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/AdvancedAccountFragment.java
@@ -44,6 +44,7 @@
 import android.preference.Preference;
 import android.preference.Preference.OnPreferenceChangeListener;
 import android.preference.PreferenceFragment;
+import android.preference.SwitchPreference;
 import android.util.Log;
 import cx.ring.model.account.AccountDetail;
 import cx.ring.model.account.AccountDetailAdvanced;
@@ -113,7 +114,7 @@
                 if (!p.isTwoState) {
                     pref.setSummary(p.mValue);
                 } else if (pref.getKey().contentEquals(AccountDetailAdvanced.CONFIG_STUN_ENABLE)) {
-                    ((CheckBoxPreference) pref).setChecked(p.mValue.contentEquals("true"));
+                    ((SwitchPreference) pref).setChecked(p.mValue.contentEquals("true"));
                     findPreference(AccountDetailAdvanced.CONFIG_STUN_SERVER).setEnabled(p.mValue.contentEquals("true"));
                 } else if (pref.getKey().contentEquals("Account.publishedSameAsLocal")) {
                     ((CheckBoxPreference) pref).setChecked(p.mValue.contentEquals("true"));
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/AudioManagementFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/AudioManagementFragment.java
index d41cfe4..da44a8e 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/AudioManagementFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/AudioManagementFragment.java
@@ -49,10 +49,9 @@
 import android.content.Context;
 import android.os.Bundle;
 import android.os.RemoteException;
-import android.preference.CheckBoxPreference;
 import android.preference.Preference;
-import android.preference.Preference.OnPreferenceChangeListener;
 import android.preference.PreferenceFragment;
+import android.preference.SwitchPreference;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -67,7 +66,8 @@
 import android.widget.ListView;
 import android.widget.TextView;
 
-public class AudioManagementFragment extends PreferenceFragment {
+public class AudioManagementFragment extends PreferenceFragment
+{
     static final String TAG = AudioManagementFragment.class.getSimpleName();
 
     protected Callbacks mCallbacks = sDummyCallbacks;
@@ -235,7 +235,6 @@
             totalHeight += firstHeight;
         }
 
-        totalHeight += getView().findViewById(R.id.list_header_title).getMeasuredHeight();
         LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) llMain.getLayoutParams();
         params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount()));
         llMain.setLayoutParams(params);
@@ -243,23 +242,22 @@
     }
 
     @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
+    public void onCreate(Bundle bundle) {
+        super.onCreate(bundle);
         addPreferencesFromResource(R.xml.account_audio_prefs);
         listAdapter = new CodecAdapter(getActivity());
         listAdapter.setDataset(codecs);
 
         setPreferenceDetails(mCallbacks.getAccount().getAdvancedDetails());
         findPreference(AccountDetailAdvanced.CONFIG_RINGTONE_PATH).setEnabled(
-                ((CheckBoxPreference) findPreference(AccountDetailAdvanced.CONFIG_RINGTONE_ENABLED)).isChecked());
+                ((SwitchPreference) findPreference(AccountDetailAdvanced.CONFIG_RINGTONE_ENABLED)).isChecked());
         addPreferenceListener(mCallbacks.getAccount().getAdvancedDetails(), changeAudioPreferenceListener);
     }
 
     Preference.OnPreferenceChangeListener changeAudioPreferenceListener = new Preference.OnPreferenceChangeListener() {
         @Override
         public boolean onPreferenceChange(Preference preference, Object newValue) {
-            if (preference instanceof CheckBoxPreference) {
+            if (preference instanceof SwitchPreference) {
                 if (preference.getKey().contentEquals(AccountDetailAdvanced.CONFIG_RINGTONE_ENABLED))
                     getPreferenceScreen().findPreference(AccountDetailAdvanced.CONFIG_RINGTONE_PATH).setEnabled((Boolean) newValue);
                 mCallbacks.getAccount().getAdvancedDetails().setDetailString(preference.getKey(), newValue.toString());
@@ -296,7 +294,7 @@
                     }
 
                 } else {
-                    ((CheckBoxPreference) pref).setChecked(p.mValue.contentEquals("true"));
+                    ((SwitchPreference) pref).setChecked(p.mValue.contentEquals("true"));
                 }
 
             } else {
@@ -305,7 +303,7 @@
         }
     }
 
-    private void addPreferenceListener(AccountDetail details, OnPreferenceChangeListener listener) {
+    private void addPreferenceListener(AccountDetail details, Preference.OnPreferenceChangeListener listener) {
         for (AccountDetail.PreferenceEntry p : details.getDetailValues()) {
             Log.i(TAG, "addPreferenceListener: pref " + p.mKey + p.mValue);
             Preference pref = findPreference(p.mKey);
@@ -377,14 +375,16 @@
                 entryView = (CodecView) rowView.getTag();
             }
 
-            if (items.get(pos).isSpeex())
+            Codec codec = items.get(pos);
+
+            if (codec.isSpeex())
                 entryView.samplerate.setVisibility(View.VISIBLE);
             else
                 entryView.samplerate.setVisibility(View.GONE);
 
-            entryView.name.setText(items.get(pos).getName());
-            entryView.samplerate.setText(items.get(pos).getSampleRate());
-            entryView.enabled.setChecked(items.get(pos).isEnabled());
+            entryView.name.setText(codec.getName());
+            entryView.samplerate.setText(codec.getSampleRate());
+            entryView.enabled.setChecked(codec.isEnabled());
 
             return rowView;
 
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 f9473ad..9c7e2fe 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,33 +1,37 @@
 <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/pager_sliding_strip"
+        android:id="@+id/sliding_tabs"
         android:layout_width="match_parent"
-        android:layout_height="?android:attr/actionBarSize"
-        android:layout_alignParentTop="true"
-        android:textColor="@color/white"
-        android:background="@color/color_primary_light_shadow"
-        app:pstsIndicatorColor="@color/color_primary_light"
+        android:layout_height="48dp"
+        android:background="@color/color_primary_light"
+        android:elevation="4dp"
+        android:textColor="@color/text_color_primary_dark"
+        app:pstsUnderlineHeight="0dp"
         app:pstsShouldExpand="true"
-        app:pstsUnderlineColor="@color/color_primary_light"
-        />
+        app:paddingStart="20dp"
+        app:pstsIndicatorHeight="2dp"
+        app:pstsIndicatorColor="@android:color/white"
+        app:pstsDividerColor="@android:color/transparent"/>
 
     <android.support.v4.view.ViewPager
         android:id="@+id/pager"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:layout_below="@+id/pager_sliding_strip" />
+        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_height="match_parent"
+        android:layout_alignTop="@+id/pager">
     </FrameLayout>
 
 </RelativeLayout>
\ 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 ebd1421..3de8015 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
@@ -5,56 +5,58 @@
     android:layout_height="match_parent"
     android:orientation="vertical">
 
-        <TextView
+    <TextView
+        style="@style/Subheader"
+        android:layout_width="match_parent"
+        android:layout_height="48dp"
+        android:gravity="center_vertical"
+        android:paddingStart="72dp"
+        android:paddingEnd="72dp"
+        android:text="@string/normal_accounts_titles" />
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:minHeight="72dp">
+
+        <cx.ring.views.dragsortlv.DragSortListView
+            android:id="@+id/accounts_list"
             android:layout_width="match_parent"
-            android:layout_height="48dp"
-            android:paddingLeft="72dp"
-            android:text="Comptes"
-            style="@style/Subheader"
-            android:gravity="center_vertical" />
+            android:layout_height="wrap_content"
+            android:background="@color/white"
+            android:choiceMode="multipleChoice"
+            android:dividerHeight="1px"
+            android:elevation="2dp"
+            android:visibility="visible"
+            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/action_blue"
+            dslv:remove_enabled="false"
+            dslv:slide_shuffle_speed="0.3" />
 
-       <RelativeLayout
-           android:layout_width="match_parent"
-           android:layout_height="wrap_content"
-           android:minHeight="72dp">
+        <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:textColor="@color/text_color_secondary"
+            android:visibility="gone" />
 
-           <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="visible"
-               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/action_blue"
-               dslv:remove_enabled="false"
-               dslv:slide_shuffle_speed="0.3" />
-
-           <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:textColor="@color/text_color_secondary"
-               android:visibility="gone">
-           </TextView>
-
-       </RelativeLayout>
+    </RelativeLayout>
 
     <ListView
         android:id="@+id/ip2ip"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:background="@color/white" />
+        android:background="@color/white"
+        android:elevation="2dp" />
 
 </LinearLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/layout/frag_audio_mgmt.xml b/ring-android/app/src/main/res/layout/frag_audio_mgmt.xml
index b89a291..4247b5c 100644
--- a/ring-android/app/src/main/res/layout/frag_audio_mgmt.xml
+++ b/ring-android/app/src/main/res/layout/frag_audio_mgmt.xml
@@ -5,7 +5,7 @@
 
     <LinearLayout
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
+        android:layout_height="wrap_content"
         android:layout_marginLeft="10dp"
         android:layout_marginRight="10dp"
         android:orientation="vertical" >
@@ -13,43 +13,28 @@
         <LinearLayout
             android:id="@+id/lv_holder_prefs"
             android:layout_width="match_parent"
-            android:layout_height="match_parent"
+            android:layout_height="wrap_content"
             android:orientation="vertical"
-            android:weightSum="1" >
-
+            android:weightSum="1">
             <ListView
                 android:id="@android:id/list"
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_margin="5dp" >
+                android:layout_height="wrap_content">
             </ListView>
         </LinearLayout>
 
-        <TextView
-            android:id="@+id/list_header_title"
-            style="?android:attr/listSeparatorTextViewStyle"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="10dp"
-            android:layout_marginRight="10dp"
-            android:paddingBottom="2dip"
-            android:paddingLeft="5dp"
-            android:paddingTop="2dp"
-            android:text="Codecs" />
-
         <LinearLayout
             android:id="@+id/lv_holder"
             android:layout_width="match_parent"
-            android:layout_height="match_parent"
+            android:layout_height="wrap_content"
             android:orientation="vertical"
-            android:weightSum="1" >
+            android:weightSum="1">
 
             <cx.ring.views.dragsortlv.DragSortListView
                 xmlns:dslv="http://schemas.android.com/apk/res/cx.ring"
                 android:id="@+id/dndlistview"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_margin="5dp"
                 android:choiceMode="multipleChoice"
                 android:descendantFocusability="beforeDescendants"
                 android:dividerHeight="1px"
@@ -63,6 +48,7 @@
                 dslv:float_background_color="@color/action_blue"
                 dslv:remove_enabled="false"
                 dslv:slide_shuffle_speed="0.3" />
+
         </LinearLayout>
     </LinearLayout>
 
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 cd0bd51..8488463 100644
--- a/ring-android/app/src/main/res/layout/item_codec.xml
+++ b/ring-android/app/src/main/res/layout/item_codec.xml
@@ -12,7 +12,7 @@
             android:layout_height="wrap_content"
             android:layout_centerVertical="true"
             android:layout_alignParentLeft="true"
-            android:layout_marginLeft="10dp"
+            android:layout_marginLeft="16dp"
             android:src="@drawable/ic_reorder_black_24dp"/>
 
     <TextView
@@ -20,22 +20,24 @@
         android:layout_width="wrap_content"
         android:layout_height="?android:attr/listPreferredItemHeight"
         android:layout_toRightOf="@+id/drag_handle"
-        android:layout_marginLeft="4dp"
+        android:layout_marginLeft="32dp"
         android:gravity="center_vertical"
-        android:textSize="18sp" />
+        android:textSize="16sp"
+        android:textColor="@color/text_color_primary"
+        android:text="H.264" />
 
     <TextView
         android:id="@+id/codec_samplerate"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_alignBottom="@+id/codec_name"
-        android:layout_alignTop="@+id/codec_name"
         android:layout_centerVertical="true"
-        android:layout_marginLeft="4dp"
         android:layout_toRightOf="@+id/codec_name"
         android:gravity="center_vertical"
         android:textSize="12sp"
-        android:visibility="gone" />
+        android:text="32000"
+        android:textColor="@color/text_color_secondary"
+        android:layout_marginLeft="16dp"
+        android:layout_alignBaseline="@+id/codec_name" />
 
     <CheckBox
         android:id="@+id/codec_checked"
@@ -44,6 +46,8 @@
         android:layout_alignParentRight="true"
         android:layout_centerVertical="true"
         android:clickable="false"
-        android:focusable="false" />
+        android:focusable="false"
+        android:layout_marginLeft="16dp"
+        android:layout_marginRight="16dp" />
 
 </RelativeLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/menu/account_edition.xml b/ring-android/app/src/main/res/menu/account_edition.xml
index 5e8a7a6..0454d01 100644
--- a/ring-android/app/src/main/res/menu/account_edition.xml
+++ b/ring-android/app/src/main/res/menu/account_edition.xml
@@ -1,10 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
-<menu xmlns:android="http://schemas.android.com/apk/res/android" >
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <item
         android:id="@+id/menuitem_delete"
         android:icon="@drawable/ic_delete_white_24dp"
-        android:showAsAction="ifRoom"
-        android:title="@string/ab_account_edition_1"/>
+        android:title="@string/ab_account_edition_1"
+        app:showAsAction="ifRoom"/>
 
 </menu>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/xml/account_advanced_prefs.xml b/ring-android/app/src/main/res/xml/account_advanced_prefs.xml
index c779ef4..a7ffb9e 100644
--- a/ring-android/app/src/main/res/xml/account_advanced_prefs.xml
+++ b/ring-android/app/src/main/res/xml/account_advanced_prefs.xml
@@ -1,8 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-Copyright (C) 2004-2014 Savoir-Faire Linux Inc.                     
+Copyright (C) 2004-2015 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
@@ -17,19 +18,7 @@
 You should have received a copy of the GNU General Public License   
 along with this program; if not, write to the Free Software         
  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.          
-                                                                    
-Additional permission under GNU GPL version 3 section 7:            
-                                                                    
-If you modify this program, or any covered work, by linking or      
-combining it with the OpenSSL project's OpenSSL library (or a       
-modified version of that library), containing parts covered by the  
-terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.    
-grants you additional permission to convey the resulting work.      
-Corresponding Source for a non-source form of such a combination    
-shall include the source code for the parts of OpenSSL used as well 
-as that of the covered work.
 -->
-
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res/cx.ring" >
 
@@ -79,7 +68,7 @@
             android:id="@+id/account_stun_category"
             android:title="@string/account_published_address_label" >
 
-        <CheckBoxPreference
+        <SwitchPreference
             android:id="@+id/account_stun_enable"
             android:key="STUN.enable"
             android:persistent="false"
diff --git a/ring-android/app/src/main/res/xml/account_audio_prefs.xml b/ring-android/app/src/main/res/xml/account_audio_prefs.xml
index 6f9e62f..313dac6 100644
--- a/ring-android/app/src/main/res/xml/account_audio_prefs.xml
+++ b/ring-android/app/src/main/res/xml/account_audio_prefs.xml
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2004-2014 Savoir-Faire Linux Inc.                     
+<?xml version="1.0" encoding="utf-8"?><!--
+Copyright (C) 2004-2015 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   
@@ -15,25 +15,14 @@
 GNU General Public License for more details.                        
                                                                     
 You should have received a copy of the GNU General Public License   
-along with this program; if not, write to the Free Software         
+along with this program; if not, write to the Free Software
  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.          
-                                                                    
-Additional permission under GNU GPL version 3 section 7:            
-                                                                    
-If you modify this program, or any covered work, by linking or      
-combining it with the OpenSSL project's OpenSSL library (or a       
-modified version of that library), containing parts covered by the  
-terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.    
-grants you additional permission to convey the resulting work.      
-Corresponding Source for a non-source form of such a combination    
-shall include the source code for the parts of OpenSSL used as well 
-as that of the covered work.
 -->
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
 
     <PreferenceCategory
         android:id="@+id/audio_dtmf_category"
-        android:title="@string/account_dtmf_label" >
+        android:title="@string/account_dtmf_label">
         <ListPreference
             android:id="@+id/account_dtmf_type"
             android:entries="@array/dtmf_types_entries"
@@ -44,8 +33,8 @@
     </PreferenceCategory>
     <PreferenceCategory
         android:id="@+id/audio_ringtone_category"
-        android:title="@string/account_ringtone_label" >
-        <CheckBoxPreference
+        android:title="@string/account_ringtone_label">
+        <SwitchPreference
             android:id="@+id/audio_ringtone"
             android:key="Account.ringtoneEnabled"
             android:persistent="false"
@@ -53,10 +42,15 @@
 
         <Preference
             android:id="@+id/audio_ringtone_path"
-            android:key="Account.ringtonePath"
             android:enabled="false"
+            android:key="Account.ringtonePath"
             android:persistent="false"
             android:title="@string/account_ringtone_path_label" />
     </PreferenceCategory>
 
+    <PreferenceCategory
+        android:id="@+id/audio_codecs"
+        android:title="Codecs">
+    </PreferenceCategory>
+
 </PreferenceScreen>
\ No newline at end of file
