[Rlog29] User interface for recording

- Also, internal flag for automatically replaying after a recording is made (off by default)
- RLog key to "Bug?"

multi-project commit with I0c2fababd73eed5a341af487bca04ddd650d4cc2

Change-Id: I162c96a715de7180f276e08b4686a20f29dabafb
diff --git a/java/res/layout/research_feedback_fragment_layout.xml b/java/res/layout/research_feedback_fragment_layout.xml
index 2a90ba2..2725e7f 100644
--- a/java/res/layout/research_feedback_fragment_layout.xml
+++ b/java/res/layout/research_feedback_fragment_layout.xml
@@ -14,107 +14,111 @@
      limitations under the License.
 -->
 
-<LinearLayout
-     xmlns:android="http://schemas.android.com/apk/res/android"
-     android:layout_width="fill_parent"
-     android:layout_height="fill_parent"
-     android:orientation="vertical"
->
-
-    <!-- Mimic a dialog title.  Necessary since the dialog is actually an activity, so the normal
-        dialog title construction code is not available. -->
+<!-- Adapted from frameworks/base/core/res/res/layout/alert_dialog_holo.xml.  We
+   want a dialog, but it must be its own activity so we can launch the soft
+   keyboard on it.  A regular dialog will not work since it would be launched from
+   the IME. -->
+<ScrollView>
     <LinearLayout
+         xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
-         android:layout_height="wrap_content"
-         android:orientation="vertical"
-    >
-        <com.android.internal.widget.DialogTitle
-            style="?android:attr/windowTitleStyle"
-            android:singleLine="true"
-            android:ellipsize="end"
+         android:layout_height="match_parent"
+         android:layout_marginStart="8dip"
+         android:layout_marginEnd="8dip"
+         android:orientation="vertical">
+        <LinearLayout
+             android:layout_width="match_parent"
+             android:layout_height="wrap_content"
+             android:orientation="vertical">
+            <View android:layout_width="match_parent"
+                android:layout_height="2dip"
+                android:visibility="gone"
+                android:background="@android:color/holo_blue_light" />
+            <TextView
+                style="?android:attr/windowTitleStyle"
+                android:singleLine="true"
+                android:ellipsize="end"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:minHeight="64dip"
+                android:layout_marginLeft="16dip"
+                android:layout_marginRight="16dip"
+                android:gravity="center_vertical|left"
+                android:text="@string/research_feedback_dialog_title" />
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="2dip"
+                android:background="@android:color/holo_blue_light" />
+        </LinearLayout>
+
+        <EditText
+            android:id="@+id/research_feedback_contents"
+            android:layout_height="wrap_content"
             android:layout_width="match_parent"
-            android:layout_height="64dip"
+            android:layout_gravity="fill_horizontal|center_vertical"
+            android:layout_marginLeft="8dip"
+            android:layout_marginRight="8dip"
+            android:layout_marginBottom="8dip"
+            android:layout_marginTop="8dip"
+            android:minLines="2"
+            android:scrollbars="vertical"
+            android:hint="@string/research_feedback_hint"
+            android:inputType="textMultiLine">
+            <requestFocus />
+        </EditText>
+        <CheckBox
+            android:id="@+id/research_feedback_include_account_name"
+            android:layout_height="wrap_content"
+            android:layout_width="match_parent"
             android:layout_marginLeft="16dip"
             android:layout_marginRight="16dip"
-            android:gravity="center_vertical|left"
-            android:text="@string/research_feedback_dialog_title" />
-        <View
+            android:layout_marginBottom="8dip"
+            android:checked="false"
+            android:text="@string/research_feedback_include_account_name_label" />
+        <CheckBox
+            android:id="@+id/research_feedback_include_recording_checkbox"
+            android:layout_height="wrap_content"
             android:layout_width="match_parent"
-            android:layout_height="2dip"
-            android:background="@android:color/holo_blue_light" />
-    </LinearLayout>
-
-    <EditText
-        android:id="@+id/research_feedback_contents"
-        android:layout_height="wrap_content"
-        android:layout_width="match_parent"
-        android:layout_gravity="fill_horizontal|center_vertical"
-        android:layout_marginLeft="8dip"
-        android:layout_marginRight="8dip"
-        android:layout_marginBottom="8dip"
-        android:layout_marginTop="8dip"
-        android:lines="2"
-        android:hint="@string/research_feedback_hint"
-        android:inputType="textMultiLine"
-        android:imeOptions="flagNoFullscreen"
-    >
-        <requestFocus />
-    </EditText>
-
-    <CheckBox
-        android:id="@+id/research_feedback_include_history"
-        android:layout_height="wrap_content"
-        android:layout_width="match_parent"
-        android:layout_marginBottom="8dip"
-        android:checked="true"
-        android:text="@string/research_feedback_include_history_label"
-    />
-
-    <CheckBox
-        android:id="@+id/research_feedback_include_account_name"
-        android:layout_height="wrap_content"
-        android:layout_width="match_parent"
-        android:layout_marginBottom="8dip"
-        android:checked="false"
-        android:text="@string/research_feedback_include_account_name_label"
-    />
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:divider="?android:attr/dividerHorizontal"
-        android:showDividers="beginning"
-        android:dividerPadding="0dip"
-    >
+            android:layout_marginLeft="16dip"
+            android:layout_marginRight="16dip"
+            android:layout_marginBottom="8dip"
+            android:checked="false"
+            android:text="@string/research_feedback_include_recording_label" />
         <LinearLayout
-            style="?android:attr/buttonBarStyle"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:measureWithLargestChild="true"
-        >
-            <Button
-                android:id="@+id/research_feedback_cancel_button"
-                android:layout_width="0dip"
-                android:layout_gravity="left"
-                android:layout_weight="1"
-                android:maxLines="2"
-                style="?android:attr/buttonBarButtonStyle"
-                android:textSize="14sp"
-                android:text="@string/research_feedback_cancel"
+            android:orientation="vertical"
+            android:divider="?android:attr/dividerHorizontal"
+            android:showDividers="beginning"
+            android:dividerPadding="0dip">
+            <LinearLayout
+                style="?android:attr/buttonBarStyle"
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-            />
-            <Button
-                android:id="@+id/research_feedback_send_button"
-                android:layout_width="0dip"
-                android:layout_gravity="right"
-                android:layout_weight="1"
-                android:maxLines="2"
-                style="?android:attr/buttonBarButtonStyle"
-                android:textSize="14sp"
-                android:text="@string/research_feedback_send"
-                android:layout_height="wrap_content"
-            />
+                android:orientation="horizontal"
+                android:layoutDirection="locale"
+                android:measureWithLargestChild="true">
+                <Button
+                    android:id="@+id/research_feedback_cancel_button"
+                    android:layout_width="wrap_content"
+                    android:layout_gravity="left"
+                    android:layout_weight="1"
+                    android:maxLines="2"
+                    style="?android:attr/buttonBarButtonStyle"
+                    android:textSize="14sp"
+                    android:text="@string/research_feedback_cancel"
+                    android:layout_height="wrap_content" />
+                <Button
+                    android:id="@+id/research_feedback_send_button"
+                    android:layout_width="wrap_content"
+                    android:layout_gravity="right"
+                    android:layout_weight="1"
+                    android:maxLines="2"
+                    style="?android:attr/buttonBarButtonStyle"
+                    android:textSize="14sp"
+                    android:text="@string/research_feedback_send"
+                    android:layout_height="wrap_content" />
+            </LinearLayout>
         </LinearLayout>
     </LinearLayout>
-</LinearLayout>
+</ScrollView>
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index e3cd84c..8822e8d 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -278,6 +278,9 @@
     <!-- Text for checkbox option to include user account name in feedback for research purposes [CHAR LIMIT=50] -->
     <!-- TODO: remove translatable=false attribute once text is stable -->
     <string name="research_feedback_include_account_name_label" translatable="false">Include account name</string>
+    <!-- Text for checkbox option to include a recording in feedback for research purposes [CHAR LIMIT=50] -->
+    <!-- TODO: remove translatable=false attribute once text is stable -->
+    <string name="research_feedback_include_recording_label" translatable="false">Include recorded demonstration</string>
     <!-- Hint to user about the text entry field where they should enter research feedback [CHAR LIMIT=40] -->
     <!-- TODO: remove translatable=false attribute once text is stable -->
     <string name="research_feedback_hint" translatable="false">Enter your feedback here.</string>
@@ -287,6 +290,13 @@
     <!-- Dialog button choice to cancel sending research feedback [CHAR LIMIT=35] -->
     <!-- TODO: remove translatable=false attribute once text is stable -->
     <string name="research_feedback_cancel" translatable="false">Cancel</string>
+    <!-- Temporary notification to provide user with instructions about stopping a recording
+      - operation[CHAR LIMIT=100] -->
+    <!-- TODO: remove translatable=false attribute once text is stable -->
+    <string name="research_feedback_demonstration_instructions" translatable="false">Please demonstrate the issue you are writing about.\n\nWhen finished, select the \"Bug?\" button again."</string>
+    <!-- Temporary notification of recording failure [CHAR LIMIT=100] -->
+    <!-- TODO: remove translatable=false attribute once text is stable -->
+    <string name="research_feedback_recording_failure" translatable="false">Recording cancelled due to timeout</string>
     <!-- Toast notification to ask user to quit the research feedback dialog to perform this operation [CHAR LIMIT=100] -->
     <!-- TODO: remove translatable=false attribute once text is stable -->
     <string name="research_please_exit_feedback_form" translatable="false">Please exit the feedback dialog to access the research log menu</string>