package com.almalence.plugins.vf.barcodescanner;
import java.io.File;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Rect;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.ImageView;
import android.widget.TextView;
/* <!-- +++
import com.almalence.opencam_plus.ApplicationScreen;
import com.almalence.opencam_plus.R;
+++ --> */
//<!-- -+-
import com.almalence.opencam.ApplicationScreen;
import com.almalence.opencam.R;
//-+- -->
import com.almalence.plugins.vf.barcodescanner.result.ResultButtonListener;
import com.almalence.plugins.vf.barcodescanner.result.ResultHandler;
import com.almalence.plugins.vf.barcodescanner.result.ResultHandlerFactory;
import com.almalence.ui.RotateDialog;
import com.almalence.ui.RotateLayout;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.Result;
public class BarcodeViewDialog extends RotateDialog
{
Barcode barcode;
public BarcodeViewDialog(Context context, Barcode barcode)
{
super(context);
this.barcode = barcode;
requestWindowFeature(Window.FEATURE_NO_TITLE);
Rect displayRectangle = new Rect();
Window window = ApplicationScreen.instance.getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(displayRectangle);
// inflate and adjust layout
LayoutInflater inflater = (LayoutInflater) ApplicationScreen.instance.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
layoutView = inflater.inflate(R.layout.plugin_vf_barcodescanner_view_layout, null);
layoutView.setMinimumWidth((int) (displayRectangle.width() * 0.7f));
layoutView.setMinimumHeight((int) (displayRectangle.height() * 0.7f));
setContentView(layoutView);
initControls();
}
private void initControls()
{
Result result = new Result(barcode.getData(), null, null, BarcodeFormat.valueOf(barcode.getFormat()), barcode
.getDate().getTime());
ResultHandler resultHandler = ResultHandlerFactory.makeResultHandler(ApplicationScreen.instance, result);
// set the custom dialog components - text, image and button
TextView dataTextView = (TextView) findViewById(R.id.decodedDataTextView);
dataTextView.setText(barcode.getData());
TextView formatTextView = (TextView) findViewById(R.id.formatTextView);
formatTextView.setText(barcode.getFormat());
TextView typeTextView = (TextView) findViewById(R.id.typeTextView);
typeTextView.setText(barcode.getType());
TextView timeTextView = (TextView) findViewById(R.id.timeTextView);
timeTextView.setText(barcode.getDate().toString());
ImageView barcodeImageView = (ImageView) findViewById(R.id.barcodePhotoImageView);
File imgFile = null;
if (barcode.getFile() != null)
{
imgFile = new File(barcode.getFile());
}
if (imgFile != null && imgFile.exists())
{
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
barcodeImageView.setImageBitmap(myBitmap);
} else
{
barcodeImageView.setImageDrawable(ApplicationScreen.getAppResources().getDrawable(R.drawable.gui_almalence_settings_scene_barcode_on));
}
int buttonCount = resultHandler.getButtonCount();
ViewGroup buttonView = (ViewGroup) findViewById(R.id.result_button_view);
buttonView.requestFocus();
for (int x = 0; x < ResultHandler.MAX_BUTTON_COUNT; x++)
{
TextView button = (TextView) buttonView.getChildAt(x);
if (x < buttonCount)
{
button.setVisibility(View.VISIBLE);
button.setText(resultHandler.getButtonText(x));
button.setOnClickListener(new ResultButtonListener(resultHandler, x));
} else
{
button.setVisibility(View.GONE);
}
}
}
// Rotate the view counter-clockwise
public void setRotate(int degree)
{
degree = degree >= 0 ? degree % 360 : degree % 360 + 360;
if (degree == currentOrientation)
{
return;
}
currentOrientation = degree;
LayoutInflater inflater = (LayoutInflater) ApplicationScreen.instance.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
if (degree == 90 || degree == 270)
{
layoutView = inflater.inflate(R.layout.plugin_vf_barcodescanner_view_layout_landscape, null);
setContentView(layoutView);
RotateLayout r = (RotateLayout) findViewById(R.id.rotateLayout);
r.setAngle(degree);
r.invalidate();
} else
{
Rect displayRectangle = new Rect();
Window window = ApplicationScreen.instance.getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(displayRectangle);
layoutView = inflater.inflate(R.layout.plugin_vf_barcodescanner_view_layout, null);
layoutView.setMinimumWidth((int) (displayRectangle.width() * 0.7f));
layoutView.setMinimumHeight((int) (displayRectangle.height() * 0.7f));
setContentView(layoutView);
layoutView.setRotation(degree);
}
initControls();
}
}