X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=android%2Fsrc%2Fcom%2Fgoogle%2Fzxing%2Fclient%2Fandroid%2FCaptureActivity.java;fp=android%2Fsrc%2Fcom%2Fgoogle%2Fzxing%2Fclient%2Fandroid%2FCaptureActivity.java;h=fbdb29d5c59a9bb0bd124bde5b190a308b755a9f;hb=9ceee6853d82d86e881fc3d6d7928ddd47df4cd0;hp=13323d367b99af6ef653a91a41f7a49e1274c206;hpb=adcf14bdcc63444ae72f90b5f40c2a01c585fdea;p=zxing.git diff --git a/android/src/com/google/zxing/client/android/CaptureActivity.java b/android/src/com/google/zxing/client/android/CaptureActivity.java index 13323d36..fbdb29d5 100755 --- a/android/src/com/google/zxing/client/android/CaptureActivity.java +++ b/android/src/com/google/zxing/client/android/CaptureActivity.java @@ -19,6 +19,7 @@ package com.google.zxing.client.android; import android.util.TypedValue; import com.google.zxing.BarcodeFormat; import com.google.zxing.Result; +import com.google.zxing.ResultMetadataType; import com.google.zxing.ResultPoint; import com.google.zxing.client.android.camera.CameraManager; import com.google.zxing.client.android.history.HistoryManager; @@ -66,8 +67,12 @@ import android.widget.TextView; import java.io.IOException; import java.text.DateFormat; import java.util.Arrays; +import java.util.HashSet; +import java.util.Hashtable; import java.util.List; import java.util.Date; +import java.util.Map; +import java.util.Set; import java.util.Vector; import java.util.regex.Pattern; @@ -125,6 +130,14 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal ALL_FORMATS.addAll(QR_CODE_FORMATS); } + private static final Set DISPLAYABLE_METADATA_TYPES; + static { + DISPLAYABLE_METADATA_TYPES = new HashSet(3); + DISPLAYABLE_METADATA_TYPES.add(ResultMetadataType.ISSUE_NUMBER); + DISPLAYABLE_METADATA_TYPES.add(ResultMetadataType.SUGGESTED_PRICE); + DISPLAYABLE_METADATA_TYPES.add(ResultMetadataType.ERROR_CORRECTION_LEVEL); + } + private enum Source { NATIVE_APP_INTENT, PRODUCT_SEARCH_LINK, @@ -504,20 +517,39 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal barcodeImageView.setVisibility(View.VISIBLE); TextView formatTextView = (TextView) findViewById(R.id.format_text_view); - formatTextView.setVisibility(View.VISIBLE); formatTextView.setText(rawResult.getBarcodeFormat().toString()); ResultHandler resultHandler = ResultHandlerFactory.makeResultHandler(this, rawResult); TextView typeTextView = (TextView) findViewById(R.id.type_text_view); - typeTextView.setVisibility(View.VISIBLE); typeTextView.setText(resultHandler.getType().toString()); DateFormat formatter = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); String formattedTime = formatter.format(new Date(rawResult.getTimestamp())); TextView timeTextView = (TextView) findViewById(R.id.time_text_view); - timeTextView.setVisibility(View.VISIBLE); timeTextView.setText(formattedTime); + + TextView metaTextView = (TextView) findViewById(R.id.meta_text_view); + View metaTextViewLabel = findViewById(R.id.meta_text_view_label); + metaTextView.setVisibility(View.GONE); + metaTextViewLabel.setVisibility(View.GONE); + Map metadata = + (Map) rawResult.getResultMetadata(); + if (metadata != null) { + StringBuilder metadataText = new StringBuilder(20); + for (Map.Entry entry : metadata.entrySet()) { + if (DISPLAYABLE_METADATA_TYPES.contains(entry.getKey())) { + metadataText.append(entry.getValue()).append('\n'); + } + } + if (metadataText.length() > 0) { + metadataText.setLength(metadataText.length() - 1); + metaTextView.setText(metadataText); + metaTextView.setVisibility(View.VISIBLE); + metaTextViewLabel.setVisibility(View.VISIBLE); + } + } + TextView contentsTextView = (TextView) findViewById(R.id.contents_text_view); CharSequence displayContents = resultHandler.getDisplayContents(); contentsTextView.setText(displayContents);