codec preferences: add missing constructor, fix margins

* fix crash due to missing constructor
* add proper margins
* fix warnings

Change-Id: I11ba072a494822d133521abc57e708236a3a57b7
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/CodecPreference.java b/ring-android/app/src/main/java/cx/ring/fragments/CodecPreference.java
index 54929b8..f3d84ad 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/CodecPreference.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/CodecPreference.java
@@ -1,5 +1,5 @@
 /*
- *  Copyright (C) 2015-2017 Savoir-faire Linux Inc.
+ *  Copyright (C) 2015-2018 Savoir-faire Linux Inc.
  *
  *  Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
  *  Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
@@ -43,13 +43,19 @@
 class CodecPreference extends Preference {
     private static final String TAG = CodecPreference.class.getSimpleName();
 
-    private CodecAdapter listAdapter;
+    private final CodecAdapter listAdapter;
+
+    public CodecPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        setWidgetLayoutResource(R.layout.frag_audio_mgmt);
+        listAdapter = new CodecAdapter(getContext());
+
+    }
 
     public CodecPreference(Context context, AttributeSet attrs, int defStyleAttr) {
         super(context, attrs, defStyleAttr);
         setWidgetLayoutResource(R.layout.frag_audio_mgmt);
-        listAdapter = new CodecAdapter(context);
-        Log.w(TAG, "CodecPreference create");
+        listAdapter = new CodecAdapter(getContext());
     }
 
     private void setListViewHeight(ListView listView, LinearLayout llMain) {
@@ -112,11 +118,10 @@
 
     private static class CodecAdapter extends BaseAdapter {
 
-        ArrayList<Codec> items;
+        private final ArrayList<Codec> items = new ArrayList<>();
         private Context mContext;
 
         CodecAdapter(Context context) {
-            items = new ArrayList<>();
             mContext = context;
         }
 
@@ -198,7 +203,7 @@
         }
 
         void setDataset(ArrayList<Codec> codecs) {
-            items = new ArrayList<>(codecs.size());
+            items.clear();
             items.addAll(codecs);
         }
 
diff --git a/ring-android/app/src/main/java/cx/ring/navigation/RingNavigationFragment.java b/ring-android/app/src/main/java/cx/ring/navigation/RingNavigationFragment.java
index 9a01bdd..8b69e4c 100644
--- a/ring-android/app/src/main/java/cx/ring/navigation/RingNavigationFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/navigation/RingNavigationFragment.java
@@ -238,7 +238,7 @@
     public void updateUserView(VCard vcard) {
         Log.d(TAG, "updateUserView");
 
-        if (getActivity() == null) {
+        if (getActivity() == null || vcard == null) {
             return;
         }
 
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 af7fcba..b994072 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
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
@@ -12,6 +13,7 @@
         android:choiceMode="multipleChoice"
         android:descendantFocusability="beforeDescendants"
         android:dividerHeight="1px"
-        android:padding="5dp" />
+        android:padding="5dp"
+        tools:listitem="item_codec" />
 
 </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 46c6670..a929405 100644
--- a/ring-android/app/src/main/res/layout/item_codec.xml
+++ b/ring-android/app/src/main/res/layout/item_codec.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?><!--
-Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+Copyright (C) 2004-2018 Savoir-faire Linux Inc.
 
 Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
 
@@ -28,22 +28,25 @@
         android:id="@+id/codec_name"
         android:layout_width="wrap_content"
         android:layout_height="?android:attr/listPreferredItemHeight"
+        android:layout_marginEnd="16dp"
+        android:layout_marginStart="16dp"
         android:gravity="center_vertical"
-        android:text="H.264"
         android:textColor="@color/text_color_primary"
-        android:textSize="16sp" />
+        android:textSize="16sp"
+        tools:text="H.264" />
 
     <TextView
         android:id="@+id/codec_samplerate"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_alignBaseline="@+id/codec_name"
+        android:layout_alignBaseline="@id/codec_name"
         android:layout_centerVertical="true"
         android:layout_toEndOf="@id/codec_name"
+        android:layout_toStartOf="@id/codec_checked"
         android:gravity="center_vertical"
-        android:text="32000"
         android:textColor="@color/text_color_secondary"
-        android:textSize="12sp" />
+        android:textSize="12sp"
+        tools:text="32000" />
 
     <CheckBox
         android:id="@+id/codec_checked"