Created
May 31, 2019 19:00
-
-
Save Ayyagaries/89be3150ac1436c22c8b4140741e508b to your computer and use it in GitHub Desktop.
jobs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.intellicentrics.sec3ure_badge; | |
import android.content.Context; | |
import android.graphics.Bitmap; | |
import android.graphics.Color; | |
import android.util.Log; | |
import com.ix.ebadgesdk.bean.ImageConfig; | |
import com.ix.ebadgesdk.bean.ImageData; | |
import java.nio.ByteBuffer; | |
import java.text.ParseException; | |
import java.text.SimpleDateFormat; | |
import java.util.ArrayList; | |
import java.util.Calendar; | |
import java.util.Date; | |
import java.util.Iterator; | |
import java.util.List; | |
public class BadgeInfoPrep { | |
private Context context; | |
static final int SEND_IMAGE =0; | |
private final int CHECKIN_PAGE_ID=1; | |
private final int CHECKOUT_PAGE_ID=0; | |
static final long ONE_MINUTE_IN_MILLIS=60000; | |
static final int SET_PAGE = 1; | |
static final int REFRESH_PAGE = 2; | |
static final int CLEAR_ID=3; | |
static final int CLEAR_ALL=4; | |
private ArrayList<BitmapInfo> list ; | |
private ArrayList<LongTermAssets> longTermAssets; | |
private String toDo; | |
ArrayList<ebadgeJob> jobs; | |
public BadgeInfoPrep(ArrayList<BitmapInfo> list, ArrayList<LongTermAssets> longTermAssets,String todo) { | |
this.list=list; | |
this.longTermAssets=longTermAssets; | |
this.toDo=todo; | |
setPageInfo(); | |
} | |
private void setPageInfo(){ | |
jobs= new ArrayList<>(); | |
ebadgeJob job ; | |
ArrayList<Integer> idsTodelete=new ArrayList<Integer>(); | |
if(list.size()>0) { | |
for (int i = 0; i < list.size(); i++) { | |
//if(list.get(i).getShouldDeleteImage()){ | |
idsTodelete.add(list.get(i).getImageid()); | |
// } | |
} | |
Log.d("TEST","The size of the image ids to delete are " +idsTodelete.size()); | |
if(idsTodelete.size()>0){ | |
Log.d("TEST","I am deleting this image with ID " +idsTodelete.size()); | |
job = new ebadgeJob(); | |
job.jobType = CLEAR_ID; | |
job.id_list = toArray(idsTodelete); | |
jobs.add(job); | |
} | |
Log.d("TEST","The size of the image that changed " +list.size()); | |
for(int i=0;i<list.size();i++){ | |
ImageData id = sendImgHere(bitmapTo8BitImage(list.get(i).getImageBitmap()),list.get(i).getImageid(), list.get(i).getImageswidth(), list.get(i).getImageHeight(), true); | |
// sending the images | |
job=new ebadgeJob(); | |
job.jobType=SEND_IMAGE; | |
job.imageData = id; | |
jobs.add(job); | |
} | |
} | |
Log.d("TEST", "jobs are " +jobs.toString()); | |
Calendar date = Calendar.getInstance(); | |
long t= date.getTimeInMillis(); | |
Date afterAddingTenMins=new Date(t + (5 * ONE_MINUTE_IN_MILLIS)); | |
Log.d("TEST", "Date after adding 5 min is " +afterAddingTenMins); | |
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); | |
Date d = new Date(); | |
try { | |
d = sdf.parse("20191010111213"); | |
} catch (ParseException ex) { | |
Log.v("Exception", ex.getLocalizedMessage()); | |
} | |
//set the page | |
job=new ebadgeJob(); | |
job.jobType=SET_PAGE; | |
if(toDo.equals("checkin")){ | |
job.pageId=1; | |
job.expireTime=afterAddingTenMins; | |
}else if(toDo.equals("checkout")){ | |
job.pageId=0; | |
job.expireTime= d; | |
} | |
//job.expireTime=d; | |
job.timeout=0; | |
job.imageConfig= setpageInfo(list,longTermAssets); | |
jobs.add(job); | |
//refresh the page | |
job = new ebadgeJob(); | |
job.jobType=REFRESH_PAGE; | |
if(toDo.equals("checkin")){ | |
job.pageId=1; | |
}else if(toDo.equals("checkout")){ | |
job.pageId=0; | |
} | |
jobs.add(job); | |
} | |
int[] toArray(List<Integer> list) { | |
int[] ret = new int[list.size()]; | |
int i = 0; | |
for (Iterator<Integer> it = list.iterator(); | |
it.hasNext(); | |
ret[i++] = it.next()) | |
; | |
return ret; | |
} | |
private ImageData sendImgHere(byte[] imgBuffer, int imageId, int width, int height, boolean dithering) { | |
Log.d("TEST" , " I am sending this image " + imageId); | |
ImageData imageData = new ImageData(); | |
imageData.id = imageId; | |
imageData.width = width; | |
imageData.height = height; | |
imageData.data = imgBuffer; | |
if (dithering) | |
imageData.applyDither(); | |
return imageData; | |
} | |
private byte[] bitmapTo8BitImage(Bitmap bitmap) { | |
int[] pixels = new int[bitmap.getWidth() * bitmap.getHeight()]; | |
bitmap.getPixels(pixels, 0, bitmap.getWidth(), 0, 0, | |
bitmap.getWidth(), bitmap.getHeight()); | |
ByteBuffer eightByteBuffer = ByteBuffer.allocate(pixels.length); | |
for (int i = 0; i < pixels.length; i++) { | |
int p = pixels[i]; | |
int red = Color.red(p); | |
int green = Color.green(p); | |
int blue = Color.blue(p); | |
byte p1Rgb = (byte) ((int) Math.round((red + green + blue) / 3)); | |
eightByteBuffer.put(p1Rgb); | |
} | |
return eightByteBuffer.array(); | |
} | |
private List<ImageConfig> setpageInfo(ArrayList<BitmapInfo> list, ArrayList<LongTermAssets> longTermAssets) { | |
List<ImageConfig> configList = new ArrayList<>(); | |
if(longTermAssets.size()>0){ | |
for(int i=0;i<longTermAssets.size();i++){ | |
Log.d("TEST", "IMAGE THAT DID NOT CHANGE " +longTermAssets.get(i).getImageId()+""+"X:"+longTermAssets.get(i).getX()+"Y:"+longTermAssets.get(i).getY()); | |
ImageConfig imageConfig = new ImageConfig(); | |
imageConfig.imageId = longTermAssets.get(i).getImageId(); | |
imageConfig.x=longTermAssets.get(i).getX(); | |
imageConfig.y=longTermAssets.get(i).getY(); | |
imageConfig.invert=false; | |
configList.add(imageConfig); | |
} | |
} | |
if(list.size()>0){ | |
for(int i=0;i<list.size();i++){ | |
Log.d("TEST", "IMAGE ID that changed " +list.get(i).getImageid()+" "+" X: "+list.get(i).getX()+" Y: "+list.get(i).getY()); | |
ImageConfig imageConfig = new ImageConfig(); | |
imageConfig.imageId = list.get(i).getImageid(); | |
imageConfig.x=list.get(i).getX(); | |
imageConfig.y=list.get(i).getY(); | |
imageConfig.invert=list.get(i).isInverted(); | |
configList.add(imageConfig); | |
} | |
} | |
return configList; | |
} | |
public ArrayList<ebadgeJob> getJobsToExecute(){ | |
return jobs; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment