Moving JoinContactActivity and updating style

Change-Id: Ie42a751d53f8ad8911bcb796754889514cc665ea
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index f8fccae..7d1b2c7 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -298,7 +298,7 @@
         />
 
         <!-- An activity for joining contacts -->
-        <activity android:name="JoinContactActivity"
+        <activity android:name=".activities.JoinContactActivity"
             android:theme="@style/JoinContactActivityTheme"
             android:clearTaskOnLaunch="true"
         >
diff --git a/res/layout/join_contact_picker.xml b/res/layout/join_contact_picker.xml
new file mode 100644
index 0000000..e0a6c2a
--- /dev/null
+++ b/res/layout/join_contact_picker.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<view
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    class="com.android.contacts.widget.FullHeightLinearLayout"
+    style="@style/ContactPickerLayout"
+    android:paddingLeft="20dip"
+    android:paddingRight="20dip"
+    android:orientation="vertical">
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:id="@+id/list_container">
+    </FrameLayout>
+</view>
diff --git a/src/com/android/contacts/JoinContactActivity.java b/src/com/android/contacts/activities/JoinContactActivity.java
similarity index 81%
rename from src/com/android/contacts/JoinContactActivity.java
rename to src/com/android/contacts/activities/JoinContactActivity.java
index 5089b8c..388a4ff 100644
--- a/src/com/android/contacts/JoinContactActivity.java
+++ b/src/com/android/contacts/activities/JoinContactActivity.java
@@ -14,14 +14,16 @@
  * limitations under the License.
  */
 
-package com.android.contacts;
+package com.android.contacts.activities;
 
 
+import com.android.contacts.R;
 import com.android.contacts.list.ContactEntryListFragment;
 import com.android.contacts.list.JoinContactListFragment;
 import com.android.contacts.list.OnContactPickerActionListener;
 
 import android.app.Activity;
+import android.app.Fragment;
 import android.app.FragmentTransaction;
 import android.content.Intent;
 import android.net.Uri;
@@ -54,11 +56,21 @@
      */
     public static final String EXTRA_TARGET_CONTACT_ID = "com.android.contacts.action.CONTACT_ID";
 
+    private static final String KEY_TARGET_CONTACT_ID = "targetContactId";
+
     private long mTargetContactId;
 
     private JoinContactListFragment mListFragment;
 
     @Override
+    public void onAttachFragment(Fragment fragment) {
+        if (fragment instanceof JoinContactListFragment) {
+            mListFragment = (JoinContactListFragment) fragment;
+            setupActionListener();
+        }
+    }
+
+    @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
@@ -72,7 +84,16 @@
             return;
         }
 
+        setContentView(R.layout.join_contact_picker);
+
         mListFragment = new JoinContactListFragment();
+
+        FragmentTransaction transaction = getFragmentManager().openTransaction();
+        transaction.add(R.id.list_container, mListFragment);
+        transaction.commit();
+    }
+
+    public void setupActionListener() {
         mListFragment.setTargetContactId(mTargetContactId);
         mListFragment.setOnContactPickerActionListener(new OnContactPickerActionListener() {
             @Override
@@ -94,10 +115,18 @@
             public void onEditContactAction(Uri contactLookupUri) {
             }
         });
+    }
 
-        FragmentTransaction transaction = getFragmentManager().openTransaction();
-        transaction.add(android.R.id.content, mListFragment);
-        transaction.commit();
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putLong(KEY_TARGET_CONTACT_ID, mTargetContactId);
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Bundle savedInstanceState) {
+        super.onRestoreInstanceState(savedInstanceState);
+        mTargetContactId = savedInstanceState.getLong(KEY_TARGET_CONTACT_ID);
     }
 
     @Override
diff --git a/src/com/android/contacts/views/editor/ContactEditorFragment.java b/src/com/android/contacts/views/editor/ContactEditorFragment.java
index 6596d5e..21f185a 100644
--- a/src/com/android/contacts/views/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/views/editor/ContactEditorFragment.java
@@ -16,8 +16,8 @@
 
 package com.android.contacts.views.editor;
 
-import com.android.contacts.JoinContactActivity;
 import com.android.contacts.R;
+import com.android.contacts.activities.JoinContactActivity;
 import com.android.contacts.model.AccountTypes;
 import com.android.contacts.model.BaseAccountType;
 import com.android.contacts.model.EntityDelta;