From e582107431b0d7239adede1d8cd40a673423e42f Mon Sep 17 00:00:00 2001 From: Abraham Hedtke Date: Wed, 23 Dec 2015 01:10:49 -0500 Subject: [PATCH] Add support for multiface mode, appearance identifiers, emoji, and landscape mode. --- README.md | 4 +- affdexme-android.iml | 19 - app/.gitignore | 2 + app/app.iml | 93 -- app/build.gradle | 19 +- app/src/main/AndroidManifest.xml | 21 +- .../com/affectiva/affdexme/DrawingView.java | 906 ++++++++++++------ .../com/affectiva/affdexme/ImageHelper.java | 195 ++++ .../com/affectiva/affdexme/MainActivity.java | 325 ++++--- .../com/affectiva/affdexme/MetricDisplay.java | 43 +- .../affdexme/MetricSelectionFragment.java | 130 ++- .../affectiva/affdexme/MetricSelector.java | 76 +- .../affectiva/affdexme/MetricsManager.java | 186 ++-- .../affectiva/affdexme/PreferencesUtils.java | 51 +- .../affectiva/affdexme/SettingsActivity.java | 23 +- .../affectiva_logo_clear_background.png | Bin 12893 -> 13639 bytes .../ic_arrow_back_white_24dp.png | Bin 250 -> 370 bytes .../res/drawable-hdpi/settings_button.png | Bin 1675 -> 1133 bytes .../drawable-hdpi/settings_button_pressed.png | Bin 1684 -> 1182 bytes .../drawable-hdpi/switch_camera_button.png | Bin 1947 -> 1492 bytes .../switch_camera_button_pressed.png | Bin 1933 -> 1626 bytes .../affectiva_logo_clear_background.png | Bin 5834 -> 6261 bytes .../ic_arrow_back_white_24dp.png | Bin 201 -> 308 bytes .../res/drawable-mdpi/settings_button.png | Bin 1159 -> 861 bytes .../drawable-mdpi/settings_button_pressed.png | Bin 1151 -> 882 bytes .../drawable-mdpi/switch_camera_button.png | Bin 1199 -> 1018 bytes .../switch_camera_button_pressed.png | Bin 1178 -> 1038 bytes .../res/drawable-nodpi/disappointed_emoji.png | Bin 0 -> 3443 bytes .../res/drawable-nodpi/female_glasses.png | Bin 0 -> 3401 bytes .../res/drawable-nodpi/female_noglasses.png | Bin 0 -> 2977 bytes .../main/res/drawable-nodpi/flushed_emoji.png | Bin 0 -> 3611 bytes .../main/res/drawable-nodpi/kissing_emoji.png | Bin 0 -> 3238 bytes .../res/drawable-nodpi/laughing_emoji.png | Bin 0 -> 3696 bytes .../main/res/drawable-nodpi/male_glasses.png | Bin 0 -> 3076 bytes .../res/drawable-nodpi/male_noglasses.png | Bin 0 -> 2627 bytes .../main/res/drawable-nodpi/rage_emoji.png | Bin 0 -> 3882 bytes .../main/res/drawable-nodpi/relaxed_emoji.png | Bin 0 -> 3430 bytes .../main/res/drawable-nodpi/scream_emoji.png | Bin 0 -> 4589 bytes .../main/res/drawable-nodpi/smiley_emoji.png | Bin 0 -> 2508 bytes .../main/res/drawable-nodpi/smirk_emoji.png | Bin 0 -> 2488 bytes .../drawable-nodpi/stuck_out_tongue_emoji.png | Bin 0 -> 2634 bytes .../stuck_out_tongue_winking_eye_emoji.png | Bin 0 -> 2909 bytes .../res/drawable-nodpi/unknown_glasses.png | Bin 0 -> 3763 bytes .../res/drawable-nodpi/unknown_noglasses.png | Bin 0 -> 2343 bytes .../main/res/drawable-nodpi/wink_emoji.png | Bin 0 -> 2597 bytes .../affectiva_logo_clear_background.png | Bin 19220 -> 20031 bytes .../ic_arrow_back_white_24dp.png | Bin 232 -> 378 bytes .../res/drawable-xhdpi/settings_button.png | Bin 2449 -> 1539 bytes .../settings_button_pressed.png | Bin 2519 -> 1619 bytes .../drawable-xhdpi/switch_camera_button.png | Bin 2042 -> 1349 bytes .../switch_camera_button_pressed.png | Bin 2044 -> 1662 bytes .../affectiva_logo_clear_background.png | Bin 31185 -> 8026 bytes .../ic_arrow_back_white_24dp.png | Bin 290 -> 446 bytes .../res/drawable-xxhdpi/settings_button.png | Bin 2897 -> 1755 bytes .../settings_button_pressed.png | Bin 2943 -> 1744 bytes .../drawable-xxhdpi/switch_camera_button.png | Bin 3092 -> 1804 bytes .../switch_camera_button_pressed.png | Bin 3048 -> 2387 bytes .../affectiva_logo_clear_background.png | Bin 12893 -> 13639 bytes .../res/drawable/ic_arrow_back_white_24dp.png | Bin 232 -> 378 bytes app/src/main/res/layout/grid_item.xml | 52 +- app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2725 -> 2962 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1706 -> 1887 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 4255 -> 4544 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 7456 -> 7866 bytes app/src/main/res/values/strings.xml | 16 +- app/src/main/res/xml/settings_preferences.xml | 51 +- gradle.properties | 18 - gradle/wrapper/gradle-wrapper.jar | Bin 49896 -> 53637 bytes gradlew.bat | 180 ++-- 69 files changed, 1492 insertions(+), 918 deletions(-) delete mode 100644 affdexme-android.iml delete mode 100644 app/app.iml create mode 100644 app/src/main/java/com/affectiva/affdexme/ImageHelper.java create mode 100644 app/src/main/res/drawable-nodpi/disappointed_emoji.png create mode 100644 app/src/main/res/drawable-nodpi/female_glasses.png create mode 100644 app/src/main/res/drawable-nodpi/female_noglasses.png create mode 100644 app/src/main/res/drawable-nodpi/flushed_emoji.png create mode 100644 app/src/main/res/drawable-nodpi/kissing_emoji.png create mode 100644 app/src/main/res/drawable-nodpi/laughing_emoji.png create mode 100644 app/src/main/res/drawable-nodpi/male_glasses.png create mode 100644 app/src/main/res/drawable-nodpi/male_noglasses.png create mode 100644 app/src/main/res/drawable-nodpi/rage_emoji.png create mode 100644 app/src/main/res/drawable-nodpi/relaxed_emoji.png create mode 100644 app/src/main/res/drawable-nodpi/scream_emoji.png create mode 100644 app/src/main/res/drawable-nodpi/smiley_emoji.png create mode 100644 app/src/main/res/drawable-nodpi/smirk_emoji.png create mode 100644 app/src/main/res/drawable-nodpi/stuck_out_tongue_emoji.png create mode 100644 app/src/main/res/drawable-nodpi/stuck_out_tongue_winking_eye_emoji.png create mode 100644 app/src/main/res/drawable-nodpi/unknown_glasses.png create mode 100644 app/src/main/res/drawable-nodpi/unknown_noglasses.png create mode 100644 app/src/main/res/drawable-nodpi/wink_emoji.png delete mode 100644 gradle.properties diff --git a/README.md b/README.md index 12d725d..0eabf28 100644 --- a/README.md +++ b/README.md @@ -15,4 +15,6 @@ In order to use this project, you will need to: See the comment section at the top of the MainActivity.java file for more information. -Copyright (c) 2014-2015 Affectiva. All rights reserved. +*** + +This app uses some of the excellent [Emoji One emojis](http://emojione.com). diff --git a/affdexme-android.iml b/affdexme-android.iml deleted file mode 100644 index 9e7152e..0000000 --- a/affdexme-android.iml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore index 3f6af81..283879a 100644 --- a/app/.gitignore +++ b/app/.gitignore @@ -3,6 +3,8 @@ /jniLibs/armeabi-v7a /libs/Affdex-sdk.jar /libs/Affdex-sdk-javadoc.jar +/libs/javax.inject-1.jar +/libs/dagger-1.2.2.jar /src/main/assets/Affdex/*license* /src/main/assets/Affdex/Classifiers /src/main/assets/Affdex/Classifiers/v_9 diff --git a/app/app.iml b/app/app.iml deleted file mode 100644 index 73426a8..0000000 --- a/app/app.iml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index bf51eca..8202607 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -36,25 +36,12 @@ android { } dependencies { - //include the Affdex SDK jars - compile files('libs/Affdex-sdk.jar') - compile files('libs/Affdex-sdk-javadoc.jar') + //include the Affdex SDK jars and its dependencies + compile fileTree(dir: 'libs', include: '*.jar') - //include dependencies + //include project dependencies compile 'com.android.support:support-v4:23.1.1' compile 'com.android.support:appcompat-v7:23.1.1' - compile 'com.squareup.dagger:dagger:1.2.2' - compile 'javax.inject:javax.inject:1' - - //although the use of the CameraDetector class in this project does not require it, you may have to include - //the following dependencies if you use other features of the Affdex SDK -// compile 'com.google.code.gson:gson:2.4' -// compile 'com.android.support:support-v13:23.1.1' -// compile 'com.google.android.gms:play-services:8.4.0' -// compile 'com.google.android.gms:play-services-ads:8.4.0' -// compile 'com.google.android.gms:play-services-identity:8.4.0' -// compile 'com.google.android.gms:play-services-gcm:8.4.0' -// compile files('libs/flurry-analytics-5.0.0.jar') } // build a signed release apk only if the environment is configured diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 19428fd..6f873df 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,13 +1,18 @@ + package="com.affectiva.affdexme"> - - - - + + + + android:label="@string/app_name"> @@ -34,7 +38,6 @@ android:name="android.support.PARENT_ACTIVITY" android:value="com.affectiva.affdexme.MainActivity" /> - - - diff --git a/app/src/main/java/com/affectiva/affdexme/DrawingView.java b/app/src/main/java/com/affectiva/affdexme/DrawingView.java index 881f019..2d78110 100644 --- a/app/src/main/java/com/affectiva/affdexme/DrawingView.java +++ b/app/src/main/java/com/affectiva/affdexme/DrawingView.java @@ -2,22 +2,32 @@ package com.affectiva.affdexme; import android.content.Context; import android.content.res.TypedArray; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.PixelFormat; import android.graphics.PointF; import android.graphics.PorterDuff; +import android.graphics.Rect; import android.graphics.Typeface; import android.os.Process; -import android.os.SystemClock; +import android.support.annotation.NonNull; import android.util.AttributeSet; import android.util.Log; +import android.util.Pair; import android.view.SurfaceHolder; import android.view.SurfaceView; import com.affectiva.android.affdex.sdk.detector.Face; +import java.io.FileNotFoundException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; /** * This class contains a SurfaceView and its own thread that draws to it. @@ -25,310 +35,108 @@ import com.affectiva.android.affdex.sdk.detector.Face; */ public class DrawingView extends SurfaceView implements SurfaceHolder.Callback { - class PointFArraySharer { - boolean isPointsMirrored = false; - PointF[] nextPointsToDraw = null; - } - - //Inner Thread class - class DrawingThread extends Thread{ - private SurfaceHolder mSurfaceHolder; - private Paint circlePaint; - private Paint boxPaint; - private volatile boolean stopFlag = false; //boolean to indicate when thread has been told to stop - private final PointFArraySharer sharer; - private DrawingViewConfig config; - private final long drawPeriod = 33; //draw at 30 fps - - private final int TEXT_RAISE = 10; - - String roll = ""; - String yaw = ""; - String pitch = ""; - String interOcDis = ""; - - public DrawingThread(SurfaceHolder surfaceHolder, DrawingViewConfig con) { - mSurfaceHolder = surfaceHolder; - - circlePaint = new Paint(); - circlePaint.setColor(Color.WHITE); - boxPaint = new Paint(); - boxPaint.setColor(Color.WHITE); - boxPaint.setStyle(Paint.Style.STROKE); - - config = con; - sharer = new PointFArraySharer(); - - setThickness(config.drawThickness); - } - - void setMetrics(float roll, float yaw, float pitch, float interOcDis, float valence) { - //format string for our DrawingView to use when ready - this.roll = String.format("%.2f",roll); - this.yaw = String.format("%.2f",yaw); - this.pitch = String.format("%.2f",pitch); - this.interOcDis = String.format("%.2f",interOcDis); - - //prepare the color of the bounding box using the valence score. Red for -100, White for 0, and Green for +100, with linear interpolation in between. - if (valence > 0) { - float colorScore = ((100f-valence)/100f)*255; - boxPaint.setColor(Color.rgb((int)colorScore,255,(int)colorScore)); - } else { - float colorScore = ((100f+valence)/100f)*255; - boxPaint.setColor(Color.rgb(255, (int) colorScore, (int) colorScore)); - } - - } - - public void stopThread() { - stopFlag = true; - } - - public boolean isStopped() { - return stopFlag; - } - - //Updates thread with latest points returned by the onImageResults() event. - public void updatePoints(PointF[] pointList, boolean isPointsMirrored) { - synchronized (sharer) { - sharer.nextPointsToDraw = pointList; - sharer.isPointsMirrored = isPointsMirrored; - } - } - - void setThickness(int thickness) { - boxPaint.setStrokeWidth(thickness); - } - - //Inform thread face detection has stopped, so array of points is no longer valid. - public void invalidatePoints() { - synchronized (sharer) { - sharer.nextPointsToDraw = null; - } - } - - @Override - public void run() { - android.os.Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); - - while(!stopFlag) { - - /** - * We use SurfaceHolder.lockCanvas() to get the canvas that draws to the SurfaceView. - * After we are done drawing, we let go of the canvas using SurfaceHolder.unlockCanvasAndPost() - * **/ - Canvas c = null; - try { - c = mSurfaceHolder.lockCanvas(); - - if (c!= null) { - synchronized (mSurfaceHolder) { - c.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR); //clear previous dots - draw(c); - } - } - } - finally { - if (c!= null) { - mSurfaceHolder.unlockCanvasAndPost(c); - } - } - - } - - config = null; //nullify object to avoid memory leak - } - - void draw(Canvas c) { - PointF[] points; - boolean mirrorPoints; - synchronized (sharer) { - if (sharer.nextPointsToDraw == null) - return; - points = sharer.nextPointsToDraw; - mirrorPoints = sharer.isPointsMirrored; - } - - //Coordinates around which to draw bounding box. - float leftBx = config.surfaceViewWidth; - float rightBx = 0; - float topBx = config.surfaceViewHeight; - float botBx = 0; - - for (int i = 0; i < points.length; i++) { - - //transform from the camera coordinates to our screen coordinates - //The camera preview is displayed as a mirror, so X pts have to be mirrored back. - float x; - if (mirrorPoints) { - x = (config.imageWidth - points[i].x) * config.screenToImageRatio; - } else { - x = (points[i].x) * config.screenToImageRatio; - } - float y = (points[i].y)* config.screenToImageRatio; - - //We determine the left-most, top-most, right-most, and bottom-most points to draw the bounding box around. - if (x < leftBx) - leftBx = x; - if (x > rightBx) - rightBx = x; - if (y < topBx) - topBx = y; - if (y > botBx) - botBx = y; - - //Draw facial tracking dots. - if (config.isDrawPointsEnabled) { - c.drawCircle(x, y, config.drawThickness, circlePaint); - } - } - - //Draw the bounding box. - if (config.isDrawPointsEnabled) { - c.drawRect(leftBx, topBx, rightBx, botBx, boxPaint); - } - - //Draw the measurement metrics, with a dark border around the words to make them visible for users of all skin colors. - if (config.isDrawMeasurementsEnabled) { - float centerBx = (leftBx + rightBx) / 2; - - float upperText = topBx - TEXT_RAISE; - c.drawText("PITCH", centerBx, upperText - config.textSize,config.textBorderPaint); - c.drawText("PITCH", centerBx, upperText - config.textSize, config.textPaint); - c.drawText(pitch,centerBx ,upperText ,config.textBorderPaint); - c.drawText(pitch, centerBx, upperText, config.textPaint); - - float upperLeft = centerBx - config.upperTextSpacing; - - c.drawText("YAW", upperLeft , upperText - config.textSize , config.textBorderPaint); - c.drawText("YAW", upperLeft, upperText - config.textSize, config.textPaint); - c.drawText(yaw, upperLeft , upperText , config.textBorderPaint); - c.drawText(yaw, upperLeft, upperText, config.textPaint); - - float upperRight = centerBx + config.upperTextSpacing; - c.drawText("ROLL", upperRight , upperText - config.textSize , config.textBorderPaint); - c.drawText("ROLL", upperRight, upperText - config.textSize, config.textPaint); - c.drawText(roll, upperRight , upperText , config.textBorderPaint); - c.drawText(roll, upperRight, upperText, config.textPaint); - - c.drawText("INTEROCULAR DISTANCE", centerBx , botBx + config.textSize , config.textBorderPaint); - c.drawText("INTEROCULAR DISTANCE", centerBx, botBx + config.textSize, config.textPaint); - c.drawText(interOcDis,centerBx , botBx + config.textSize*2 , config.textBorderPaint); - c.drawText(interOcDis, centerBx, botBx + config.textSize * 2, config.textPaint); - } - - - } - } - - class DrawingViewConfig { - private int imageHeight = 1; - private int imageWidth = 1; - private int surfaceViewWidth = 0; - private int surfaceViewHeight = 0; - private float screenToImageRatio = 0; - private int drawThickness = 0; - private boolean isDrawPointsEnabled = true; //by default, have the drawing thread draw tracking dots - private boolean isDrawMeasurementsEnabled = false; - private boolean isDimensionsNeeded = true; - - private Paint textPaint; - private int textSize; - private Paint textBorderPaint; - private int upperTextSpacing; - - public void setMeasurementMetricConfigs(Paint textPaint, Paint dropShadowPaint, int textSize, int upperTextSpacing) { - this.textPaint = textPaint; - this.textSize = textSize; - this.textBorderPaint = dropShadowPaint; - this.upperTextSpacing = upperTextSpacing; - } - - public void updateViewDimensions(int surfaceViewWidth, int surfaceViewHeight, int imageWidth, int imageHeight) { - if (surfaceViewWidth <= 0 || surfaceViewHeight <= 0 || imageWidth <= 0 || imageHeight <= 0) { - throw new IllegalArgumentException("All dimensions submitted to updateViewDimensions() must be positive"); - } - this.imageWidth = imageWidth; - this.imageHeight = imageHeight; - this.surfaceViewWidth = surfaceViewWidth; - this.surfaceViewHeight = surfaceViewHeight; - screenToImageRatio = (float)surfaceViewWidth / imageWidth; - isDimensionsNeeded = false; - } - - public void setDrawThickness(int t) { - - if ( t <= 0) { - throw new IllegalArgumentException("Thickness must be positive."); - } - - drawThickness = t; - } - } - - //Class variables of DrawingView class + private final static String LOG_TAG = "AffdexMe"; + private final float MARGIN = 4; + private Bitmap appearanceMarkerBitmap_genderMale_glassesOn; + private Bitmap appearanceMarkerBitmap_genderFemale_glassesOn; + private Bitmap appearanceMarkerBitmap_genderUnknown_glassesOn; + private Bitmap appearanceMarkerBitmap_genderUnknown_glassesOff; + private Bitmap appearanceMarkerBitmap_genderMale_glassesOff; + private Bitmap appearanceMarkerBitmap_genderFemale_glassesOff; + private Map emojiMarkerBitmapToEmojiTypeMap; private SurfaceHolder surfaceHolder; private DrawingThread drawingThread; //DrawingThread object - private Typeface typeface; private DrawingViewConfig drawingViewConfig; - private static String LOG_TAG = "AffdexMe"; - //three constructors required of any custom view public DrawingView(Context context) { super(context); - initView(context, null); - } - public DrawingView(Context context, AttributeSet attrs) { - super(context, attrs); - initView(context, attrs); - } - public DrawingView(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - initView(context, attrs); + initView(); } - void initView(Context context, AttributeSet attrs){ + public DrawingView(Context context, AttributeSet attrs) { + super(context, attrs); + initView(); + } + + public DrawingView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + initView(); + } + + private static int getDrawable(@NonNull Context context, @NonNull String name) { + return context.getResources().getIdentifier(name, "drawable", context.getPackageName()); + } + + void initView() { surfaceHolder = getHolder(); //The SurfaceHolder object will be used by the thread to request canvas to draw on SurfaceView surfaceHolder.setFormat(PixelFormat.TRANSPARENT); //set to Transparent so this surfaceView does not obscure the one it is overlaying (the one displaying the camera). - surfaceHolder.addCallback(this); //become a Listener to the three events below that SurfaceView throws + surfaceHolder.addCallback(this); //become a Listener to the three events below that SurfaceView generates drawingViewConfig = new DrawingViewConfig(); - //default values - int upperTextSpacing = 15; - int textSize = 15; + //Default values + Paint emotionLabelPaint = new Paint(); + emotionLabelPaint.setColor(Color.parseColor("#ff8000")); //Orange + emotionLabelPaint.setStyle(Paint.Style.FILL); + emotionLabelPaint.setTextAlign(Paint.Align.CENTER); + emotionLabelPaint.setTextSize(48); - Paint measurementTextPaint = new Paint(); - measurementTextPaint.setStyle(Paint.Style.FILL); - measurementTextPaint.setTextAlign(Paint.Align.CENTER); + Paint emotionValuePaint = new Paint(); + emotionValuePaint.setColor(Color.parseColor("#514a40")); //Grey + emotionValuePaint.setStyle(Paint.Style.FILL); + emotionValuePaint.setTextAlign(Paint.Align.CENTER); + emotionValuePaint.setTextSize(48); - Paint dropShadow = new Paint(); - dropShadow.setColor(Color.BLACK); - dropShadow.setStyle(Paint.Style.STROKE); - dropShadow.setTextAlign(Paint.Align.CENTER); + Paint metricBarPaint = new Paint(); + metricBarPaint.setColor(Color.GREEN); + metricBarPaint.setStyle(Paint.Style.FILL); + int metricBarWidth = 150; //load and parse XML attributes - if (attrs != null) { - TypedArray a = getContext().obtainStyledAttributes(attrs,R.styleable.drawing_view_attributes,0,0); - upperTextSpacing = a.getDimensionPixelSize(R.styleable.drawing_view_attributes_measurements_upper_spacing,upperTextSpacing); - measurementTextPaint.setColor(a.getColor(R.styleable.drawing_view_attributes_measurements_color,Color.WHITE)); - dropShadow.setColor(a.getColor(R.styleable.drawing_view_attributes_measurements_text_border_color,Color.BLACK)); - dropShadow.setStrokeWidth(a.getInteger(R.styleable.drawing_view_attributes_measurements_text_border_thickness,5)); - textSize = a.getDimensionPixelSize(R.styleable.drawing_view_attributes_measurements_text_size,textSize); - measurementTextPaint.setTextSize(textSize); - dropShadow.setTextSize(textSize); + int[] emotionLabelAttrs = { + android.R.attr.textStyle, // 0 + android.R.attr.textColor, // 1 + android.R.attr.shadowColor, // 2 + android.R.attr.shadowDy, // 3 + android.R.attr.shadowRadius, // 4 + android.R.attr.layout_weight, // 5 + android.R.attr.textSize}; // 6 + TypedArray a = getContext().obtainStyledAttributes(R.style.metricName, emotionLabelAttrs); + if (a != null) { + emotionLabelPaint.setColor(a.getColor(1, emotionLabelPaint.getColor())); + emotionLabelPaint.setShadowLayer( + a.getFloat(4, 1.0f), + a.getFloat(3, 2.0f), a.getFloat(3, 2.0f), + a.getColor(2, Color.BLACK)); + emotionLabelPaint.setTextSize(a.getDimensionPixelSize(6, 48)); + emotionLabelPaint.setFakeBoldText("bold".equalsIgnoreCase(a.getString(0))); a.recycle(); } - drawingViewConfig.setMeasurementMetricConfigs(measurementTextPaint, dropShadow, textSize, upperTextSpacing); + int[] emotionValueAttrs = { + android.R.attr.textColor, // 0 + android.R.attr.textSize, // 1 + R.styleable.custom_attributes_metricBarLength}; // 2 + a = getContext().obtainStyledAttributes(R.style.metricPct, emotionValueAttrs); + if (a != null) { + emotionValuePaint.setColor(a.getColor(0, emotionValuePaint.getColor())); + emotionValuePaint.setTextSize(a.getDimensionPixelSize(1, 36)); + metricBarWidth = a.getDimensionPixelSize(2, 150); + a.recycle(); + } + drawingViewConfig.setDominantEmotionLabelPaints(emotionLabelPaint, emotionValuePaint); + drawingViewConfig.setDominantEmotionMetricBarConfig(metricBarPaint, metricBarWidth); drawingThread = new DrawingThread(surfaceHolder, drawingViewConfig); + + //statically load the emoji bitmaps on-demand and cache + emojiMarkerBitmapToEmojiTypeMap = new HashMap<>(); } public void setTypeface(Typeface face) { - drawingViewConfig.textPaint.setTypeface(face); - drawingViewConfig.textBorderPaint.setTypeface(face); + drawingViewConfig.dominantEmotionLabelPaint.setTypeface(face); + drawingViewConfig.dominantEmotionValuePaint.setTypeface(face); } @Override @@ -353,9 +161,10 @@ public class DrawingView extends SurfaceView implements SurfaceHolder.Callback { drawingThread.join(); retry = false; } catch (InterruptedException e) { - Log.e(LOG_TAG,e.getMessage()); + Log.e(LOG_TAG, e.getMessage()); } } + cleanup(); } public boolean isDimensionsNeeded() { @@ -368,50 +177,549 @@ public class DrawingView extends SurfaceView implements SurfaceHolder.Callback { public void updateViewDimensions(int surfaceViewWidth, int surfaceViewHeight, int imageWidth, int imageHeight) { try { - drawingViewConfig.updateViewDimensions(surfaceViewWidth,surfaceViewHeight,imageWidth,imageHeight); - } catch (Exception e) { - Log.e(LOG_TAG,e.getMessage()); + drawingViewConfig.updateViewDimensions(surfaceViewWidth, surfaceViewHeight, imageWidth, imageHeight); + } catch (IllegalArgumentException e) { + Log.e(LOG_TAG, "Attempted to set a dimension with a negative value", e); } } public void setThickness(int t) { - drawingViewConfig.setDrawThickness(t); try { + drawingViewConfig.setDrawThickness(t); drawingThread.setThickness(t); - } catch(Exception e) { - Log.e(LOG_TAG,e.getMessage()); + } catch (IllegalArgumentException e) { + Log.e(LOG_TAG, "Attempted to set a thickness with a negative value", e); } } - public void setDrawPointsEnabled(boolean b){ - drawingViewConfig.isDrawPointsEnabled = b; - } - public boolean getDrawPointsEnabled() { return drawingViewConfig.isDrawPointsEnabled; } - public void setDrawMeasurementsEnabled(boolean b) { - drawingViewConfig.isDrawMeasurementsEnabled = b; + public void setDrawPointsEnabled(boolean b) { + drawingViewConfig.isDrawPointsEnabled = b; } - public boolean getDrawMeasurementsEnabled() { - return drawingViewConfig.isDrawMeasurementsEnabled; + public boolean getDrawAppearanceMarkersEnabled() { + return drawingViewConfig.isDrawAppearanceMarkersEnabled; } - public void setMetrics(float roll, float yaw, float pitch, float interOcDis, float valence) { - drawingThread.setMetrics(roll,yaw,pitch,interOcDis,valence); + public void setDrawAppearanceMarkersEnabled(boolean b) { + drawingViewConfig.isDrawAppearanceMarkersEnabled = b; } - public void updatePoints(PointF[] points, boolean isPointsMirrored) { - drawingThread.updatePoints(points, isPointsMirrored); + public boolean getDrawEmojiMarkersEnabled() { + return drawingViewConfig.isDrawEmojiMarkersEnabled; } - public void invalidatePoints(){ + public void setDrawEmojiMarkersEnabled(boolean b) { + drawingViewConfig.isDrawEmojiMarkersEnabled = b; + } + + public void updatePoints(List faces, boolean isPointsMirrored) { + drawingThread.updatePoints(faces, isPointsMirrored); + } + + public void invalidatePoints() { drawingThread.invalidatePoints(); } + /** + * To be called when this view element is potentially being destroyed + * I.E. when the Activity's onPause() gets called. + */ + public void cleanup() { + if (emojiMarkerBitmapToEmojiTypeMap != null) { + for (Bitmap bitmap : emojiMarkerBitmapToEmojiTypeMap.values()) { + bitmap.recycle(); + } + emojiMarkerBitmapToEmojiTypeMap.clear(); + } + + if (appearanceMarkerBitmap_genderMale_glassesOn != null) { + appearanceMarkerBitmap_genderMale_glassesOn.recycle(); + } + if (appearanceMarkerBitmap_genderFemale_glassesOn != null) { + appearanceMarkerBitmap_genderFemale_glassesOn.recycle(); + } + if (appearanceMarkerBitmap_genderUnknown_glassesOn != null) { + appearanceMarkerBitmap_genderUnknown_glassesOn.recycle(); + } + if (appearanceMarkerBitmap_genderUnknown_glassesOff != null) { + appearanceMarkerBitmap_genderUnknown_glassesOff.recycle(); + } + if (appearanceMarkerBitmap_genderMale_glassesOff != null) { + appearanceMarkerBitmap_genderMale_glassesOff.recycle(); + } + if (appearanceMarkerBitmap_genderFemale_glassesOff != null) { + appearanceMarkerBitmap_genderFemale_glassesOff.recycle(); + } + } + + class FacesSharer { + boolean isPointsMirrored; + List facesToDraw; + + public FacesSharer() { + isPointsMirrored = false; + facesToDraw = new ArrayList<>(); + } + } + + //Inner Thread class + class DrawingThread extends Thread { + private final FacesSharer sharer; + private final SurfaceHolder mSurfaceHolder; + private Paint trackingPointsPaint; + private Paint boundingBoxPaint; + private Paint dominantEmotionScoreBarPaint; + private volatile boolean stopFlag = false; //boolean to indicate when thread has been told to stop + private DrawingViewConfig config; + + public DrawingThread(SurfaceHolder surfaceHolder, DrawingViewConfig con) { + mSurfaceHolder = surfaceHolder; + + //statically load the Appearance marker bitmaps so they only have to load once + appearanceMarkerBitmap_genderMale_glassesOn = ImageHelper.loadBitmapFromInternalStorage(getContext(), "male_glasses.png"); + appearanceMarkerBitmap_genderMale_glassesOff = ImageHelper.loadBitmapFromInternalStorage(getContext(), "male_noglasses.png"); + appearanceMarkerBitmap_genderFemale_glassesOn = ImageHelper.loadBitmapFromInternalStorage(getContext(), "female_glasses.png"); + appearanceMarkerBitmap_genderFemale_glassesOff = ImageHelper.loadBitmapFromInternalStorage(getContext(), "female_noglasses.png"); + appearanceMarkerBitmap_genderUnknown_glassesOn = ImageHelper.loadBitmapFromInternalStorage(getContext(), "unknown_glasses.png"); + appearanceMarkerBitmap_genderUnknown_glassesOff = ImageHelper.loadBitmapFromInternalStorage(getContext(), "unknown_noglasses.png"); + + trackingPointsPaint = new Paint(); + trackingPointsPaint.setColor(Color.WHITE); + boundingBoxPaint = new Paint(); + boundingBoxPaint.setColor(Color.WHITE); + boundingBoxPaint.setStyle(Paint.Style.STROKE); + dominantEmotionScoreBarPaint = new Paint(); + dominantEmotionScoreBarPaint.setColor(Color.GREEN); + dominantEmotionScoreBarPaint.setStyle(Paint.Style.STROKE); + + config = con; + sharer = new FacesSharer(); + + setThickness(config.drawThickness); + } + + void setValenceOfBoundingBox(float valence) { + //prepare the color of the bounding box using the valence score. Red for -100, White for 0, and Green for +100, with linear interpolation in between. + if (valence > 0) { + float colorScore = ((100f - valence) / 100f) * 255; + boundingBoxPaint.setColor(Color.rgb((int) colorScore, 255, (int) colorScore)); + } else { + float colorScore = ((100f + valence) / 100f) * 255; + boundingBoxPaint.setColor(Color.rgb(255, (int) colorScore, (int) colorScore)); + } + } + + public void stopThread() { + stopFlag = true; + } + + public boolean isStopped() { + return stopFlag; + } + + //Updates thread with latest faces returned by the onImageResults() event. + public void updatePoints(List faces, boolean isPointsMirrored) { + synchronized (sharer) { + sharer.facesToDraw.clear(); + if (faces != null) { + sharer.facesToDraw.addAll(faces); + } + sharer.isPointsMirrored = isPointsMirrored; + } + } + + void setThickness(int thickness) { + boundingBoxPaint.setStrokeWidth(thickness); + } + + //Inform thread face detection has stopped, so pending faces are no longer valid. + public void invalidatePoints() { + synchronized (sharer) { + sharer.facesToDraw.clear(); + } + } + + @Override + public void run() { + Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); + + while (!stopFlag) { + + /** + * We use SurfaceHolder.lockCanvas() to get the canvas that draws to the SurfaceView. + * After we are done drawing, we let go of the canvas using SurfaceHolder.unlockCanvasAndPost() + * **/ + Canvas c = null; + try { + c = mSurfaceHolder.lockCanvas(); + + if (c != null) { + synchronized (mSurfaceHolder) { + c.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR); //clear previous dots + draw(c); + } + } + } finally { + if (c != null) { + mSurfaceHolder.unlockCanvasAndPost(c); + } + } + } + + config = null; //nullify object to avoid memory leak + } + + void draw(Canvas c) { + Face nextFaceToDraw; + boolean mirrorPoints; + boolean multiFaceMode; + int index = 0; + + synchronized (sharer) { + mirrorPoints = sharer.isPointsMirrored; + multiFaceMode = sharer.facesToDraw.size() > 1; + + if (sharer.facesToDraw.isEmpty()) { + nextFaceToDraw = null; + } else { + nextFaceToDraw = sharer.facesToDraw.get(index); + index++; + } + } + + while (nextFaceToDraw != null) { + + drawFaceAttributes(c, nextFaceToDraw, mirrorPoints, multiFaceMode); + + synchronized (sharer) { + mirrorPoints = sharer.isPointsMirrored; + + if (index < sharer.facesToDraw.size()) { + nextFaceToDraw = sharer.facesToDraw.get(index); + index++; + } else { + nextFaceToDraw = null; + } + } + } + } + + private void drawFaceAttributes(Canvas c, Face face, boolean mirrorPoints, boolean isMultiFaceMode) { + //Coordinates around which to draw bounding box. + //Default to an 'inverted' box, where the absolute max and min values of the surface view are inside-out + Rect boundingRect = new Rect(config.surfaceViewWidth, config.surfaceViewHeight, 0, 0); + + for (PointF point : face.getFacePoints()) { + //transform from the camera coordinates to our screen coordinates + //The camera preview is displayed as a mirror, so X pts have to be mirrored back. + float x; + if (mirrorPoints) { + x = (config.imageWidth - point.x) * config.screenToImageRatio; + } else { + x = (point.x) * config.screenToImageRatio; + } + float y = (point.y) * config.screenToImageRatio; + + //For some reason I needed to add each point twice to make sure that all the + //points get properly registered in the bounding box. + boundingRect.union(Math.round(x), Math.round(y)); + boundingRect.union(Math.round(x), Math.round(y)); + + //Draw facial tracking dots. + if (config.isDrawPointsEnabled) { + c.drawCircle(x, y, config.drawThickness, trackingPointsPaint); + } + } + + //Draw the bounding box. + if (config.isDrawPointsEnabled) { + drawBoundingBox(c, face, boundingRect); + } + + float heightOffset = findNecessaryHeightOffset(boundingRect, face); + + //Draw the Appearance markers (gender / glasses) + if (config.isDrawAppearanceMarkersEnabled) { + drawAppearanceMarkers(c, face, boundingRect, heightOffset); + } + + //Draw the Emoji markers + if (config.isDrawEmojiMarkersEnabled) { + drawDominantEmoji(c, face, boundingRect, heightOffset); + } + + //Only draw the dominant emotion bar in multiface mode + if (isMultiFaceMode) { + drawDominantEmotion(c, face, boundingRect); + } + } + + private float findNecessaryHeightOffset(Rect boundingBox, Face face) { + Bitmap appearanceBitmap = getAppearanceBitmapForFace(face); + Bitmap emojiBitmap = getDominantEmojiBitmapForFace(face); + + float appearanceBitmapHeight = (appearanceBitmap != null) ? appearanceBitmap.getHeight() : 0; + float emojiBitmapHeight = (emojiBitmap != null) ? emojiBitmap.getHeight() : 0; + float spacingBetween = (appearanceBitmapHeight > 0 && emojiBitmapHeight > 0) ? MARGIN : 0; + float totalHeightRequired = appearanceBitmapHeight + emojiBitmapHeight + spacingBetween; + + float bitmapHeightOverflow = Math.max(totalHeightRequired - boundingBox.height(), 0); + + return bitmapHeightOverflow / 2; // distribute the overflow evenly on both sides of the bounding box + } + + private void drawBoundingBox(Canvas c, Face f, Rect boundingBox) { + setValenceOfBoundingBox(f.emotions.getValence()); + c.drawRect(boundingBox.left, + boundingBox.top, + boundingBox.right, + boundingBox.bottom, + boundingBoxPaint); + } + + private void drawAppearanceMarkers(Canvas c, Face f, Rect boundingBox, float offset) { + Bitmap bitmap = getAppearanceBitmapForFace(f); + if (bitmap != null) { + drawBitmapIfNotRecycled(c, bitmap, boundingBox.right + MARGIN, boundingBox.bottom - bitmap.getHeight() + offset); + } + } + + private Bitmap getAppearanceBitmapForFace(Face f) { + Bitmap bitmap = null; + switch (f.appearance.getGender()) { + case MALE: + if (Face.GLASSES.YES.equals(f.appearance.getGlasses())) { + bitmap = appearanceMarkerBitmap_genderMale_glassesOn; + } else { + bitmap = appearanceMarkerBitmap_genderMale_glassesOff; + } + break; + case FEMALE: + if (Face.GLASSES.YES.equals(f.appearance.getGlasses())) { + bitmap = appearanceMarkerBitmap_genderFemale_glassesOn; + } else { + bitmap = appearanceMarkerBitmap_genderFemale_glassesOff; + } + break; + case UNKNOWN: + if (Face.GLASSES.YES.equals(f.appearance.getGlasses())) { + bitmap = appearanceMarkerBitmap_genderUnknown_glassesOn; + } else { + bitmap = appearanceMarkerBitmap_genderUnknown_glassesOff; + } + break; + default: + Log.e(LOG_TAG, "Unknown gender: " + f.appearance.getGender()); + } + return bitmap; + } + + private void drawBitmapIfNotRecycled(Canvas c, Bitmap b, float posX, float posY) { + if (!b.isRecycled()) { + c.drawBitmap(b, posX, posY, null); + } + } + + private void drawDominantEmoji(Canvas c, Face f, Rect boundingBox, float offset) { + drawEmojiFromCache(c, f.emojis.getDominantEmoji().name(), boundingBox.right + MARGIN, boundingBox.top - offset); + } + + private void drawDominantEmotion(Canvas c, Face f, Rect boundingBox) { + Pair dominantMetric = findDominantEmotion(f); + + if (dominantMetric == null || dominantMetric.first.isEmpty()) { + return; + } + + String emotionText = dominantMetric.first; + String emotionValue = Math.round(dominantMetric.second) + "%"; + + Rect emotionTextBounds = new Rect(); + config.dominantEmotionLabelPaint.getTextBounds(emotionText, 0, emotionText.length(), emotionTextBounds); + + Rect emotionValueBounds = new Rect(); + config.dominantEmotionValuePaint.getTextBounds(emotionValue, 0, emotionValue.length(), emotionValueBounds); + + float drawAtX = boundingBox.exactCenterX(); + float drawAtY = boundingBox.bottom + MARGIN + emotionTextBounds.height(); + c.drawText(emotionText, drawAtX, drawAtY, config.dominantEmotionLabelPaint); + + //draws the colored bar that appears behind our score + drawAtY += MARGIN + emotionValueBounds.height(); + int halfWidth = Math.round(config.metricBarWidth / 200.0f * dominantMetric.second); + c.drawRect(drawAtX - halfWidth, drawAtY - emotionValueBounds.height(), drawAtX + halfWidth, drawAtY, config.dominantEmotionMetricBarPaint); + + //draws the score + c.drawText(emotionValue, drawAtX, drawAtY, config.dominantEmotionValuePaint); + } + + private Pair findDominantEmotion(Face f) { + String dominantMetricName = ""; + Float dominantMetricValue = 50.0f; // no emotion is dominant unless at least greater than this value + + if (f.emotions.getAnger() > dominantMetricValue) { + dominantMetricName = MetricsManager.getCapitalizedName(MetricsManager.Emotions.ANGER); + dominantMetricValue = f.emotions.getAnger(); + } + if (f.emotions.getContempt() > dominantMetricValue) { + dominantMetricName = MetricsManager.getCapitalizedName(MetricsManager.Emotions.CONTEMPT); + dominantMetricValue = f.emotions.getContempt(); + } + if (f.emotions.getDisgust() > dominantMetricValue) { + dominantMetricName = MetricsManager.getCapitalizedName(MetricsManager.Emotions.DISGUST); + dominantMetricValue = f.emotions.getDisgust(); + } + if (f.emotions.getFear() > dominantMetricValue) { + dominantMetricName = MetricsManager.getCapitalizedName(MetricsManager.Emotions.FEAR); + dominantMetricValue = f.emotions.getFear(); + } + if (f.emotions.getJoy() > dominantMetricValue) { + dominantMetricName = MetricsManager.getCapitalizedName(MetricsManager.Emotions.JOY); + dominantMetricValue = f.emotions.getJoy(); + } + if (f.emotions.getSadness() > dominantMetricValue) { + dominantMetricName = MetricsManager.getCapitalizedName(MetricsManager.Emotions.SADNESS); + dominantMetricValue = f.emotions.getSadness(); + } + if (f.emotions.getSurprise() > dominantMetricValue) { + dominantMetricName = MetricsManager.getCapitalizedName(MetricsManager.Emotions.SURPRISE); + dominantMetricValue = f.emotions.getSurprise(); + } + // Ignore VALENCE and ENGAGEMENT + + if (dominantMetricName.isEmpty()) { + return null; + } else { + return new Pair<>(dominantMetricName, dominantMetricValue); + } + } + + void drawEmojiFromCache(Canvas c, String emojiName, float markerPosX, float markerPosY) { + Bitmap emojiBitmap; + + try { + emojiBitmap = getEmojiBitmapByName(emojiName); + } catch (FileNotFoundException e) { + Log.e(LOG_TAG, "Error, file not found!", e); + return; + } + + if (emojiBitmap != null) { + c.drawBitmap(emojiBitmap, markerPosX, markerPosY, null); + } + } + + private Bitmap getDominantEmojiBitmapForFace(Face f) { + try { + return getEmojiBitmapByName(f.emojis.getDominantEmoji().name()); + } catch (FileNotFoundException e) { + Log.e(LOG_TAG, "Dominant emoji bitmap not available", e); + return null; + } + } + + Bitmap getEmojiBitmapByName(String emojiName) throws FileNotFoundException { + // No bitmap necessary if emoji is unknown + if (emojiName.equals(Face.EMOJI.UNKNOWN.name())) { + return null; + } + + String emojiResourceName = emojiName.trim().replace(' ', '_').toLowerCase(Locale.US).concat("_emoji"); + String emojiFileName = emojiResourceName + ".png"; + + //Try to get the emoji from the cache + Bitmap desiredEmojiBitmap = emojiMarkerBitmapToEmojiTypeMap.get(emojiFileName); + + if (desiredEmojiBitmap != null) { + //emoji bitmap found in the cache + return desiredEmojiBitmap; + } + + //Cache miss, try and load the bitmap from disk + desiredEmojiBitmap = ImageHelper.loadBitmapFromInternalStorage(getContext(), emojiFileName); + + if (desiredEmojiBitmap != null) { + //emoji bitmap found in the app storage + //Bitmap loaded, add to cache for subsequent use. + emojiMarkerBitmapToEmojiTypeMap.put(emojiFileName, desiredEmojiBitmap); + return desiredEmojiBitmap; + } + + Log.d(LOG_TAG, "Emoji not found on disk: " + emojiFileName); + + //Still unable to find the file, try to locate the emoji resource + final int resourceId = getDrawable(getContext(), emojiFileName); + + if (resourceId == 0) { + //unrecognised emoji file name + throw new FileNotFoundException("Resource not found for file named: " + emojiFileName); + } + + desiredEmojiBitmap = BitmapFactory.decodeResource(getResources(), resourceId); + + if (desiredEmojiBitmap == null) { + //still unable to load the resource from the file + throw new FileNotFoundException("Resource id [" + resourceId + "] but could not load bitmap: " + emojiFileName); + } + + //Bitmap loaded, add to cache for subsequent use. + emojiMarkerBitmapToEmojiTypeMap.put(emojiFileName, desiredEmojiBitmap); + + return desiredEmojiBitmap; + } + } + + class DrawingViewConfig { + private int imageWidth = 1; + private int surfaceViewWidth = 0; + private int surfaceViewHeight = 0; + private float screenToImageRatio = 0; + private int drawThickness = 0; + private boolean isDrawPointsEnabled = true; //by default, have the drawing thread draw tracking dots + private boolean isDimensionsNeeded = true; + private boolean isDrawAppearanceMarkersEnabled = true; //by default, draw the appearance markers + private boolean isDrawEmojiMarkersEnabled = true; //by default, draw the dominant emoji markers + + private Paint dominantEmotionLabelPaint; + private Paint dominantEmotionMetricBarPaint; + private Paint dominantEmotionValuePaint; + private int metricBarWidth; + + public void setDominantEmotionLabelPaints(Paint labelPaint, Paint valuePaint) { + dominantEmotionLabelPaint = labelPaint; + dominantEmotionValuePaint = valuePaint; + } + + public void setDominantEmotionMetricBarConfig(Paint metricBarPaint, int metricBarWidth) { + dominantEmotionMetricBarPaint = metricBarPaint; + this.metricBarWidth = metricBarWidth; + } + + public void updateViewDimensions(int surfaceViewWidth, int surfaceViewHeight, int imageWidth, int imageHeight) { + if (surfaceViewWidth <= 0 || surfaceViewHeight <= 0 || imageWidth <= 0 || imageHeight <= 0) { + throw new IllegalArgumentException("All dimensions submitted to updateViewDimensions() must be positive"); + } + this.imageWidth = imageWidth; + this.surfaceViewWidth = surfaceViewWidth; + this.surfaceViewHeight = surfaceViewHeight; + screenToImageRatio = (float) surfaceViewWidth / imageWidth; + isDimensionsNeeded = false; + } + + public void setDrawThickness(int t) { + + if (t <= 0) { + throw new IllegalArgumentException("Thickness must be positive."); + } + + drawThickness = t; + } + } } diff --git a/app/src/main/java/com/affectiva/affdexme/ImageHelper.java b/app/src/main/java/com/affectiva/affdexme/ImageHelper.java new file mode 100644 index 0000000..f991b32 --- /dev/null +++ b/app/src/main/java/com/affectiva/affdexme/ImageHelper.java @@ -0,0 +1,195 @@ +package com.affectiva.affdexme; + +import android.content.Context; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Matrix; +import android.graphics.drawable.Drawable; +import android.support.annotation.NonNull; +import android.util.DisplayMetrics; +import android.util.Log; +import android.widget.ImageView; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; + +public class ImageHelper { + + private static final String LOG_TAG = ImageHelper.class.getSimpleName(); + + // Prevent instantiation of this object + private ImageHelper() { + } + + public static boolean checkIfImageFileExists(@NonNull Context context, @NonNull String fileName) { + + // path to /data/data/yourapp/app_data/images + File directory = context.getDir("images", Context.MODE_PRIVATE); + + // File location to save image + File imagePath = new File(directory, fileName); + + return imagePath.exists(); + } + + public static boolean deleteImageFile(@NonNull Context context, @NonNull String fileName) { + // path to /data/data/yourapp/app_data/images + File directory = context.getDir("images", Context.MODE_PRIVATE); + + // File location to save image + File imagePath = new File(directory, fileName); + + return imagePath.delete(); + } + + public static void resizeAndSaveResourceImageToInternalStorage(@NonNull Context context, @NonNull String fileName, @NonNull String resourceName) throws FileNotFoundException { + final int resourceId = context.getResources().getIdentifier(resourceName, "drawable", context.getPackageName()); + + if (resourceId == 0) { + //unrecognised resource + throw new FileNotFoundException("Resource not found for file named: " + resourceName); + } + resizeAndSaveResourceImageToInternalStorage(context, fileName, resourceId); + } + + public static void resizeAndSaveResourceImageToInternalStorage(@NonNull Context context, @NonNull String fileName, int resourceId) { + Resources resources = context.getResources(); + Bitmap sourceBitmap = BitmapFactory.decodeResource(resources, resourceId); + Bitmap resizedBitmap = resizeBitmapForDeviceDensity(context, sourceBitmap); + saveBitmapToInternalStorage(context, resizedBitmap, fileName); + sourceBitmap.recycle(); + resizedBitmap.recycle(); + } + + public static Bitmap resizeBitmapForDeviceDensity(@NonNull Context context, @NonNull Bitmap sourceBitmap) { + DisplayMetrics metrics = context.getResources().getDisplayMetrics(); + + int targetWidth = Math.round(sourceBitmap.getWidth() * metrics.density); + int targetHeight = Math.round(sourceBitmap.getHeight() * metrics.density); + + return Bitmap.createScaledBitmap(sourceBitmap, targetWidth, targetHeight, false); + } + + public static void saveBitmapToInternalStorage(@NonNull Context context, @NonNull Bitmap bitmapImage, @NonNull String fileName) { + + // path to /data/data/yourapp/app_data/images + File directory = context.getDir("images", Context.MODE_PRIVATE); + + // File location to save image + File imagePath = new File(directory, fileName); + + FileOutputStream fos = null; + try { + fos = new FileOutputStream(imagePath); + + // Use the compress method on the BitMap object to write image to the OutputStream + bitmapImage.compress(Bitmap.CompressFormat.PNG, 100, fos); + fos.flush(); + } catch (FileNotFoundException e) { + Log.e(LOG_TAG, "Exception while trying to save file to internal storage: " + imagePath, e); + } catch (IOException e) { + Log.e(LOG_TAG, "Exception while trying to flush the output stream", e); + } finally { + if (fos != null) { + try { + fos.close(); + } catch (IOException e) { + Log.e(LOG_TAG, "Exception wile trying to close file output stream.", e); + } + } + } + } + + public static Bitmap loadBitmapFromInternalStorage(@NonNull Context applicationContext, @NonNull String fileName) { + + // path to /data/data/yourapp/app_data/images + File directory = applicationContext.getDir("images", Context.MODE_PRIVATE); + + // File location to save image + File imagePath = new File(directory, fileName); + + try { + return BitmapFactory.decodeStream(new FileInputStream(imagePath)); + } catch (FileNotFoundException e) { + Log.e(LOG_TAG, "Exception wile trying to load image: " + imagePath, e); + return null; + } + } + + public static void preproccessImageIfNecessary(Context context, String fileName, String resourceName) { + // Set this to true to force the app to always load the images for debugging purposes + final boolean DEBUG = false; + + if (ImageHelper.checkIfImageFileExists(context, fileName)) { + // Image file already exists, no need to load the file again. + + if (DEBUG) { + Log.d(LOG_TAG, "DEBUG: Deleting: " + fileName); + ImageHelper.deleteImageFile(context, fileName); + } else { + return; + } + } + + try { + ImageHelper.resizeAndSaveResourceImageToInternalStorage(context, fileName, resourceName); + Log.d(LOG_TAG, "Resized and saved image: " + fileName); + } catch (FileNotFoundException e) { + Log.e(LOG_TAG, "Unable to process image: " + fileName, e); + throw new RuntimeException(e); + } + } + + /** + * Returns the bitmap position inside an imageView. + * Source: http://stackoverflow.com/a/26930938 + * Author: http://stackoverflow.com/users/1474079/chteuchteu + * + * @param imageView source ImageView + * @return 0: left, 1: top, 2: width, 3: height + */ + public static int[] getBitmapPositionInsideImageView(ImageView imageView) { + int[] ret = new int[4]; + + if (imageView == null || imageView.getDrawable() == null) + return ret; + + // Get image dimensions + // Get image matrix values and place them in an array + float[] f = new float[9]; + imageView.getImageMatrix().getValues(f); + + // Extract the scale values using the constants (if aspect ratio maintained, scaleX == scaleY) + final float scaleX = f[Matrix.MSCALE_X]; + final float scaleY = f[Matrix.MSCALE_Y]; + + // Get the drawable (could also get the bitmap behind the drawable and getWidth/getHeight) + final Drawable d = imageView.getDrawable(); + final int origW = d.getIntrinsicWidth(); + final int origH = d.getIntrinsicHeight(); + + // Calculate the actual dimensions + final int actW = Math.round(origW * scaleX); + final int actH = Math.round(origH * scaleY); + + ret[2] = actW; + ret[3] = actH; + + // Get image position + // We assume that the image is centered into ImageView + int imgViewW = imageView.getWidth(); + int imgViewH = imageView.getHeight(); + + int top = (imgViewH - actH) / 2; + int left = (imgViewW - actW) / 2; + + ret[0] = left; + ret[1] = top; + + return ret; + } +} diff --git a/app/src/main/java/com/affectiva/affdexme/MainActivity.java b/app/src/main/java/com/affectiva/affdexme/MainActivity.java index 325167f..7f92eeb 100644 --- a/app/src/main/java/com/affectiva/affdexme/MainActivity.java +++ b/app/src/main/java/com/affectiva/affdexme/MainActivity.java @@ -1,6 +1,7 @@ package com.affectiva.affdexme; import android.Manifest; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; @@ -36,9 +37,11 @@ import com.affectiva.android.affdex.sdk.detector.CameraDetector; import com.affectiva.android.affdex.sdk.detector.Detector; import com.affectiva.android.affdex.sdk.detector.Face; +import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; +import java.util.Locale; /* * AffdexMe is an app that demonstrates the use of the Affectiva Android SDK. It uses the @@ -76,20 +79,16 @@ public class MainActivity extends AppCompatActivity implements Detector.FaceListener, Detector.ImageListener, CameraDetector.CameraEventListener, View.OnTouchListener, ActivityCompat.OnRequestPermissionsResultCallback { + public static final int MAX_SUPPORTED_FACES = 4; public static final int NUM_METRICS_DISPLAYED = 6; private static final String LOG_TAG = "Affectiva"; - //Permission-related constants and variables private static final int AFFDEXME_PERMISSIONS_REQUEST = 42; //value is arbitrary (between 0 and 255) - private boolean cameraPermissionsAvailable = false; - private boolean storagePermissionsAvailable = false; - //Camera variables int cameraPreviewWidth = 0; int cameraPreviewHeight = 0; CameraDetector.CameraType cameraType; boolean mirrorPoints = false; - //Affectiva SDK Object + private boolean cameraPermissionsAvailable = false; private CameraDetector detector = null; - //MetricsManager View UI Objects private RelativeLayout metricViewLayout; private LinearLayout leftMetricsLayout; private LinearLayout rightMetricsLayout; @@ -99,8 +98,6 @@ public class MainActivity extends AppCompatActivity private TextView fpsPct; private TextView pleaseWaitTextView; private ProgressBar progressBar; - //Other UI objects - private ViewGroup activityLayout; //top-most ViewGroup in which all content resides private RelativeLayout mainLayout; //layout, to be resized, containing all UI elements private RelativeLayout progressBarLayout; //layout used to show progress circle while camera is starting private LinearLayout permissionsUnavailableLayout; //layout used to notify the user that not enough permissions have been granted to use the app @@ -108,49 +105,62 @@ public class MainActivity extends AppCompatActivity private DrawingView drawingView; //SurfaceView containing its own thread, used to draw facial tracking dots private ImageButton settingsButton; private ImageButton cameraButton; - private Button retryPermissionsButton; - //Application settings variables - private int detectorProcessRate; private boolean isMenuVisible = false; private boolean isFPSVisible = false; private boolean isMenuShowingForFirstTime = true; - //Frames Per Second (FPS) variables private long firstSystemTime = 0; private float numberOfFrames = 0; private long timeToUpdate = 0; - //Camera-related variables private boolean isFrontFacingCameraDetected = true; private boolean isBackFacingCameraDetected = true; + private boolean multiFaceModeEnabled = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //To maximize UI space, we declare our app to be full-screen + preproccessMetricImages(); setContentView(R.layout.activity_main); - initializeUI(); checkForDangerousPermissions(); - determineCameraAvailability(); - initializeCameraDetector(); } + /** + * Only load the files onto disk the first time the app opens + */ + private void preproccessMetricImages() { + Context context = getBaseContext(); + + for (Face.EMOJI emoji : Face.EMOJI.values()) { + if (emoji.equals(Face.EMOJI.UNKNOWN)) { + continue; + } + String emojiResourceName = emoji.name().trim().replace(' ', '_').toLowerCase(Locale.US).concat("_emoji"); + String emojiFileName = emojiResourceName + ".png"; + ImageHelper.preproccessImageIfNecessary(context, emojiFileName, emojiResourceName); + } + + ImageHelper.preproccessImageIfNecessary(context, "female_glasses.png", "female_glasses"); + ImageHelper.preproccessImageIfNecessary(context, "female_noglasses.png", "female_noglasses"); + ImageHelper.preproccessImageIfNecessary(context, "male_glasses.png", "male_glasses"); + ImageHelper.preproccessImageIfNecessary(context, "male_noglasses.png", "male_noglasses"); + ImageHelper.preproccessImageIfNecessary(context, "unknown_glasses.png", "unknown_glasses"); + ImageHelper.preproccessImageIfNecessary(context, "unknown_noglasses.png", "unknown_noglasses"); + } + + private void checkForDangerousPermissions() { cameraPermissionsAvailable = ContextCompat.checkSelfPermission( getApplicationContext(), Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED; - storagePermissionsAvailable = - ContextCompat.checkSelfPermission( - getBaseContext(), - Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED; - if (!cameraPermissionsAvailable || !storagePermissionsAvailable) { + if (!cameraPermissionsAvailable) { // Should we show an explanation? - if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) || - ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) { + if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) { // Show an explanation to the user *asynchronously* -- don't block // this thread waiting for the user's response! After the user @@ -169,9 +179,6 @@ public class MainActivity extends AppCompatActivity if (!cameraPermissionsAvailable) { neededPermissions.add(Manifest.permission.CAMERA); } - if (!storagePermissionsAvailable) { - neededPermissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); - } ActivityCompat.requestPermissions( this, @@ -194,13 +201,10 @@ public class MainActivity extends AppCompatActivity if (permission.equals(Manifest.permission.CAMERA)) { cameraPermissionsAvailable = (grantResult == PackageManager.PERMISSION_GRANTED); } - if (permission.equals(Manifest.permission.WRITE_EXTERNAL_STORAGE)) { - storagePermissionsAvailable = (grantResult == PackageManager.PERMISSION_GRANTED); - } } } - if (!cameraPermissionsAvailable || !storagePermissionsAvailable) { + if (!cameraPermissionsAvailable) { permissionsUnavailableLayout.setVisibility(View.VISIBLE); } else { permissionsUnavailableLayout.setVisibility(View.GONE); @@ -250,21 +254,24 @@ public class MainActivity extends AppCompatActivity notFoundTextView.setVisibility(View.VISIBLE); } - //TODO: change this to be taken from settings - if (isBackFacingCameraDetected) { - cameraType = CameraDetector.CameraType.CAMERA_BACK; - mirrorPoints = false; - } - if (isFrontFacingCameraDetected) { + //set default camera settings + SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); + + //restore the camera type settings + String cameraTypeName = sharedPreferences.getString("cameraType", CameraDetector.CameraType.CAMERA_FRONT.name()); + if (cameraTypeName.equals(CameraDetector.CameraType.CAMERA_FRONT.name())) { cameraType = CameraDetector.CameraType.CAMERA_FRONT; mirrorPoints = true; + } else { + cameraType = CameraDetector.CameraType.CAMERA_BACK; + mirrorPoints = false; } } void initializeUI() { //Get handles to UI objects - activityLayout = (ViewGroup) findViewById(android.R.id.content); + ViewGroup activityLayout = (ViewGroup) findViewById(android.R.id.content); progressBarLayout = (RelativeLayout) findViewById(R.id.progress_bar_cover); permissionsUnavailableLayout = (LinearLayout) findViewById(R.id.permissionsUnavialableLayout); metricViewLayout = (RelativeLayout) findViewById(R.id.metric_view_group); @@ -279,7 +286,7 @@ public class MainActivity extends AppCompatActivity cameraButton = (ImageButton) findViewById(R.id.camera_button); progressBar = (ProgressBar) findViewById(R.id.progress_bar); pleaseWaitTextView = (TextView) findViewById(R.id.please_wait_textview); - retryPermissionsButton = (Button) findViewById(R.id.retryPermissionsButton); + Button retryPermissionsButton = (Button) findViewById(R.id.retryPermissionsButton); //Initialize views to display metrics metricNames = new TextView[NUM_METRICS_DISPLAYED]; @@ -336,7 +343,7 @@ public class MainActivity extends AppCompatActivity activityLayout.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() { @Override public void onSystemUiVisibilityChange(int uiCode) { - if ((uiCode == 0) && (isMenuVisible == false)) { + if ((uiCode == 0) && (!isMenuVisible)) { setMenuVisible(true); } @@ -356,8 +363,7 @@ public class MainActivity extends AppCompatActivity * the camera. If a SurfaceView is passed in as the last argument to the constructor, * that view will be painted with what the camera sees. */ - - detector = new CameraDetector(this, CameraDetector.CameraType.CAMERA_FRONT, cameraView); + detector = new CameraDetector(this, cameraType, cameraView, (multiFaceModeEnabled ? MAX_SUPPORTED_FACES : 1), Detector.FaceDetectorMode.LARGE_FACES); // update the license path here if you name your file something else detector.setLicensePath("license.txt"); @@ -378,15 +384,42 @@ public class MainActivity extends AppCompatActivity isMenuShowingForFirstTime = true; } + private void setMultiFaceModeEnabled(boolean isEnabled) { + + //if setting change is necessary + if (isEnabled != multiFaceModeEnabled) { + // change the setting, stop the detector, and reinitialize it to change the setting + multiFaceModeEnabled = isEnabled; + stopDetector(); + initializeCameraDetector(); + } + } + /* * We use the Shared Preferences object to restore application settings. */ public void restoreApplicationSettings() { SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); + //restore the camera type settings + String cameraTypeName = sharedPreferences.getString("cameraType", CameraDetector.CameraType.CAMERA_FRONT.name()); + if (cameraTypeName.equals(CameraDetector.CameraType.CAMERA_FRONT.name())) { + setCameraType(CameraDetector.CameraType.CAMERA_FRONT); + } else { + setCameraType(CameraDetector.CameraType.CAMERA_BACK); + } + + //restore the multiface mode setting to reset the detector if necessary + if (sharedPreferences.getBoolean("multiface", false)) { // default to false + setMultiFaceModeEnabled(true); + } else { + setMultiFaceModeEnabled(false); + } + //restore camera processing rate - detectorProcessRate = PreferencesUtils.getFrameProcessingRate(sharedPreferences); + int detectorProcessRate = PreferencesUtils.getFrameProcessingRate(sharedPreferences); detector.setMaxProcessRate(detectorProcessRate); + drawingView.invalidateDimensions(); if (sharedPreferences.getBoolean("fps", isFPSVisible)) { //restore isFPSMetricVisible setFPSVisible(true); @@ -400,16 +433,31 @@ public class MainActivity extends AppCompatActivity setTrackPoints(false); } - if (sharedPreferences.getBoolean("measurements", drawingView.getDrawMeasurementsEnabled())) { //restore show measurements - setShowMeasurements(true); + if (sharedPreferences.getBoolean("appearance", drawingView.getDrawAppearanceMarkersEnabled())) { + detector.setDetectAllAppearance(true); + setShowAppearance(true); } else { - setShowMeasurements(false); + detector.setDetectAllAppearance(false); + setShowAppearance(false); + } + + if (sharedPreferences.getBoolean("emoji", drawingView.getDrawEmojiMarkersEnabled())) { + detector.setDetectAllEmojis(true); + setShowEmoji(true); + } else { + detector.setDetectAllEmojis(false); + setShowEmoji(false); } //populate metric displays for (int n = 0; n < NUM_METRICS_DISPLAYED; n++) { activateMetric(n, PreferencesUtils.getMetricFromPrefs(sharedPreferences, n)); } + + //if we are in multiface mode, we need to enable the detection of all emotions + if (multiFaceModeEnabled) { + detector.setDetectAllEmotions(true); + } } /** @@ -419,27 +467,43 @@ public class MainActivity extends AppCompatActivity * -save the Method object that will be invoked on the Face object received in onImageResults() to get the metric score */ void activateMetric(int index, MetricsManager.Metrics metric) { - metricNames[index].setText(MetricsManager.getUpperCaseName(metric)); Method getFaceScoreMethod = null; //The method that will be used to get a metric score + try { - //Enable metric detection - Detector.class.getMethod("setDetect" + MetricsManager.getCamelCase(metric), boolean.class).invoke(detector, true); + switch (metric.getType()) { + case Emotion: + Detector.class.getMethod("setDetect" + MetricsManager.getCamelCase(metric), boolean.class).invoke(detector, true); + metricNames[index].setText(MetricsManager.getUpperCaseName(metric)); + getFaceScoreMethod = Face.Emotions.class.getMethod("get" + MetricsManager.getCamelCase(metric)); - if (metric.getType() == MetricsManager.MetricType.Emotion) { - getFaceScoreMethod = Face.Emotions.class.getMethod("get" + MetricsManager.getCamelCase(metric), null); - - //The MetricDisplay for Valence is unique; it shades it color depending on the metric value - if (metric == MetricsManager.Emotions.VALENCE) { - metricDisplays[index].setIsShadedMetricView(true); - } else { - metricDisplays[index].setIsShadedMetricView(false); - } - } else if (metric.getType() == MetricsManager.MetricType.Expression) { - getFaceScoreMethod = Face.Expressions.class.getMethod("get" + MetricsManager.getCamelCase(metric), null); + //The MetricDisplay for Valence is unique; it shades it color depending on the metric value + if (metric == MetricsManager.Emotions.VALENCE) { + metricDisplays[index].setIsShadedMetricView(true); + } else { + metricDisplays[index].setIsShadedMetricView(false); + } + break; + case Expression: + Detector.class.getMethod("setDetect" + MetricsManager.getCamelCase(metric), boolean.class).invoke(detector, true); + metricNames[index].setText(MetricsManager.getUpperCaseName(metric)); + getFaceScoreMethod = Face.Expressions.class.getMethod("get" + MetricsManager.getCamelCase(metric)); + break; + case Emoji: + detector.setDetectAllEmojis(true); + MetricsManager.Emojis emoji = ((MetricsManager.Emojis) metric); + String metricTitle = emoji.getDisplayName(); // + " " + emoji.getUnicodeForEmoji(); + metricNames[index].setText(metricTitle); + Log.d(LOG_TAG, "Getter Method: " + "get" + MetricsManager.getCamelCase(metric)); + getFaceScoreMethod = Face.Emojis.class.getMethod("get" + MetricsManager.getCamelCase(metric)); + break; } - } catch (Exception e) { - Log.e(LOG_TAG, String.format("Error using reflection to generate methods for %s", metric.toString())); + } catch (NoSuchMethodException e) { + Log.e(LOG_TAG, String.format("No such method while using reflection to generate methods for %s", metric.toString()), e); + } catch (InvocationTargetException e) { + Log.e(LOG_TAG, String.format("Invocation error while using reflection to generate methods for %s", metric.toString()), e); + } catch (IllegalAccessException e) { + Log.e(LOG_TAG, String.format("Illegal access error while using reflection to generate methods for %s", metric.toString()), e); } metricDisplays[index].setMetricToDisplay(metric, getFaceScoreMethod); @@ -474,7 +538,7 @@ public class MainActivity extends AppCompatActivity void mainWindowResumedTasks() { //Notify the user that they can't use the app without authorizing these permissions. - if (!cameraPermissionsAvailable || !storagePermissionsAvailable) { + if (!cameraPermissionsAvailable) { permissionsUnavailableLayout.setVisibility(View.VISIBLE); return; } @@ -543,32 +607,34 @@ public class MainActivity extends AppCompatActivity performFPSCalculations(); //If faces.size() is 0, we received a frame in which no face was detected - if (faces.size() == 0) { - drawingView.updatePoints(null, mirrorPoints); //the drawingView takes null points to mean it doesn't have to draw anything - return; - } + if (faces.size() <= 0) { + drawingView.invalidatePoints(); + } else if (faces.size() == 1) { + metricViewLayout.setVisibility(View.VISIBLE); - //The SDK currently detects one face at a time, so we recover it using .get(0). - //'0' indicates we are recovering the first face. - Face face = faces.get(0); + //update metrics with latest face information. The metrics are displayed on a MetricView, a custom view with a .setScore() method. + for (MetricDisplay metricDisplay : metricDisplays) { + updateMetricScore(metricDisplay, faces.get(0)); + } - //update metrics with latest face information. The metrics are displayed on a MetricView, a custom view with a .setScore() method. - for (MetricDisplay metricDisplay : metricDisplays) { - updateMetricScore(metricDisplay, face); - } + /** + * If the user has selected to have any facial attributes drawn, we use face.getFacePoints() to send those points + * to our drawing thread and also inform the thread what the valence score was, as that will determine the color + * of the bounding box. + */ + if (drawingView.getDrawPointsEnabled() || drawingView.getDrawAppearanceMarkersEnabled() || drawingView.getDrawEmojiMarkersEnabled()) { + drawingView.updatePoints(faces, mirrorPoints); + } - /** - * If the user has selected to have facial tracking dots or measurements drawn, we use face.getFacePoints() to send those points - * to our drawing thread and also inform the thread what the valence score was, as that will determine the color - * of the bounding box. - */ - if (drawingView.getDrawPointsEnabled() || drawingView.getDrawMeasurementsEnabled()) { - drawingView.setMetrics(face.measurements.orientation.getRoll(), face.measurements.orientation.getYaw(), face.measurements.orientation.getPitch(), face.measurements.getInterocularDistance(), face.emotions.getValence()); - drawingView.updatePoints(face.getFacePoints(), mirrorPoints); + } else { + // metrics overlay is hidden in multi face mode + metricViewLayout.setVisibility(View.GONE); + + // always update points in multi face mode + drawingView.updatePoints(faces, mirrorPoints); } } - /** * Use the method that we saved in activateMetric() to get the metric score and display it */ @@ -578,11 +644,18 @@ public class MainActivity extends AppCompatActivity float score = Float.NaN; try { - if (metric.getType() == MetricsManager.MetricType.Emotion) { - score = (Float) metricDisplay.getFaceScoreMethod().invoke(face.emotions, null); - metricDisplay.setScore(score); - } else if (metric.getType() == MetricsManager.MetricType.Expression) { - score = (Float) metricDisplay.getFaceScoreMethod().invoke(face.expressions, null); + switch (metric.getType()) { + case Emotion: + score = (Float) metricDisplay.getFaceScoreMethod().invoke(face.emotions); + break; + case Expression: + score = (Float) metricDisplay.getFaceScoreMethod().invoke(face.expressions); + break; + case Emoji: + score = (Float) metricDisplay.getFaceScoreMethod().invoke(face.emojis); + break; + default: + throw new Exception("Unknown Metric Type: " + metric.getType().toString()); } } catch (Exception e) { Log.e(LOG_TAG, String.format("Error using reflecting to get %s score from face.", metric.toString())); @@ -633,6 +706,8 @@ public class MainActivity extends AppCompatActivity detector.setDetectAllEmotions(false); detector.setDetectAllExpressions(false); + detector.setDetectAllAppearance(false); + detector.setDetectAllEmojis(false); } @@ -659,10 +734,7 @@ public class MainActivity extends AppCompatActivity | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION - | View.SYSTEM_UI_FLAG_FULLSCREEN - | View.SYSTEM_UI_FLAG_IMMERSIVE); - - + | View.SYSTEM_UI_FLAG_FULLSCREEN); settingsButton.setVisibility(View.INVISIBLE); cameraButton.setVisibility(View.INVISIBLE); } @@ -686,10 +758,15 @@ public class MainActivity extends AppCompatActivity drawingView.setDrawPointsEnabled(b); } - void setShowMeasurements(boolean b) { - drawingView.setDrawMeasurementsEnabled(b); + void setShowAppearance(boolean b) { + drawingView.setDrawAppearanceMarkersEnabled(b); } + void setShowEmoji(boolean b) { + drawingView.setDrawEmojiMarkersEnabled(b); + } + + void setFPSVisible(boolean b) { isFPSVisible = b; if (b) { @@ -713,14 +790,7 @@ public class MainActivity extends AppCompatActivity startActivity(new Intent(this, SettingsActivity.class)); } - /* onCameraStarted is a feature of SDK 2.02, commenting out for 2.01 - @Override - public void onCameraStarted(boolean b, Throwable throwable) { - if (throwable != null) { - Toast.makeText(this,"Failed to start camera.",Toast.LENGTH_LONG).show(); - } - }*/ - + @SuppressWarnings("SuspiciousNameCombination") @Override public void onCameraSizeSelected(int cameraWidth, int cameraHeight, ROTATE rotation) { if (rotation == ROTATE.BY_90_CCW || rotation == ROTATE.BY_90_CW) { @@ -774,28 +844,43 @@ public class MainActivity extends AppCompatActivity public void camera_button_click(View view) { - if (cameraType == CameraDetector.CameraType.CAMERA_FRONT) { - if (isBackFacingCameraDetected) { - cameraType = CameraDetector.CameraType.CAMERA_BACK; - mirrorPoints = false; - } else { - Toast.makeText(this, "No back-facing camera found", Toast.LENGTH_LONG).show(); - } - } else if (cameraType == CameraDetector.CameraType.CAMERA_BACK) { - if (isFrontFacingCameraDetected) { - cameraType = CameraDetector.CameraType.CAMERA_FRONT; - mirrorPoints = true; - } else { - Toast.makeText(this, "No front-facing camera found", Toast.LENGTH_LONG).show(); - } - } + //Toggle the camera setting + setCameraType(cameraType == CameraDetector.CameraType.CAMERA_FRONT ? CameraDetector.CameraType.CAMERA_BACK : CameraDetector.CameraType.CAMERA_FRONT); + } - performFaceDetectionStoppedTasks(); + private void setCameraType(CameraDetector.CameraType type) { + SharedPreferences.Editor preferencesEditor = PreferenceManager.getDefaultSharedPreferences(this).edit(); + + //If a settings change is necessary + if (cameraType != type) { + switch (type) { + case CAMERA_BACK: + if (isBackFacingCameraDetected) { + cameraType = CameraDetector.CameraType.CAMERA_BACK; + mirrorPoints = false; + } else { + Toast.makeText(this, "No back-facing camera found", Toast.LENGTH_LONG).show(); + return; + } + break; + case CAMERA_FRONT: + if (isFrontFacingCameraDetected) { + cameraType = CameraDetector.CameraType.CAMERA_FRONT; + mirrorPoints = true; + } else { + Toast.makeText(this, "No front-facing camera found", Toast.LENGTH_LONG).show(); + return; + } + break; + default: + Log.e(LOG_TAG, "Unknown camera type selected"); + } + + performFaceDetectionStoppedTasks(); - try { detector.setCameraType(cameraType); - } catch (Exception e) { - Log.e(LOG_TAG, e.getMessage()); + preferencesEditor.putString("cameraType", cameraType.name()); + preferencesEditor.apply(); } } } diff --git a/app/src/main/java/com/affectiva/affdexme/MetricDisplay.java b/app/src/main/java/com/affectiva/affdexme/MetricDisplay.java index ea8888e..b4fb2da 100644 --- a/app/src/main/java/com/affectiva/affdexme/MetricDisplay.java +++ b/app/src/main/java/com/affectiva/affdexme/MetricDisplay.java @@ -34,15 +34,17 @@ public class MetricDisplay extends View { public MetricDisplay(Context context) { super(context); - initResources(context,null); + initResources(context, null); } + public MetricDisplay(Context context, AttributeSet attrs) { - super(context,attrs); - initResources(context,attrs); + super(context, attrs); + initResources(context, attrs); } - public MetricDisplay(Context context, AttributeSet attrs, int styleID){ + + public MetricDisplay(Context context, AttributeSet attrs, int styleID) { super(context, attrs, styleID); - initResources(context,attrs); + initResources(context, attrs); } void setIsShadedMetricView(boolean b) { @@ -65,11 +67,11 @@ public class MetricDisplay extends View { //load and parse XML attributes if (attrs != null) { - TypedArray a = getContext().obtainStyledAttributes(attrs,R.styleable.custom_attributes,0,0); + TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.custom_attributes, 0, 0); textPaint.setColor(a.getColor(R.styleable.custom_attributes_textColor, Color.BLACK)); textSize = a.getDimensionPixelSize(R.styleable.custom_attributes_textSize, textSize); textPaint.setTextSize(textSize); - halfWidth = a.getDimensionPixelSize(R.styleable.custom_attributes_metricBarLength,100)/2; + halfWidth = a.getDimensionPixelSize(R.styleable.custom_attributes_metricBarLength, 100) / 2; a.recycle(); } else { textPaint.setColor(Color.BLACK); @@ -83,7 +85,6 @@ public class MetricDisplay extends View { */ height = textSize; textBottom = height - 5; - } public void setMetricToDisplay(MetricsManager.Metrics metricToDisplay, Method faceScoreMethod) { @@ -103,7 +104,7 @@ public class MetricDisplay extends View { textPaint.setTypeface(face); } - public void setScore(float s){ + public void setScore(float s) { text = String.format("%.0f%%", s); //change the text of the view //shading mode is turned on for Valence, which causes this view to shade its color according @@ -117,11 +118,11 @@ public class MetricDisplay extends View { right = midX + (halfWidth * (-s / 100)); } if (s > 0) { - float colorScore = ((100f-s)/100f)*255; - boxPaint.setColor(Color.rgb((int)colorScore,255,(int)colorScore)); + float colorScore = ((100f - s) / 100f) * 255; + boxPaint.setColor(Color.rgb((int) colorScore, 255, (int) colorScore)); } else { - float colorScore = ((100f+s)/100f)*255; - boxPaint.setColor(Color.rgb(255,(int)colorScore,(int)colorScore)); + float colorScore = ((100f + s) / 100f) * 255; + boxPaint.setColor(Color.rgb(255, (int) colorScore, (int) colorScore)); } } else { left = midX - (halfWidth * (s / 100)); //change the coordinates at which the colored bar will be drawn @@ -133,29 +134,27 @@ public class MetricDisplay extends View { /** * set our view to be the minimum of the sizes that Android will allow and our desired sizes - * **/ + **/ @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - setMeasuredDimension((int)Math.min(MeasureSpec.getSize(widthMeasureSpec), halfWidth *2), (int)Math.min(MeasureSpec.getSize(heightMeasureSpec),height)); + setMeasuredDimension((int) Math.min(MeasureSpec.getSize(widthMeasureSpec), halfWidth * 2), (int) Math.min(MeasureSpec.getSize(heightMeasureSpec), height)); } @Override protected void onSizeChanged(int w, int h, int oldW, int oldH) { - super.onSizeChanged(w,h,oldW,oldH); - midX = w/2; - midY = h/2; + super.onSizeChanged(w, h, oldW, oldH); + midX = w / 2; + midY = h / 2; } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //draws the colored bar that appears behind our score - canvas.drawRect(left,top,right,height, boxPaint); + canvas.drawRect(left, top, right, height, boxPaint); //draws the score - canvas.drawText(text,midX , textBottom, textPaint); + canvas.drawText(text, midX, textBottom, textPaint); } - - } diff --git a/app/src/main/java/com/affectiva/affdexme/MetricSelectionFragment.java b/app/src/main/java/com/affectiva/affdexme/MetricSelectionFragment.java index 785b962..d1372d8 100644 --- a/app/src/main/java/com/affectiva/affdexme/MetricSelectionFragment.java +++ b/app/src/main/java/com/affectiva/affdexme/MetricSelectionFragment.java @@ -10,6 +10,7 @@ import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.preference.PreferenceManager; +import android.support.v4.content.ContextCompat; import android.util.Log; import android.view.LayoutInflater; import android.view.Surface; @@ -24,9 +25,9 @@ import java.util.ArrayList; import java.util.HashMap; import static com.affectiva.affdexme.MainActivity.NUM_METRICS_DISPLAYED; + /** * A fragment to display a graphical menu which allows the user to select which metrics to display. - * */ public class MetricSelectionFragment extends Fragment implements View.OnClickListener { @@ -84,13 +85,11 @@ public class MetricSelectionFragment extends Fragment implements View.OnClickLis } ); - Resources res = getResources(); - messageAtOrUnderLimitColor = res.getColor(R.color.white); - messageOverLimitColor = res.getColor(R.color.red); + messageAtOrUnderLimitColor = ContextCompat.getColor(getActivity(), R.color.white); + messageOverLimitColor = ContextCompat.getColor(getActivity(), R.color.red); } - /** * A method to populate the metricSelectors array using information from either a saved instance bundle (if the activity is being re-created) * or sharedPreferences (if the activity is being created for the first time) @@ -110,15 +109,15 @@ public class MetricSelectionFragment extends Fragment implements View.OnClickLis if (bundle != null) { //if we were passed a bundle, use its data to configure the MetricSelectors for (MetricsManager.Metrics metric : MetricsManager.getAllMetrics()) { - if (bundle.getBoolean(metric.toString(),false)) { - selectItem(metricSelectors.get(metric),true,false); + if (bundle.getBoolean(metric.toString(), false)) { + selectItem(metricSelectors.get(metric), true, false); } } - + } else { //otherwise, we pull the data from application preferences for (int i = 0; i < NUM_METRICS_DISPLAYED; i++) { MetricsManager.Metrics chosenMetric = PreferencesUtils.getMetricFromPrefs(sharedPreferences, i); - selectItem(metricSelectors.get(chosenMetric),true,false); + selectItem(metricSelectors.get(chosenMetric), true, false); } } } @@ -207,7 +206,7 @@ public class MetricSelectionFragment extends Fragment implements View.OnClickLis Log.e(LOG_TAG, "Desired Column Width too large! Unable to populate Grid"); return; } - int columnWidth = (int)((float) gridWidth / (float)numColumns); + int columnWidth = (int) ((float) gridWidth / (float) numColumns); //This integer reference will be used across methods to keep track of how many rows we have created. //Each method we pass it into leaves it at a value indicating the next row number that views should be added to. @@ -218,6 +217,10 @@ public class MetricSelectionFragment extends Fragment implements View.OnClickLis addHeader("Expressions", currentRow, numColumns, inflater); addGridItems(currentRow, numColumns, inflater, res, columnWidth, MetricsManager.Expressions.values()); + // If you wanted to add Emoji as selectable metrics, you would uncomment the two lines below +// addHeader("Emoji", currentRow, numColumns, inflater); +// addGridItems(currentRow, numColumns, inflater, res, columnWidth, MetricsManager.Emojis.values()); + gridLayout.setColumnCount(numColumns); gridLayout.setRowCount(currentRow.value); } @@ -253,18 +256,21 @@ public class MetricSelectionFragment extends Fragment implements View.OnClickLis } MetricSelector item = metricSelectors.get(metric); + if (item != null) { + GridLayout.LayoutParams params = new GridLayout.LayoutParams(); + params.width = size; + params.height = size; + params.columnSpec = GridLayout.spec(col); + params.rowSpec = GridLayout.spec(currentRow.value); + item.setLayoutParams(params); - GridLayout.LayoutParams params = new GridLayout.LayoutParams(); - params.width = size; - params.height = size; - params.columnSpec = GridLayout.spec(col); - params.rowSpec = GridLayout.spec(currentRow.value); - item.setLayoutParams(params); - - item.setOnClickListener(this); - gridLayout.addView(item); + item.setOnClickListener(this); + gridLayout.addView(item); + } else { + Log.e(this.getClass().getSimpleName(), "Unknown MetricSelector item for Metric: " + metric.toString()); + } } - currentRow.value +=1; //point currentRow to row where next views should be added + currentRow.value += 1; //point currentRow to row where next views should be added } @Override @@ -294,18 +300,10 @@ public class MetricSelectionFragment extends Fragment implements View.OnClickLis } metricSelector.setIsSelected(isSelected); - //Create and display message at the top - /*String dMetricsChosen; - if (numberOfSelectedItems == 1) { - dMetricsChosen = "1 metric chosen."; - } else { - dMetricsChosen = String.format("%d metrics chosen.",numberOfSelectedItems); - }*/ - if (numberOfSelectedItems == 1) { metricChooserTextView.setText("1 metric chosen."); } else { - metricChooserTextView.setText(String.format("%d metrics chosen.",numberOfSelectedItems)); + metricChooserTextView.setText(String.format("%d metrics chosen.", numberOfSelectedItems)); } if (numberOfSelectedItems <= NUM_METRICS_DISPLAYED) { @@ -313,25 +311,11 @@ public class MetricSelectionFragment extends Fragment implements View.OnClickLis } else { metricChooserTextView.setTextColor(messageOverLimitColor); } - - - - /*if (numberOfSelectedItems < NUM_METRICS_DISPLAYED) { - metricChooserTextView.setTextColor(messageAtOrUnderLimitColor); - metricChooserTextView.setText(String.format("%s Choose %d more.", dMetricsChosen, NUM_METRICS_DISPLAYED - numberOfSelectedItems)); - } else if (numberOfSelectedItems == NUM_METRICS_DISPLAYED) { - metricChooserTextView.setTextColor(messageAtOrUnderLimitColor); - metricChooserTextView.setText(dMetricsChosen); - } else { - metricChooserTextView.setTextColor(messageOverLimitColor); - metricChooserTextView.setText(String.format("%s Please de-select %d.", dMetricsChosen, numberOfSelectedItems - NUM_METRICS_DISPLAYED)); - }*/ - } void clearItems() { for (MetricsManager.Metrics metric : MetricsManager.getAllMetrics()) { - selectItem(metricSelectors.get(metric),false,true); + selectItem(metricSelectors.get(metric), false, true); } updateAllGridItems(); } @@ -349,28 +333,39 @@ public class MetricSelectionFragment extends Fragment implements View.OnClickLis fragmentMediaPlayer.destroy(); } + /** + * These are not all the MediaPlayer states defined by Android, but they are all the ones we are interested in. + * Note that SafeMediaPlayer never stays in the STOPPED state, so we don't include it. + */ + enum MediaPlayerState { + IDLE, INIT, PREPARED, PLAYING + } + + + interface OnSafeMediaPlayerPreparedListener { + void onSafeMediaPlayerPrepared(); + } + //IntRef represents a reference to a mutable integer value //It is used to keep track of how many rows have been created in the populateGrid() method class IntRef { public int value; + public IntRef() { value = 0; } } - - - /** * The MetricSelector objects in this fragment will play a video when selected. To keep memory usage low, we use only one MediaPlayer * object to control video playback. Video is rendered on a single TextureView. * Chain of events that lead to video playback: - * -When a MetricSelector is clicked, the MediaPlayer.setDataSource() is called to set the video file - * -The TextureView is added to the view hierarchy of the MetricSelector, causing the onSurfaceTextureAvailable callback to fire - * -The TextureView is bound to the MediaPlayer through MediaPlayer.setSurface(), then MediaPlayer.prepareAsync() is called - * -Once preparation is complete, MediaPlayer.start() is called - * -MediaPlayer.stop() will be called when playback finishes or the item has been de-selected, at which point the TextureView will - * be removed from the MetricSelector's view hierarchy, causing onSurfaceTextureDestroyed(), where we call MediaPlayer.setSurface(null) + * -When a MetricSelector is clicked, the MediaPlayer.setDataSource() is called to set the video file + * -The TextureView is added to the view hierarchy of the MetricSelector, causing the onSurfaceTextureAvailable callback to fire + * -The TextureView is bound to the MediaPlayer through MediaPlayer.setSurface(), then MediaPlayer.prepareAsync() is called + * -Once preparation is complete, MediaPlayer.start() is called + * -MediaPlayer.stop() will be called when playback finishes or the item has been de-selected, at which point the TextureView will + * be removed from the MetricSelector's view hierarchy, causing onSurfaceTextureDestroyed(), where we call MediaPlayer.setSurface(null) */ class MetricSelectionFragmentMediaPlayer { SafeMediaPlayer safePlayer; @@ -429,7 +424,7 @@ public class MetricSelectionFragment extends Fragment implements View.OnClickLis textureView = new TextureView(getActivity()); textureView.setVisibility(View.GONE); - textureView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); + textureView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); textureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() { @Override public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { @@ -457,8 +452,11 @@ public class MetricSelectionFragment extends Fragment implements View.OnClickLis private void startVideoPlayback(MetricSelector metricSelector) { videoPlayingSelector = metricSelector; videoPlayingSelector.initIndex(); - safePlayer.setDataSource(metricSelector.getNextVideoResourceURI()); - metricSelector.displayVideo(textureView); //will cause onSurfaceTextureAvailable to fire + Uri videoUri = metricSelector.getNextVideoResourceURI(); + if (videoUri != null) { + safePlayer.setDataSource(videoUri); + metricSelector.displayVideo(textureView); //will cause onSurfaceTextureAvailable to fire + } } private void endVideoPlayback() { @@ -475,9 +473,9 @@ public class MetricSelectionFragment extends Fragment implements View.OnClickLis } void stopMetricSelectorPlayback(MetricSelector metricSelector) { - if (metricSelector == videoPlayingSelector) { //if de-selected item is a playing video, stop it - endVideoPlayback(); - } + if (metricSelector == videoPlayingSelector) { //if de-selected item is a playing video, stop it + endVideoPlayback(); + } } public void destroy() { @@ -491,18 +489,6 @@ public class MetricSelectionFragment extends Fragment implements View.OnClickLis } - /** - * These are not all the MediaPlayer states defined by Android, but they are all the ones we are interested in. - * Note that SafeMediaPlayer never stays in the STOPPED state, so we don't include it. - */ - enum MediaPlayerState { - IDLE, INIT, PREPARED, PLAYING - }; - - interface OnSafeMediaPlayerPreparedListener { - void onSafeMediaPlayerPrepared(); - } - /** * A Facade to ensure our MediaPlayer does not throw an error due to an invalid state change. */ @@ -595,5 +581,3 @@ public class MetricSelectionFragment extends Fragment implements View.OnClickLis } } - - diff --git a/app/src/main/java/com/affectiva/affdexme/MetricSelector.java b/app/src/main/java/com/affectiva/affdexme/MetricSelector.java index 754ba01..303ac0e 100644 --- a/app/src/main/java/com/affectiva/affdexme/MetricSelector.java +++ b/app/src/main/java/com/affectiva/affdexme/MetricSelector.java @@ -1,12 +1,16 @@ package com.affectiva.affdexme; import android.app.Activity; +import android.content.Context; import android.content.res.Resources; import android.graphics.Color; import android.net.Uri; +import android.support.v4.content.ContextCompat; +import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.TextureView; import android.view.View; +import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.RelativeLayout; @@ -19,25 +23,35 @@ import android.widget.TextView; */ public class MetricSelector extends FrameLayout { - private boolean isMetricSelected; - private MetricsManager.Metrics metric; - TextureView textureView; - TextView gridItemTextView; ImageView imageView; ImageView imageViewBeneath; + FrameLayout videoHolder; RelativeLayout backgroundLayout; - int itemNotSelectedColor; int itemSelectedColor; int itemSelectedOverLimitColor; - Uri[] videoResourceURIs; int videoResourceURIIndex; TextView videoOverlay; - int picId; + private boolean isMetricSelected; + private boolean isEmoji; + private MetricsManager.Metrics metric; + + // These three constructors only provided to allow the UI Editor to properly render this element + public MetricSelector(Context context) { + super(context); + } + + public MetricSelector(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public MetricSelector(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } public MetricSelector(Activity hostActivity, LayoutInflater inflater, Resources res, String packageName, MetricsManager.Metrics metric) { super(hostActivity); @@ -45,7 +59,11 @@ public class MetricSelector extends FrameLayout { this.metric = metric; this.isMetricSelected = false; - initContent(inflater, res, packageName); + if (metric.getType().equals(MetricsManager.MetricType.Emoji)) { + this.isEmoji = true; + } + + initContent(inflater, res, packageName); } void initContent(LayoutInflater inflater, Resources res, String packageName) { @@ -55,11 +73,13 @@ public class MetricSelector extends FrameLayout { videoOverlay = (TextView) content.findViewById(R.id.video_overlay); - int videoId = res.getIdentifier(resourceName,"raw",packageName); - if (metric == MetricsManager.Emotions.VALENCE) { + int videoId = res.getIdentifier(resourceName, "raw", packageName); + if (isEmoji) { + videoResourceURIs = null; + } else if (metric == MetricsManager.Emotions.VALENCE) { videoResourceURIs = new Uri[2]; - videoResourceURIs[0] = Uri.parse(String.format("android.resource://%s/%d", packageName, videoId )); - videoResourceURIs[1] = Uri.parse(String.format("android.resource://%s/%d", packageName, res.getIdentifier(resourceName+"0","raw",packageName))); + videoResourceURIs[0] = Uri.parse(String.format("android.resource://%s/%d", packageName, videoId)); + videoResourceURIs[1] = Uri.parse(String.format("android.resource://%s/%d", packageName, res.getIdentifier(resourceName + "0", "raw", packageName))); } else { videoResourceURIs = new Uri[1]; videoResourceURIs[0] = Uri.parse(String.format("android.resource://%s/%d", packageName, videoId)); @@ -68,6 +88,9 @@ public class MetricSelector extends FrameLayout { videoResourceURIIndex = 0; //set up image + if (isEmoji) { + resourceName += "_emoji"; + } picId = res.getIdentifier(resourceName, "drawable", packageName); imageView = (ImageView) content.findViewById(R.id.grid_item_image_view); imageViewBeneath = (ImageView) content.findViewById(R.id.grid_item_image_view_beneath); @@ -75,14 +98,15 @@ public class MetricSelector extends FrameLayout { imageViewBeneath.setImageResource(picId); imageViewBeneath.setVisibility(GONE); + videoHolder = (FrameLayout) content.findViewById(R.id.video_holder); backgroundLayout = (RelativeLayout) content.findViewById(R.id.grid_item_background); gridItemTextView = (TextView) content.findViewById(R.id.grid_item_text); gridItemTextView.setText(MetricsManager.getCapitalizedName(metric)); - itemSelectedOverLimitColor = res.getColor(R.color.grid_item_chosen_over_limit); - itemNotSelectedColor = res.getColor(R.color.grid_item_not_chosen); - itemSelectedColor = res.getColor(R.color.grid_item_chosen); + itemSelectedOverLimitColor = ContextCompat.getColor(getContext(), R.color.grid_item_chosen_over_limit); + itemNotSelectedColor = ContextCompat.getColor(getContext(), R.color.grid_item_not_chosen); + itemSelectedColor = ContextCompat.getColor(getContext(), R.color.grid_item_chosen); } boolean getIsSelected() { @@ -105,7 +129,15 @@ public class MetricSelector extends FrameLayout { void displayVideo(TextureView videoView) { textureView = videoView; - backgroundLayout.addView(textureView, 1); + ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(textureView.getLayoutParams()); + + // set the video to the same height and width of the actual bitmap inside the imageview + int[] imageAttr = ImageHelper.getBitmapPositionInsideImageView(imageView); + params.width = imageAttr[2]; //width + params.height = imageAttr[3]; //height + + textureView.setLayoutParams(params); + videoHolder.addView(textureView); textureView.setVisibility(VISIBLE); videoOverlay.setVisibility(VISIBLE); } @@ -113,7 +145,7 @@ public class MetricSelector extends FrameLayout { void removeVideo() { if (textureView != null) { textureView.setVisibility(GONE); - backgroundLayout.removeView(textureView); + videoHolder.removeView(textureView); textureView = null; } videoOverlay.setVisibility(GONE); @@ -128,12 +160,15 @@ public class MetricSelector extends FrameLayout { } Uri getNextVideoResourceURI() { + if (isEmoji) { + return null; + } if (metric == MetricsManager.Emotions.VALENCE) { if (videoResourceURIIndex == 0) { - videoOverlay.setText("NEGATIVE"); + videoOverlay.setText(R.string.negative); videoOverlay.setTextColor(Color.RED); } else { - videoOverlay.setText("POSITIVE"); + videoOverlay.setText(R.string.positive); videoOverlay.setTextColor(Color.GREEN); } } @@ -163,7 +198,4 @@ public class MetricSelector extends FrameLayout { backgroundLayout.setBackgroundColor(itemNotSelectedColor); } } - - - } diff --git a/app/src/main/java/com/affectiva/affdexme/MetricsManager.java b/app/src/main/java/com/affectiva/affdexme/MetricsManager.java index 31da508..7fa5b36 100644 --- a/app/src/main/java/com/affectiva/affdexme/MetricsManager.java +++ b/app/src/main/java/com/affectiva/affdexme/MetricsManager.java @@ -1,10 +1,14 @@ package com.affectiva.affdexme; +import com.affectiva.android.affdex.sdk.detector.Face; + +import java.util.Locale; + /** * A class containing: - * -enumerations representing the Emotion and Expressions featured in the Affectiva SDK. - * -a Metric interface to allow easy iteration through all Expressions and Emotions - * -utility methods for converting a Metric into several types of strings + * -enumerations representing the Emotion and Expressions featured in the Affectiva SDK. + * -a Metric interface to allow easy iteration through all Expressions and Emotions + * -utility methods for converting a Metric into several types of strings */ public class MetricsManager { @@ -13,67 +17,23 @@ public class MetricsManager { static { Emotions[] emotions = Emotions.values(); Expressions[] expressions = Expressions.values(); - allMetrics = new Metrics[emotions.length + expressions.length]; - System.arraycopy(emotions,0,allMetrics,0,emotions.length); - System.arraycopy(expressions,0,allMetrics,emotions.length,expressions.length); + Emojis[] emojis = Emojis.values(); + allMetrics = new Metrics[emotions.length + expressions.length + emojis.length]; + System.arraycopy(emotions, 0, allMetrics, 0, emotions.length); + System.arraycopy(expressions, 0, allMetrics, emotions.length, expressions.length); + System.arraycopy(emojis, 0, allMetrics, emotions.length + expressions.length, emojis.length); } static Metrics[] getAllMetrics() { return allMetrics; } - enum MetricType {Emotion, Expression}; - - interface Metrics { - MetricType getType(); - } - - enum Emotions implements Metrics { - ANGER, - DISGUST, - FEAR, - JOY, - SADNESS, - SURPRISE, - CONTEMPT, - ENGAGEMENT, - VALENCE; - - @Override - public MetricType getType() { - return MetricType.Emotion; - } - - } - - enum Expressions implements Metrics { - ATTENTION, - BROW_FURROW, - BROW_RAISE, - CHIN_RAISE, - EYE_CLOSURE, - INNER_BROW_RAISE, - LIP_CORNER_DEPRESSOR, - LIP_PRESS, - LIP_PUCKER, - LIP_SUCK, - MOUTH_OPEN, - NOSE_WRINKLE, - SMILE, - SMIRK, - UPPER_LIP_RAISE; - - @Override - public MetricType getType() { - return MetricType.Expression; - } - - } - //Used for displays static String getUpperCaseName(Metrics metric) { if (metric == Expressions.LIP_CORNER_DEPRESSOR) { return "FROWN"; + } else if (metric.getType().equals(MetricType.Emoji)) { + return ((Emojis) metric).getDisplayName().toUpperCase(Locale.US); } else { return metric.toString().replace("_", " "); } @@ -82,6 +42,9 @@ public class MetricsManager { //Used for MetricSelectionFragment //This method is optimized for strings of the form SOME_METRIC_NAME, which all metric names currently are static String getCapitalizedName(Metrics metric) { + if (metric.getType().equals(MetricType.Emoji)) { + return ((Emojis) metric).getDisplayName(); + } if (metric == Expressions.LIP_CORNER_DEPRESSOR) { return "Frown"; } @@ -113,12 +76,12 @@ public class MetricsManager { //Used to construct method names for reflection static String getCamelCase(Metrics metric) { String metricString = metric.toString(); - + StringBuilder builder = new StringBuilder(); builder.append(Character.toUpperCase(metricString.charAt(0))); if (metricString.length() > 1) { - for (int n = 1; n < metricString.length(); n++ ){ + for (int n = 1; n < metricString.length(); n++) { char c = metricString.charAt(n); if (c == '_') { n += 1; @@ -134,5 +97,116 @@ public class MetricsManager { return builder.toString(); } + public enum MetricType {Emotion, Expression, Emoji} + public enum Emotions implements Metrics { + ANGER, + DISGUST, + FEAR, + JOY, + SADNESS, + SURPRISE, + CONTEMPT, + ENGAGEMENT, + VALENCE; + + @Override + public MetricType getType() { + return MetricType.Emotion; + } + } + + public enum Expressions implements Metrics { + ATTENTION, + BROW_FURROW, + BROW_RAISE, + CHIN_RAISE, + EYE_CLOSURE, + INNER_BROW_RAISE, + LIP_CORNER_DEPRESSOR, + LIP_PRESS, + LIP_PUCKER, + LIP_SUCK, + MOUTH_OPEN, + NOSE_WRINKLE, + SMILE, + SMIRK, + UPPER_LIP_RAISE; + + @Override + public MetricType getType() { + return MetricType.Expression; + } + } + + public enum Emojis implements Metrics { + RELAXED("Relaxed"), + SMILEY("Smiley"), + LAUGHING("Laughing"), + KISSING("Kiss"), + DISAPPOINTED("Disappointed"), + RAGE("Rage"), + SMIRK("Smirk Emoji"), + WINK("Wink"), + STUCK_OUT_TONGUE_WINKING_EYE("Tongue Wink"), + STUCK_OUT_TONGUE("Tongue Out"), + FLUSHED("Flushed"), + SCREAM("Scream"); + + private String displayName; + + Emojis(String name) { + displayName = name; + } + + public static Emojis getEnum(String value) { + for (Emojis v : values()) + if (v.displayName.equalsIgnoreCase(value)) return v; + throw new IllegalArgumentException(); + } + + @Override + public MetricType getType() { + return MetricType.Emoji; + } + + public String getDisplayName() { + return displayName; + } + + public String getUnicodeForEmoji() { + switch (this) { + case RELAXED: + return Face.EMOJI.RELAXED.getUnicode(); + case SMILEY: + return Face.EMOJI.SMILEY.getUnicode(); + case LAUGHING: + return Face.EMOJI.LAUGHING.getUnicode(); + case KISSING: + return Face.EMOJI.KISSING.getUnicode(); + case DISAPPOINTED: + return Face.EMOJI.DISAPPOINTED.getUnicode(); + case RAGE: + return Face.EMOJI.RAGE.getUnicode(); + case SMIRK: + return Face.EMOJI.SMIRK.getUnicode(); + case WINK: + return Face.EMOJI.WINK.getUnicode(); + case STUCK_OUT_TONGUE_WINKING_EYE: + return Face.EMOJI.STUCK_OUT_TONGUE_WINKING_EYE.getUnicode(); + case STUCK_OUT_TONGUE: + return Face.EMOJI.STUCK_OUT_TONGUE.getUnicode(); + case FLUSHED: + return Face.EMOJI.FLUSHED.getUnicode(); + case SCREAM: + return Face.EMOJI.SCREAM.getUnicode(); + default: + return ""; + } + } + } + + public interface Metrics { + MetricType getType(); + } } diff --git a/app/src/main/java/com/affectiva/affdexme/PreferencesUtils.java b/app/src/main/java/com/affectiva/affdexme/PreferencesUtils.java index 51cea68..2c98435 100644 --- a/app/src/main/java/com/affectiva/affdexme/PreferencesUtils.java +++ b/app/src/main/java/com/affectiva/affdexme/PreferencesUtils.java @@ -1,6 +1,7 @@ package com.affectiva.affdexme; import android.content.SharedPreferences; +import android.util.Log; /** * A helper class to translate strings held in preferences into values to be used by the application. @@ -18,39 +19,44 @@ public class PreferencesUtils { try { toReturn = Integer.parseInt(rateString); } catch (Exception e) { - saveFrameProcessingRate(pref,DEFAULT_FPS); + saveFrameProcessingRate(pref, DEFAULT_FPS); return DEFAULT_FPS; } if (toReturn > 0) { return toReturn; } else { - saveFrameProcessingRate(pref,DEFAULT_FPS); + saveFrameProcessingRate(pref, DEFAULT_FPS); return DEFAULT_FPS; } } private static void saveFrameProcessingRate(SharedPreferences pref, int rate) { SharedPreferences.Editor editor = pref.edit(); - editor.putString("rate",String.valueOf(rate)); + editor.putString("rate", String.valueOf(rate)); editor.commit(); } public static MetricsManager.Metrics getMetricFromPrefs(SharedPreferences pref, int index) { MetricsManager.Metrics metric; try { - String stringFromPref = pref.getString(String.format("metric_display_%d", index),defaultMetric(index).toString()); - metric = parseSavedMetric(stringFromPref ); + String stringFromPref = pref.getString(String.format("metric_display_%d", index), defaultMetric(index).toString()); + metric = parseSavedMetric(stringFromPref); } catch (IllegalArgumentException e) { metric = defaultMetric(index); SharedPreferences.Editor editor = pref.edit(); - editor.putString(String.format("metric_display_%d", index),defaultMetric(index).toString()); + editor.putString(String.format("metric_display_%d", index), defaultMetric(index).toString()); editor.commit(); } return metric; } - public static void saveMetricToPrefs(SharedPreferences.Editor editor , int index, MetricsManager.Metrics metric) { - editor.putString(String.format("metric_display_%d", index), metric.toString()); + public static void saveMetricToPrefs(SharedPreferences.Editor editor, int index, MetricsManager.Metrics metric) { + if (metric.getType().equals(MetricsManager.MetricType.Emoji)) { + MetricsManager.Emojis emoji = (MetricsManager.Emojis) metric; + editor.putString(String.format("metric_display_%d", index), emoji.getDisplayName()); + } else { + editor.putString(String.format("metric_display_%d", index), metric.toString()); + } } static private MetricsManager.Metrics defaultMetric(int index) { @@ -73,23 +79,30 @@ public class PreferencesUtils { } /** - * We attempt to parse the string as an Emotion or, failing that, as an Expression. + * We attempt to parse the string as any known metric. */ - static MetricsManager.Metrics parseSavedMetric(String metricString) throws IllegalArgumentException{ + static MetricsManager.Metrics parseSavedMetric(String metricString) throws IllegalArgumentException { try { MetricsManager.Emotions emotion; emotion = MetricsManager.Emotions.valueOf(metricString); return emotion; } catch (IllegalArgumentException emotionParseFailed) { - try { - MetricsManager.Expressions expression; - expression = MetricsManager.Expressions.valueOf(metricString); - return expression; - } catch (IllegalArgumentException expressionParseFailed) { - throw new IllegalArgumentException("String did not match an emotion or expression"); - } + Log.v(PreferencesUtils.class.getSimpleName(), "Not an Emotion..."); } + try { + MetricsManager.Expressions expression; + expression = MetricsManager.Expressions.valueOf(metricString); + return expression; + } catch (IllegalArgumentException expressionParseFailed) { + Log.v(PreferencesUtils.class.getSimpleName(), "Not an Expression..."); + } + try { + MetricsManager.Emojis emoji; + emoji = MetricsManager.Emojis.getEnum(metricString); + return emoji; + } catch (IllegalArgumentException expressionParseFailed) { + Log.v(PreferencesUtils.class.getSimpleName(), "Not an Emoji..."); + } + throw new IllegalArgumentException("String did not match any known metric"); } - - } diff --git a/app/src/main/java/com/affectiva/affdexme/SettingsActivity.java b/app/src/main/java/com/affectiva/affdexme/SettingsActivity.java index 310e556..e10d186 100644 --- a/app/src/main/java/com/affectiva/affdexme/SettingsActivity.java +++ b/app/src/main/java/com/affectiva/affdexme/SettingsActivity.java @@ -5,6 +5,7 @@ import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.preference.PreferenceActivity; import android.preference.PreferenceFragment; +import android.support.v4.content.ContextCompat; import android.view.MenuItem; import java.util.List; @@ -16,19 +17,11 @@ public class SettingsActivity extends PreferenceActivity { public void onCreate(Bundle savedBundleInstance) { super.onCreate(savedBundleInstance); ActionBar actionBar = getActionBar(); - actionBar.setIcon( - new ColorDrawable(getResources().getColor(android.R.color.transparent))); - //actionBar.setDisplayHomeAsUpEnabled(true); - + if (actionBar != null) { + actionBar.setIcon(new ColorDrawable(ContextCompat.getColor(getApplicationContext(), R.color.transparent_overlay))); + } } - /* - @Override - public boolean onNavigateUp() { - this.onBackPressed(); - return true; - }*/ - @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { @@ -49,10 +42,7 @@ public class SettingsActivity extends PreferenceActivity { //Boilerplate method, required by Android API @Override protected boolean isValidFragment(String fragmentName) { - if (SettingsFragment.class.getName().equals(fragmentName) || MetricSelectionFragment.class.getName().equals(fragmentName)) { - return(true); - } - return(false); + return SettingsFragment.class.getName().equals(fragmentName) || MetricSelectionFragment.class.getName().equals(fragmentName); } //This fragment shows the preferences for the first header. @@ -65,7 +55,4 @@ public class SettingsActivity extends PreferenceActivity { addPreferencesFromResource(R.xml.settings_preferences); } } - - //The second fragment is defined in a separate file. - } \ No newline at end of file diff --git a/app/src/main/res/drawable-hdpi/affectiva_logo_clear_background.png b/app/src/main/res/drawable-hdpi/affectiva_logo_clear_background.png index 4778791ca2352dfb98f17a1aac29040ea70aa96d..72e4281ca7d7d399265c2965b1e23b692be61263 100644 GIT binary patch literal 13639 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 W|AZB*D{f!{NLErwqC(8*=l=pFvh42w literal 12893 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 G;Qs+qT(RW< diff --git a/app/src/main/res/drawable-hdpi/ic_arrow_back_white_24dp.png b/app/src/main/res/drawable-hdpi/ic_arrow_back_white_24dp.png index 83dcecbae737214df138cded8bc460af1685ace3..5e83c786c1be1f5831d0723353aebbf904c99c68 100644 GIT binary patch delta 309 zcmeyx_=#zP3NK5#qpu?aW7`757t`V=Dyr2l@pN$vi8%cBMl4rTfJDnfOR=3V7rbA@ zdL`)B&FCvr~5+QEbs=1)>4=IG^~QPRJ&V*8Vnw^yQ# zHmy4swNLZ)vo%k%ZC|fDsTCP%!N4GA@$hS*i^iq;Q;))p%t~I(o{&1b@S@O>FBn$7 zjxDb<85kH;OI#yLQW8s2t&)pUffR$0fuX6cp^>h!L5QKHm64H^sj;qssg;4jT2t>1 h6b-rgDVb@NC>mr@bll1KYy#B5;OXk;vd$@?2>_7+LvWN+{I)K5m`@I z6|r_$uu8LzGOQ*SOS2^DrB&z8BT{Xz^=CP5XrnIEKFj}3*7X%PG`(Z4!^30L;R_8K sG-%N7XT_bK55fM>=K0)8_)2Kp9l>h($07*qoM6N<$g4J45bDP46hOx7_4S6Fo+k-*%fF5lz0;0 z6XFV_|I-ru`Sa)ggNN5{-hB4_`IK3+>ss4>{`%Q7Y4Y)tr)rv8R;^#Za^3nvM~{C0 z{=IX;ga;2E0HtbMTF;z2zyI*zFJHb~x_b50*|Vq5p1Xbb?)i%sfNE-+Tk6}|r_G-8 z{Kbpb?w<9VHUYUeZ{MCgbJp2&=N>+Mc>LtaUq64=x3=AX@BnB9&~uub(v5-s^ePGR z3ua(s=aJO4^$w0sPLi;{q|R*Mf&TUOb#2#`B}rCpJ)b+3|-ig|^FFMGZNHZBo>p zXnJb1b_9h5^-Vt4;4pIwi<Rwuf5bvg}tfm6uI9?3wWU{io(#Gftm;td{n2=K{HBM!9|>#SZsbzXs0! z>z%nG*`UPYFk{x`eg7{@ylS{uap-4?&7oLB`OmL+u&%m%Gbc)PMu|Q5kw%A)4BSBl z3{6d&r%gNNq;&f1+duE(IJh=$IPmeqk0U=nJC)o@RNJv-diZl$T^5D8t_6p0KTO-jr%vFnjrx=PnNG*tty<=okn);vRJr&IRnpJD4R2u-Qm z9hIvd{_CRX;*zI^kq7;*J54Y(Ey)#&ee8a{>yqj5lDAfO85;AJ96Zsc^E<}D_*-I0 zvqrSZ;*EPd+Df-wIo2M3?W?$%>$&S^fGJ3|#5JNMC9x#cD!C{XNHG{07@F!D8tEDv xgcw>{85vob8tWRES{WFuHTCX5(U6;;l9^VCTf?1<&n7?(44$rjF6*2UngFgMI9>n% delta 1651 zcmV-(28{Xb2#XDn83+ad0033(vqzJ?0T+J&2XskIMF-yp7ZWlG+MY&`0000TX;fHr zLvL+uWo~o;00000Lvm$dbY)~9cWHEJAV*0}P-HG;2LJ#D0ZBwbRCwC$oZD{`M-;}t zvvwSZ_|^zxCryliKv57ON&r=$^reu8h_+EhgoLUJ9)Q1z@<7D{q6%u%7V!|MS`~kR zDlUe&lGSo)6?3x*N^P%AHg@dOhn+;Jv6D@RcWkqtnE=KEU^9RK0Iz_ftnurL z0#XV<0>BgzrRx$9Gj{*TJwOIxdlK7K(DYAGo=EE0EiLMY|Q~; z<~;y*0%(O?WdZz2M3XfEh?&~}9IgQ{x3*`?WR`KvaxT^QHk} zW+#AQF-_Nlk^rs}kydp;%p3qPB-S(aq&$ELB1%*Z5HoKFZ~%Y}^{E1YTSR~K$mj=@ zRlo@W7_4JB5N#h6eOW&X5|%TF#?lQVmZTVf6A+J8qv?R?+u8w%*=nfHAFJgaw;|ET z)dLdioZ&j0tyZHZ0K=lMtG1wlI$Gzvi+rN5#sLZUp$G4edPJWMThQSeb|0!0)i_-4 zg1v%QZmQ#1C=}@Fv**6qIn93o04>eVTvz9ZNt?~aCN`s$nfH`N0qiAkT13dgG`)<+ z-QWLoW%Skb^xk5z*bD%QqRegb`|p1F*^#mKU{E!&IXjv8;nH|g=_3|0(|U6GoN{sO z@~LBV~7Qw6mNCW{udS;pVAufP9^+wH38QM=u)NBjEwpGaC8Z3X~E?05!bw7}_f&L0~Y zIqUO!qePTn9C(QGKCgc_dTeCmtkdb7mjo!l%tXxG4B!a#T~8@06bkep@<&L`W;OtT zyVdokuXlIM>^Lew~TerTh0YE-G^!yxYdJviHn)v0{uQGpXW($kZuFYo41pNN+ z>60feNFJy?3iQM!DT*f&uB#K*&!}pqo0r7B3x$H~MLhn=H|M|oTCxQ>r2_i>_U*n| zO>3`oJuyAK_u=Eme%XK=vVQ&9%lJnttdBON(rKAlBMxhNH!#=dWc_$&d+@L2uG?(3 zH(rk?E0Ir5fu4U!Dn%df-~XV+>3mty8S?w@?&$8GmIz3b3Md!|WQK60feNPfaJV&*{r+pUFSSv?|V-VI=%H5`}K9R+#@yQT7atw7H&E?O+g zhC5U{^xQoak^^Rwkw_?=&29hyPiyO&J-xlM17<3KJc)mh>!&E$Ff&WBSnPwbAAUTU zN~d=)a}%J4T)iI8!_hB3KOYK({*?qM2HVCJS| zDz)p<`1l!3)9jJ}C5VU@T#YFyQ$#qtO;s}$ml&#=*?uP+-X;mq)Pk!4QBpKxb_?RK zUUjU;Jyn0u%tD#fQfKv^HF3SoViAz2w=y%;1YI2+G3fOamBiv6Q)jQGwP&T_j)<8p z8R+Z#$LIA%D_!?_z0rZbzJE*x6e$gNlum7?g%_F}j^gprqvwKwz)hQ?%q=>riZT}r z1a2N5J$kOm;V^R%n-vTe^;YVMNWn8T(?d_ed**+eotqOWc+I)4&d#KSh2p)^6uh#z zIm~F520>Yen-~OT x9gkxGl6An+DqvYhbQuI?9r9)nR9zku_#Y$%Uz(&!i+cb7002ovPDHLkV1mN@{lx$P diff --git a/app/src/main/res/drawable-hdpi/settings_button_pressed.png b/app/src/main/res/drawable-hdpi/settings_button_pressed.png index 27c44ea00ea29b7b2314f62e314983bc1c499d3a..4a0aa2a8e0be404730f3e98890f27e2d3ceaccec 100644 GIT binary patch literal 1182 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 SX!A4x0000fwURUdBR!R1pOQQS78OAr&zng^(1} zMyY8@*rP;LkR$TfDYgg(4~R6kqz7gt^+rKWnjfC zSjrBl)79OKq8`m9)I9D8dn0`2EI~C<$VJrB71@3 zz$5GotpXFk&)c2tR26U@0bccZX7Wnk0@F&VRZjqk$UlH%K!BaApMZ=~YNe)tMC3`} zDA2;r*DUb0QmR-JKzii#H3^)ua=_SD=4Mm?=TU7|%>)O%%71aIM#dI!LfRn*Xih~$ zBvut5y?@R*uA}T`l>(j?kteDdK{1_{Xm+&#&xy!G6$28HL%_4_9(4dwowM2;kcb3< z7ubDz=6)H7`;DM~0S~h~72gz)h_nL{JkB&Wu-ZlBskI-hpS}!lzH4{FKvBg`>d+r>CdiN+y#p zdkkl-!~V+$iAW1h9@$fkjg3V!nammeecMg5v}7`wGh<_8Q6B*96On`Wf>mu^C*8(d zsee@JpBFD)e5X(-9I1zg4TVB8Cr+F=ckI})Yc9JIoaEXiLx&WdZsBAynaJqq=)3iT z15hXwj*O0uzMIKpA~gs>Iz%K`e%tBVyr!n6juwl>1NEM#i^bxBsi~=>HRx(D&{+m_ z&~0y)Wi?DXq(;xO2iR|DQhQy8#j0`EmVY&R76a%o*g0<|>Jr2nI+A^$znSh0oD!6J z$o8mhZP&KAFGtz7Ow(M9L?WM5+CCDAd}5mBVqFN;!a;8rPESwIM*{-`A6I(Mz`(%A zJv}`i)dP}&k2z=4H1EXY@pFkp;>&zK-&W~;`Fy@Dkw|UI(@cODuw+5<1vr%TW{v1a8OU@ekL+0cdS)UG44d{k57t2L}hQ z*tY%OiHV7SmrA8}uYFLF2ikN5Eq~*b;d-J{snk9`K7Ph93~TKuT3T9a$!4=%m6}*< zYwNvt=p!Q|z2oEKXZ$j;yI!xREz1h0)9JIoJwKGqX1j)lhW=B@{fR{4y|OuujEwZA z(`jG)PuawLnKnzMQaF`LogE$??sJx?M#Zb+a@*nI;l5NV<=YGfNC3$DWq;3>WrZgu zCf-?HT@A)!v8xqFj2#_|LqkKaOioU|ZCO^Ek1l92fK%S@XRfAga&q$R`T6-TD!u2z zg$r-wa=GI^!vV+#aO#Rz@UiC5vaGhbxw+RXZLizJ$fh(Y97v25yxB z%{^H0Y|siYZ|J(=JWeg~1AqNxUJFX8lCfquU3b-^NaOrE_s>!Se!XYgy3*5?nVF{9 zFe9)A&r(oI<<>jDTW+TO?(Xi(!C>%4z2O9d!5iJ(-IrZ^IEr)g`6WwSW7rFO*V$0yEU_ zEkeDO2Y%UV0d^Hw+@*lV*YA1V07y5uvI|Gi_j;n*dI_(Tx(;01MR4xm>?5)ZQZ#R3e@0JA)u$2kCjGRIPnt=;*1?`M~@cdwbHIVk;l}oDwv$>Oj}yV!=i1sJan*OglG~H1YJI?x0)L(Yp2z3XKJA2OHwzo; z4rm>$Bictjj8lJ9>vvm%Q`=O;Nw8;?Qg>_pJ3KFs7m+Z|PR0Y;{DS&2s`M-6>lScb zXC6G0ulon|;cx9YDcv@Gwc@;M1& diff --git a/app/src/main/res/drawable-mdpi/affectiva_logo_clear_background.png b/app/src/main/res/drawable-mdpi/affectiva_logo_clear_background.png index 2885705672dc999c0dec39db25e957489bcc8ffb..9f154516bfb9872ed3421d09f43f13ec00f94165 100644 GIT binary patch delta 6243 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 delta 5815 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 BGvojO diff --git a/app/src/main/res/drawable-mdpi/ic_arrow_back_white_24dp.png b/app/src/main/res/drawable-mdpi/ic_arrow_back_white_24dp.png index 4b3b18ae71daeb16331cf03949a730276a08bce8..8149fb5f4827d91648876c749e103e77d890e16d 100644 GIT binary patch delta 246 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 Ef{|b_N&o-= diff --git a/app/src/main/res/drawable-mdpi/switch_camera_button_pressed.png b/app/src/main/res/drawable-mdpi/switch_camera_button_pressed.png index 5611b14d4201683d1b4a4517d8ada0c19ee4810f..af952634467afee8fbca873827eae12f849eaa26 100644 GIT binary patch delta 1027 zcmbQm*~c+KvYv&3f#EN=ArFvZNq6*hWMJ6X&;2Kn7072S4sv&5Sa(k5C6J?#>=ES4 zz)+>ez|hdb!0-zw)bN6Vq11qZ;Z*_ygVhWM2JwP9y8>;15==?n?k)`f+xyS#2l6-z zJR*x37`TN&n2}-D90>*nW_C{($B>A_TkB_d`v^Nq9IwCsMKNn_lcQ(v5}|lb_Qm47 z6Ipt@?(Hx+adGk-g|^vMA^AsMc>3SFvgG273d0!*wJ|2gTpmppFqmOtx*|ijsr7Az zM(eb^@@=Jm=a;4J`}?;%tz7Otm)lFzHOm{>4y{pZ*l<8ba@o&Q{+_eniMekPNVG5Q zYZ1Ix-yJ%+F)x{$v6%nl$7c0UyS142&fa@&ul8jNeU;~@9M(VLc)hww{7b;H9=0mx zBH^L(|g3ur(EJUx&3&4-V6>+-hFrW_D!wu*k1O%L{*2? z^5(S6|B2Zfnmrk1H%A+-rp-8{DMpi92P_akb%re$xxyIXYr^nH%nDMkT*j9McW_GO=3u>Q%J`p2hLn`N(` zsR*bsXOCQXW2#SWq3<%gvZK87SncoM=~*J`C#$75eVWXausCdvoT(8bwl~W2 z<0`SJnL$A&o5Pj`1m0S;cxt9ASLi$zv%(+pAM#U8Z^wh zbWo-LXxhE-Gta(iZQJeVtyZZkTIP27{Djz?qc87FP&?^fIAh7Wf9@|h0?hjw8{g47?7u6Eih?11Vl2ohYqEsNoU}Ruus%vPZYitl=XlZ3+ sWMyisYhY?+V6fKIy8}f-ZhlH;S|x4`cQQVk05vdpy85}Sb4q9e09YfzFaQ7m delta 1169 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 VFfgb6zA69!002ovPDHLkV1n&tU5)?% literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/female_glasses.png b/app/src/main/res/drawable-nodpi/female_glasses.png new file mode 100644 index 0000000000000000000000000000000000000000..557c7d15797aeaf0b37ab0b6a04f12ad31d9ea51 GIT binary patch literal 3401 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/female_noglasses.png b/app/src/main/res/drawable-nodpi/female_noglasses.png new file mode 100644 index 0000000000000000000000000000000000000000..8103b2ecc3dbdd8feef840d924d591b72cbad70b GIT binary patch literal 2977 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 R?PCf6b5m1Ee*r0>g5>}J literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/flushed_emoji.png b/app/src/main/res/drawable-nodpi/flushed_emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..5a9f517c6e9e439b051dc28a065c3db2a58a0ac3 GIT binary patch literal 3611 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/kissing_emoji.png b/app/src/main/res/drawable-nodpi/kissing_emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..e8d76ad535b0d7f7b1b962d4f1f3796f10152e18 GIT binary patch literal 3238 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 S2M`i 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/rage_emoji.png b/app/src/main/res/drawable-nodpi/rage_emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..5c01db41517dcca8e9e9771f86553131a36cee07 GIT binary patch literal 3882 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/relaxed_emoji.png b/app/src/main/res/drawable-nodpi/relaxed_emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..799c9fde5825bdca102c43642976c2c146662bb4 GIT binary patch literal 3430 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 E4;y1mSO5S3 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/scream_emoji.png b/app/src/main/res/drawable-nodpi/scream_emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..d908d4b5fce5619e5f86e89d25daa481fa9f1dd3 GIT binary patch literal 4589 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 XH99abr~SSv00000NkvXXu0mjf>oBVb literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/smiley_emoji.png b/app/src/main/res/drawable-nodpi/smiley_emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..64b8a3e0aadde866b92c794eb7d4927044dfdb9d GIT binary patch literal 2508 zcmZ`*X*kr28~qvC4Ix|EU3-%mjN&50*cn5~$TrLvTV2W)qA`sU;#!jIOGCJ1>sn%x zn54-z*|OY`tz_3IgIxFH|HJ=zpYxvQocEmX?*lZ-3e10+9{>QbjWyEwn01c<<>fx! z9dI-9F`e*7I3NI^Azk3WhwE5#ggIN80d)g1Uyp?X&f3`l0Af@DfOs5cA6vvP01yEM zfE6qN80G?iWN1OVlhN^k+tS+R#NXZt-Uu6rqZgVGDi}Ga`tKY$IiSVEp%I?!v9bg#SVlg)7R+V2k4!; zIJ;D>ws!{m4FgB7c4vd1ckU)0y+;o_i1&YX`V?X^m86yM$>2+L=68D}-b4N((1<6u z?`KeJPM>+uee&R}@~y2;Dg$v?QW~mhmLk62$$N88TDAOD$mh|J5d83Z2maKEq7vTq-Vq{gXkR-KcLyd;u#@(CyP{gI7xoc_Qj;)oSsVdYnbocPFf zvbYwiv(lY#Ru#AL_8Y{PQc{(y3Ce|Cj_$G}iYU*R49niyL$&TscoC`ogNjWnp5eNE z_iR+l9T5#T_}ab+g?<(W`@BX9AX)CbE%SDLG`K4dz$+zkYUb9daq|~ro5XEK%I80HCytP$}k9ZpYD8PS5U>P1rp{(@)uY3K%qhWja zbXvf()VW$cR+QhE+&^MRTOhM&up5lflF_>n8TCnW=x=TNlW=bZ6__Na2S|HVZJ;U&cFnD1=U_j7DUI>-Y?N7DjA|=U<*N z2JI=*^-bsc>N0aM`rU3SAO(}*bo{r~^w<_UKgUwV`G*s&_LeQA6~uysb;}2jK=S>M z#eSNc6WEATH?@h=FXMV9)|=ssEzCLB@e7M8E&~_Oe8c}HqP5@4o?7eQHCKKCgX*n7 z^c>q9jRj2XkpSAWI&F%fR$-+qDt9olGgToy*>RW>MZY*Tp+y2O$l?zC2!64#6t<#} zf_uouX3-?>44&teEH#aqa#% zHo4}hBr)852dt1@r4y{D@LV3e_c^_S!Hze@o~qn@;TXQP7~%QUCIXQS8a&i}e?H#i zQCb$|oe1}4S8d^RwE6i!qei)gk_TS$b;1AWb_@Wmt|t+7ctIt8qpjOTV?Q8?f2p0( zh>%_!_T)+{teJ9UD5=qA-C!AgFc|#_g`o%NZz+`SIZHDX{viM( zV-?)uZNBuZq%Ln^3w(L$PFJko(Ht*db-sURRp>Lg!s#(;i{k}0wKtVyE{^sbW#!XO zno0;M<3Lk_F%Iy2JoZI*f_ESH)i@IFrrkd1i7`Ly5@q+B!X*D25MBa=711e;%z|HxjuW^1|Gu>yP#1b z@e$pGxLp>V4<3;BkVtBeVcAz%IE|bhdhvV8hIkLDaD^}52yrR7a2qx@PNmJT)4{N5=(6zVT|)$bGs{x;pfyzg07PS7O-P6hkf#}F`) z19n%yHa)Ko9m@S%HC_**QO9*(^mFr#&DMsbqNxpp{h$$)ew(Yp0iD)@7<`K zjB?7=C#NQjjXy;y7G&j^m`ImlD-CZ-vI_G^qm2oxP@T-0J+ub8wcR?>$GLwn&DAJZ z(B6GK1w#wd&fJ)o_T}*ciH$I6ID7)zrIQ?{6yx2;Os>%PdvSkRxTZ&6!#i3#fVI?FB*87Tkij`i@#=hBT%l(}h%E-UDV~Z6~o;-6x!%+@Irgk&|_nupWHX+vHRd z)$RR-=OIr7#YyW(W)U1An#6p>Lpn26B=3CgJS!%v`FiiRf!L6~2Kkp=8IezA%WGX| zy!o)iW43ti>>?nzAz8Biz;oz)oPBU>U9Di*a)!jV>+cKO<;ve`dt-iuWQ@+Ua=MT-az=_L zf=qbcZkoN*(`PS2D90y&pq<6o$Gozp^4(i{!{xpgl$1hB*mVMT)1bw)x*3&;B0Udp zqw74?i)E3kfuY!med7{Ov39uj*9TUuu7yuum862PjQi$qkD3p7R0wZg>>g}=KK^i2 z!Ywf2c%N`TL)=ZjV*+%bFgOIJ1JQ+Eh8Y;@=o;$kL!fX&D0HlZJLi82*F*4ugy{cY Ts63=<9v1)`3ly@>3`_bKL$IAc literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/smirk_emoji.png b/app/src/main/res/drawable-nodpi/smirk_emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..bfc9492dc6d7166f50c0f22e3a7c39931f0a93fb GIT binary patch literal 2488 zcmZ`*X*|>m8~xk2Tw@DaB9h&hY3xgOlg2WP*K+OKwGIXmE;1&&V#>8fjD1F=NXShw z8KE$uK`48Xu`hRC_v8EF{XM_)oZmUmIp3d5I~z-0?n~SN0Pw=C%#h~{JqMVR{d{-B zOt9y~8fc6#27uOlo>OnObIpW7TABc)5s9^PA?<60L;%1Yc>qW`4M;3UG$j2-`& z`%xU0<2Wfcm^`X;Fjrje9V=p%D#^{vEi|R1PPmetC2&)?Pzeq%am<~Zsj1Nn%W;Kg zC{ic(9ehg*X8y>|Wh-TWJ>lpkqC`?Bn%{lW78VN|*^%em+!*dT&_4seqNwRXH`UZa zO8zN)e`}y0&k!)UKl$ zMtb``G&8#Eji0>=vqC+HC$YIA5&MzaIol&li+K8SKD?#J@WfZmLR^N_!;D_=0BFk7 zF2SAFW=@R|Q&|KPN+A=nFD%0soqcWgN@8VW?qb{$1+&Kd|{%QpDo*BRQ2G*?nbGC8zCoJsMuw-QQy7 zYwXXvo9J(X6OD8H`1tYfbFsV3V!idxEZP!|y8oGfj)+kPO;-&Kw1Su`e`^}DFpHhg zoFuM>@FnYQHTzPs?Ac}$g&U3!m?ByN(Wc*BB>q$FE8|;rQ-qda~+fU=hk2TbZH$i>mFIl96qLuxk4NW;{SI?p3R#}PWP|~V4PwFDH z#ube}S$d6t^L=x1%2|INExARMpC?(oWYHQiIkx*2DGo=&ZcP2UafxRtTc|I|xFu7&ZGKFm0VR)46w-BuwoUw1q$$Xp5T=Ue2s`Ae#xxT2`G z<_tUE*lHt%Ui>cYl$U-K5wLUIpVkKTW8P-o3Lnc{LUcmfUyw0iTn4}L225(U>F@YL z0a+jaBy){Ohgk?-Cnx+M!O+`o`7I)bGL*&SQvHCMr!~G%Np_&(g~s<5hk?N>eJy@w ztf7^kmEP3~mm))vt#hkZF3Bmx-5|IAdd%g)CnS+T_9R}9dF95Hbc}tmdt_(dHA!5U zUSapCO&^D)ieMw&y3V}W?ZHY3g)UmPIPzj1pZZhEdvHX_+8mqq*Xhkri`&gj(eTl`B zo&mrDDby9Ug3qe`g`b+|J=~)!BDubwbi}rWn`;?Ayjv%6_O@;Bs`p(KlFQ$-$)7@3 zlsZ{%DB#caS*W@OHRGrCc9kadelo8eFuqV|v<6EfB?=RJ3vEzsrs7m>gHI zuiAnbGr!kyNVhh^tNIYuJN0RumLPs7wP6RNXIWaMNzJL5 zf)bu3o(iSHzIZp%&no#Jopj13Zv1l`_Ble(sh z-9KHM91*o*yARiqN9om0XhRe^hPDHV5JUbKy3uL#W3i3%$O-K|Bv*Hs8a2Hdrv7Q; z28XT1r-L=vreS)TIa|&{1J?{{f-)cM;AqYAaB5S??VTnE?^|CCV<+gwg;vg2OX1X$ zrl@--GrU5hVf2%WOD#i^niR~G7=>j(mIJ$lIK5!z^FC9ZulW1RjZ@Ui{-dPqlhN`M z=y-A(En)WJkCNC2zlPZ*LWGu;{XkiJ7{iOs1jeL&rTbR{?CW~W>-H%L{m+A#uOD`$ zU1!Mm#pg_xCbGM+E>$Bc{i_exomK3zQ}X=yV7D? zU5t?cO?I&EFT%5NYAd?h>n%abWx1X%8cByM7oDSQxmvesh#|J|!HM&S&NBqp+yKY# zKGNCiavBi#JDwDd+;pq*Ke6OU>1$7ji#6pr6;U#+o#5-mBrCOzoO_f&M+K2ElwbQs zVQ}QB)oHF6yRJk79V2#Pl+R#x_j;0d)d6mB{>@yCHg}Hp^N#k{^^NjBCjbK0fT?Og zRH0x;4INzwR2QnL3Wn)|!PH9jNB>g@L;D2<#Q*<7-C3{Fc>#c%+nA9|yzc%NU%-+6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stuck_out_tongue_emoji.png b/app/src/main/res/drawable-nodpi/stuck_out_tongue_emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..852965452fb60b57a95b55a64e22d054038f7da3 GIT binary patch literal 2634 zcmZ`*X*|>m7ygfZ-=VD z3jkVK03aHW(|ALNK45V(Lm`2)eSt z_$J@R2zN*MZsGbOdZ#Q)sojAkyz+r%u?&7kz>{bUA3jzph8JALyP63W&=u!Di8Z=} zmqsQh{%ZGjmtm6jx$JX8zVoHiOZBHh6R-&LQkAU9hAP~Fb7XyR34EjX72Kdex-l(# zs^uGP?c~h&ZOg&Laod?^O_}r9?;lB&1FH-KVbJVq+?2+_`&BcXC^1?_Un*-ua7Gzl zbBXQo-TYE>tffq6(Tv=B&l}CZvE-v{6R0rk{-){dSNKL|(><6NPLyOH(>sF1-Ro!7 zD_bT6YY5oySD$;q6spiP+IY-AzEW|TGPj>}^;xOzTk{?`&@&RM>2{_h*mH>X$gP5a zvrJaenC2d~!m$3)J<<53mD!27#d0ihyR(t!yXAH#pY0?3)!+}t-uFb(<@lB=@<^Ip zfICoZZ+LN#;?L&4e15N!&9;nt!CSUOAr&Q#9PxrCoU5x{vk{z-V|J_xi^KzEte7QE zGL7lLq|VPdMPX=r4gUF6kd7_*bxO1j$7VSn4ka8>dn_BY%Zl05o{{d73d)l`Vx>!F zOV1$md1#GhL5XX|iK5x|AC4o_QNREEE)H9Ys!{6#yqB*mJ2^)DYLKGeW1Mx~Y}Hr# z*ooWew(xM^I;QMIx19E8lu)t-#>j_&pNh!Tz*USq2EmD1*kZS0R?nRXC_FQ7f??@}liU?4g z`VmrcbdoHeMVPEo#i^)m?;x)~lkWZ^>e(7bRwtk3Fk!vEZ`ykvbn^rVxMK)@bf(*M zb^+$L=$sbV_%yn9_L_sOzm?sa1UE;Ghl4O{*tr*OHnES=!?VRHej85AOPUse*S|S% zcC&J2Kk(4_dk|Xnsd{NuT!O08S1c_6IXkhUY}I*;M-2^5&o!(i!Y+r;vs>i}80-F; zT(3>4{$BOn-`T zAD1bnwao;&))pIhhgsqhsw~#*rmB2=4EW9-Qn9q; zIe4BbqP$VAm+~;mxr>hmrxZ0@4Xt|j>^j%PzYwt-;0mAj1SrKg4ixuFZ^S zYePvd$!d7{+8qLXdI0`yfH=~KyCi;N9SS?evP}B=SA847d8GXC>XU{vHrki^1p6+C(Mxl{ z)jf}$p_9oJ8~?1?s`|7BAcELV)(Qr)7;??U!OpJ1{%z;O4W707FKgdh(e~6pU==b7 z#0|<>`Ytb?%MnEPU1^Z?c#B1THZt{=5>*&yGip}-*RS7sPUH2jTX&ooe<#Dj8@=qZUmNZkmp_g5;O8gHO1>NjwYx#;TexW@ z(5GQpO_Ih#q4F>9c2x6n$?=GX9dE=h)_{SF|hiYb0KpS7`V1HJF?^kZ_Pz>f1G(bNJd=tB6%CVlt z@p=#{7xQW+lLBeFA5y1W74U@|#_o=i6uxn*#5kvpQkp&LeM8#ZUxhkC%tu&E>wZuh zLCdGByALh4n~G#3RL;k=J(Fb^vJI?^_kai{CgDk0w|xGQ?sKr0OlxkuVC2+1uVL{I z{4>%GF5EFf{mNR7#Vz8yi&L3~RE=rwMecb9LA)f!A92aDASKQjX5Cg_bV7cu@z?=^ zWP3`275$~xys3^mlrciY9Z5!V&JonE3?t`n>&=m;v&@CNK#-9E*cqT788D^lgJj~% z-O+D0%g8qp?!f$!*$Oe|Qi1K)j=g({eJy_5B@(nR67+O$VoW4WMA4Ro>HtiXiEvSh-12uR!17PYrMt(02kb$+es4z?FFtm9NP2ZTim)oK;vB-l zg(oVES>ukd{nW6uK<%)818wmhp>`&Xg^cGI7D|bYvQZV zsJkwecZ5e2%s>_&nHPBPb{cle?05GWP6(v=e5*&(F)zpH)wczSX&?{O{ j=tw?G#{U@n{5^c`g#Ld+>7P~z-2j*vS|Tg2V`KjdsJYmj literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/stuck_out_tongue_winking_eye_emoji.png b/app/src/main/res/drawable-nodpi/stuck_out_tongue_winking_eye_emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..628992f2ceedfdd2e4c07b8233e6c13e8d9ddc65 GIT binary patch literal 2909 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 D^T$;l literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/unknown_glasses.png b/app/src/main/res/drawable-nodpi/unknown_glasses.png new file mode 100644 index 0000000000000000000000000000000000000000..c1568722f39c07efb0995f194a598eb01b5c0cc0 GIT binary patch literal 3763 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 Jm3q!G{{y8J`?3H4 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/unknown_noglasses.png b/app/src/main/res/drawable-nodpi/unknown_noglasses.png new file mode 100644 index 0000000000000000000000000000000000000000..24eb2d24089672c8ec8d12ebf19f23201a9709bc GIT binary patch literal 2343 zcmZ`*X*3l47yeDCk!^}1yfv0=Ni)_gS;mMNQe?=Qj5S1zElX2P)*&&;C}oK>#4FU> zAR$AAY>{PbQ%&|7&1>hKKK?)a&pr1(=ef^$KHPiGJ?EyJv$Yi2E4>#0AcC<%+w)NK zPeOO|>S2@QY98?WnVm5Mp!$x`<|P3hhlJZ(qCjQ0>^y{Ytg(mM%nwwZ~N^Tgo3TZ#i=9+R?yY&-DC6LsIPSeOF^4dEKUUNpZ&Wa+XoVCkgnnRh*QWKomdsBo0g3Pk0X4|9|rSC6twFo$; zfw4#Be7owL<<*d)r-(@fe7uDKD2!M+`9SP=l5hoN#YUMPw6WV$@`4d60G|Mc-t(rZend=`lhrNS14#MME>7a)XnEZ~tmra$QEHo>P>{|>CMnSinb4qZ7xWVH3$c2+0b{>zC(ee$n z%igqbF$FSG+@e=SRn^X9^G9(>yTJkW+qa(eG@1wF%O^hLvmwT&`j+n+xz0tj*|P#> zs}|NDFSjj(y{RuMy=EkxewEVaob=sh8d{j8uDmnafBu`8Y?Q#QLN2B6RQuNWt(wF8 z>ib1Vu%3u5W#5{Zr8L8ftE}1Y-wnw~Pjc5WQ#yjti4Z1ypVu#+{0pZp!aA?a7zgNL)f#K)-pHl2=dtd-i>`AbjPxVGCgI}JCfZ;bU*SF$yr(DP3 z301p9hYpH^hRCxGyNofbAIHu(+DW9l8%DX2+olC%(go8kZQ9lznraV@PlVv+L@6__Rt;v_)ADQ-O>lkMtQwb&OC-&;{#D%6~(6S&O>Mj=YA z$Cy)nBO`gEX#v%_mEM{uP6G}T5TZTtJ!)J#NfLkMD+_PXaZY96RTewO#otdWg&iZk zm;0QbC`arpQlKktOvu)9OX#|HbC-)qUX-=3SBOBB-iYuV^*{rD-L_>GR_9N+mZuW~^(#YPx9n>Izg+7G;Jy2mfZ>tCA??ub+la-Qkb5Y5>aih5;1udTp zOZ7GM>x53Ps1afI5$-1Ygm1eDAp`BOb_j{fpCh*TQC3}%J=r?7n;vbZP}Ql>oe>gk zfAl+SnVMkI#*jQoqRHvKi+RUdkphVjkT)3qH>+#Gw`T3`z2r{cnuI?ruapZz(ZlLK z?e&VHH?wEFNtsSJn+samVznJF8YVYloO7~`uNNGZ5;lO!RjnH3s}JeN4TjDL2`G=R z-byd8(5ssGXIrLbc+B0&DJrBeXT3;8nmry{Re9bnAwcT)MnV;5Db6->Ig+u2^Ei(S zUMg(0{5SvPu#bB({XQJZNXd2|G*7xS&y%Vq${TW)Lc*1PzH?FHI&@c6ls7R)VG1$jBpO=K4F9d2umbsTIMQ&4#t4rX3$C`RJrpPqz&g<#LDR z?{-+AIv`C>`a3;hU*#ZR(yYzm3B~v}a{L6eC0j>FNBQy2diav|z)*TdMus3YG7l=J zqVcjUerkJ~H$;$(tn6kgjV7sDvVmmyZFw9;KG;wRf1Sp8o5`HHvWIBmNq!(LBa^WZ zJtc$f{pzswde&1>`rFQ0)vK|>a}$o(865b+T2Z_4+gOr-4ujMgy1A;9m?)4geEfh7 zaaPaSxCws;0S>r(3}@Un2Mz;KO`)05lOu z-Qx)4afFToQpZ3`*Fc*`bqo-QR~+rG|1kuIcnA2#{C@+ZihPx402m8fbS293=6_j2 BOfLWc literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/wink_emoji.png b/app/src/main/res/drawable-nodpi/wink_emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..d0074622f25e22ad23f52b2e97205c22ab835193 GIT binary patch literal 2597 zcmZ`*cRbXOAO7I7a+ya)85vo1cj7B6^IWnzzD7yTPWD+P86mP=gv`R7vn3;YZ-<`_ zS(zc5Bl~y#`TOJddcU6c^Ln25^ZfsgG}PAyGx9J3006#^)I?EOh5{%(EoIlss)tet zz4u5#8J6A2F#Iw*FCd+};)tU6)7z;|Ut`IiyYy<))UX}Xw5K1sqr*9FT%o&#cw_%bdk>`_1K-{iKu-__tV-+u5lgRD*DpVY?K z&-l(94W_5UPG@O9uC2!06RaW=9ZUk@nF21LXIERB2oju0eJ}Fc`&lKwYbtOf@i=v+ z4b^1TgQ%PVZ>>pZ#jTzgmpR9i+x9Jf-Jv2M05__#1!hQ9$t~}On7&^PYk9O10Z5ck z3=NEf2DBE*qNJ}OAQmaGP)N?6H9N`gTa~HvAvfMRDcsmxIXCzQ2WrRi#fpFVo4Ix% zlZX;RDX@bAf*+P;`$zZ!%;AsLtKpe`KPcpy8AMaSLiz2u_tt`(NnZOz-r5T$bpG*< zeiw@sQ}#Nd=3kn_Lo2n%Zd+>@-g}Dw(t~m;tLDx4DE-}pLAAS+?>l*3=}T(!SOoj}(5*Xy zBOpP%!I>)PjY*FZrF*uO_UyemSNe3wiPUro{Q|wpx(ZZiAv|FcMT`fsZyi*J5zgk zuAJ%o@Pht0i%dUJC;XdkCaEv|$7u|o;J9&TM#Hr2_w8}y54a@TiW;F*q~HD#YV(gC zx8kG}8f4U)^n2N1$5MVw-=Ld(u|HjVJk<~=NS!s%;?86DzhJ$Ed|iI2Z3^_&I* zvFo+NsI%DRCK_C_JT(o;Qu&ZyF?xfV)SPo2-Lb~jid-3FjJn;ub5eH&jabZ;g~4Qk z4_a)C`qc}h5uN_>O>*YRL2a5t|FN|$a8Q4A zUyOq)orpcIX+tUI`IVU3(VEy(U2tn6Lb(aK?+yU`Ti()MceN+&GiTwwoD}}#ma;i7#vV=giA3}`)IIF_c-lzrCfqTdhDC0vSjMKnEb7JaV+9gNZpuyl)E|wv zB)NZAz_w>H0S=QQ{RD=v+fswjuOq>ITv;08_8?)yABtefi-h?eQ=OXz{?QMQ)seK( zmQD}yU~+d=5!N70)F;>IC=s!#L$d4UBlAwW;^f(L>5gR=kCH}t?XxiR!2)j<$DC1R zKGHPWY|kg8$yvATs6l>^;d@f7;=M5qi5v~lusPkL_ejH^IgHEVVHmUZRqNBf57?@f`*h zV$J_^nu2`?N=ypUf(H_L&rYJDgZ>U%bL$dapR2ugcbnKxcRTL*Ghb~T+8$PGJCRm9 zr~VdStaLhcfSeQ(5)&EuMz4_~uNiD^(yk#N4$FBl4@1pEU*Or{d^e0wN>qK}N zV1>GcUhPIlU?YsDPy{|?IY>Y}elmN*#7@zDE;2=si#m*FfG0&|0xV2b`t!K+ED;WZ zR4L*%?u)O>RN+dwOC`H59?9%h-pw){IATA2Egm$M^w)2$oC#3$SylVx-q%q!Z_A<} zp4=p3Hs{{AG4iH_ygAAGUATB1?u?Z)O}%*Z)cR@IcYq1+t73 z($j;%q7J5_9C9Md88i-85h~qG)1sZCN|y&HDLL5=T2jJj^)*Z5n3$m<;P@Qeoz4YB zko2C~hu$uP8=ytcbTSBC`SmY?Glc5rl5lT2{7qZX>1Q=`Z#i@Wuk4<+G`c?-u(MwB z+=27&vxV*janRe`3P!ZL(XC}#zIPFDD;OSF^D=Vw=u5Vie|tK0vgLM0aO$rhwdJO* ziAFHsQc?;~L@9FrrCZnNt<9n{tHmRj(!sz6!dfZQSKoh0^>W zvzRwxxRA~%Sp~~vz4(L4pS%D_PTQ~fd!mCWuak(EmYJ6=+RIMC#?y{M02~UFm4?Bk zWuV5ey9#g_1sOSMsH_4MO3J29{-1)2o9#3E7yrM2J8P7n6oC6$`kE!`Rw4fd#fa0j literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/affectiva_logo_clear_background.png b/app/src/main/res/drawable-xhdpi/affectiva_logo_clear_background.png index ed553b9486a79a3697329cd4057770332820ea25..8dea8491eac21c161f12fae876b1ab71d8621dac 100644 GIT binary patch literal 20031 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

?GX?J@c^5C!iuNFSF=KCw?bV|18~#MXGL_%-pf zw_r@_Ni>Zi`}|xH{uR%IB)KnP`jYZ2{Q`~uEO`SpQ-xGUoXti`{<|--m3G!l?|~_# znY3t&kDN1)F^Avrmzex~8*tJI`Sd0;eD-lHowYu|VJ4PRFXcqTLX%*I3y0;xmH`Ig zDHsmK$|irC@|(<^RI=Z;sTLs{uexZSXGi!|?bv8Pl;)Yl8ZYJHtV^o)@7$pl!qI1~0?|Bzg+FkXq{F3K`$rfsj_ZB+zvianAn)ty69L?FD*5=FSw^Hfku$p`)rT#6W=Q%Xw}tv;RtxqKIHuhDSGw%=u12XO#ms3Y-~?Q11E8sJQSgDVWBDEfZPVaB zw?~1iS;$d!&O+B;Ss>!YUqL7T<_ai#l=^mDX#{E7IVgwRguBN8;Mk0C&)krDWcVV} zam^VX=2p>a@Jgk`Q7MN)z=?og&o4RLPW=vPI?g5Z8BN5mG7h7%>H9&TEa7Zcy`-2) zTxEaaqZO$flN4qy803+Iv2l~Dzet>efyh85kdH#LS}71j~s# z~q zYGcg$GUw{oo?7T};d#Naw;rwm&BAVQ`2IGavGw`IXy?2-IRTwG-%V}Wa&cYXOLo-p zu&2*8atrbq+Dq)wP?49=g5vjCJ|-ipCHT%JhC8OM%B;28*DW?e5w30R)YPP?`@T?5 zOT}U=B0mYzbWfX)t38VNSDEM^XK-zZR`+W#16ZK1S1RMfUCwD+K6{jy%85- z_Sw^jdV2gbQ@20d9u?VHs?XvM?rto>3y8tZrTdV6SEGMQKREz?#w-tcKKlj(1ma?G ztIMq~noV={79o}jZtXkk0a|l336KH*A_SzJyI_Pr6m9C$l|UK^r%^B97a^VPb2gk* zFMIE#!{3fSxTv!!4&)dCQNSj{2BKso@yDD9d^82t8VFlkvC!ohki7}7gGye@0jZ)w z@!bvec_gn)FRSm_F{gn!QLO4lUXzrS=zxBnYnWD2nQ2H7Q4I)7;PQ1`C0@QkffLrI z>$BG7mr1PL{oT#|dKL=?3L*4W;xcV8!dORE=Rf5S7761aSfiNLsSU9D49jKNNcb1x zHVrR8W3)(g>N;pFW5-Pvb98xetoKoG9_?_?NhKE2F$L0fFGP>G8h@}@cvt4O*!)@f z9MDeH_+YQ3-Q=my%g4FQQC6or&ncpmwHtW^(OG)*W~>Dan?r_&($b;)JCs_xB`0&R z)*JHJ^*^cIeg^VHsLg&wa1|q$J z{Kr<#E7p|(R1?M(m_Y1iH&uy5^r(eR2aC28`U<40@-2=I-B6tP?T?$xqa)`uJ~psm zsBddBq#Lf}3Oc|#S8N)3&2N!`!hoQ(@7~NT)g%dh6}O;tR&}&1JT(N0^vKUVl;PEP zVAr=5OL9{yVbjl*o1U=FR>O+2`Hj$q;_gIp(?+B`LD*2J9 za&-^RvE;v69*yK(9EWUE#_}GwO|B=F^sWOmI{lF8zvN<@-D!(?QycMGSH;b6-r|e^ zWw?@?0Y`WF*zkJ-$r~@iTWB+B(WoV(;^q$kBanzrX{S2c&pWC6L(Xr;>eWIqo9EVwq%z&V_Io0DLws} zVLC-3Th0@vK>I!WM8L^fQdCwstADG zV~rUGSfgZAcJp6k&TDtT%XK+MH~#*_@N3K$Pp89gzkg`6bSL~3oh0hj#y_J2NAVw9 z_sMoB-w*H_&)7)hyDahd;z}c;2pibACdfB|%x0x!~!Ux(Sq_KBP zD(?yiTs%r0+Gu8I++dT>N73xUc`NG$ixTU+qbF5TAAlVppGvvI%{I3OJGBQ1~V0F+2@OIRR_9E0D`>IcpFevuF zM))xgjALyyYs;Qczsg0c1B7#!z{g6zdB1Gy*g-gvnqu@BQ3PR1Ad$C33rp(VeTSj8 z@=I2*ilS;*YDt)C{?t2givls`V>;WAN;_n=$^w#xbEzCNOs~AlB3M0(Cbh=TW{?g0 zeP!Rwp3U^-N6h6r7JH%&3!jvf1q!QBWq8*H2NkiBzV4Q8UTMqqZ9k0z=ZZSEAx`(; zSvPjl9}bTgnZ>-SEm+>rXHSUbcEZ!cJ=rs|MeOAXWz-8 zrF&vyQSqcu#hkIv&M=w?xQ@5pJC81+_mWVDzqP<9m>%G=xVcmHzis}ujLUi7xHtPvh? z4vd?jin$Ga!cd|#em9@1{wgC%aAy5lUaVT^cMDkhi?X%nH4C9nccC>-MOV}d`3uJq z4}aJ2ov)Xpd<|4IbU4V*NdDErX!B;0z~f8(SIyL8GV-w>*buc{3yPxg>*dzv<{+gk zoVgLs)_itb%h_3N^}S+8ZTd0;d8AMoGxr}u3$2BH)ZH>1zgOmM=(GAYocaY;hLg+= z;nRqRm>-JU=KOqvFoQPOyDaIkwppsb1D?-t>ycjm0o7%3;bV;sgpOYXU7%YU2ueSf zc)MiyNN*}qge$Sts8j~n3ecZXWihrID|P3mb(tnJwhpcW|l5c|Tmmp2&&tU}# z7LNe70B*KWP*FpQS?k^ue1+yec_dS8uHFbSwNqsM zeSM!h-EX$6!tan+_B-Mq+Z#jTD~$u@4Q6nC<9-vpEV3y&Vg+r#QhqVtuhR5=s|#su z{s9Fb@%%@9Ljaz^H?; zDP!7&TdK@{2!(Y(mv}n;{aXOr6!Xl`GSJdIq|C^|AiBv;$YviI9kO?#^$d_k<1$BBbi7pvxyQrsV-9!V*P+10$FB|Ihr6O7A zV@YLL_q9jg{`V?re-sP&60z2e?3Xyns}dHLYs2c^Fn0sG6V@DLB}`^of-(av1L9I| zZ|`7#pzbL?5!IC8P0jHSiR98JWXD9O3fOkr7$C>RjJDLlJ?FKeS*AXb-Ek|QcR~-x zn4*6EG04R|N_H3>C;i89ZTK_*w;-r#Byr7vtEawm9sn@!JjCgchm)k)IhS?X;A&sP z!cu>ggCLPh3nu1sGyNNd?v)$MSZ_ESkI#ioz0fP;zwMrd!PH|Zr=X#Jw6ckuC)QIF zIlWU+4nULz@=Cu%F3cs?djz)5>l?`=C`>DX0GnZA%`x~WPI#TwSZpJIAx=|cdmkLL zivUnva@wb97e-4ih~OHrjU6M9e^Ai+eAw4^$`M6jExutsJiQ&iXe2mI=|T4DE$V7`jSBv!-5Ao z52JfCYoNfz`pq`MspI~r!v6DNz3E>g8ld#BA6ROH-b;Q? zkES;)NY%Xi=+H1yRsWsm-kaht#x}%B21`I4#11*GsVK5`HFlK1qd8JBIL{BjnKIpmbp{Gg0RnI;XtWm+s2u@H(B(${z&MOTYVQ z`GraKz5uXIy#2IB?D27rj{Tdv&(6|hpKe#DF(~tEPt>_BS3J#@hnViv;xi7NG1GTt zu79~3qYqJKxBXVI{(3!BVQ{2Mk?p5TJ6s8b&XXtVr??~0Umnk9Rl5^`x*}!3;A&yp zev-)0jQG!e(vRb2=b- z2dUXeM={eH#)mZB!q3g!3A~10;7U`SaswGNXat+q4~f!1zx(E;hmYg)GQQ$Wsz9wK zAo~aLowadzZeV-MX#qvs{^)U^Sto=V?*6n-NU`VnjfxDk87B|v$B$ieZno4&DNTvB z@VX2ddacc`u1%dxv31dM3B3q_wD`{69GFRDnCicN-rR4xE;v4$O$C-V40PBFQa?u?x`y5?6!=!k;<3MT%>tX%iP&huOuA@S>hoHnj+i zq&*OZyR0t_qEjl-eo~z5bAEDtu~qLXQ(MvJG2vvUAZx1Y8&ZCGeZ= z-wnBSH-3F+AMb1Og1++u>`x!1QKkL4xPn5HukxajVC6@Z;XVS7;R(}2gKGDyea2() zN~gN<+fSG=sKaBl7daKrpY2rqi^PAfiK1b^*-Ir#TY4p#OW+&w+7q&*egevzur~A5 z18LH)mD>VnyZ;-5FY&8$zfmgr(?yF(+I}3JqYglU6ecB&nR8v?_F4v=IU#WnV=oPrHO$ zUwLk$!Clqp53jiiyv;YOOf1)w488CsweC5LsCxwlq1Z?l#7E)CH>@+eo85l6oU(6nu^BGT7eaHV$8iM^P1tUtp4wY@5HnxF|340{p?hyKS@un z&Pai1nIa0ik6(Z9Pz*usvHSs;h*DD85{cfk_U|gaW*81a}mr_joa|d38ZqP#YC5V#?H(1GwsY)Su{F$hAuF$m6=)d3)303R{4r&cgc#- zNxKkU8%}O~TED@ER1rdCm~$E!7B^hZ>@1xZdPrB0xP#W&0{6OK&F8^V6Y$5=+aIl7 zF1!M;4LVX0AKIHHmk7cPEk($@sBuziNXXT{^=NiyI|O(<$dun6V&w~Fc^q&)f}Z$J zCh~IU^Avh?i9dd8*Q&-pA8So+>*ZAgA=oRszu4Ma{Qf*I(Cyqs2hX2}h-j+il}@_9 zOMOI}__&#R#rS1-!O%`KT5nfHQXaWV2ub&ogZGQ6{ca{n37`ism$Rd0M&`?%m zdVwmDkWjgNX}+EWy%l|W7*Z&e@p_^dvWQ@eGfwqNcve&4&nB?-8h+AZ9+1H}4pN3s zAITW~3P36{p}^G;i!3eAr(6!*W{Y!|2KP zn^_mU!qQtC<6o!S@eVgK`Y_Rt8XPxR_OZ?o+DCXl`~c&`H_+psXo%W49xAWccW*2Z zZM%p8LLtmvC3O2)P|gOY|7TqLAJ@0h^FAFFG`0xg@GtCCSL?2(7;8iF-V8>%%E~n; zETM9%kCF~J84lPlD+`;FUKVZ4B41bPGA?#sIMiTxb$`U1LT%rHzlgy$#P#s*8@%_uD~MtJDDrmMM4Y^x8=FAE ze!jg($vM8z&R3GlSdvktnpT4HeHYB5VFTNfe!I6=Z|nkN5sGbO5#?%quwg-wpDL?ZDSJP`)=ic4BlA z3x^f{SKW-qnB%6By%C9N`-i&DSX<;j)$ZdJ!bQT(Y<<}i*(MoyHkrs&Kl2OL2yi;; zzs3je&4;~SYjM+5?X$Z-kQ09kBs19|rM7}eNm7?6sj#E0{%R55O;|Or^ljWMH$CbD zCh_eBV*uGRb<9)wv1bTAF9!)FytRSJAPi%TE+_lQR!>tDnaQES$LHk3i^zWQZ6eVUFPvkj<))fJKF|v7jJ*71 z|7{o7z)g|hXJP4&jQB!*;PI4Rex?BzH(IcYN8Ka)J-&`n)8X{mxYS8?_*q;vcwv(g zcVeEt-%Bqj=$nG)xY$e=?f*`d0grh=R1KDS`Kj{ye;T>ca46e0JeDlOkd$4rXRE=? z*j~+Bwj_LZnPM~)HI|t0zKwm!PKqK+hN5JRF&K;`W693gm+TZKBumWqc)wrYkMB6X zU(c`Wx$pbA&g;Cc=Q!^3%ro5#+C4L~nr zUwf`ddQe-eaRq4xi^BrDT{4#*h{lkDl<(V!Sg7Z718e8A>XcPuMaq9Di7m-i8GTKN zR`O}?^KIBeO!$df>UEh+e><(h;&*ed4BBb#oAf?Nfi|HoWElz|r*o7}d6k3uVE$}0 z@TaOb9spn0W9{~MEXwP8+S2FgCd$`Bnu$-Cz`S|Qd{JqKpAPpC?|dvQKf)$yqi1&e zN}x!9W|N*D`}AlT`lXeN;lnUjy;3=ZJmih5#l8aJAf@oih^a+gHy|~q8N=Sq*y%BDq-{wmk#jrD%zpv|vIVjpgBLD4t~wH+U0J+89@ ztfC-|F!yL-$>SxyunP$_7IW04`;kotp$eqGg%5_#X{qRC1j~9$dI#_p9olKi-@kp# zSFQ20?0mT7r4wzX^L&_Uqu@@h3@<7L`DigIbX2SctAQyZ{BXStWHYpIqTD@X0peC( zPl4dFRb?#Fl*BIdz0hgUp6G_}U;y5+Oq_;-_SfYAF1RD@9b`#uwu{YF3z#b~Ng%mq zOVz)wi9>3dSx<2+gIcVtfBJ|9X`}H!85L88dJHOSl8|N38jC+OMWCKFKq(z_%CD?X zHes8(cZLuC{JqrUO0xZx;(I?1i%tcyeU-A5e;}bCrg;*dA((ovhG%bBMN7r>7RG}-;kfxR)2iyxNAi(^~=XxnlsD;?5>*Syoipx^*2e_^M0lDYs3*j|-F2^9*2hIl28$*k z8mz}Dh8C|qP&D)HBvQQsvAwV#8M92*ucSB%AGHcHpz z$*1^!1o&r>%K3$P*WJI}()v9AP7c^93_p^I3DntZ@ARI?I^@%QOuW0B;_swy&Jx5K&)f!LQFBRwWTxpf z9K>LqL|bTaK-Cz!sZ)!aEj{yI|H?LGC{)9IdMUr*owAG(i>}v5_s=E(bSNA5y|TlHD+=-C zW(YHK_1;thMG-AdhtT2ujx&v+j|-LAX?a^reVI?N!y~ICGnLExeul!)E60kp(q#pd zYzjhu(B6Yko$b4qzjtI-kN$?&B$8M!O;xoL`}B~;kn zx%eV=!Q5egH;UcwULVi0)Ty9K8oN%>uv$n?__Tce=fDyFeM5sbmd&c&cvEx04&vmP z+M)vSS6agyW+~P~1@tmXG0->~z~b9xL}f)}xZ8(Pr(|?;3{warY|oc^7!G>(^4?1E zNmf$rM~|b}4SD$%y_l)_g=cz9RN&e4G8O#S0xIBu%eXBJDC z_ue0C;Hi(`4Uvx~mGtVC_#~|63Lk(0TB{E`A>wGpp;!%`UsPhW29&yNiT6b)l4U!G z0cJq7_GoRzCpFG|&1ty((!)z0xSOsLb2)8%#=b<#(K@GB)Ty55z%EJvps0Vg^ffd~ z7(aa(D_6-^_Q zI>oI501&;Dv~Qn;xdSL^tG9iIBz0U79X4j34+*8958AdXdG>BN`*~tK z-)4HFOo$LQAxl%IfYT5*5HR@oDY42ZO0CW{QqI`Cmw>GfHc}C7ZS&)G%LtWS$hoRt zpxp=S{YM;{p^lX@FPc#ty}7@wX4fZw3~%0_kPDa0I&oLg0=j{&ImI+%(<$;XVRAU- zTdh*5)>i77#09~i_kE8%Z$Ckh=cb(hRF^MY;p70EYAVMc@+IuOI6LlDeXQ@W9^{lP z*t!&xi8%`1yfw`B&m5WC+lPpK1T?ItoZ4A#tQfffF8dGkutIV&a&_=rdDyEiSd>+t z!F@}QeMcfI1;Rlv*lSC?$x2#@OH?o_*i;|yFM znIr~5zh|cAP^*xU*M>BMhv>hJok}`-WT8S8C;Z#!(ydp=+X<<@$*&2~j2L>ivW5V2 zD6{VixhBLmNS|gp0=bA^06&yfj6G8jD;~oZ#|_#&wPnGhFEmgaSOxZF&#K<)z*di- z+u48`I!YwY-~M)9Ot;VVlP*E-M}o|d-~#q3|$u#!LyM}%fY$wyGyS9jb(EtCE$J5m5rNT5vERW=wr?uH{ZP8ZIm8?M1$wH~ zL;aszD4zzAKYj$8dho(9t|u;J*SUZuFeMM@MBsUHWXS6H;MkQ01q!0_j`Z+?|@0S RZ5R*$GBz;NFS&*e`!`PvSLOf! literal 19220 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 delta 172 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 delta 2502 zcmV;%2|4!D4A&Eo83+ad0082ccQ})60vCS(2XskIMF-yp7ZWcJ%#n||0000TX;fHr zLvL+uWo~o;00000Lvm$dbY)~9cWHEJAV*0}P-HG;2LJ#GO-V#SRCwC$U0Y0C*A-p+ z&K+ik$G|W=hNlZb1T3HiQiw&G)U;I_sdl7FQI$&VXMfzEDw5Uqr&2!LDu0%opMHNw zRjW9yQdw=IR*vJwYDfUTh!Z1h3>X+5!+?Qd9+!LiarZdm@c=VCX3mAXr1|2aIkVP1 zd+&43K6?`+g%CmkPz<0HfEz#&fC2z{037^L`Edi|{(JO;1?V1iOGZ+5i^YdLWp7jO#nJ%h_rw9`f~u> z1~5iMD^d#}gitw}>E!tRFkuP64FJLWmY7 z--)A*FpKb2)&#J~-#-zQU66m@WRd?2oB+C*n}ZX89j-5o|e5G1+Ffp-l*}lInPKD=%FpYt-{#b=~!w;V(~p9tidZBC%Qk z@H*^|zUB1{{JyL8qsF3w4GD)`58xhvsZ{Eudizg7!UOa_jX$b8H+c8#s-~5v`g@V8 zF1-E1@ppdOP&*}|2!4M6A0^KMC5e1udnFzD!+~Y@cH{%Vs-~5n8@zjVII!%NPyinQ zFLS)56SlMMmkw_Ze(~Cxrg?UHZcWoXZw`L(nxqc74N2L5$pW|`Y0}jF)%6y!wa@x` z76a=2)%6xh1*m3@pA~>}HJfD|^@lU_6}s4&{5W(0^~0I@3Q2!OXlAaTnE`efxth|U z%H`aEk&%$L2K+xVq9M@?DGAQkhukO1re4W-+^Z#dY9QU`OY+n}hsV7tsQ?ZDzPK}1 z62j3&nU|Ai>Z-2T6$%<4XV~VL?_S^N7!PwGN*wFTJV|w#?B~ z2(gpprB}~)wGMwvEE-QQ+vCQHl>nIaKDDkVH)`?g4p#XmiQ1CKI5Dgb=R+s4~N7|2+Pv z_IEe${X7tjR%yC$3ie$JA?mW()=!icfBKK_zIe$*0?aBfYA;BStNumruZO?~$I=Ox!}@07UnggK%_M*-`zSx23)E^tPb(!}7f`1|8)nI4 zRjmb>1gkMk_CdZ<>3yV<5>D#}5wx0oms!G5O@V(=u0?9}SCubT=Q}5m#<8SRv90~M zzG}cE0z^z9006w*ef&L7o_%&(gGvr{W)dK3hLL{9R~Gm~SL+{rPRD(_ zLLo|+4GJMzpxT1H<(@15`rgUEn8*c0NeJ;Wj5Ks>D76`N=kuFL06*|`UQiW)S7je@cym+v<-na+K3!Pqo(o6oqq<%I0C|eC zUg^x6e6hTA=wfgC$4;Bg3?}uTL^KJhg=$)%Aj@ zP`Gt=a<(xLiMs!Gsz>(hxEOQ(WPe?QQA=4`ymjkd$0zek{mJAfLKDLA$^26PTet4X zp5-^qoIepjz$j!bE#9A)>5uCAjs-BHx?cGH#7w{B0z6>O4FR}VwI7mh%spHSxq^Su zSlU5CFdD0PxE69rN`3@@KVBeQNwQ1hQqI@VhEo^mUmDj1XgahZYf-6j<{D24!1eP- zWgKx|g*T`w=~t^&71H`Dyg^9?7)|U|kbETh7)A+q>F~U}a73YyoZ~1IgVvQaU!S{P%q+=Wr|F>)jsZZq z(=pLk;TbsJdHlcC`A%7nSpS`>%<)zNxB&D)(uyf2D^~*;#lEknU9N_RHiUl=BLM0k zVa*^Lk+2cL&WjnzApneQ)e2?1#H;{}TKN|ChTF^~G7^A$ri{TlG2084V6;AoWh?-T zumYoPhjn6>IdlLwcIrEmPHyP5Wr}ufdUo7l-cbNuN0#80mteFp{QXl*PmSoHue_U~>~oOc%^1avq`ZtRNT}8eSH{$9`kK))Vo2aDFB}03$zNP>xes zqzw_dplmU(C)_ZK3l=iKD6!_?Pdu$gV^b1=QF>t=z$%-RB>*dY8Bsd?ACqZqKo-%| Q0ssI207*qoM6N<$f|*c`-v9sr diff --git a/app/src/main/res/drawable-xhdpi/switch_camera_button.png b/app/src/main/res/drawable-xhdpi/switch_camera_button.png index d21bb9426cd03ba350c3ad2b60f7943f0d470738..390df0f5e047055ae9b77f83ce97662ce784c4c3 100644 GIT binary patch literal 1349 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy#B(j9#r85lP9bN@+X1@ak-gWR1M z)}51i3FIgwdj$D1FjT2AFf_C^=rm4`c-HJ1MbpN5sL?K=nZG$Jb>cz(9#C3GxeO zU=x(qFmv<@3X6=22=#ZjHB=JkVPxV~koUF`vGCDi6*l6s7w|A=Hjw0X)ePbDlk(+v zV>gu(O)D#v_#7Rl_Vc9B_9rh=zW*z=<1m)hv7G6$aYyjVcZ>4Ro(lw8!kFak?!x$= zN%tO*!&%@FSlFz$+)+5R(8CQqewfusq?wK)oK|M8k$Sp zvVvw!D*uodHeuKO|J_I4b!{@(TwL~S&VTEOih1|%Ju6CUaZoijvig?wr?gCoz3=z2 z*>h&qSx-LxH+24?H&eJbRTQ%_o!q@>j-1-`x$`$J+OKc9z`HW>;)HqYr)>SAAwSLM z$5c)gyB#5?SLVBYRhE-K@^cE;{!O#^9P)EqM4QiF@%eeT z=Hln+*K~g{sLIwWrypg%;q$D1>yh%{v}epYE8}-rvC1n%2Yg7+U0<(%|H+^C>ui5% z-VSPXKgNDz;)my)KOdyD{ZO7#)A046d*;Mx{2QzkZY&c!;MViMc@F>484Eo08+O|L zlVX;Cu=KyCLfpfp_;*xLC%d+b5*=xb)YBJAN9iOe`r2C}*B>%klA1`9&oR-YH z@ipfZ|F7v42bZq5Xs!Anbb@_ncty!o*1H0yrcELM`H!!>_ zWMWt3_;I*thNCXS-UY&SA1}N*?ffIO-R%Nf>MfD!F9d}?c@#{}W&L&h$|oVkIFsG8 zdos1w$OVTar+;4ba8~x?Wrq%ySuE?F+y2goclPV(e}41pZyd7w5X2*!$#VVGLH*tZ z>*V%L=2-M__XFW8LdybF4u8MA#8crQ%aS=3y{a>uWHZ$sofR`$<(aT5sL3(Ti}TG< zfqzAO^^RS8mmG^1Nzu>#B%b!u`}Ciqh2K8e{byqRFU0*{N$|gs_UftDnm{r-UW|%?Y`_ delta 2039 zcmVL_}@-KgA-!V@BNVz*e9#fMmV{z68Dn)CNPu0^v6U zFPKkyWmw4qGr(P7Ktv{=C<9cr$$ZMU05J;+;5cvt7!r~6iZnn~1!x5Jn)=*U27y5l zxxZozP}Oz70TVdO0R?UWSA&id60q=Vfj#DvUyfvfe}9R{CuL=Ts>XpG!1JsO(!fU| za@%?XRJ9H`Y)NqSo7<*Z%2;WDs_p@vWo45FE{MpOH3pbo>uW$WPY!<*k$*&PfT~sl zhk#W)dE5|@k0UccRqIWCFFd(SipaUp4N%pM!0R{w#zo}4&uh@=TtOW5B zPW*z@0e?R;qq@NupsF<{;5rIZ1sn{-099RW#22UYf;6e>kAo-yuM^&QeYvwuRiF0F z09E}du+HgP6fLHMx;z6^wE=kA=~*-};E0(ADa`;?tpwVgmL;YWlSbVI@^C~ zkpX+=8c?VTYKc0R8C4mZO;VHheMf91o7rK@se!dCMoW0N$w`XDQ_JvBoRvU8o(z{pQ%&LD=oLObnOYdHJ(-H&f zRrTRIDVb9Oei3BKt;ycwUrkKySfu)?n0%1=UJ&WmR>c1s7kRMI-)ya``Rr2LzEc64 zFf1Y$9x*^wp96jrL~29hlhr>t|KV>ls()3K0dbM(PY%8E>uvS5L9Gu>1Ah{cY;3-| z$xmK>|7uspn@=bUGODXze*bD$fJs#1&7gTPz_k4X`E>sA>sy-&Rd<#nbMhVpFXji~ z1OcsF&Z3kn0q6buswz1He&9w5A|a78;8~|dG)>Z&mPyNGh0+|u+xqEN`{3Tw%Y9Gx!M&$$qt3*kP3uqj5patM%!f9uKV^#nX&jLnFdKCy z&fmOyyuIgIXISaA_gw2dfAj8fTVlZfZ0HU54UZmaP4=!X)ckzvO!9Z71b^W|v7PMs-Ov*GIa6INXN0u{YU+N z@3G7MM=#zP>98>dq-@L7#XBP%t;yaKe!Z_X*?Yo9@qug%?~G0BxPC9y=0{*|@441# zTeXwNs8unbP+&gUH*lxa=YLQ34ZLPchie{2Vj?nab36IWH@Du1;@OZG&W!`za9yHE z7|$8-rPCr3QaJ-szyqg8sQgDnyrWe_B#U?IxFbCNp6dtX_@~n(G}5^a@IwPcWYFmn z8e^u`d2BZ9-~M;C%lCMp0P}u5e<&iKul!Ew=UX=3G~brfI(40scYj}-o+5IupaJG= zWZ#4Fr-xrX85fx;7xm*JGoK!Q^<+S=eo9y1JD{o%1ha#7d1g|(i4$CEM`Cq z=)|237X%-R$ih42O?1BEv^({9;(AtK`?8DQ?z>UJ8I%q(Wmt<(~Lh>YT0{pTo-EO2hI z)6|!=GFn7F!n=pjQCzEM(N%}VEKR?HTSvN7hD2mZwZ@VS5N|B!Je2X_58*H(B7a@# z9~ZSbLqw*G368={13kq&Q1tE?5lOkBih@i4f6h&`ELqP|Q-5>!$UH*0m-ytF;I6TX z>Kdy&6Wm2^%fMY_SUPrGWjMzOcbR9D1{f3Eb+%C&U`%iqI!9?ho)PX!^C%6-Gh!WZ z0E>3!FP3HCmZ@$69eN3^{cf&vY6SKI^%jdi2n>oyC|kE8=|HJ!6W&SfTPz9I<9M4? zhRh^XXhhzFRdChKzzcYX2ZnWYjsi2lU0^^&BD?0qnjr+UAZ!iZA>vyDGUGeE-9X<0 zDi&PoVC@)=>0Q^Dl2K>kMvXD4$^`Vd`5&@C25$~_8gJ|EB;MMlsoa;?bBo49{ttGj Vi*GQ7$C>~D002ovPDHLkV1f^k%(4Ig diff --git a/app/src/main/res/drawable-xhdpi/switch_camera_button_pressed.png b/app/src/main/res/drawable-xhdpi/switch_camera_button_pressed.png index fafb4755b4a9a14d496cc03021db794e653187ac..a695dbaf9d5aeac59beceb8159315794735b1324 100644 GIT binary patch delta 1656 zcmV-;28a3l5B?008Gi%-002mlzq0@U00d`2O+f$vv5yP0Dy!50Qvv`0D$NK0Cg|`0P0`>06Lfe02gqax=}m;0007FOGiWi z|A&vvzW@LL32;bRa{vGf6951U69E94oEQKA1$RkAK~#9!-G7|hPaIVo$G^YB?s8`f z1+`*YV(4mGni_9GYSTtd8fgkKL?9aWr9ofN{v|%iOC^2TMgtgPAWaRa553vcOJf_` zO2Hsj5fv&dmkMl|h5!(j%9yFoMg!GiA z*udYoNvnzs@LDvY0nF}CfMrZ$iXsIxzzH>Y1y#1Cr!s*FdRPzxd?#LqN2>T(VElp0 zX0yVi0lovxsBu7i91XwFHx3!#ML2+c4vLQx!Bv`*ZhwGR;<$u_6=e>WX-lF3-i)UU zCO%387idX}0q(;Q)D>8Mlpp9P+Xi?UTH#Y79{{H5x-A2|3diN#ZdhiO#w;7)PvWRj z@llrPoFxO>L_Pql;GEF~&hW&@{o6)9P>Hv=fl`CTyd15nRqH6h8zv0!Vzeqw-Arov zOTq?l)PK_bz0>UFyM+w!SFuyIRs&ji#uX{U0I$Ywv1kflXycT=NH5=uH&v_5i4O;J z8o+a^73O6h*YyN-26!Fzs@5mKVM7CWS+zDH{JbHn0lo`<)!GDU;YIO}iOxA^a&8@N zRNUFY4DMSr+Q0OIttwE0J(x~2fXC!qdq4bWtAE0HZPDu2?@KYz95;|Wgj(#zjL?GT z(CJ+Afvt)|rx!dC2|pDN=nU{(D6t#T%TEmCmLIinV!$h-w5vCOM*9(4PjR8HC-=3U zl3<{U*8qtQ4S&a6>$iL659pU@p3TR_+xz}vkMv9Ge*FBbNelCIA!dL-i|57L-6`w+ zSbwv9z-7YL2R_(uraBtI2x-wnC}3tsCkM1*`SJm+_~d}823}MG4B*U60)JW$Ny8!; zP%OGQ2ct>sH&bhtHZ~+9`cs@3fM*=lpYM@kJu=?@Ap?up64%Ls# zH6U&DB``b^64`Df6d0CiKvESnFdP~c-8M8T&w@wJ&}sd6QoeVw$l#`UD{;yWjdu8F zkI6A0frhcvWB*E@NSl#R_r^?{{e3fNc0)9s&7Zp27#wOc+Xu^Pz~W;r+XaSAyMG~W z_jGqzY1iF#yT`r(5B{}(EuLxXC{CV25BD1>zEPpUsml_b?zh`}|1?CwLue7_8Wd`7$Y85sJGXP;c zvK>ebzY}KwX^@-;1>;tHfMZg%5=%s|5;H&(s8u6W~hfm-NEoP1Wl1a+j8K7@!EgRIM;4o4BQ4kWt#DMch}d(hv<}=})m|sZG;W zJW#FFfNPXdN6cPazql05UK!H7zkREi*7wF*!OiGCDOgEig4YFfgq(ONamf03~!qSaf7z zbY(hiZ)9m^c>ppnF*PkQGA%POR53X^GBP?fGc7PRIxsNYX!A4x0000E#{( delta 2041 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 P;746qN2x}^GW>r5GI(3g diff --git a/app/src/main/res/drawable-xxhdpi/ic_arrow_back_white_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_arrow_back_white_24dp.png index cc604131f52818afc19f2f1e10ca75cdba689c92..a14bd549ad357f04f919ca7f51d4c43a6c4e0954 100644 GIT binary patch delta 385 zcmZ3)w2yg$3NK5#qpu?aW7`757t`V=Dyr3g@N{tuskrs_>Gm4k9jrE(|UQQcfMO znID6QZu`G>Tj&YIns1KIu|I7gF0gUs_kP z)8NQ_rg$JvwItIuq9i4;B-JXpC>2OC7#SFv>KYp98XJTdT3Q(yS(zH^8kkxc7_2q* g?f~n6X~@k_$xN%nt>I3_XA_W(p00i_>zopr0OQP^i~s-t delta 230 zcmdnTyohOn%0v_8diD}eUsv|~9DKq&DuqY;Vi*`0Hha1_hE&{od*?K7gMx@lU=m~4 zg1NsI`fr_k05KMwluJ3$!Xvq*yC%TkHD0RNs(gbnClEP|6 YUCB;^!#}>*1KrQy>FVdQ&MBb@03d5$h5!Hn diff --git a/app/src/main/res/drawable-xxhdpi/settings_button.png b/app/src/main/res/drawable-xxhdpi/settings_button.png index 65fe3d387dbc039bd0f782ade792f7441c0f983e..4e5afb826c08ad26c2db45c5078824da4923b45e 100644 GIT binary patch literal 1755 zcmc&!YgE!_9R7otw-lCTH>b2^;mV1rEt!g#n9j?XnwKo|mbo(jEKSWsB~-w>Wok-_ zR$9ljEOT~I@sik16m&Evsfgx;%A7zbiLihBuygidpZA{k_de(Oz3+3L=lnjrOp^Zr zW5X?m000JR2i$?y=jKv~pkurO z`~V<*2PDb?fKN~>TLJ)QumJEj5&&>j0I-qFdiawwqzfeZ1`(kL+W&7|VY6ur#(4%) zwzzoh#!b0QmYqkhsHx%e1uH8n^y1<FX1V#TP0nXiR1|hr<^LGIMh) zFIUr;`Bf|y)cj*^4zjq_+WK;Mm|j>Y7#?oCd844Tw5`28C%>S!p+P7VuCA_1rBX(5 zu|OcGtgeAVLXQ80r_gesB$+fCg+_yBS^dV~7ig>r$pQX>fbQCLn|JKPd;S;_5xwQR z@F$HwIsV0uq zEF4Q8nt3xbTbRUqU!1wzKi@kKDz9eDWHgVlr1#Te5~nizv#NU1w(TN9g-YPb#P9Jjdr!csqP{iT3|2D&<#b)z#Wgp9?j z+irObV_MvTiZJ3e#~*BsSwyr@J)B=jP+b*;ucB>Ri2)a1OqQSM;3l%2Mz)`k-Z!&I z(Xpv+4-uc5Z5kE4z2si^oFh3C`?62b>bsRy_p+lflpOye|IXH-j((LRkyRIhcu0S$%W31^)WPk;m$F-L7U~t{RImb-9wvUwSnzM|&xRX8bt>{yJr^ zbVZLPZc1j0Dgf^C!iL|^YE4>tsNF&l^=nZb6Va#THVld|E}EdPR?M?1FUZ;} zm{4plC_2&Ar4!AMrS@*`(L3od{Q~dncMsm!)On=6O6{kX9ghox-LqG_KHKe|FG_1Y z%rWmN3GxO)G~Tt@ab>5-iM1QBNEGSQ+Ka&JTw*Y18qV>)y9tr-hh^CAHh2ZvwZRj^ zAS75H>5$p>XAD>%2BHRcHJ>a|oNV5OwOrJL@gMO&4bH^1x0xhIjbF?j#O+N|Wh4f2 zsLw^{NZYkt-KfF!sP2s+oe5F4g5$HBR9RH>f81Zvv@531VgnZ+GF^!luy)&8q zF@1&iI`u1f#sIQ|qOIS=#Alv2`tu?%tdMU^vi)RehC&nAv%h`!E>S;%hBkoN^w@K$ zmL%A=c(hto;8LnyV@T4+nyf~tjIyZkAW5A1wl8NdANgcsw#JZ;cUOo|E~t8Xw1THk z`Q8&>%C>yUM_!k3Pb&%xG$U(QPk(dTMKs2nOHDM>{Ln*^Ti^-g;g) zDSu7XHQb#Kd3sn&JF3IPwsUBwoMlX-)Q$PuRr6iwR0R3Ldan_S%BB+~Fn@=#*!ww$ zf3XfT{$bPy71{U>rdu#0OLm#s5GwSCS=E>ZbC{&3Yh;^i@5236E};d%rFSPTU(yze zYOP;W4J+q%XdlFj*9AZ9>a>?Ed^_OtD`)!S?8wKDBUS@<8`6p*y18Ja8z|<0(FAa& z7mV!#XZygo{oq_b7(W0?2f!0gz;{G2ArsazA>qy2vb!uP9O_g_+7$A^REY|uAnZJk zf18Vc@5$$`CZmzgZ`~|Z+n4v>#*w+1##1J)TW`Zt6_50viI)xxnQOJkkc9AkPpgt1 zLf?Z`GBGqcHY)iTF6Q(x2!K6UJ4YM4JvR2(AUh}Ao;^56dmF4H4vTGZ^kMu3wZpB0ssI2 delta 2883 zcmV-J3%vB(4bc{m83+ad006^2Vat;wfj0000TX;fHr zLvL+uWo~o;00000Lvm$dbY)~9cWHEJAV*0}P-HG;2LJ#H$4Nv%RCwC$ol$I4*BQru zpKW3raHR!s5>gsyONyo{Ev?!xk&2bD4Oc3tqm;I()V0;7N$a$S^=ZmGk$ zV^yhAL<_VfY=d;HL4sC=231|E6bgYlCM0=i5@HA2XAeFeNx+HYIQI3q=Py~g58TT= z-~WHV^PTgZ^Buu3D5VwwexOSK4FT2q+7ASQfWG$W+mb*6hy&yLIsps=Bl>y*NQlS{ zlk6pikiHUF1+3PjdiAeZ?NdNX|B`>eMc}fCM6CcyPqqLnfG}_;u(Hgr6a}sT1Hd&A zQC0v8Lwo?(0IYHFdn@1@;FO5OtpMgvdJtF#H0XZ3k}wQh0(wMb+zMcBF5VBc0CyP@ zYxMzLI*3$O0J+Jp1J(nzn28v0Rz&)(0HzWj(qDWX?m$1#B_boP7JweJZvlU501xg$ z8n_A^E9cyTl!-EPBM!yEQ*g25!vrZ0Vt*X zz)#7nxUpC`j05kANTL`IE9Ug8CBHNXYFj(Q1L!{gDeLx2-yHz&%{L|}h6mVU$uA2+ z+V^Q&tSgpAzodERouASj?4mN5|7G8ef=x3?M86|8^PoaP+_`Y~jSc6ax= zRngehmbu;+ja_Z&?moB55CPO`PV*K(iwUhxCX=3y&f_l?>^D1)zm!ZSP1&{Fl9vE< zSr#KIa|{j*Esn<%%L=_e9#1SA92#0|hyd==+|KF&)|t}riHIYf;UKKbM*t02n2LrO z1)#G?)h4xgK3{*ZVP8K$_4G{PbPuq>q}GO)FCSYR48#h(e{nDn3ola0#{pmxDKlU zJbK}v&)R>(b?_;r7J10ziM`eyu7elwd&r!wWd-0)0aRr@fLMFD4g&anxU9TOPtSjA zkDvI@wvo}X`gFz!%A?YrA2c_=z3H*XzI2%gLZXz~0DRx{miG1aeeckRA3i@YG@NsT ztG{Z|(8lKGzdycd(-$rgz?Y(w+63HVax1&fox6YY-48zaT{^A&`TYC(aJcK2zxerI zT_Aw-*%-iBB;s-3`$zxrn|#R!_;z5R<)afP?stIz{2mN1?)bO2-fBxsOw4(e)5+7P zUvz;0f*uSm_tGDWh584sJyMY8n7C1W;Jx=AH(US#qq~5?p`lPJl`7c7^Za^wr=^dWg}j%x8Rez*WP{i zzYP~a!b9eCDkD)>TRT!0Uh!!`(NWc+;T=ys^^xHMh(h zZrYmf))uaV$_@i3fRwd|>yQE_vL3(+z?}j}ctqp|22TfD?7Q1A({SX^(u{A8ShMe4z(LeO>Lj=bmxZ_V9lw zxU4|LzdAb~{p{@7SJF8W#U2z7uV26WN1HdhvOvWBz@sL%HW82eUjOqOe~2d%`P4yD z0l)v+YrlT=_x?b@R1th4B41370RRR}mHWQ^`?tpvi7@%C5s`Qz5#G0dzsZMW4czp4 zH*pOEX9RnDd&3tl^*u4y`z~DSd!m20x7WnNSxR#~RRAKQfNxA{X*!*jgGY`OT>I$Y zks~js(`nNdhJK^DzQqFooHD7UgM))hu8+qHKJw=Jc)V_KaL}~l@=i?+e5Vc#;=r&e zEmaPAhJ!GyIVP6}0Jvo5NQ}j$TZg{4qQ{uYj?D13@ULGf(<*25%qjp883%v*OlWO& zb@laNz&}*z{lS2LsJgoPx*_EEX>Mor003PkwAknKr6aAadkVcj(%QPm=kuiv5x{LZ z%_V>Y5Hq3GO-)T#>T7B~p6h+}H8meMH8ou^g!~veR)61C0D7Ew)|8I#g=cr|^Lf3a zd3z48cl3p4ckMH%?>{?v>_2}!PMRqQGV18q_d7aTdwP3!-198eYkXdDAZEEgrm2t}BtFWQnf zrPOm6e)fQaFfJl*7vq0H#Z2?Qi{V8lokG60bx~0CMXyS!ow)2IvQoNz5!qkN2QGvF ze83hA-fCX1fDbq(B1uOJV3H6vV-KY+=1{M5As)P-`yP~1_W>I%fAhl0`Hb_+DgZ5l zdw^yPKAdWS5GOOedwwDRlalOwQc4AYZNO5?YhD-y4i_@F??`_EOcKI_z(bbb8F6N= zDcy<@z$9<59av(yo`NwlD|t$qYA?&?SEZB}xYq`VHv>K3>wK4SRlEQu31N|*GpNC^ z%_n&v4P4b@`y1tY2}f*y*E^6}aL)#mexPfn9XqZPz$78m0qcQULy3=(*{Ip?loxVb z0Su*-kU7t|1-O695aRpD?9Wf++NEm+aCxRdf{9izY%GUZpVInBizCx9HHSP85mlYR67Uj36I ze%UGgOOja(dpTQjy^>*C8Px3Df*+{Te?vNc@atcYOkyv}uf>8UH9;l;Gp?@_x*s3W h*AqI3yJ3>O{s&?eo%lMGf)4-y002ovPDHLkV1k~uQQ-gp diff --git a/app/src/main/res/drawable-xxhdpi/settings_button_pressed.png b/app/src/main/res/drawable-xxhdpi/settings_button_pressed.png index b2c4972e730e8df22ee9800c97d47131e050066d..ccbbb8adc88dcf14765f50862f9e3cbca0493c64 100644 GIT binary patch literal 1744 zcmc(fdpy&77{`Ch{nm6rgiz7N*j#F)HX57CC6Ob=T&g9P6z3q>(kP)wMdi|kqYHD1 z=C+J%6^Twqi)l5MW*FMaE;i@apXZPB_xZkF&+~ab&-Zyh&+GNPzOQeNzb{r#+e8}x z06lLUCID2@FVj>3z4%L^6cp9t?mq4S&~Q~}F+vTDA!h=x9suR7=_D9fMBxH_03gj8 zgvbCO15+eE03^c!K!67T*Af6QI#t@X-wot2{`&$w!Gfj#?_78{?A+94^0+0j_r1|0 zD!j2XwEGQL{KMfXT_}-)`JvhG1`nwsnSAZzR%CNG;pLzk^~IH;QSj>KM~-J3b5k8H zrGLn>whh+sJf!OlYwr7^Qi<<*%M{EA79=3G{LkixpLt;C&Tmu4n1l9>oz3I?R|4V6 z>Sun>UsJdf)|8HF&Uhfbx17zjs%^)%Gn3!^y}OlR`lOXTFCLx~89t=S6p9_sx)&A~ zK~EfDU1xE?0`rUvOBY$@b6)h@mY`6Rm~t z$L!Jb#;e%C53WDtp&FzSava$$WNHKf-hg7Ajz))TDK|*w+(kcAs^iA#J*<88;~yX8$#l-*AWEN8NlRjkcTo33HJ$9h9#W!k@i#qDL<$6Y0vjM=G~peHru$+rnxtr{1|H#I{BGh;v(H5^mT=M z8OrM=^W{q~#LXkdYC7;jdp9eTWv6NwIrp`PagpX3A#da|a>>^qwqzxBwyA=%0zqh_ zM;scxu+zj+0Cnsj87D%`42gGIeoUL%Yy%_C(%F`gr%6$?fuZiP_Y~S01>&BX(wz^9K6e>fOCH5}N=LvmlYrN(iH` zt0cjHcU1O?jFgrNfChXIMk`lbTgv90zvQ;MD8Y-zMx=UplwT{fsp6e*k#>=l1g{L_ z4VUuSnS{8RS#M;)R)15|+l6y;z?9|Yp!+V3Kku)v%q8zD6nuQX)_gp@XJc;?-Dblk zqbdh8ihpXi4zf#v^S&NK^-G0Rvo&qnFby)>0i9PBIr2?LPY_>aBAqZgqqPP4$CCY>g{7cN1M&IICeBh z67(kwVAPT)Y<7SxlIFQ4m=iW`S2rtMXD*zD-wY~d@mLFDJzXBmRP1BRi*pm_?-SP^ z7Wc>UX41ua`C?d^*r!$;N8{!9*WGQt)6uFhXj&+OBH^+XP?@EX46)8@7r%#(rSUI* zS|e?#fQ+5Ts`RX{$jjgl0W%-#v_`s)i-HEPWE7)a7L}?u#+Q~L$q#%=8+^2N!B1ji zlIL$p(Gf{UU87DP1qE<`Bb;Ff2bd!~5aHtL;Na@)2!lJj!r`^fdoTS9h)ak*aV+(} Tfl-3U2?PLdPhSkh1E2X11z(3Q delta 2929 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 bWUv1NpID**9gl)b00000NkvXXu0mjfNU4}x diff --git a/app/src/main/res/drawable-xxhdpi/switch_camera_button.png b/app/src/main/res/drawable-xxhdpi/switch_camera_button.png index 076b958a3900fb214d3a2778c919ef35bb2c5192..4e610be9ed365f0e27d8f695a1c938c27a58f70b 100644 GIT binary patch literal 1804 zcmds1`#02S9De80U@%OqTh=w&m0^a)Wn3DQVP=HEL?nZhwQ@)lS$w05Qk=?mQ=yCN z8j)KjjBC1SG7?itIE9kUW!7by*>At>Is3!@1N)x$^FHVKywCG_&-*#=c~7x@JXNuJ zSO9=3li}_UBlJBKQSiDrc5Vd*bhMkd8vwQW%F>8+Fh?Bp_oM+{zy35#jP@}6y#Y94 z4x5evunMQ3DFBj*0L+8~K)DQncEYt5KWEq%$==SP!vgvLdPrq5lWM+NX#>8jaej4e zBac5NS+=;_YQ}qz{B#h$dPH|WuC(FUixKmh2kuAaNUraI=U-B(Wo?^7L#ORM0bCZAeXiZ!1a~

4?C)zc>+C^#h0e>>foWTuTpBXIgZJ2G~-lg)LNf3Wqn++?hzWzSM| zvQo5RTlg7JOsPBV)^ogFP#(k$G;0kn^=-S}tgY;R9X>Fer+H0wVpzP2;XZ25UNmHG ze*Y}etuvu7UfA6gD(vXx*M2dC&qqXhdAcLyNWxo~C?zn04+5a9@jVdW>NOqsUFk60 z-8d=YXNA+d#8ma(Tai_Y*$RPFw(|^Osd$O!IX8Z^X-QD^@(6cDUWA$F;2DRaN1iQb zJk^+&^_gE79ntmfs=8hObcbvvnSO`=cw${mO-pHGKUZE_V#zj1Am7d^=}ov@p^L4c zhzG<&yg^x<=iV}f&x4=y4jtFLZ@*l4)c4C5DCuyJZ-Ho(vpcnB`&ygKryxCqBzFpy zl$5K*66QaP@NcyJHpk^HSCOwa+7~IBDD3?9QY!PwvmmE;c|wxog+vJyK>- zWDBV(ec7PrEsHJ#1ZOlNSq4!0K!p8<*tb)1?;z_N!j+U2nH!l2k#@=NCT9Mb(fD;P zU`}o9K=A6xl(N>IilJXi16Oa5IghuFgCj~aq1m`rRc0+pj zK&6-oaz5Z_2?Kta&<%aa5Vw|X{qc!Z6ay|>nqxLKtA%_@bY`cYf!U_CLvb={A_ zva=fHMOJ1@NS4)mP+By=?4S%46wJ{XUP{tvRA-qa-Gy~Bow%TlXORJc+dC#3~FOl6NhR6m`e3p%p zY9W`ql5>=cx#+RUE%M>%Q#t}J0q5hqT?aaT?kv57TUe(?Wyh z^&q_Tcp`!)@+$5GO3l3};-!s_z`iLwU13auQ585(I0~+(3bA0!hd@2ufcBfOkesqse}zY?O{eWr+2aZE6~IXoHJXl zvmnPC?sr%a(YG?tOkm|(7h)`M2x6h z;bSQKa<8^VbXX6api3IB+xD0~|2=?3YfbiQPxWp~_YD(Jxt(s@ZdzFHHg2Cg_c1-} zsRy^;lPhF!2bkPJR@l%Q5?lDli$9(Fnmj)*(-w|V-;S5Ou)i;CS`pe)VkWD@V(|9- zn8n$QMb-Q(e5!c<3jTm7Hl#bQUH65ZYvIkfZ~ZyVE29O25_zUxZ|vfUKGGNX<1kC2 z?@Wq{NZL!;leiZKU_&I42_zeWEs;ZVq}bR{$hHI`nL;F1lf82OWr&N9irJU?--b88 RENp=dfJygp=h4Em{swGQp1A-3 literal 3092 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 W|AZB*D{f!{NLErwqC(8*=l=pFvh42w literal 12893 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 G;Qs+qT(RW< diff --git a/app/src/main/res/drawable/ic_arrow_back_white_24dp.png b/app/src/main/res/drawable/ic_arrow_back_white_24dp.png index afe573a531be37cfecafd92327ab81dec349760d..60cfb1b5d1c1bbb00af1c354273c38bdaa7efe6e 100644 GIT binary patch delta 317 zcmaFC_={}!%(pN zr-Xf**h3&!wZt`|BqgyV)hf9t6-Y4{85o-C8XD;u8-y5IS{WHxnHuXFm|7VatTpxS hK+%w!pOTqY3D%&BRmYu-&n7?}44$rjF6*2UngFxtbrb*q delta 172 zcmV;d08{_^0_XvdB#|^De+P6)O+^Ra2o4hqGrd=xTmS$7c}YY;RA}Dq)WHdWKoA5$ zF)1}L!H;Oj8o`*sJ`R)vt3xPub{Hf{lGH&tb5f{yk|3&il4PS%@m!gB;K73j4<0;t z@ZiCNr=6!EJe>iJF51LAX+%FKx)C8l^aat(0}-P4i54D+5WP*bBGRacb`llQK|zuv asfQkLr}-Fll0DY|0000 + + android:layout_width="match_parent" + android:layout_height="match_parent" + android:paddingBottom="8dp" + android:paddingLeft="4dp" + android:paddingRight="4dp"> - + + + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_below="@+id/grid_item_text" + android:scaleType="fitCenter" /> + + + + android:textSize="@dimen/grid_item_metric_name" /> + + android:padding="2dp" + android:textSize="@dimen/grid_item_chooser_text_size" + android:textStyle="bold" /> \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png index d5b39edef45fd5827641d2c1c13c6bf6528cadbc..0936ec670428505ba54fb7be3aaa30d86136eb3c 100644 GIT binary patch literal 2962 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 C)NsH6 delta 2681 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 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png index 1f0716c18e4edba45c8df93a52cdf6a39ae2f382..4c80cf2b367822cc468ed0cd3dd109e179d2b366 100644 GIT binary patch delta 1807 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 delta 4223 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 literal 7456 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 W;FVqTssGz$0(7B9klKfKQU3*dt}O%r diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 37b1e42..5f26a91 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -7,9 +7,10 @@ Settings Insufficient Permissions - This app requires the permission to access your camera to be able to gather facial images to process, and permission to write to the storage on your device so that we can temporarily store video data there while we process it. + This app requires the permission to access your camera to be able to gather facial images to process Error Understood + Retry Clear All @@ -19,7 +20,6 @@ Select Metrics Select emotions and expressions to display. - Settings Change application settings. @@ -27,14 +27,18 @@ Set Target FPS Set the desired processed frames per second. Processed Frames Per Second - Show Tracking Dots Display tracking dots and bounding box. - + Show Appearance Indicators + Display appearance markers to the left of the bounding box. Show Measurements Display roll, yaw, pitch, and interocular distance. - Show FPS Display the actual processed frames per second. - Retry + Show Emoji Indicators + Display emoji markers adjacent to the bounding box. + Track multiple people. A beta feature that is CPU intensive, and works only on newer devices. + Enable Multi-face mode + NEGATIVE + POSITIVE diff --git a/app/src/main/res/xml/settings_preferences.xml b/app/src/main/res/xml/settings_preferences.xml index aa3e3a7..01d7e21 100644 --- a/app/src/main/res/xml/settings_preferences.xml +++ b/app/src/main/res/xml/settings_preferences.xml @@ -1,27 +1,38 @@ - - + android:title="@string/show_fps_title" /> - \ No newline at end of file + android:ems="3" + android:inputType="number" + android:key="rate" + android:maxLength="2" + android:summary="@string/set_fps_message" + android:title="@string/set_fps_title" /> + + + + + + diff --git a/gradle.properties b/gradle.properties deleted file mode 100644 index 1d3591c..0000000 --- a/gradle.properties +++ /dev/null @@ -1,18 +0,0 @@ -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. - -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html - -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx10248m -XX:MaxPermSize=256m -# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 - -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 8c0fb64a8698b08ecc4158d828ca593c4928e9dd..05ef575b0cd0173fc735f2857ce4bd594ce4f6bd 100644 GIT binary patch delta 46945 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 gX$Y4zSjU*K+Y9REGVcCoqtRGf9?!GhyVZp delta 43373 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�{>`y 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 diff --git a/gradlew.bat b/gradlew.bat index 8a0b282..aec9973 100755 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,90 +1,90 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windowz variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega