package com.linseykate.findingfido; /** * Activity that appears when a photo * has been uploaded; * shows matched pictures, if any */ import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Base64; import android.view.View; import android.widget.AdapterView; import android.widget.GridView; import android.widget.ImageView; import com.firebase.client.Firebase; import java.util.ArrayList; public class MatchActivity extends AppCompatActivity { ArrayList dogRecords; ArrayList imageItems = new ArrayList<>(); ArrayList notificationList = new ArrayList<>(); DogAttributes dogToMatch; String recordNo; ArrayList recordsIds; Firebase ref = new Firebase("https://findingfido.firebaseio.com/"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_match); dogRecords = ((GlobalVariables) getApplication()).getDogRecords(); dogToMatch = ((GlobalVariables) getApplication()).getDogToMatch(); recordNo = ((GlobalVariables)getApplication()).getRecentRecordNo(); recordsIds = ((GlobalVariables)getApplication()).getRecordIds(); /*System.out.println("TEST dogRecords Match:" + dogRecords.size()); System.out.println("TEST recordIds Match:" + recordsIds.size());*/ ImageView submittedDog = (ImageView)findViewById(R.id.ivDogToMatch); submittedDog.setImageBitmap(decodeBase64(dogToMatch.getImageString())); for(int i=0; i=(dogToMatch.getSize()-5)) { submittedDog.setImageBitmap(decodeBase64(dogToMatch.getImageString())); Bitmap myBitmapAgain = decodeBase64(dogRecords.get(i).getImageString()); imageItems.add(new ImageItem(myBitmapAgain, getRecordId(dogRecords.get(i).getImageString()))); String [] alerts = ((GlobalVariables) getApplication()).getNotifications(); if(alerts!=null) { for (int j = 0; j < alerts.length; j++) { notificationList.add(alerts[j]); } } System.out.println(getRecordId(dogRecords.get(i).getImageString())); String message = "Dog record "+getRecordId(dogRecords.get(i).getImageString())+" has been matched with your dog!"; notificationList.add(message); String [] newAlerts = new String[notificationList.size()]; ((GlobalVariables) getApplication()).setNotifications(notificationList.toArray(newAlerts)); } } } //Adapted from http://stackoverflow.com/questions/9768611/encode-and-decode-bitmap-object-in-base64-string-in-android final GridView gridView; GridViewAdapter gridAdapter; gridView = (GridView) findViewById(R.id.matchGridView); gridAdapter = new GridViewAdapter(this, R.layout.grid_item_layout, imageItems); gridView.setAdapter(gridAdapter); gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView parent, View v, int position, long id) { //Remove both images from Firebase //System.out.println(recordNo); ref.child(recordNo).removeValue(); ImageItem item = (ImageItem) parent.getItemAtPosition(position); ref.child(item.getTitle()).removeValue(); } }); } private String getRecordId(String imageStr) { for(int i=0; i