From a416c743671aec74109ce3ad24e6f438d0da21f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Wed, 21 Oct 2015 17:12:39 -0400
Subject: [PATCH] ui: refresh account creation

Issue: #78218
Change-Id: Ib99d63534ed679af192300b5e949ccedaa923a1d
---
 ring-android/app/app.iml                      |   4 +-
 ring-android/app/build.gradle                 |   1 +
 ring-android/app/src/main/AndroidManifest.xml |   2 +-
 .../java/cx/ring/client/AccountWizard.java    |  37 ++-
 .../java/cx/ring/client/HomeActivity.java     |  26 +-
 .../fragments/AccountCreationFragment.java    | 113 ++++-----
 .../java/cx/ring/fragments/MenuFragment.java  |  76 +++---
 .../ic_dialer_sip_black_48dp.png              | Bin 0 -> 600 bytes
 .../main/res/drawable-hdpi/ring_logo_48dp.png | Bin 0 -> 5159 bytes
 .../ic_dialer_sip_black_48dp.png              | Bin 0 -> 422 bytes
 .../main/res/drawable-mdpi/ring_logo_48dp.png | Bin 0 -> 3354 bytes
 .../ic_dialer_sip_black_48dp.png              | Bin 0 -> 772 bytes
 .../res/drawable-xhdpi/ring_logo_48dp.png     | Bin 0 -> 7077 bytes
 .../ic_dialer_sip_black_48dp.png              | Bin 0 -> 1114 bytes
 .../res/drawable-xxhdpi/ring_logo_48dp.png    | Bin 0 -> 10811 bytes
 .../ic_dialer_sip_black_48dp.png              | Bin 0 -> 1503 bytes
 .../res/drawable-xxxhdpi/ring_logo_48dp.png   | Bin 0 -> 14921 bytes
 .../main/res/layout/frag_account_creation.xml | 233 +++++++++++++-----
 .../src/main/res/layout/frag_menu_header.xml  |  38 ++-
 .../app/src/main/res/values/strings.xml       |  12 +-
 .../src/main/res/values/strings_account.xml   |  16 ++
 21 files changed, 343 insertions(+), 215 deletions(-)
 create mode 100644 ring-android/app/src/main/res/drawable-hdpi/ic_dialer_sip_black_48dp.png
 create mode 100644 ring-android/app/src/main/res/drawable-hdpi/ring_logo_48dp.png
 create mode 100644 ring-android/app/src/main/res/drawable-mdpi/ic_dialer_sip_black_48dp.png
 create mode 100644 ring-android/app/src/main/res/drawable-mdpi/ring_logo_48dp.png
 create mode 100644 ring-android/app/src/main/res/drawable-xhdpi/ic_dialer_sip_black_48dp.png
 create mode 100644 ring-android/app/src/main/res/drawable-xhdpi/ring_logo_48dp.png
 create mode 100644 ring-android/app/src/main/res/drawable-xxhdpi/ic_dialer_sip_black_48dp.png
 create mode 100644 ring-android/app/src/main/res/drawable-xxhdpi/ring_logo_48dp.png
 create mode 100644 ring-android/app/src/main/res/drawable-xxxhdpi/ic_dialer_sip_black_48dp.png
 create mode 100644 ring-android/app/src/main/res/drawable-xxxhdpi/ring_logo_48dp.png

diff --git a/ring-android/app/app.iml b/ring-android/app/app.iml
index 3502718a0..279e649c4 100644
--- a/ring-android/app/app.iml
+++ b/ring-android/app/app.iml
@@ -70,6 +70,7 @@
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.1/jars" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/cardview-v7/23.0.1/jars" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/design/23.0.1/jars" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v13/23.0.1/jars" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/23.0.1/jars" />
@@ -92,12 +93,13 @@
     </content>
     <orderEntry type="jdk" jdkName="Android API 23 Platform" jdkType="Android SDK" />
     <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" exported="" name="ormlite-android-4.48" level="project" />
     <orderEntry type="library" exported="" name="libphonenumber-7.0.11" level="project" />
+    <orderEntry type="library" exported="" name="ormlite-android-4.48" level="project" />
     <orderEntry type="library" exported="" name="pagerslidingtabstrip-1.0.1" level="project" />
     <orderEntry type="library" exported="" name="ormlite-core-4.48" level="project" />
     <orderEntry type="library" exported="" name="support-v13-23.0.1" level="project" />
     <orderEntry type="library" exported="" name="stickylistheaders-2.7.0" level="project" />
+    <orderEntry type="library" exported="" name="cardview-v7-23.0.1" level="project" />
     <orderEntry type="library" exported="" name="support-v4-23.0.1" level="project" />
     <orderEntry type="library" exported="" name="robotium-solo-5.4.1" level="project" />
     <orderEntry type="library" exported="" name="design-23.0.1" level="project" />
diff --git a/ring-android/app/build.gradle b/ring-android/app/build.gradle
index 2ca1c1988..cf33e4ae2 100644
--- a/ring-android/app/build.gradle
+++ b/ring-android/app/build.gradle
@@ -6,6 +6,7 @@ dependencies {
     compile 'com.j256.ormlite:ormlite-android:4.48'
     compile 'com.android.support:support-v13:23.0.+'
     compile 'com.android.support:design:23.0.+'
+    compile 'com.android.support:cardview-v7:23.0.+'
     compile 'com.jayway.android.robotium:robotium-solo:5.4.1'
     compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
     compile 'com.googlecode.libphonenumber:libphonenumber:7.0.11'
diff --git a/ring-android/app/src/main/AndroidManifest.xml b/ring-android/app/src/main/AndroidManifest.xml
index 999fbc01c..4ba66ebb1 100644
--- a/ring-android/app/src/main/AndroidManifest.xml
+++ b/ring-android/app/src/main/AndroidManifest.xml
@@ -105,7 +105,7 @@ as that of the covered work.
         <activity
             android:name=".client.AccountWizard"
             android:screenOrientation="portrait"
-            android:theme="@style/AppThemeWithoutOverlay" >
+            android:theme="@style/AppThemeWithoutOverlayCompat" >
             <meta-data
                 android:name="android.support.PARENT_ACTIVITY"
                 android:value="cx.ring.client.AccountEditionActivity" />
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 43cd2ba70..931f47b05 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
@@ -1,7 +1,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: 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
@@ -16,22 +17,10 @@
  *  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;
 
-import android.app.Activity;
 import android.app.Fragment;
 import android.app.FragmentManager;
 import android.content.ComponentName;
@@ -42,27 +31,28 @@ import android.os.Bundle;
 import android.os.IBinder;
 import android.support.v13.app.FragmentStatePagerAdapter;
 import android.support.v4.view.ViewPager;
+import android.support.v7.app.AppCompatActivity;
 import android.util.Log;
 import android.view.MenuItem;
 import cx.ring.R;
 import cx.ring.fragments.AccountCreationFragment;
 import cx.ring.service.ISipService;
-import cx.ring.service.SipService;
+import cx.ring.service.LocalService;
 
 import java.util.ArrayList;
 import java.util.Locale;
 
-public class AccountWizard extends Activity implements AccountCreationFragment.Callbacks {
+public class AccountWizard extends AppCompatActivity implements LocalService.Callbacks {
     static final String TAG = "AccountWizard";
     private boolean mBound = false;
-    private ISipService service;
+    private LocalService service;
     ViewPager mViewPager;
 
     private ServiceConnection mConnection = new ServiceConnection() {
 
         @Override
         public void onServiceConnected(ComponentName className, IBinder binder) {
-            service = ISipService.Stub.asInterface(binder);
+            service = ((LocalService.LocalBinder) binder).getService();
             mBound = true;
         }
 
@@ -79,14 +69,14 @@ public class AccountWizard extends Activity implements AccountCreationFragment.C
         setContentView(R.layout.activity_wizard);
         mViewPager = (ViewPager) findViewById(R.id.pager);
 
-        getActionBar().setDisplayHomeAsUpEnabled(true);
-        getActionBar().setHomeButtonEnabled(true);
+        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+        getSupportActionBar().setHomeButtonEnabled(true);
         SectionsPagerAdapter mSectionsPagerAdapter = new SectionsPagerAdapter(AccountWizard.this, getFragmentManager());
         mViewPager.setAdapter(mSectionsPagerAdapter);
 
         if (!mBound) {
             Log.i(TAG, "onCreate: Binding service...");
-            Intent intent = new Intent(this, SipService.class);
+            Intent intent = new Intent(this, LocalService.class);
             bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
         }
 
@@ -168,7 +158,12 @@ public class AccountWizard extends Activity implements AccountCreationFragment.C
     }
 
     @Override
-    public ISipService getService() {
+    public ISipService getRemoteService() {
+        return service.getRemoteService();
+    }
+
+    @Override
+    public LocalService getService() {
         return service;
     }
 
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 fcbabd381..ffd2c5c46 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
@@ -59,10 +59,12 @@ import android.app.Fragment;
 import android.app.FragmentManager;
 
 import android.app.FragmentTransaction;
+import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.content.IntentFilter;
 import android.content.ServiceConnection;
 import android.content.pm.PackageManager;
 import android.content.res.AssetManager;
@@ -96,6 +98,7 @@ public class HomeActivity extends AppCompatActivity implements LocalService.Call
 
     private LocalService service;
     private boolean mBound = false;
+    private boolean mNoAccountOpened = false;
 
     private NavigationView fMenu;
     private MenuFragment fMenuHead = null;
@@ -136,6 +139,12 @@ public class HomeActivity extends AppCompatActivity implements LocalService.Call
         setContentView(R.layout.activity_home);
 
         // Bind to LocalService
+
+        IntentFilter intentFilter = new IntentFilter();
+        intentFilter.addAction(LocalService.ACTION_CONF_UPDATE);
+        intentFilter.addAction(LocalService.ACTION_ACCOUNT_UPDATE);
+        registerReceiver(receiver, intentFilter);
+
         if (!mBound && LocalService.checkContactPermissions(this)) {
             Log.i(TAG, "onStart: Binding service...");
             /*Intent intent = new Intent(this, SipService.class);
@@ -177,6 +186,21 @@ public class HomeActivity extends AppCompatActivity implements LocalService.Call
 
     }
 
+    final BroadcastReceiver receiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            Log.w(TAG, "onReceive " + intent.getAction());
+            switch (intent.getAction()) {
+                case LocalService.ACTION_ACCOUNT_UPDATE:
+                    if (!mNoAccountOpened && service.getAccounts().isEmpty()) {
+                        mNoAccountOpened = true;
+                        startActivityForResult(new Intent().setClass(HomeActivity.this, AccountWizard.class), AccountsManagementFragment.ACCOUNT_CREATE_REQUEST);
+                    }
+                    break;
+            }
+        }
+    };
+
     @Override
     protected void onPostCreate(Bundle savedInstanceState) {
         super.onPostCreate(savedInstanceState);
@@ -346,6 +370,7 @@ public class HomeActivity extends AppCompatActivity implements LocalService.Call
     @Override
     protected void onDestroy() {
         super.onDestroy();
+        unregisterReceiver(receiver);
         if (mBound) {
             unbindService(mConnection);
             mBound = false;
@@ -378,7 +403,6 @@ public class HomeActivity extends AppCompatActivity implements LocalService.Call
             LocalService.LocalBinder binder = (LocalService.LocalBinder) s;
             service = binder.getService();
 
-            //service = ISipService.Stub.asInterface(binder);
             fContent = new CallListFragment();
             if (fMenuHead != null)
                 fMenu.removeHeaderView(fMenuHead.getView());
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 14c5d09f7..24196665f 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
@@ -1,3 +1,23 @@
+/*
+ *  Copyright (C) 2004-2015 Savoir-Faire Linux Inc.
+ *
+ *  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
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  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
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
 package cx.ring.fragments;
 
 import java.util.HashMap;
@@ -14,6 +34,7 @@ import android.content.Intent;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.RemoteException;
+import android.support.v7.app.AppCompatActivity;
 import android.text.TextUtils;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
@@ -26,6 +47,7 @@ import android.widget.TextView;
 import android.widget.TextView.OnEditorActionListener;
 import android.widget.Toast;
 
+import cx.ring.service.LocalService;
 import cx.ring.views.PasswordEditText;
 
 public class AccountCreationFragment extends Fragment {
@@ -43,24 +65,8 @@ public class AccountCreationFragment extends Fragment {
     private EditText mHostnameView;
     private EditText mUsernameView;
     private PasswordEditText mPasswordView;
-    private Spinner mAccountTypeView;
-    private ViewGroup mFieldsSip;
-    private ViewGroup mFieldsRing;
-
-    private Callbacks mCallbacks = sDummyCallbacks;
-    private static Callbacks sDummyCallbacks = new Callbacks() {
-
-        @Override
-        public ISipService getService() {
-            return null;
-        }
-    };
-
-    public interface Callbacks {
 
-        public ISipService getService();
-
-    }
+    private LocalService.Callbacks mCallbacks = LocalService.DUMMY_CALLBACKS;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -71,62 +77,39 @@ public class AccountCreationFragment extends Fragment {
     public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
         View inflatedView = inflater.inflate(R.layout.frag_account_creation, parent, false);
 
-        mFieldsSip = (ViewGroup) inflatedView.findViewById(R.id.sip_fields);
-        mFieldsRing = (ViewGroup) inflatedView.findViewById(R.id.ring_fields);
-
         mAliasView = (EditText) inflatedView.findViewById(R.id.alias);
         mHostnameView = (EditText) inflatedView.findViewById(R.id.hostname);
         mUsernameView = (EditText) inflatedView.findViewById(R.id.username);
         mPasswordView = (PasswordEditText) inflatedView.findViewById(R.id.password);
-        mAccountTypeView = (Spinner) inflatedView.findViewById(R.id.account_type);
-        mAccountTypeView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
-            @Override
-            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
-                if (parent.getSelectedItem().toString().equals("RING")) {
-                    mFieldsSip.setVisibility(View.GONE);
-                    mFieldsRing.setVisibility(View.VISIBLE);
-                } else {
-                    mFieldsSip.setVisibility(View.VISIBLE);
-                    mFieldsRing.setVisibility(View.GONE);
-                }
-            }
-            public void onNothingSelected(AdapterView<?> parent) {
-            }
-        });
 
         mPasswordView.getEdit_text().setOnEditorActionListener(new OnEditorActionListener() {
-
             @Override
             public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
-                mAccountType = mAccountTypeView.getSelectedItem().toString();
-                // if(actionId == EditorInfo.IME_ACTION_GO || event.getAction() == KeyEvent.KEYCODE_ENTER){
-                if (mAccountType.equals("RING")) {
-                    initCreation();
-                } else {
-                    mAlias = mAliasView.getText().toString();
-                    mHostname = mHostnameView.getText().toString();
-                    mUsername = mUsernameView.getText().toString();
-                    mPassword = mPasswordView.getText().toString();
-                    attemptCreation();
-                }
-                // }
-
+                mAccountType = "SIP";
+                mAlias = mAliasView.getText().toString();
+                mHostname = mHostnameView.getText().toString();
+                mUsername = mUsernameView.getText().toString();
+                mPassword = mPasswordView.getText().toString();
+                attemptCreation();
                 return true;
             }
         });
-        inflatedView.findViewById(R.id.create_button).setOnClickListener(new View.OnClickListener() {
+        inflatedView.findViewById(R.id.create_ring_account).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                mAccountType = mAccountTypeView.getSelectedItem().toString();
-                if (mAccountType.equals("RING")) {
-                    initCreation();
-                } else {
-                    mAlias = mAliasView.getText().toString();
-                    mHostname = mHostnameView.getText().toString();
-                    mUsername = mUsernameView.getText().toString();
-                    mPassword = mPasswordView.getText().toString();
-                    attemptCreation();
-                }
+                mAccountType = "RING";
+                initCreation();
+            }
+        });
+        inflatedView.findViewById(R.id.create_sip_button).setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                mAccountType = "SIP";
+                mAlias = mAliasView.getText().toString();
+                mHostname = mHostnameView.getText().toString();
+                mUsername = mUsernameView.getText().toString();
+                mPassword = mPasswordView.getText().toString();
+                attemptCreation();
             }
         });
 
@@ -141,17 +124,17 @@ public class AccountCreationFragment extends Fragment {
     @Override
     public void onStart() {
         super.onStart();
-
+        ((AppCompatActivity)getActivity()).getSupportActionBar().setTitle(R.string.ab_account_creation);
     }
 
     @Override
     public void onAttach(Activity activity) {
         super.onAttach(activity);
-        if (!(activity instanceof Callbacks)) {
+        if (!(activity instanceof LocalService.Callbacks)) {
             throw new IllegalStateException("Activity must implement fragment's callbacks.");
         }
 
-        mCallbacks = (Callbacks) activity;
+        mCallbacks = (LocalService.Callbacks) activity;
     }
 
     /**
@@ -212,7 +195,7 @@ public class AccountCreationFragment extends Fragment {
 
         try {
 
-            HashMap<String, String> accountDetails = (HashMap<String, String>) mCallbacks.getService().getAccountTemplate(mAccountType);
+            HashMap<String, String> accountDetails = (HashMap<String, String>) mCallbacks.getRemoteService().getAccountTemplate(mAccountType);
             accountDetails.put(AccountDetailBasic.CONFIG_ACCOUNT_TYPE, mAccountType);
             if (mAccountType.equals("RING")) {
                 accountDetails.put(AccountDetailBasic.CONFIG_ACCOUNT_ALIAS, "Ring");
@@ -251,7 +234,7 @@ public class AccountCreationFragment extends Fragment {
             @Override
             protected String doInBackground(HashMap<String, String>... accs) {
                 try {
-                    return mCallbacks.getService().addAccount(accs[0]);
+                    return mCallbacks.getRemoteService().addAccount(accs[0]);
                 } catch (RemoteException e) {
                     e.printStackTrace();
                 }
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/MenuFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/MenuFragment.java
index bec95da81..808aa2cc2 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/MenuFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/MenuFragment.java
@@ -32,13 +32,10 @@ package cx.ring.fragments;
 
 import android.app.Activity;
 import android.app.Fragment;
-import android.app.LoaderManager;
-import android.content.AsyncTaskLoader;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.Loader;
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.util.Log;
@@ -50,25 +47,24 @@ import android.widget.AdapterView.OnItemSelectedListener;
 import cx.ring.R;
 import cx.ring.adapters.AccountSelectionAdapter;
 import cx.ring.adapters.ContactPictureTask;
-import cx.ring.client.HomeActivity;
-import cx.ring.loaders.AccountsLoader;
-import cx.ring.loaders.LoaderConstants;
+import cx.ring.client.AccountWizard;
 import cx.ring.model.account.Account;
 import cx.ring.model.CallContact;
-import cx.ring.service.ConfigurationManagerCallback;
-import cx.ring.service.ISipService;
 import cx.ring.service.LocalService;
 
 import java.util.ArrayList;
+import java.util.List;
 
-public class MenuFragment extends Fragment /*extends AccountWrapperFragment implements LoaderManager.LoaderCallbacks<Bundle>*/ {
+public class MenuFragment extends Fragment {
 
     @SuppressWarnings("unused")
     private static final String TAG = MenuFragment.class.getSimpleName();
 
     AccountSelectionAdapter mAccountAdapter;
     private Spinner spinnerAccounts;
-    private ImageButton share_btn;
+    private ImageButton shareBtn;
+    private Button newAccountBtn;
+
     private LocalService.Callbacks mCallbacks = LocalService.DUMMY_CALLBACKS;
 
     public Account retrieveAccountById(String accountID) {
@@ -137,8 +133,17 @@ public class MenuFragment extends Fragment /*extends AccountWrapperFragment impl
     public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
         View inflatedView = inflater.inflate(R.layout.frag_menu_header, parent, false);
 
-        share_btn = (ImageButton) inflatedView.findViewById(R.id.share_btn);
-        share_btn.setOnClickListener(new View.OnClickListener() {
+        newAccountBtn = (Button) inflatedView.findViewById(R.id.addaccount_btn);
+        newAccountBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent().setClass(getActivity(), AccountWizard.class);
+                startActivityForResult(intent, AccountsManagementFragment.ACCOUNT_CREATE_REQUEST);
+            }
+        });
+
+        shareBtn = (ImageButton) inflatedView.findViewById(R.id.share_btn);
+        shareBtn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 Account acc = mAccountAdapter.getSelectedAccount();
@@ -207,43 +212,18 @@ public class MenuFragment extends Fragment /*extends AccountWrapperFragment impl
         /*if (getActivity() != null)
             getLoaderManager().restartLoader(LoaderConstants.ACCOUNTS_LOADER, null, this);*/
         if (mAccountAdapter != null && mCallbacks.getService() != null) {
-            mAccountAdapter.replaceAll(mCallbacks.getService().getAccounts());
+            List<Account> accs = mCallbacks.getService().getAccounts();
+            if (accs.isEmpty()) {
+                newAccountBtn.setVisibility(View.VISIBLE);
+                shareBtn.setVisibility(View.GONE);
+                spinnerAccounts.setVisibility(View.GONE);
+            } else {
+                newAccountBtn.setVisibility(View.GONE);
+                shareBtn.setVisibility(View.VISIBLE);
+                spinnerAccounts.setVisibility(View.VISIBLE);
+                mAccountAdapter.replaceAll(accs);
+            }
         }
     }
 
-    /*
-    @Override
-    public void accountsChanged() {
-        updateAllAccounts();
-
-    }
-
-    @Override
-    public void accountStateChanged(String accoundID, String State, int code) {
-        Log.w(TAG, "accountStateChanged " + accoundID + " " + State);
-
-        if (mAccountAdapter != null)
-            mAccountAdapter.updateAccount(accoundID, State, code);
-    }
-
-    @Override
-    public AsyncTaskLoader<Bundle> onCreateLoader(int arg0, Bundle arg1) {
-        AccountsLoader l = new AccountsLoader(getActivity(), mCallbacks.getRemoteService());
-        l.forceLoad();
-        return l;
-    }
-
-    @Override
-    public void onLoadFinished(Loader<Bundle> loader, Bundle data) {
-        mAccountAdapter.removeAll();
-        ArrayList<Account> accounts = data.getParcelableArrayList(AccountsLoader.ACCOUNTS);
-        accounts.add((Account)data.getParcelable(AccountsLoader.ACCOUNT_IP2IP));
-        mAccountAdapter.addAll(accounts);
-    }
-
-    @Override
-    public void onLoaderReset(Loader<Bundle> loader) {
-
-    }*/
-
 }
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ic_dialer_sip_black_48dp.png b/ring-android/app/src/main/res/drawable-hdpi/ic_dialer_sip_black_48dp.png
new file mode 100644
index 0000000000000000000000000000000000000000..d911ebd45fc28187891eb07bf35e1dd443f14d50
GIT binary patch
literal 600
zcmeAS@N?(olHy`uVBq!ia0y~yVDJE84i*LmhW}5h&oD4B$$PpuhEy=Vy|FhtI8fsF
z$Mx&CI=3syIz><L+O=ZA>Ma7IEZUMHEdMza#qLgR5((i7>?|u6Fb#OE{YZ_E^>vUa
zd;Ebcf%qL_Q7vXCl`WnYe6hP4Gk^1(_xaq@Pp9t?IHxGqeKe^`c8aG!y-DRUf&Kn_
zw*FaXvpB>pXq(4;Qw_(U@J(!{A{SnYOqkvj9cnLfVTY+kpo3`k1#8xl!@s1fRyCxp
zaV!@JNaEeqqVZbQl=aK?xdD#tIgach7g}^z__Lnf`jz*u^Zd|D4Z0a#tg_o!=Y}}$
zHppFmXlGaD)+_t_zRobuJQsNDH~YD>1~L)uXXh+7c~`hf(Q?C7HNAA^#@%-hMJ}8D
zKy<>ixlJEz3(qC*WyzPnv?*I)pF3Y>%Y(NI?lJvxFh96^g?wYq>!f>%vdR_gvKNdF
zv%KHr{L5+HfznTR6!$8+KVXY2@X&vuSl}wf_fpmJOIh(0oBu0?9=*|RUb3|_^U3wN
z!basB#n0z<s_YB$cxdBrXX62#V4tFChHfv_o7X9v3)6VWE-QEZzLN8nyHfosAvfO?
zzEl1+Lv`}GYW;PAB^KW&gsydToBC&V)Vj;>3%{g>O?-dv^mK{E?YliV1fI-v-m_L=
zp~D4F*39CW=7*}IC&Y=TzS^d+H`ith+sn5PH=26n&xkh3b*y5Z^Kh}QN4_qr)|u6F
zSRQXP_L}N{i*-+}<+tKFMwicgn3b;+sGiu=n{hO0W5gTvvZon#oEsj!W?*1o@O1Ta
JS?83{1OQ#a3yJ^$

literal 0
HcmV?d00001

diff --git a/ring-android/app/src/main/res/drawable-hdpi/ring_logo_48dp.png b/ring-android/app/src/main/res/drawable-hdpi/ring_logo_48dp.png
new file mode 100644
index 0000000000000000000000000000000000000000..5cebe0a4edae5c42dacf544a2ffc92d3bf8719cd
GIT binary patch
literal 5159
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
P1_lOCS3j3^P6<r_ggS&+

literal 0
HcmV?d00001

diff --git a/ring-android/app/src/main/res/drawable-mdpi/ic_dialer_sip_black_48dp.png b/ring-android/app/src/main/res/drawable-mdpi/ic_dialer_sip_black_48dp.png
new file mode 100644
index 0000000000000000000000000000000000000000..44b147019545c72f7f51b0aab1a2d0cdde31df51
GIT binary patch
literal 422
zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4i*LmhQHi~JPZtsxt=bLAr*{or`mfv1xmEb
z^KuClWo2?VU05I%t;`j5_{}pB->utR9J5Va?<++8GG}%4Hj$`p`edzAshV|x>#~jG
zoQHAmxR>rp-+ewm=ws!BSU$s3M|2)0JFT9m-otsOPHeyUN5hFfXEo;cY;aK#aN%m?
zkxx=sDqbPRytqnTtGm&1?}4onH(VTe{+wJWvEu^wn$AWk&yOy)ESn?>gQFT*^qc-o
zPP}5#{~}r>V2Q*<{l#8gZXWL!o-1_N-^9FZBjdKhBYSzL6dbWRrq{2Wm;0d8#Baue
zRN>_oN%G0t`-IsvZaYktoHJo*qHw;?BbNR?-zyV@4V?Pys?x-hziY{@^7#CHyZ5$;
zgdW97fA}BvW^WR_xc%sJ&HLGh3f!WuwLdGbU%_{5os;9W_G_kcUk}{(eiN}biowX{
zl+jv-FPo1~Kh5CKCcT}pA@bcFHijaZz;a0ji6f6$;xB{;rp^iF+wrK8>;0CMn>w@%
b4eh5d{A#@5^;IJV1_lOCS3j3^P6<r_*YB=?

literal 0
HcmV?d00001

diff --git a/ring-android/app/src/main/res/drawable-mdpi/ring_logo_48dp.png b/ring-android/app/src/main/res/drawable-mdpi/ring_logo_48dp.png
new file mode 100644
index 0000000000000000000000000000000000000000..43097163ab6fb891a5cc90959096c0c692e5c71a
GIT binary patch
literal 3354
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
AH~;_u

literal 0
HcmV?d00001

diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ic_dialer_sip_black_48dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ic_dialer_sip_black_48dp.png
new file mode 100644
index 0000000000000000000000000000000000000000..d458d5d4b27d4dff907a86188208766534549d65
GIT binary patch
literal 772
zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4i*Lm29JsRH#0CWo%VEb45?szd+W6Kl|YI1
zkLdwwOSg2d-KDd}!N|wxxTd1gp(wY;HkaL9Vx5Vs+j>^iFW4m3>fxE|wY)>6dxO%g
z5VzJXTDu|?di$my3$k{+@JgnwIOEtk?&qIlSADQM(qHmJP=eJ_fW=W@%H#x*sfmy8
zEShs>O69HVy8G^b{UdTJNi*!X<OGLEy@%-sR+JvtF`v;`<F%^}lfh=bqG@Fu9ls<d
z6mdj6NInqW-Vh|u%qGK>Ra4U;Z^`oJli`BXiVs%wGd`DL()%S*a7OWg=Cw7<|04G~
zA1MFymph`pC}L|pBdd=!i_Ayu1AptA=B=?m5?OFnQQ>UNe<r@gGTRRCZ<rD6&|S~?
z)5qek)x(8yuRq%dG_=psJukmdN`GqPJo)3%`MP#tosTz8-gLg5>*jOjJ*Nu(v9V-K
ztF_Zfx>WJc?Z^(D-!+%#o0$tf+c!<XdCJ=;2l+!b7lq1{Plf3|P<FjEzj<><(8^jb
z!^3JWI~V+w-m_T3QOtOWYK-HQy&Adf0!!VwJ%XDRPD@@BvfIq!C>3yPUT}-T+qRb7
zE`p0E)HxsG{Un&o>gjyQ)RXh}3?r2i!J|iQq%xN_{`|xKJFx9;amAc$375Y&{pAYg
zL_ITD?I$h#D>AF{U&pu2_7!f{YfS=9dwFRnIQh*rSK|>Xx4!>y?FOCh3ynrOlbTb6
zE}tu}(AL@g=?tfamF6*>V+N-RIg8Ysq)+Ymp5qq&w$84ru;`V@sU7iK0-x0FE419!
zuQ{b~e#VpaUw{4F$KoJ+Kj7KN2^ImaLQnG<rhHO*oIJzjrz}HjjMLMM&CBL3dBYHK
zO!g)tL$$;tSq9ZDhPsvv3!36?GBQM0=vXr>=mRmQmQ0u?!?0n3TAUa6g|!b^nERgh
zKb#vX^T;fD8spsxt$wXpFP@kNOUA#@JX{@kZPR42a|Ltl?tN%YRGX33llS>2ICZfc
a%wKu^s^bZ3tD6iA3=E#GelF{r5}E)~xm2bA

literal 0
HcmV?d00001

diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ring_logo_48dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ring_logo_48dp.png
new file mode 100644
index 0000000000000000000000000000000000000000..dff924163e9e4ff5d42c0d96aa5a017ce66d6911
GIT binary patch
literal 7077
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
T8+jNQ7#KWV{an^LB{Ts5;j3AV

literal 0
HcmV?d00001

diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ic_dialer_sip_black_48dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ic_dialer_sip_black_48dp.png
new file mode 100644
index 0000000000000000000000000000000000000000..c9342b446875ca63b4bcf987f4ab531b2b4a548b
GIT binary patch
literal 1114
zcmeAS@N?(olHy`uVBq!ia0y~yV3+{H94rhB48Hza#taNBik>cxAr*{o@8o7oO_e$R
z@qOW3-|N>_=a`w#4OpYl6mTxYYev!yWl0n6mc6e}n(vw;>Z)J0t;J+h_|;2UITxA}
z6u&4n->RB1dr8|0+Z}Qlwi9N&d8boe_BC$T`rr3{&Oi3iYXAH9Zy)aY@#bEhgt+)p
zf6b*+g1n%_ilwugpA@c~p5DSf<LsBBlik1fysYlgeWI~$MeW(94~<!SZBDvuc4mKd
zZ00pls|$|G7aA`#esWu&QL=#P+zy{W2Th}cQ`hW2>mc63TXKshMB3~^e%gYaiOhdf
z*mmjUEJ#jUux&%5oiX!WnQz&3>m^^j+t3(i&TK1bcEQZ}LUbZ?t|2pTEAN(bJSA;D
zCmeDuK1XdxW&CwNdjs=EvlNAnGY<akyd_6?w%F$^s51_5DLvuP|KQASy_5yfZyanA
zE6+~14(OKccsQZ)!4%1iu4NM%zdby2TfpeT;xdJ@cAhJF?2qnFXw0(AW~*vk@cR(Y
zmPre$@0|E7*tq@9k>aLGmN?ORv9q6feFf@jAAQ`uPh(zw<}#;U9eXPNyq#%wo=I!f
z?qx?m$1eToAUm<*&(~#7e$HzRNqPI|<Mf9WO6NVJRy^3&as0ljPep}Wq|4Fm+S8u%
zA7PG><u>uuZun&|?L{s_sjXg_C4;F9w+X|7yhBIxY)@5J{Yro3u=d!|JnM#E7Gf(L
z_^u=^OX}pC$oh5G|B}5~57tL4@SN6Mb>X-C%PPiH%QuRzShr4TYJXuDpkLMSNk=R|
zcCp+d`3!-JUdwD;m_xc>RL)7?%@T69<F7>JjabJgs=M4>=Eg1Xv~u~fY5EJD?XUDF
z{ugSp$zJi{nej9AOTky%rhMq$##cSzAzRreyV{&2!RMjdgFgs~?hw!JttmPeTYY}x
zEXz6Sr4NO^iA<Yi(fGUH*WiSi)s8ulQ!1^6I?IBSAAQW9BlxSb?f1^!)GbAtr70%^
z%u-(*RLz-Cx%AP-_yty<LofDw-{{v#tUCMsgM@y-+@G7?_<j_=oA6*`?1Ct^t4kD$
zz69n!)l7<=;u`rYSXOdhSzDzHyT;^IFAl1%JFq#Vy0Y)F*RGCDnuqyfx?~e)&Q<@b
zvDz%q<EzYG7u)C8UOePv<G3dDFzAiA)yayACe|jI<Q*Zu=PZ?*m(aLiqGQady~n4@
z&2wl}IPDj6%J-ADUW9`G+@8m$5>jKd4>Nt5o~q5t_%r+Yl7>IAC(5{(K23i-q2W*J
z%V%2}{+NE?VrBffyX`NNSC%L<lUEjRJeS7G&^N*XLE#q<w>11Yn`(TVWy%$<dkHZP
z|FT{_kX<zCqYF!<Z22d({kIz>lpdr_d~C?}^Ektni64^rv@2%tckMXv!N4>m<m{aj
z&R;%>rU!jA2|gHmM(ACFadhQW+nQ5>Zjz5h9{UIx9&yVGfMw1pL0&5-eb;}Ky+FUQ
T%q@z6fq}u()z4*}Q$iB}=zSLs

literal 0
HcmV?d00001

diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ring_logo_48dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ring_logo_48dp.png
new file mode 100644
index 0000000000000000000000000000000000000000..cc4be60470335ed5ca52665704e6ff7fbe6dead7
GIT binary patch
literal 10811
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

literal 0
HcmV?d00001

diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ic_dialer_sip_black_48dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_dialer_sip_black_48dp.png
new file mode 100644
index 0000000000000000000000000000000000000000..aed4ee2d64637e7ab611d302ff1a3c34d7892d20
GIT binary patch
literal 1503
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

literal 0
HcmV?d00001

diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ring_logo_48dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ring_logo_48dp.png
new file mode 100644
index 0000000000000000000000000000000000000000..ae84b048ae72b9669fe584c20182b5ecdd8fbb1b
GIT binary patch
literal 14921
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
GgeCw<*>Q;g

literal 0
HcmV?d00001

diff --git a/ring-android/app/src/main/res/layout/frag_account_creation.xml b/ring-android/app/src/main/res/layout/frag_account_creation.xml
index b8af89dcb..86ddb81be 100644
--- a/ring-android/app/src/main/res/layout/frag_account_creation.xml
+++ b/ring-android/app/src/main/res/layout/frag_account_creation.xml
@@ -1,8 +1,29 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?><!--
+Copyright (C) 2004-2015 Savoir-Faire Linux Inc.
+
+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
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+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
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:id="@+id/login_form"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    tools:context=".client.AccountWizard"
+    android:background="#eeeeee">
 
     <LinearLayout
         style="@style/AccountFormContainer"
@@ -10,42 +31,118 @@
         android:descendantFocusability="beforeDescendants"
         android:focusableInTouchMode="true" >
 
-        <LinearLayout
-            android:orientation="horizontal"
-            android:layout_width="match_parent"
+        <android.support.v7.widget.CardView
+            xmlns:card_view="http://schemas.android.com/apk/res-auto"
+            android:id="@+id/ring_card_view"
+            android:layout_gravity="center"
+            android:layout_width="280dp"
             android:layout_height="wrap_content"
-            android:gravity="center_vertical">
+            card_view:cardCornerRadius="2dp"
+            android:layout_marginBottom="8dp">
 
-            <TextView
-                android:layout_width="wrap_content"
+            <RelativeLayout
+                android:orientation="vertical"
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:textAppearance="?android:attr/textAppearanceMedium"
-                android:text="@string/account_type"
-                android:id="@+id/textView3"
-                android:layout_marginRight="16dp" />
+                android:id="@+id/ring_fields">
 
-            <Spinner
-                android:id="@+id/account_type"
-                android:layout_width="match_parent"
-                android:layout_height="52dp"
-android:minHeight="52dp"
-                android:entries="@array/accountType"
-                android:typeface="monospace" />
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:id="@+id/imageView6"
+                    android:layout_alignParentTop="true"
+                    android:layout_alignParentRight="true"
+                    android:layout_alignParentEnd="true"
+                    android:src="@drawable/ring_logo_48dp"
+                    android:layout_margin="16dp" />
 
-        </LinearLayout>
+                <TextView
+                    android:layout_width="fill_parent"
+                    android:layout_height="wrap_content"
+                    android:text="@string/help_ring_title"
+                    android:singleLine="false"
+                    android:textColor="@color/text_color_primary"
+                    android:textSize="24sp"
+                    android:paddingLeft="16dp"
+                    android:paddingTop="24dp"
+                    android:paddingRight="16dp"
+                    android:layout_alignParentStart="true"
+                    android:layout_alignParentTop="true"
+                    android:id="@+id/ring_acc_title_txt"
+                    android:layout_toLeftOf="@+id/imageView6"
+                    android:layout_toStartOf="@+id/imageView6" />
 
-        <FrameLayout
-            android:layout_width="match_parent"
+                <TextView
+                    android:layout_width="fill_parent"
+                    android:layout_height="wrap_content"
+                    android:text="@string/help_ring"
+                    android:id="@+id/textView"
+                    android:singleLine="false"
+                    android:textColor="@color/text_color_primary"
+                    android:padding="16dp"
+                    android:textSize="14sp"
+                    android:layout_alignParentStart="true"
+                    android:layout_below="@+id/ring_acc_title_txt" />
+
+                <Button
+                    android:id="@+id/create_ring_account"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/create_ring_account"
+                    style="@style/Widget.AppCompat.Button.Borderless.Colored"
+                    android:layout_margin="8dp"
+                    android:padding="8dp"
+                    android:layout_below="@+id/textView"
+                    android:layout_alignParentStart="false"
+                    android:layout_alignParentEnd="false" />
+            </RelativeLayout>
+
+        </android.support.v7.widget.CardView>
+
+        <android.support.v7.widget.CardView
+            xmlns:card_view="http://schemas.android.com/apk/res-auto"
+            android:id="@+id/card_view"
+            android:layout_gravity="center"
+            android:layout_width="280dp"
             android:layout_height="wrap_content"
-            android:id="@+id/field_flipper"
-            >
-
-            <LinearLayout
+            card_view:cardCornerRadius="2dp"
+            android:layout_margin="8dp">
+            <RelativeLayout
                 android:orientation="vertical"
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content"
+                android:layout_height="match_parent"
                 android:id="@+id/sip_fields"
-                android:visibility="gone">
+                android:nestedScrollingEnabled="false">
+
+                <TextView
+                    android:layout_width="fill_parent"
+                    android:layout_height="wrap_content"
+                    android:text="@string/help_sip_title"
+                    android:singleLine="false"
+                    android:textColor="@color/text_color_primary"
+                    android:textSize="24sp"
+                    android:paddingTop="24dp"
+                    android:paddingLeft="16dp"
+                    android:paddingRight="16dp"
+                    android:layout_alignParentLeft="true"
+                    android:layout_alignParentTop="true"
+                    android:id="@+id/textView3"
+                    android:layout_alignParentStart="false"
+                    android:layout_toLeftOf="@+id/imageView5"
+                    android:layout_toStartOf="@+id/imageView5" />
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/help_sip"
+                    android:singleLine="false"
+                    android:textColor="@color/text_color_primary"
+                    android:textSize="14sp"
+                    android:layout_below="@+id/textView3"
+                    android:id="@+id/textView4"
+                    android:padding="16dp"
+                    android:layout_alignParentEnd="true"
+                    android:layout_alignParentStart="true" />
 
                 <EditText
                     android:id="@+id/alias"
@@ -53,7 +150,12 @@ android:minHeight="52dp"
                     android:layout_height="wrap_content"
                     android:hint="@string/prompt_alias"
                     android:singleLine="true"
-                    android:typeface="monospace" >
+                    android:typeface="monospace"
+                    android:layout_below="@+id/textView4"
+                    android:layout_alignParentLeft="true"
+                    android:layout_marginLeft="16dp"
+                    android:layout_marginRight="16dp"
+                    android:layout_marginBottom="8dp">
                 </EditText>
 
                 <EditText
@@ -62,7 +164,12 @@ android:minHeight="52dp"
                     android:layout_height="wrap_content"
                     android:hint="@string/prompt_hostname"
                     android:singleLine="true"
-                    android:typeface="monospace" >
+                    android:typeface="monospace"
+                    android:layout_below="@+id/alias"
+                    android:layout_alignParentLeft="true"
+                    android:layout_marginLeft="16dp"
+                    android:layout_marginRight="16dp"
+                    android:layout_marginBottom="8dp">
                 </EditText>
 
                 <EditText
@@ -71,7 +178,13 @@ android:minHeight="52dp"
                     android:layout_height="wrap_content"
                     android:hint="@string/prompt_username"
                     android:singleLine="true"
-                    android:typeface="monospace" />
+                    android:typeface="monospace"
+                    android:layout_below="@+id/hostname"
+                    android:layout_alignParentLeft="true"
+                    android:layout_alignParentStart="true"
+                    android:layout_marginRight="16dp"
+                    android:layout_marginLeft="16dp"
+                    android:layout_marginBottom="8dp" />
 
                 <cx.ring.views.PasswordEditText
                     android:id="@+id/password"
@@ -82,34 +195,42 @@ android:minHeight="52dp"
                     android:imeOptions="actionGo"
                     android:inputType="textPassword"
                     android:singleLine="true"
-                    android:typeface="sans" />
-            </LinearLayout>
-
-            <LinearLayout
-                android:orientation="vertical"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:id="@+id/ring_fields">
-
-                <TextView
+                    android:typeface="sans"
+                    android:layout_centerVertical="true"
+                    android:layout_alignEnd="@+id/username"
+                    android:layout_alignParentStart="true"
+                    android:layout_alignParentLeft="true"
+                    android:layout_below="@+id/username"
+                    android:layout_marginLeft="16dp"
+                    android:layout_marginRight="16dp"
+                    android:layout_marginBottom="8dp" />
+
+                <Button
+                    android:id="@+id/create_sip_button"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:textAppearance="?android:attr/textAppearanceMedium"
-                    android:text="@string/help_ring"
-                    android:id="@+id/textView"
-                    android:singleLine="false" />
-            </LinearLayout>
-        </FrameLayout>
+                    android:text="@string/create_sip_account"
+                    style="@style/Widget.AppCompat.Button.Borderless.Colored"
+                    android:padding="8dp"
+                    android:layout_alignParentLeft="true"
+                    android:layout_alignParentTop="false"
+                    android:layout_alignParentStart="true"
+                    android:layout_below="@+id/password"
+                    android:layout_margin="8dp" />
+
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:id="@+id/imageView5"
+                    android:layout_alignParentTop="true"
+                    android:layout_alignParentRight="true"
+                    android:layout_alignParentEnd="true"
+                    android:src="@drawable/ic_dialer_sip_black_48dp"
+                    android:layout_margin="16dp" />
+            </RelativeLayout>
+
+        </android.support.v7.widget.CardView>
 
-        <Button
-            android:id="@+id/create_button"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="right"
-            android:layout_marginTop="16dp"
-            android:paddingLeft="32dp"
-            android:paddingRight="32dp"
-            android:text="@string/action_create" />
 
     </LinearLayout>
 
diff --git a/ring-android/app/src/main/res/layout/frag_menu_header.xml b/ring-android/app/src/main/res/layout/frag_menu_header.xml
index 544f6fff7..412ab99ff 100644
--- a/ring-android/app/src/main/res/layout/frag_menu_header.xml
+++ b/ring-android/app/src/main/res/layout/frag_menu_header.xml
@@ -6,28 +6,28 @@
     android:background="@color/color_primary_dark"
     android:paddingTop="40dp"
     android:theme="@style/MenuHeader"
-    android:paddingLeft="16dp">
+    android:paddingLeft="16dp"
+    tools:showIn="@layout/menuheader">
 
     <ImageView
         android:id="@+id/user_photo"
         android:layout_width="70dp"
         android:layout_height="70dp"
-        android:layout_alignParentLeft="true"
-        android:layout_alignParentStart="true"
         android:layout_alignParentTop="true"
-        android:layout_marginBottom="8dp" />
+        android:layout_centerHorizontal="true" />
 
     <TextView
         android:id="@+id/user_name"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_alignParentLeft="true"
-        android:layout_alignParentStart="true"
-        android:layout_below="@+id/user_photo"
         android:singleLine="true"
         android:textSize="20sp"
         android:textStyle="bold"
-        android:textColor="@color/white" />
+        android:textColor="@color/white"
+        android:layout_below="@+id/user_photo"
+        android:layout_centerHorizontal="true"
+        android:layout_marginBottom="16dp"
+        android:layout_marginTop="8dp" />
 
     <Spinner
         android:id="@+id/account_selection"
@@ -37,17 +37,33 @@
         android:layout_alignParentStart="true"
         android:layout_below="@+id/user_name"
         android:layout_toLeftOf="@+id/share_btn"
-        android:layout_toStartOf="@+id/share_btn" />
+        android:layout_toStartOf="@+id/share_btn"
+        android:visibility="visible"
+        tools:listitem="@layout/item_account_selected"/>
 
     <ImageButton
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:text="New Button"
+        android:text="@string/share_number"
         android:id="@+id/share_btn"
         android:src="@drawable/ic_share_white_24dp"
         style="?android:attr/borderlessButtonStyle"
         android:layout_alignBottom="@+id/account_selection"
         android:layout_alignParentRight="true"
         android:layout_alignParentEnd="true"
-        android:layout_alignTop="@+id/account_selection" />
+        android:layout_alignTop="@+id/account_selection"
+        android:visibility="visible" />
+
+    <Button
+        android:layout_width="wrap_content"
+        android:layout_height="72dp"
+        android:text="@string/action_create"
+        android:id="@+id/addaccount_btn"
+        android:layout_below="@+id/user_name"
+        android:layout_alignParentRight="true"
+        android:layout_alignParentEnd="true"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentStart="true"
+        style="@style/Widget.AppCompat.Button.Borderless"
+        android:visibility="gone" />
 </RelativeLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/values/strings.xml b/ring-android/app/src/main/res/values/strings.xml
index ce6280c63..4884b2d9f 100644
--- a/ring-android/app/src/main/res/values/strings.xml
+++ b/ring-android/app/src/main/res/values/strings.xml
@@ -117,19 +117,9 @@ as that of the covered work.
     <string name="copyright">Copyright \u00A9 2004&#8211;2015 Savoir-Faire Linux Inc.</string>
     <string name="web_site">Website</string>
     <string name="help_gestures"> This view will help users with different interactions during calls. Different actions will be described; Long press, fling, swype etc.</string>
+    <string name="send_message">Send message</string>
     <string name="ongoing_call">Ongoing call</string>
     <string name="hist_in_call">Incoming call of %1$s</string>
     <string name="hist_out_call">Outgoing call of %1$s</string>
 
-    <!-- combobox protocol -->
-    <string-array name="accountType">
-        <item>RING</item>
-        <item>SIP</item>
-        <item>IAX</item>
-    </string-array>
-    <string name="help_ring">Ring accounts allow you to reach people securely in peer to peer through a fully distributed network.\n\n
-When creating a Ring account, a new 4096 bits RSA key pair is generated. The hash of the public key then becomes your Ring ID.
-    </string>
-    <string name="account_type">Account type</string>
-
 </resources>
diff --git a/ring-android/app/src/main/res/values/strings_account.xml b/ring-android/app/src/main/res/values/strings_account.xml
index cedd0e502..1530db4fe 100644
--- a/ring-android/app/src/main/res/values/strings_account.xml
+++ b/ring-android/app/src/main/res/values/strings_account.xml
@@ -42,6 +42,22 @@ as that of the covered work.
     <string name="dialog_wait_create">Adding account</string>
     <string name="dialog_wait_create_details">Please wait while your new account is added…</string>
 
+    <!-- Strings related to account creation -->
+    <string-array name="accountType">
+        <item>RING</item>
+        <item>SIP</item>
+        <item>IAX</item>
+    </string-array>
+    <string name="help_ring_title">Ring identity</string>
+    <string name="help_ring">A Ring identities allows you to reach people securely in peer to peer through a fully distributed network.</string>
+    <string name="create_ring_account">Create</string>
+
+    <string name="help_sip_title">SIP account</string>
+    <string name="help_sip">Configure an existing SIP account.</string>
+    <string name="create_sip_account">Add</string>
+    <string name="configure_sip_account">Configure</string>
+    <string name="share_number">Share number</string>
+
     <!-- AccountManagementFragment -->
     <string name="preference_section1">Accounts</string>
     <string name="empty_account_list">No account registered</string>
-- 
GitLab