add some color
This commit is contained in:
parent
49b36cbae5
commit
c6c8df083b
2 changed files with 30 additions and 11 deletions
|
@ -9,6 +9,8 @@ import org.ligi.ticketviewer.helper.FileHelper;
|
||||||
import org.ligi.tracedroid.logging.Log;
|
import org.ligi.tracedroid.logging.Log;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* User: ligi
|
* User: ligi
|
||||||
|
@ -18,15 +20,13 @@ import java.io.File;
|
||||||
public class PassbookParser {
|
public class PassbookParser {
|
||||||
|
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
private String problem_str = "";
|
private String problem_str = "";
|
||||||
private boolean passbook_valid = true; // be positive
|
private boolean passbook_valid = true; // be positive
|
||||||
private String barcode_msg;
|
private String barcode_msg;
|
||||||
|
|
||||||
private Bitmap barcodeBitmap = null;
|
private Bitmap barcodeBitmap = null;
|
||||||
private com.google.zxing.BarcodeFormat barcodeFormat;
|
private com.google.zxing.BarcodeFormat barcodeFormat;
|
||||||
|
|
||||||
private Bitmap icon_bitmap;
|
private Bitmap icon_bitmap;
|
||||||
|
private int bgcolor;
|
||||||
|
|
||||||
public PassbookParser(String path) {
|
public PassbookParser(String path) {
|
||||||
|
|
||||||
|
@ -56,20 +56,36 @@ public class PassbookParser {
|
||||||
|
|
||||||
if (pass_json != null)
|
if (pass_json != null)
|
||||||
try {
|
try {
|
||||||
String color_str = pass_json.getString("backgroundColor");
|
bgcolor = parseColor(pass_json.getString("backgroundColor"));
|
||||||
|
|
||||||
Log.i("parsed color:" + color_str);
|
|
||||||
} catch (JSONException e) {
|
} catch (JSONException e) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Integer parseColor(String color_str) {
|
||||||
|
Pattern pattern = Pattern.compile("rgb *\\( *([0-9]+), *([0-9]+), *([0-9]+) *\\)");
|
||||||
|
Matcher matcher = pattern.matcher(color_str);
|
||||||
|
|
||||||
|
if (matcher.matches()) {
|
||||||
|
return (255 << 24 |
|
||||||
|
Integer.valueOf(matcher.group(1)) << 16 | // r
|
||||||
|
Integer.valueOf(matcher.group(2)) << 24 | // g
|
||||||
|
Integer.valueOf(matcher.group(3))); // b
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isValid() {
|
public boolean isValid() {
|
||||||
return passbook_valid;
|
return passbook_valid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Bitmap getBarcodeBitmap() {
|
public Bitmap getBarcodeBitmap() {
|
||||||
if (barcodeBitmap == null) {
|
if (barcodeBitmap == null) {
|
||||||
barcodeBitmap = BarcodeHelper.generateBarCode(barcode_msg, barcodeFormat);
|
if (barcode_msg != null && barcodeFormat != null)
|
||||||
|
barcodeBitmap = BarcodeHelper.generateBarCode(barcode_msg, barcodeFormat);
|
||||||
|
else
|
||||||
|
Log.w("Barcode msg or format is null");
|
||||||
}
|
}
|
||||||
return barcodeBitmap;
|
return barcodeBitmap;
|
||||||
}
|
}
|
||||||
|
@ -92,4 +108,8 @@ public class PassbookParser {
|
||||||
return icon_bitmap;
|
return icon_bitmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getBgcolor() {
|
||||||
|
return bgcolor;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,6 @@ import android.app.Dialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapFactory;
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
@ -280,6 +279,8 @@ public class TicketListActivity extends SherlockListActivity {
|
||||||
@Override
|
@Override
|
||||||
public View getView(int position, View convertView, ViewGroup parent) {
|
public View getView(int position, View convertView, ViewGroup parent) {
|
||||||
String mPath = path + "/" + passes[position];
|
String mPath = path + "/" + passes[position];
|
||||||
|
PassbookParser passbookParser = new PassbookParser(mPath);
|
||||||
|
|
||||||
View res = inflater.inflate(R.layout.pass_list_item, null);
|
View res = inflater.inflate(R.layout.pass_list_item, null);
|
||||||
TextView tv = (TextView) res.findViewById(R.id.label);
|
TextView tv = (TextView) res.findViewById(R.id.label);
|
||||||
TextView more_tv = (TextView) res.findViewById(R.id.descr);
|
TextView more_tv = (TextView) res.findViewById(R.id.descr);
|
||||||
|
@ -315,16 +316,14 @@ public class TicketListActivity extends SherlockListActivity {
|
||||||
int size = (int) getResources().getDimension(R.dimen.pass_icon_size);
|
int size = (int) getResources().getDimension(R.dimen.pass_icon_size);
|
||||||
ImageView icon_img = (ImageView) res.findViewById(R.id.icon);
|
ImageView icon_img = (ImageView) res.findViewById(R.id.icon);
|
||||||
if (path != null) {
|
if (path != null) {
|
||||||
Bitmap ico = BitmapFactory.decodeFile(mPath + "/logo@2x.png");
|
Bitmap ico = passbookParser.getIconBitmap();
|
||||||
|
|
||||||
if (ico == null)
|
|
||||||
ico = BitmapFactory.decodeFile(mPath + "/logo.png");
|
|
||||||
|
|
||||||
if (ico != null)
|
if (ico != null)
|
||||||
icon_img.setImageBitmap(Bitmap.createScaledBitmap(ico, size, size, false));
|
icon_img.setImageBitmap(Bitmap.createScaledBitmap(ico, size, size, false));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
icon_img.setBackgroundColor(passbookParser.getBgcolor());
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue