iOS & Android fix and upgrade
iOS: - x86_64 header fixing - sight adding Android: - Bug fix no params NullPointerException - sight adding
This commit is contained in:
parent
0f8fe5b1f7
commit
76246b80ed
@ -27,6 +27,7 @@ Arguments:
|
|||||||
text_instructions: "OPTIONAL Instruction Text - default = 'Please point your camera at the QR code.'", // Android only
|
text_instructions: "OPTIONAL Instruction Text - default = 'Please point your camera at the QR code.'", // Android only
|
||||||
camera: "front" || "back" // defaults to "back"
|
camera: "front" || "back" // defaults to "back"
|
||||||
flash: "on" || "off" || "auto" // defaults to "auto". See Quirks
|
flash: "on" || "off" || "auto" // defaults to "auto". See Quirks
|
||||||
|
drawSight : "true" || "false" //default use true, create a red/green sight to center barcode
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -8,6 +8,10 @@ import org.json.JSONObject;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
|
import android.graphics.Color;
|
||||||
|
import android.graphics.Paint;
|
||||||
|
import android.graphics.Paint.Style;
|
||||||
|
import android.graphics.drawable.ShapeDrawable;
|
||||||
import android.hardware.Camera;
|
import android.hardware.Camera;
|
||||||
import android.hardware.Camera.CameraInfo;
|
import android.hardware.Camera.CameraInfo;
|
||||||
import android.hardware.Camera.PreviewCallback;
|
import android.hardware.Camera.PreviewCallback;
|
||||||
@ -18,8 +22,12 @@ import android.util.Log;
|
|||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.SurfaceHolder;
|
import android.view.SurfaceHolder;
|
||||||
import android.view.SurfaceView;
|
import android.view.SurfaceView;
|
||||||
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.view.ViewGroup.LayoutParams;
|
||||||
|
import android.view.ViewTreeObserver;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
|
import android.widget.RelativeLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import net.sourceforge.zbar.ImageScanner;
|
import net.sourceforge.zbar.ImageScanner;
|
||||||
@ -54,6 +62,16 @@ implements SurfaceHolder.Callback {
|
|||||||
String whichCamera;
|
String whichCamera;
|
||||||
String flashMode;
|
String flashMode;
|
||||||
|
|
||||||
|
|
||||||
|
/* START - ALMAVIVA */
|
||||||
|
RelativeLayout relativeLayout;
|
||||||
|
RelativeLayout line;
|
||||||
|
View parent;
|
||||||
|
int width;
|
||||||
|
int height;
|
||||||
|
boolean drawSight = false;
|
||||||
|
/* END - ALMAVIVA */
|
||||||
|
|
||||||
// For retrieving R.* resources, from the actual app package
|
// For retrieving R.* resources, from the actual app package
|
||||||
// (we can't use actual.application.package.R.* in our code as we
|
// (we can't use actual.application.package.R.* in our code as we
|
||||||
// don't know the applciation package name when writing this plugin).
|
// don't know the applciation package name when writing this plugin).
|
||||||
@ -69,6 +87,9 @@ implements SurfaceHolder.Callback {
|
|||||||
|
|
||||||
// Activity Lifecycle ----------------------------------------------
|
// Activity Lifecycle ----------------------------------------------
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see android.app.Activity#onCreate(android.os.Bundle)
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void onCreate (Bundle savedInstanceState)
|
public void onCreate (Bundle savedInstanceState)
|
||||||
{
|
{
|
||||||
@ -84,6 +105,7 @@ implements SurfaceHolder.Callback {
|
|||||||
String textInstructions = params.optString("text_instructions");
|
String textInstructions = params.optString("text_instructions");
|
||||||
whichCamera = params.optString("camera");
|
whichCamera = params.optString("camera");
|
||||||
flashMode = params.optString("flash");
|
flashMode = params.optString("flash");
|
||||||
|
drawSight = params.optString("drawSight") != null ? Boolean.valueOf(params.optString("drawSight").toLowerCase()) : false;
|
||||||
|
|
||||||
// Initiate instance variables
|
// Initiate instance variables
|
||||||
autoFocusHandler = new Handler();
|
autoFocusHandler = new Handler();
|
||||||
@ -120,6 +142,65 @@ implements SurfaceHolder.Callback {
|
|||||||
((FrameLayout) findViewById(getResourceId("id/csZbarScannerView"))).addView(scannerSurface);
|
((FrameLayout) findViewById(getResourceId("id/csZbarScannerView"))).addView(scannerSurface);
|
||||||
findViewById(getResourceId("id/csZbarScannerTitle")).bringToFront();
|
findViewById(getResourceId("id/csZbarScannerTitle")).bringToFront();
|
||||||
findViewById(getResourceId("id/csZbarScannerInstructions")).bringToFront();
|
findViewById(getResourceId("id/csZbarScannerInstructions")).bringToFront();
|
||||||
|
|
||||||
|
/* START - ALMAVIVA */
|
||||||
|
// Creating a new RelativeLayout
|
||||||
|
if(drawSight){
|
||||||
|
relativeLayout = new RelativeLayout(this);
|
||||||
|
line = new RelativeLayout(this);
|
||||||
|
|
||||||
|
// Defining the RelativeLayout layout parameters.
|
||||||
|
// In this case I want to fill its parent
|
||||||
|
|
||||||
|
parent = ((FrameLayout) findViewById(getResourceId("id/csZbarScannerView")));
|
||||||
|
|
||||||
|
|
||||||
|
parent.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onGlobalLayout() {
|
||||||
|
// Ensure you call it only once :
|
||||||
|
parent.getViewTreeObserver().removeGlobalOnLayoutListener(this);
|
||||||
|
|
||||||
|
width = parent.getWidth();
|
||||||
|
height = parent.getHeight();
|
||||||
|
double dim = width < height ? (width / 1.2) : (height / 1.2);
|
||||||
|
RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams((int)dim,(int)dim);
|
||||||
|
rlp.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
|
||||||
|
rlp.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
|
||||||
|
rlp.addRule(RelativeLayout.CENTER_VERTICAL, RelativeLayout.TRUE);
|
||||||
|
relativeLayout.setGravity(Gravity.CENTER);
|
||||||
|
relativeLayout.setLayoutParams(rlp);
|
||||||
|
relativeLayout.invalidate();
|
||||||
|
relativeLayout.requestLayout();
|
||||||
|
|
||||||
|
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(((int)dim - 16),8);
|
||||||
|
lp.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
|
||||||
|
lp.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
|
||||||
|
lp.addRule(RelativeLayout.CENTER_VERTICAL, RelativeLayout.TRUE);
|
||||||
|
line.setGravity(Gravity.CENTER);
|
||||||
|
line.setLayoutParams(lp);
|
||||||
|
line.setBackgroundColor(Color.RED);
|
||||||
|
line.invalidate();
|
||||||
|
line.requestLayout();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
ShapeDrawable rectShapeDrawable = new ShapeDrawable(); // pre defined class
|
||||||
|
// get paint
|
||||||
|
Paint paint = rectShapeDrawable.getPaint();
|
||||||
|
|
||||||
|
// set border color, stroke and stroke width
|
||||||
|
paint.setColor(Color.GREEN);
|
||||||
|
paint.setStyle(Style.STROKE);
|
||||||
|
paint.setStrokeWidth(8); // you can change the value of 5
|
||||||
|
relativeLayout.setBackgroundDrawable(rectShapeDrawable);
|
||||||
|
|
||||||
|
|
||||||
|
relativeLayout.addView(line);
|
||||||
|
((RelativeLayout) findViewById(getResourceId("id/csZbarScannerViewContainer"))).addView(relativeLayout);
|
||||||
|
}
|
||||||
|
/* END - ALMAVIVA */
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:id="@+id/csZbarScannerViewContainer"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent" >
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
android:id="@+id/csZbarScannerView"
|
android:id="@+id/csZbarScannerView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
@ -34,5 +39,6 @@
|
|||||||
android:background="@color/csZbarScannerTextBackground"
|
android:background="@color/csZbarScannerTextBackground"
|
||||||
android:fontFamily="sans-serif-light"
|
android:fontFamily="sans-serif-light"
|
||||||
android:text="@string/csZbarScannerInstructions" />
|
android:text="@string/csZbarScannerInstructions" />
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
</FrameLayout>
|
</RelativeLayout>
|
||||||
|
@ -61,8 +61,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Hack to hide the bottom bar's Info button... http://stackoverflow.com/a/16353530
|
// Hack to hide the bottom bar's Info button... http://stackoverflow.com/a/16353530
|
||||||
UIView *infoButton = [[[[[self.scanReader.view.subviews objectAtIndex:1] subviews] objectAtIndex:0] subviews] objectAtIndex:3];
|
//UIView *infoButton = [[[[[self.scanReader.view.subviews objectAtIndex:1] subviews] objectAtIndex:0] subviews] objectAtIndex:3];
|
||||||
[infoButton setHidden:YES];
|
//[infoButton setHidden:YES];
|
||||||
|
|
||||||
[self.viewController presentModalViewController: self.scanReader animated: YES];
|
[self.viewController presentModalViewController: self.scanReader animated: YES];
|
||||||
}
|
}
|
||||||
|
BIN
ios/libzbar.a
BIN
ios/libzbar.a
Binary file not shown.
Loading…
Reference in New Issue
Block a user