Rest of cosmetic changes -- simpler, black theme with easier-to-touch buttons and...
[zxing.git] / android / src / com / google / zxing / client / android / CaptureActivity.java
index 6b58324..2154a88 100755 (executable)
@@ -16,6 +16,8 @@
 
 package com.google.zxing.client.android;
 
+import android.util.TypedValue;
+import android.widget.Toast;
 import com.google.zxing.BarcodeFormat;
 import com.google.zxing.Result;
 import com.google.zxing.ResultPoint;
@@ -49,10 +51,7 @@ import android.os.Message;
 import android.os.Vibrator;
 import android.preference.PreferenceManager;
 import android.text.ClipboardManager;
-import android.text.SpannableStringBuilder;
-import android.text.style.UnderlineSpan;
 import android.util.Log;
-import android.view.Gravity;
 import android.view.KeyEvent;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -117,6 +116,7 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
     ONE_D_FORMATS = new Vector<BarcodeFormat>(PRODUCT_FORMATS.size() + 3);
     ONE_D_FORMATS.addAll(PRODUCT_FORMATS);
     ONE_D_FORMATS.add(BarcodeFormat.CODE_39);
+    ONE_D_FORMATS.add(BarcodeFormat.CODE_93);
     ONE_D_FORMATS.add(BarcodeFormat.CODE_128);
     ONE_D_FORMATS.add(BarcodeFormat.ITF);
     QR_CODE_FORMATS = new Vector<BarcodeFormat>(1);
@@ -136,7 +136,6 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
   private CaptureActivityHandler handler;
 
   private ViewfinderView viewfinderView;
-  private View statusView;
   private View resultView;
   private MediaPlayer mediaPlayer;
   private Result lastResult;
@@ -182,7 +181,6 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
     CameraManager.init(getApplication());
     viewfinderView = (ViewfinderView) findViewById(R.id.viewfinder_view);
     resultView = findViewById(R.id.result_view);
-    statusView = findViewById(R.id.status_view);
     handler = null;
     lastResult = null;
     hasSurface = false;
@@ -190,6 +188,8 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
     historyManager.trimHistory();
 
     showHelpOnFirstLaunch();
+
+    Toast.makeText(this, R.string.msg_default_status, Toast.LENGTH_LONG).show();
   }
 
   @Override
@@ -395,7 +395,7 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
         AlertDialog.Builder builder = new AlertDialog.Builder(this);
         builder.setTitle(getString(R.string.title_about) + versionName);
         builder.setMessage(getString(R.string.msg_about) + "\n\n" + getString(R.string.zxing_url));
-        builder.setIcon(R.drawable.zxing_icon);
+        builder.setIcon(R.drawable.launcher_icon);
         builder.setPositiveButton(R.string.button_open_browser, aboutListener);
         builder.setNegativeButton(R.string.button_cancel, null);
         builder.show();
@@ -492,13 +492,12 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
 
   // Put up our own UI for how to handle the decoded contents.
   private void handleDecodeInternally(Result rawResult, Bitmap barcode) {
-    statusView.setVisibility(View.GONE);
     viewfinderView.setVisibility(View.GONE);
     resultView.setVisibility(View.VISIBLE);
 
     ImageView barcodeImageView = (ImageView) findViewById(R.id.barcode_image_view);
     if (barcode == null) {
-      barcodeImageView.setImageResource(R.drawable.zxing_icon);
+      barcodeImageView.setImageResource(R.drawable.launcher_icon_large);
     } else {
       barcodeImageView.setImageBitmap(barcode);
     }
@@ -506,28 +505,25 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
 
     TextView formatTextView = (TextView) findViewById(R.id.format_text_view);
     formatTextView.setVisibility(View.VISIBLE);
-    formatTextView.setText(getString(R.string.msg_default_format) + ": " +
-        rawResult.getBarcodeFormat().toString());
+    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(getString(R.string.msg_default_type) + ": " +
-        resultHandler.getType().toString());
+    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(getString(R.string.msg_default_time) + ": " + formattedTime);
+    timeTextView.setText(formattedTime);
 
     TextView contentsTextView = (TextView) findViewById(R.id.contents_text_view);
-    CharSequence title = getString(resultHandler.getDisplayTitle());
-    SpannableStringBuilder styled = new SpannableStringBuilder(title + "\n\n");
-    styled.setSpan(new UnderlineSpan(), 0, title.length(), 0);
     CharSequence displayContents = resultHandler.getDisplayContents();
-    styled.append(displayContents);
-    contentsTextView.setText(styled);
+    contentsTextView.setText(displayContents);
+    // Crudely scale betweeen 22 and 48 -- bigger font for shorter text
+    int scaledSize = Math.max(22, 48 - displayContents.length() / 4);
+    contentsTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, scaledSize);
 
     int buttonCount = resultHandler.getButtonCount();
     ViewGroup buttonView = (ViewGroup) findViewById(R.id.result_button_view);
@@ -557,12 +553,7 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
     // barcode was found (e.g. contact info) rather than the full contents, which they won't
     // have time to read.
     ResultHandler resultHandler = ResultHandlerFactory.makeResultHandler(this, rawResult);
-    TextView textView = (TextView) findViewById(R.id.status_text_view);
-    textView.setGravity(Gravity.CENTER);
-    textView.setTextSize(18.0f);
-    textView.setText(getString(resultHandler.getDisplayTitle()));
-
-    statusView.setBackgroundColor(getResources().getColor(R.color.transparent));
+    Toast.makeText(this, resultHandler.getDisplayTitle(), Toast.LENGTH_SHORT).show();
 
     if (copyToClipboard) {
       ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
@@ -672,7 +663,7 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
     } catch (RuntimeException e) {
       // Barcode Scanner has seen crashes in the wild of this variety:
       // java.?lang.?RuntimeException: Fail to connect to camera service
-      Log.e(TAG, e.toString());
+      Log.w(TAG, "Unexpected error initializating camera", e);
       displayFrameworkBugMessageAndExit();
       return;
     }
@@ -696,14 +687,7 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
 
   private void resetStatusView() {
     resultView.setVisibility(View.GONE);
-    statusView.setVisibility(View.VISIBLE);
-    statusView.setBackgroundColor(getResources().getColor(R.color.status_view));
     viewfinderView.setVisibility(View.VISIBLE);
-
-    TextView textView = (TextView) findViewById(R.id.status_text_view);
-    textView.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL);
-    textView.setTextSize(14.0f);
-    textView.setText(R.string.msg_default_status);
     lastResult = null;
   }