CallFragment: add MVP model

Refactor CallFragment by adding MVP model, moving video management from
RingApplication to HardwareServiceImpl and removing use of
VideoCallbackManager

Change-Id: Ie75a0d33fa138590911d19d113df362ade29b9f4
Reviewed-by: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
Tuleap: #1360
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/ConversationFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/ConversationFragment.java
index 2d299f8..48b2878 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/ConversationFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/ConversationFragment.java
@@ -47,6 +47,7 @@
 import cx.ring.model.Phone;
 import cx.ring.model.Uri;
 import cx.ring.mvp.BaseFragment;
+import cx.ring.services.NotificationService;
 import cx.ring.utils.ActionHelper;
 import cx.ring.utils.BitmapUtils;
 import cx.ring.utils.ClipboardHelper;
@@ -64,12 +65,13 @@
         ContactDetailsTask.DetailsLoadedCallback,
         ConversationView {
 
+    public static final int REQ_ADD_CONTACT = 42;
+    public static final String KEY_CONVERSATION_ID = "CONVERSATION_ID";
+
     private static final String TAG = ConversationFragment.class.getSimpleName();
     private static final String CONVERSATION_DELETE = "CONVERSATION_DELETE";
     private static final int MIN_SIZE_TABLET = 960;
 
-    public static final int REQ_ADD_CONTACT = 42;
-
     @Inject
     protected ConversationPresenter conversationPresenter;
 
@@ -77,7 +79,7 @@
     protected EditText mMsgEditTxt;
 
     @BindView(R.id.ongoingcall_pane)
-    protected ViewGroup mBottomPane;
+    protected ViewGroup mTopPane;
 
     @BindView(R.id.hist_list)
     protected RecyclerView mHistList;
@@ -140,8 +142,8 @@
         // Dependency injection
         ((RingApplication) getActivity().getApplication()).getRingInjectionComponent().inject(this);
 
-        if (mBottomPane != null) {
-            mBottomPane.setVisibility(View.GONE);
+        if (mTopPane != null) {
+            mTopPane.setVisibility(View.GONE);
         }
 
         LinearLayoutManager mLayoutManager = new LinearLayoutManager(getActivity());
@@ -341,8 +343,8 @@
     @Override
     protected void initPresenter(ConversationPresenter presenter) {
         super.initPresenter(presenter);
-        String conversationId = getArguments().getString("conversationID");
-        Uri number = new Uri(getArguments().getString("number"));
+        String conversationId = getArguments().getString(KEY_CONVERSATION_ID);
+        Uri number = new Uri(getArguments().getString(CallFragment.KEY_NUMBER));
         conversationPresenter.init(conversationId, number);
     }
 
@@ -386,7 +388,7 @@
         getActivity().runOnUiThread(new Runnable() {
             @Override
             public void run() {
-                mBottomPane.setVisibility(display ? View.GONE : View.VISIBLE);
+                mTopPane.setVisibility(display ? View.GONE : View.VISIBLE);
             }
         });
     }
@@ -478,7 +480,7 @@
     public void goToCallActivity(String conferenceId) {
         startActivity(new Intent(Intent.ACTION_VIEW)
                 .setClass(getActivity().getApplicationContext(), CallActivity.class)
-                .setData(android.net.Uri.withAppendedPath(ContentUriHandler.CONFERENCE_CONTENT_URI, conferenceId)));
+                .putExtra(NotificationService.KEY_CALL_ID, conferenceId));
     }
 
     @Override