summaryrefslogtreecommitdiffstats
path: root/samples
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2012-04-13 16:12:01 -0700
committerDianne Hackborn <hackbod@google.com>2012-04-13 16:12:01 -0700
commit6c5e9eb6508685af882f6c41f7e343e6ca0f46cb (patch)
tree5987ed86d288621f1ab99156caf14aac5af51ed8 /samples
parent2af3f3067a55eaa81be0b90d4cbe0531920d48dc (diff)
downloadandroid_development-6c5e9eb6508685af882f6c41f7e343e6ca0f46cb.tar.gz
android_development-6c5e9eb6508685af882f6c41f7e343e6ca0f46cb.tar.bz2
android_development-6c5e9eb6508685af882f6c41f7e343e6ca0f46cb.zip
Update API demo to show new clip data types and conversions.
Change-Id: I32e2951c53ecedc75d1459666ced9f54b54cf6ba
Diffstat (limited to 'samples')
-rw-r--r--samples/ApiDemos/res/layout/clipboard.xml188
-rw-r--r--samples/ApiDemos/res/values/arrays.xml4
-rw-r--r--samples/ApiDemos/src/com/example/android/apis/content/ClipboardSample.java99
3 files changed, 204 insertions, 87 deletions
diff --git a/samples/ApiDemos/res/layout/clipboard.xml b/samples/ApiDemos/res/layout/clipboard.xml
index 645b1ea65..8f844aa0b 100644
--- a/samples/ApiDemos/res/layout/clipboard.xml
+++ b/samples/ApiDemos/res/layout/clipboard.xml
@@ -21,87 +21,145 @@
com.example.android.apis.content.ClipboardSample
-->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
-
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
+ <LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:orientation="horizontal">
+ android:orientation="vertical">
- <Button android:id="@+id/copy_styled_text"
- android:layout_width="wrap_content" android:layout_height="wrap_content"
- android:onClick="pasteStyledText"
- android:text="@string/copy_text" />
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
- <TextView
- android:id="@+id/styled_text"
- android:layout_width="wrap_content"
+ <Button android:id="@+id/copy_styled_text"
+ android:layout_width="wrap_content" android:layout_height="wrap_content"
+ android:onClick="pasteStyledText"
+ android:text="@string/copy_text" />
+
+ <TextView
+ android:id="@+id/styled_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textStyle="normal" />
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:gravity="center_horizontal"
- android:textStyle="normal" />
+ android:orientation="horizontal">
- </LinearLayout>
+ <Button android:id="@+id/copy_plain_text"
+ android:layout_width="wrap_content" android:layout_height="wrap_content"
+ android:onClick="pastePlainText"
+ android:text="@string/copy_text" />
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
+ <TextView
+ android:id="@+id/plain_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textStyle="normal" />
- <Button android:id="@+id/copy_plain_text"
- android:layout_width="wrap_content" android:layout_height="wrap_content"
- android:onClick="pastePlainText"
- android:text="@string/copy_text" />
+ </LinearLayout>
- <TextView
- android:id="@+id/plain_text"
- android:layout_width="wrap_content"
+ <LinearLayout
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:gravity="center_horizontal"
- android:textStyle="normal" />
+ android:orientation="horizontal">
- </LinearLayout>
+ <Button android:id="@+id/copy_html_text"
+ android:layout_width="wrap_content" android:layout_height="wrap_content"
+ android:onClick="pasteHtmlText"
+ android:text="@string/copy_text" />
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
+ <TextView
+ android:id="@+id/html_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textStyle="normal" />
- <Button android:id="@+id/copy_intent"
- android:layout_width="wrap_content" android:layout_height="wrap_content"
- android:onClick="pasteIntent"
- android:text="@string/copy_intent" />
+ </LinearLayout>
- <Button android:id="@+id/copy_uri"
- android:layout_width="wrap_content" android:layout_height="wrap_content"
- android:onClick="pasteUri"
- android:text="@string/copy_uri" />
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
- </LinearLayout>
+ <Button android:id="@+id/copy_intent"
+ android:layout_width="wrap_content" android:layout_height="wrap_content"
+ android:onClick="pasteIntent"
+ android:text="@string/copy_intent" />
- <Spinner android:id="@+id/clip_type"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:drawSelectorOnTop="true"
- android:prompt="@string/clip_type_prompt"
- />
+ <Button android:id="@+id/copy_uri"
+ android:layout_width="wrap_content" android:layout_height="wrap_content"
+ android:onClick="pasteUri"
+ android:text="@string/copy_uri" />
- <TextView
- android:id="@+id/clip_mime_types"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:textStyle="normal"
- />
-
- <EditText
- android:id="@+id/clip_text"
- android:layout_width="match_parent"
- android:layout_height="0px"
- android:layout_weight="1"
- android:textStyle="normal"
- />
-
-</LinearLayout>
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:orientation="horizontal">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:text="Data type: " />
+
+ <Spinner android:id="@+id/clip_type"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:drawSelectorOnTop="true"
+ android:prompt="@string/clip_type_prompt"
+ />
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="4dp"
+ android:orientation="horizontal">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:text="MIME types: " />
+
+ <TextView
+ android:id="@+id/clip_mime_types"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:layout_height="wrap_content"
+ android:background="#ff303030"
+ android:padding="4dp"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ />
+
+ </LinearLayout>
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="4dp"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:text="Data content:" />
+
+ <TextView
+ android:id="@+id/clip_text"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="#ff303030"
+ android:padding="4dp"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ />
+
+ </LinearLayout>
+</ScrollView> \ No newline at end of file
diff --git a/samples/ApiDemos/res/values/arrays.xml b/samples/ApiDemos/res/values/arrays.xml
index aac4f7940..150861371 100644
--- a/samples/ApiDemos/res/values/arrays.xml
+++ b/samples/ApiDemos/res/values/arrays.xml
@@ -42,8 +42,12 @@
<string-array name="clip_data_types">
<item>No data in clipboard</item>
<item>Text clip</item>
+ <item>HTML Text clip</item>
<item>Intent clip</item>
<item>Uri clip</item>
+ <item>Coerce to text</item>
+ <item>Coerce to styled text</item>
+ <item>Coerce to HTML text</item>
</string-array>
<!-- Used in App/SearchInvoke.java -->
diff --git a/samples/ApiDemos/src/com/example/android/apis/content/ClipboardSample.java b/samples/ApiDemos/src/com/example/android/apis/content/ClipboardSample.java
index e9889028d..cf7d02702 100644
--- a/samples/ApiDemos/src/com/example/android/apis/content/ClipboardSample.java
+++ b/samples/ApiDemos/src/com/example/android/apis/content/ClipboardSample.java
@@ -26,10 +26,10 @@ import android.content.Intent;
import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle;
+import android.text.method.LinkMovementMethod;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
-import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.AdapterView.OnItemSelectedListener;
@@ -39,15 +39,17 @@ public class ClipboardSample extends Activity {
Spinner mSpinner;
TextView mMimeTypes;
- EditText mEditText;
+ TextView mDataText;
CharSequence mStyledText;
String mPlainText;
+ String mHtmlText;
+ String mHtmlPlainText;
ClipboardManager.OnPrimaryClipChangedListener mPrimaryChangeListener
= new ClipboardManager.OnPrimaryClipChangedListener() {
public void onPrimaryClipChanged() {
- updateClipData();
+ updateClipData(true);
}
};
@@ -70,6 +72,11 @@ public class ClipboardSample extends Activity {
tv = (TextView)findViewById(R.id.plain_text);
tv.setText(mPlainText);
+ mHtmlText = "<b>Link:</b> <a href=\"http://www.android.com\">Android</a>";
+ mHtmlPlainText = "Link: http://www.android.com";
+ tv = (TextView)findViewById(R.id.html_text);
+ tv.setText(mHtmlText);
+
mSpinner = (Spinner) findViewById(R.id.clip_type);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.clip_data_types, android.R.layout.simple_spinner_item);
@@ -79,16 +86,17 @@ public class ClipboardSample extends Activity {
new OnItemSelectedListener() {
public void onItemSelected(
AdapterView<?> parent, View view, int position, long id) {
+ updateClipData(false);
}
public void onNothingSelected(AdapterView<?> parent) {
}
});
mMimeTypes = (TextView)findViewById(R.id.clip_mime_types);
- mEditText = (EditText)findViewById(R.id.clip_text);
+ mDataText = (TextView)findViewById(R.id.clip_text);
mClipboard.addPrimaryClipChangedListener(mPrimaryChangeListener);
- updateClipData();
+ updateClipData(true);
}
@Override
@@ -105,6 +113,10 @@ public class ClipboardSample extends Activity {
mClipboard.setPrimaryClip(ClipData.newPlainText("Styled Text", mPlainText));
}
+ public void pasteHtmlText(View button) {
+ mClipboard.setPrimaryClip(ClipData.newHtmlText("HTML Text", mHtmlPlainText, mHtmlText));
+ }
+
public void pasteIntent(View button) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.android.com/"));
mClipboard.setPrimaryClip(ClipData.newIntent("VIEW intent", intent));
@@ -114,31 +126,74 @@ public class ClipboardSample extends Activity {
mClipboard.setPrimaryClip(ClipData.newRawUri("URI", Uri.parse("http://www.android.com/")));
}
- void updateClipData() {
+ void updateClipData(boolean updateType) {
ClipData clip = mClipboard.getPrimaryClip();
String[] mimeTypes = clip != null ? clip.getDescription().filterMimeTypes("*/*") : null;
- mMimeTypes.setText("");
if (mimeTypes != null) {
+ mMimeTypes.setText("");
for (int i=0; i<mimeTypes.length; i++) {
+ if (i > 0) {
+ mMimeTypes.append("\n");
+ }
mMimeTypes.append(mimeTypes[i]);
- mMimeTypes.append("\n");
}
+ } else {
+ mMimeTypes.setText("NULL");
}
- if (clip == null) {
- mSpinner.setSelection(0);
- mEditText.setText("");
- } else if (clip.getItemAt(0).getText() != null) {
- mSpinner.setSelection(1);
- mEditText.setText(clip.getItemAt(0).getText());
- } else if (clip.getItemAt(0).getIntent() != null) {
- mSpinner.setSelection(2);
- mEditText.setText(clip.getItemAt(0).getIntent().toUri(0));
- } else if (clip.getItemAt(0).getUri() != null) {
- mSpinner.setSelection(3);
- mEditText.setText(clip.getItemAt(0).getUri().toString());
+
+ if (updateType) {
+ if (clip != null) {
+ ClipData.Item item = clip.getItemAt(0);
+ if (item.getHtmlText() != null) {
+ mSpinner.setSelection(2);
+ } else if (item.getText() != null) {
+ mSpinner.setSelection(1);
+ } else if (item.getIntent() != null) {
+ mSpinner.setSelection(3);
+ } else if (item.getUri() != null) {
+ mSpinner.setSelection(4);
+ } else {
+ mSpinner.setSelection(0);
+ }
+ } else {
+ mSpinner.setSelection(0);
+ }
+ }
+
+ if (clip != null) {
+ ClipData.Item item = clip.getItemAt(0);
+ switch (mSpinner.getSelectedItemPosition()) {
+ case 0:
+ mDataText.setText("(No data)");
+ break;
+ case 1:
+ mDataText.setText(item.getText());
+ break;
+ case 2:
+ mDataText.setText(item.getHtmlText());
+ break;
+ case 3:
+ mDataText.setText(item.getIntent().toUri(0));
+ break;
+ case 4:
+ mDataText.setText(item.getUri().toString());
+ break;
+ case 5:
+ mDataText.setText(item.coerceToText(this));
+ break;
+ case 6:
+ mDataText.setText(item.coerceToStyledText(this));
+ break;
+ case 7:
+ mDataText.setText(item.coerceToHtmlText(this));
+ break;
+ default:
+ mDataText.setText("Unknown option: " + mSpinner.getSelectedItemPosition());
+ break;
+ }
} else {
- mSpinner.setSelection(0);
- mEditText.setText("Clip containing no data");
+ mDataText.setText("(NULL clip)");
}
+ mDataText.setMovementMethod(LinkMovementMethod.getInstance());
}
}