Skip to content

Commit

Permalink
Added TTS for item pickup
Browse files Browse the repository at this point in the history
  • Loading branch information
subhan-nadeem committed Mar 19, 2017
1 parent ead1b8a commit 4bac7d3
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 21 deletions.
16 changes: 8 additions & 8 deletions Android/FaceTracker/app/app.iml
Original file line number Diff line number Diff line change
Expand Up @@ -65,14 +65,6 @@
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
Expand All @@ -81,6 +73,14 @@
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import android.support.design.widget.Snackbar;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.util.Base64;
import android.util.Log;
import android.view.View;
import android.widget.ProgressBar;
Expand All @@ -52,7 +53,6 @@
import com.google.gson.JsonObject;
import com.koushikdutta.async.future.FutureCallback;
import com.koushikdutta.ion.Ion;
import com.loopj.android.http.Base64;
import com.subhan_nadeem.android.gms.samples.vision.face.facetracker.App;
import com.subhan_nadeem.android.gms.samples.vision.face.facetracker.FaceGraphic;
import com.subhan_nadeem.android.gms.samples.vision.face.facetracker.FaceProximityListener;
Expand Down Expand Up @@ -111,9 +111,6 @@ public final class FaceTrackingActivity extends AppCompatActivity
private ProgressBar mProgressBar;
private int mPurpose;
private long mLastTriggerTime;
//==============================================================================================
// Activity Methods
//==============================================================================================
private ArrayList<Integer> alreadyRecognizedFacesList = new ArrayList<>();
private DatabaseReference mDatabase;
private DatabaseReference mUserDatabase;
Expand Down Expand Up @@ -449,7 +446,6 @@ public void onFaceProximityTrigger(final Face face) {
if (timeSinceLastTrigger < TimeUnit.SECONDS.toMillis(NUM_SECONDS_WAIT_BETWEEN_RECOGNIZE))
return;


alreadyRecognizedFacesList.add(face.getId());
mLastTriggerTime = System.currentTimeMillis();
mRecognitionAttempts = 1;
Expand Down Expand Up @@ -509,7 +505,6 @@ public void onCompleted(Exception e, String result) {
JSONArray imagesArray = jsonObject.getJSONArray("images");
JSONObject firstImageObject = imagesArray.getJSONObject(0);


JSONObject transactionObject =
firstImageObject.getJSONObject("transaction");

Expand Down Expand Up @@ -538,10 +533,9 @@ else if (mPurpose == PURPOSE_ITEM)
Log.e(TAG, e1.toString());

if (mRecognitionAttempts != MAX_RECOGNITION_ATTEMPTS) {
recognize(false, sayRetryMessage);
recognize(false, true);

if (sayRetryMessage)
ttsObj.speak("I couldn't recognize you! Trying again", TextToSpeech.QUEUE_ADD, null);
ttsObj.speak("I couldn't recognize you! Trying again", TextToSpeech.QUEUE_ADD, null);
++mRecognitionAttempts;
}
}
Expand All @@ -560,24 +554,68 @@ else if (mPurpose == PURPOSE_ITEM)
});
}

private String mItemPersonName;
private String mItemItemName;
private void onDetectItemEvent(final RecognitionCandidate candidate) {
final DatabaseReference userCartDatabase = mDatabase.child("store")
.child(candidate.getUUID())
.child("cart");

getPersonNameForItemTTS(candidate);

getItemNameForItemTTS();

userCartDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
boolean itemAdded = false;

@Override
public void onDataChange(DataSnapshot dataSnapshot) {

if (!itemAdded)
userCartDatabase.removeEventListener(this);
userCartDatabase.child(String.valueOf(dataSnapshot.getChildrenCount()))
.setValue(mItemPickedUp);

itemAdded = true;
removeEvents();
mItemPickedUp = NO_ITEM_PICKED_UP;

ttsObj.speak(mItemPersonName + " picked up a "+mItemItemName, TextToSpeech.QUEUE_ADD, null);
}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});
}

private void getItemNameForItemTTS() {
mInventoryDatabase.addListenerForSingleValueEvent(new ValueEventListener() {

@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot item : dataSnapshot.getChildren()) {
if (item.child("item_id").getValue().toString().equals(String.valueOf(mItemPickedUp))) {
mItemItemName = item.child("item_id").getValue().toString();
return;
}
}
}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});
}

private void getPersonNameForItemTTS(RecognitionCandidate candidate) {
mUserDatabase.child(candidate.getUUID()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
User user = dataSnapshot.getValue(User.class);

mItemPersonName = user.name;
}

@Override
Expand Down Expand Up @@ -616,12 +654,10 @@ public void onDataChange(DataSnapshot dataSnapshot) {
if (!user.is_in_store)
return;


mUserDatabase.child(candidate.getUUID()).child("is_in_store").setValue(false);
ttsObj.speak("Goodbye, " + user.name + "! Thank you for shopping at easyshop",
TextToSpeech.QUEUE_ADD, null);


final DatabaseReference userCartDatabase = mDatabase.child("store")
.child(candidate.getUUID())
.child("cart");
Expand All @@ -637,7 +673,6 @@ public void onDataChange(DataSnapshot dataSnapshot) {

calculateCartTotal(cartItems);


}


Expand Down

0 comments on commit 4bac7d3

Please sign in to comment.