* commit '831ae650bb03e88391ecc3761b93b4f858c866ac': Update sample browseables
This commit is contained in:
@@ -123,6 +123,12 @@ public class NfcProvisioningFragment extends Fragment implements
|
|||||||
properties.put(e.getKey(), value);
|
properties.put(e.getKey(), value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Make sure to put local time in the properties. This is necessary on some devices to
|
||||||
|
// reliably download the device owner APK from an HTTPS connection.
|
||||||
|
if (!properties.contains(DevicePolicyManager.EXTRA_PROVISIONING_LOCAL_TIME)) {
|
||||||
|
properties.put(DevicePolicyManager.EXTRA_PROVISIONING_LOCAL_TIME,
|
||||||
|
String.valueOf(System.currentTimeMillis()));
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
properties.store(stream, getString(R.string.nfc_comment));
|
properties.store(stream, getString(R.string.nfc_comment));
|
||||||
NdefRecord record = NdefRecord.createMime(
|
NdefRecord record = NdefRecord.createMime(
|
||||||
|
|||||||
@@ -117,69 +117,27 @@ public class StorageClientFragment extends Fragment {
|
|||||||
// Since the URI is to an image, create and show a DialogFragment to display the
|
// Since the URI is to an image, create and show a DialogFragment to display the
|
||||||
// image to the user.
|
// image to the user.
|
||||||
FragmentManager fm = getActivity().getSupportFragmentManager();
|
FragmentManager fm = getActivity().getSupportFragmentManager();
|
||||||
ImageDialogFragment imageDialog = new ImageDialogFragment(uri);
|
ImageDialogFragment imageDialog = new ImageDialogFragment();
|
||||||
|
Bundle fragmentArguments = new Bundle();
|
||||||
|
fragmentArguments.putParcelable("URI", uri);
|
||||||
|
imageDialog.setArguments(fragmentArguments);
|
||||||
imageDialog.show(fm, "image_dialog");
|
imageDialog.show(fm, "image_dialog");
|
||||||
}
|
}
|
||||||
// END_INCLUDE (create_show_image_dialog)
|
// END_INCLUDE (create_show_image_dialog)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Grabs metadata for a document specified by URI, logs it to the screen.
|
|
||||||
*
|
|
||||||
* @param uri The uri for the document whose metadata should be printed.
|
|
||||||
*/
|
|
||||||
public void dumpImageMetaData(Uri uri) {
|
|
||||||
// BEGIN_INCLUDE (dump_metadata)
|
|
||||||
|
|
||||||
// The query, since it only applies to a single document, will only return one row.
|
|
||||||
// no need to filter, sort, or select fields, since we want all fields for one
|
|
||||||
// document.
|
|
||||||
Cursor cursor = getActivity().getContentResolver()
|
|
||||||
.query(uri, null, null, null, null, null);
|
|
||||||
|
|
||||||
try {
|
|
||||||
// moveToFirst() returns false if the cursor has 0 rows. Very handy for
|
|
||||||
// "if there's anything to look at, look at it" conditionals.
|
|
||||||
if (cursor != null && cursor.moveToFirst()) {
|
|
||||||
|
|
||||||
// Note it's called "Display Name". This is provider-specific, and
|
|
||||||
// might not necessarily be the file name.
|
|
||||||
String displayName = cursor.getString(
|
|
||||||
cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
|
|
||||||
Log.i(TAG, "Display Name: " + displayName);
|
|
||||||
|
|
||||||
int sizeIndex = cursor.getColumnIndex(OpenableColumns.SIZE);
|
|
||||||
// If the size is unknown, the value stored is null. But since an int can't be
|
|
||||||
// null in java, the behavior is implementation-specific, which is just a fancy
|
|
||||||
// term for "unpredictable". So as a rule, check if it's null before assigning
|
|
||||||
// to an int. This will happen often: The storage API allows for remote
|
|
||||||
// files, whose size might not be locally known.
|
|
||||||
String size = null;
|
|
||||||
if (!cursor.isNull(sizeIndex)) {
|
|
||||||
// Technically the column stores an int, but cursor.getString will do the
|
|
||||||
// conversion automatically.
|
|
||||||
size = cursor.getString(sizeIndex);
|
|
||||||
} else {
|
|
||||||
size = "Unknown";
|
|
||||||
}
|
|
||||||
Log.i(TAG, "Size: " + size);
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
cursor.close();
|
|
||||||
}
|
|
||||||
// END_INCLUDE (dump_metadata)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DialogFragment which displays an image, given a URI.
|
* DialogFragment which displays an image, given a URI.
|
||||||
*/
|
*/
|
||||||
private class ImageDialogFragment extends DialogFragment {
|
public static class ImageDialogFragment extends DialogFragment {
|
||||||
private Dialog mDialog;
|
private Dialog mDialog;
|
||||||
private Uri mUri;
|
private Uri mUri;
|
||||||
|
|
||||||
public ImageDialogFragment(Uri uri) {
|
@Override
|
||||||
super();
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
mUri = uri;
|
super.onCreate(savedInstanceState);
|
||||||
|
mUri = getArguments().getParcelable("URI");
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Create a Bitmap from the URI for that image and return it.
|
/** Create a Bitmap from the URI for that image and return it.
|
||||||
@@ -251,5 +209,54 @@ public class StorageClientFragment extends Fragment {
|
|||||||
getDialog().dismiss();
|
getDialog().dismiss();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Grabs metadata for a document specified by URI, logs it to the screen.
|
||||||
|
*
|
||||||
|
* @param uri The uri for the document whose metadata should be printed.
|
||||||
|
*/
|
||||||
|
public void dumpImageMetaData(Uri uri) {
|
||||||
|
// BEGIN_INCLUDE (dump_metadata)
|
||||||
|
|
||||||
|
// The query, since it only applies to a single document, will only return one row.
|
||||||
|
// no need to filter, sort, or select fields, since we want all fields for one
|
||||||
|
// document.
|
||||||
|
Cursor cursor = getActivity().getContentResolver()
|
||||||
|
.query(uri, null, null, null, null, null);
|
||||||
|
|
||||||
|
try {
|
||||||
|
// moveToFirst() returns false if the cursor has 0 rows. Very handy for
|
||||||
|
// "if there's anything to look at, look at it" conditionals.
|
||||||
|
if (cursor != null && cursor.moveToFirst()) {
|
||||||
|
|
||||||
|
// Note it's called "Display Name". This is provider-specific, and
|
||||||
|
// might not necessarily be the file name.
|
||||||
|
String displayName = cursor.getString(
|
||||||
|
cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
|
||||||
|
Log.i(TAG, "Display Name: " + displayName);
|
||||||
|
|
||||||
|
int sizeIndex = cursor.getColumnIndex(OpenableColumns.SIZE);
|
||||||
|
// If the size is unknown, the value stored is null. But since an int can't be
|
||||||
|
// null in java, the behavior is implementation-specific, which is just a fancy
|
||||||
|
// term for "unpredictable". So as a rule, check if it's null before assigning
|
||||||
|
// to an int. This will happen often: The storage API allows for remote
|
||||||
|
// files, whose size might not be locally known.
|
||||||
|
String size = null;
|
||||||
|
if (!cursor.isNull(sizeIndex)) {
|
||||||
|
// Technically the column stores an int, but cursor.getString will do the
|
||||||
|
// conversion automatically.
|
||||||
|
size = cursor.getString(sizeIndex);
|
||||||
|
} else {
|
||||||
|
size = "Unknown";
|
||||||
|
}
|
||||||
|
Log.i(TAG, "Size: " + size);
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
if (cursor != null) {
|
||||||
|
cursor.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// END_INCLUDE (dump_metadata)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user