Update fragment dialog samples.

- Follow API changes.
- Clean up and mark up for inclusion as sample code.
- New sample that shows a DialogFragment used as both a dialog
  and embedded in an activity.

Change-Id: Icaa41283562f4f345b188442ef988c9d5edd8ed1
diff --git a/samples/ApiDemos/AndroidManifest.xml b/samples/ApiDemos/AndroidManifest.xml
index f4cbc08..1ebc3ee 100644
--- a/samples/ApiDemos/AndroidManifest.xml
+++ b/samples/ApiDemos/AndroidManifest.xml
@@ -243,6 +243,14 @@
             </intent-filter>
         </activity>
 
+        <activity android:name=".app.FragmentDialogOrActivity"
+                android:label="@string/fragment_dialog_or_activity">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.SAMPLE_CODE" />
+            </intent-filter>
+        </activity>
+
         <activity android:name=".app.FragmentLayout"
                 android:label="@string/fragment_layout">
             <intent-filter>
diff --git a/samples/ApiDemos/res/layout/fragment_dialog_or_activity.xml b/samples/ApiDemos/res/layout/fragment_dialog_or_activity.xml
new file mode 100644
index 0000000..eb95e14
--- /dev/null
+++ b/samples/ApiDemos/res/layout/fragment_dialog_or_activity.xml
@@ -0,0 +1,62 @@
+<?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.
+-->
+
+<!-- Top-level content view for the simple fragment sample. -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical" android:padding="4dip"
+    android:gravity="center_horizontal"
+    android:layout_width="match_parent" android:layout_height="match_parent">
+
+    <TextView
+            android:id="@+id/text"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="0"
+            android:layout_gravity="center_vertical|center_horizontal"
+            android:gravity="top|center_horizontal"
+            android:text="@string/fragment_dialog_or_activity_msg" />
+
+    <Button android:id="@+id/show_dialog"
+        android:layout_width="wrap_content" android:layout_height="wrap_content"
+        android:layout_weight="0"
+        android:text="@string/show">
+        <requestFocus />
+    </Button>
+
+    <View android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="1" />
+
+    <TextView
+            android:id="@+id/inline_text"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="0"
+            android:layout_gravity="center_vertical|center_horizontal"
+            android:text="@string/fragment_dialog_or_activity_inline" />
+
+    <FrameLayout
+            android:id="@+id/embedded"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="0"
+            android:layout_gravity="center_vertical|center_horizontal"
+            android:padding="6dp"
+            android:background="#ff303030"
+            android:gravity="top|center_horizontal" />
+
+</LinearLayout>
diff --git a/samples/ApiDemos/res/values/strings.xml b/samples/ApiDemos/res/values/strings.xml
index 265f9dd..9558cdf 100644
--- a/samples/ApiDemos/res/values/strings.xml
+++ b/samples/ApiDemos/res/values/strings.xml
@@ -95,6 +95,12 @@
     <string name="fragment_dialog">App/Fragment/Dialog</string>
     <string name="show">Show</string>
 
+    <string name="fragment_dialog_or_activity">App/Fragment/Dialog or Activity</string>
+    <string name="fragment_dialog_or_activity_msg">Demonstrates the same fragment
+            being shown as a dialog and embedded inside of an activity.</string>
+    <string name="fragment_dialog_or_activity_inline">Fragment embedded inside
+            of the activity:</string>
+
     <string name="fragment_layout">App/Fragment/Layout</string>
     
     <string name="fragment_list_array">App/Fragment/List Array</string>
diff --git a/samples/ApiDemos/src/com/example/android/apis/app/FragmentAlertDialog.java b/samples/ApiDemos/src/com/example/android/apis/app/FragmentAlertDialog.java
index 19fd06a..abf9731 100644
--- a/samples/ApiDemos/src/com/example/android/apis/app/FragmentAlertDialog.java
+++ b/samples/ApiDemos/src/com/example/android/apis/app/FragmentAlertDialog.java
@@ -49,10 +49,11 @@
         });
     }
 
+//BEGIN_INCLUDE(activity)
     void showDialog() {
         DialogFragment newFragment = MyAlertDialogFragment.newInstance(
                 R.string.alert_dialog_two_buttons_title);
-        newFragment.show(this, "dialog");
+        newFragment.show(getFragmentManager(), "dialog");
     }
 
     public void doPositiveClick() {
@@ -64,7 +65,9 @@
         // Do stuff here.
         Log.i("FragmentAlertDialog", "Negative click!");
     }
+//END_INCLUDE(activity)
     
+//BEGIN_INCLUDE(dialog)
     public static class MyAlertDialogFragment extends DialogFragment {
 
         public static MyAlertDialogFragment newInstance(int title) {
@@ -99,4 +102,5 @@
                     .create();
         }
     }
+//END_INCLUDE(dialog)
 }
diff --git a/samples/ApiDemos/src/com/example/android/apis/app/FragmentDialog.java b/samples/ApiDemos/src/com/example/android/apis/app/FragmentDialog.java
index bdd1e72..bf9a7ea 100644
--- a/samples/ApiDemos/src/com/example/android/apis/app/FragmentDialog.java
+++ b/samples/ApiDemos/src/com/example/android/apis/app/FragmentDialog.java
@@ -63,6 +63,7 @@
         outState.putInt("level", mStackLevel);
     }
 
+//BEGIN_INCLUDE(add_dialog)
     void showDialog() {
         mStackLevel++;
 
@@ -78,8 +79,9 @@
 
         // Create and show the dialog.
         DialogFragment newFragment = MyDialogFragment.newInstance(mStackLevel);
-        newFragment.show(this, ft, "dialog");
+        newFragment.show(ft, "dialog");
     }
+//END_INCLUDE(add_dialog)
 
     static String getNameForNum(int num) {
         switch ((num-1)%6) {
@@ -93,6 +95,7 @@
         return "STYLE_NORMAL";
     }
 
+//BEGIN_INCLUDE(dialog)
     public static class MyDialogFragment extends DialogFragment {
         int mNum;
 
@@ -144,6 +147,7 @@
             Button button = (Button)v.findViewById(R.id.show);
             button.setOnClickListener(new OnClickListener() {
                 public void onClick(View v) {
+                    // When button is clicked, call up to owning activity.
                     ((FragmentDialog)getActivity()).showDialog();
                 }
             });
@@ -151,4 +155,5 @@
             return v;
         }
     }
+//END_INCLUDE(dialog)
 }
diff --git a/samples/ApiDemos/src/com/example/android/apis/app/FragmentDialogOrActivity.java b/samples/ApiDemos/src/com/example/android/apis/app/FragmentDialogOrActivity.java
new file mode 100644
index 0000000..c4d2c00
--- /dev/null
+++ b/samples/ApiDemos/src/com/example/android/apis/app/FragmentDialogOrActivity.java
@@ -0,0 +1,82 @@
+/*
+ * 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.
+ */
+
+package com.example.android.apis.app;
+
+import com.example.android.apis.R;
+
+import android.app.Activity;
+import android.app.DialogFragment;
+import android.app.Fragment;
+import android.app.FragmentTransaction;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.View.OnClickListener;
+import android.widget.Button;
+import android.widget.TextView;
+
+public class FragmentDialogOrActivity extends Activity {
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.fragment_dialog_or_activity);
+
+        if (savedInstanceState == null) {
+            // First-time init; create fragment to embed in activity.
+//BEGIN_INCLUDE(embed)
+            FragmentTransaction ft = getFragmentManager().openTransaction();
+            DialogFragment newFragment = MyDialogFragment.newInstance();
+            ft.add(R.id.embedded, newFragment);
+            ft.commit();
+//END_INCLUDE(embed)
+        }
+
+        // Watch for button clicks.
+        Button button = (Button)findViewById(R.id.show_dialog);
+        button.setOnClickListener(new OnClickListener() {
+            public void onClick(View v) {
+                showDialog();
+            }
+        });
+    }
+
+//BEGIN_INCLUDE(show_dialog)
+    void showDialog() {
+        // Create the fragment and show it as a dialog.
+        DialogFragment newFragment = MyDialogFragment.newInstance();
+        newFragment.show(getFragmentManager(), "dialog");
+    }
+//END_INCLUDE(show_dialog)
+
+//BEGIN_INCLUDE(dialog)
+    public static class MyDialogFragment extends DialogFragment {
+        static MyDialogFragment newInstance() {
+            return new MyDialogFragment();
+        }
+
+        @Override
+        public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                Bundle savedInstanceState) {
+            View v = inflater.inflate(R.layout.hello_world, container, false);
+            View tv = v.findViewById(R.id.text);
+            ((TextView)tv).setText("This is an instance of MyDialogFragment");
+            return v;
+        }
+    }
+//END_INCLUDE(dialog)
+}