Skip to content

Instantly share code, notes, and snippets.

View apkelly's full-sized avatar

Andrew Kelly apkelly

View GitHub Profile
@apkelly
apkelly / AbstractActivity.java
Last active June 20, 2016 07:34
Handle IllegalStateException as a result of DialogFragment.show()
public abstract class AbstractActivity extends Activity {
private Map<String, Bundle> dialogs = new HashMap<String, Bundle>();
private boolean activityPaused = true;
@Override
public void onResume() {
super.onResume();
@apkelly
apkelly / CameraPreview.java
Last active November 3, 2016 04:05
Camera Preview
package com.swizel.android.widget;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.graphics.ImageFormat;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.support.v4.content.ContextCompat;
import android.util.AttributeSet;
@apkelly
apkelly / function.js
Last active April 21, 2017 14:54
Cloud Function for ChicagoRoboto talk.
'use strict';
process.env.DEBUG = 'actions-on-google:*';
const Assistant = require('actions-on-google').ApiAiAssistant;
exports.myAction = (req, res) => {
const assistant = new Assistant({request: req, response: res});
console.log('Request headers: ' + JSON.stringify(req.headers));
console.log('Request body: ' + JSON.stringify(req.body));
@apkelly
apkelly / CameraSourcePreview.kt
Last active February 23, 2020 13:33
CameraSourcePreview.kt
class CameraSourcePreview(private val mContext: Context, attrs: AttributeSet) : ViewGroup(mContext, attrs) {
companion object {
private const val TAG = "CameraSourcePreview"
}
private val mSurfaceView: SurfaceView
private var mStartRequested: Boolean = false
private var mSurfaceAvailable: Boolean = false
private var mCameraSource: ICameraSource? = null
@apkelly
apkelly / GVCameraSource.kt
Last active January 17, 2019 03:30
GVCameraSource.kt
class GVCameraSource(context: Context, detector: Detector<*>) : ICameraSource {
private val delegate = CameraSource.Builder(context, detector)
.setRequestedPreviewSize(640, 480)
.setFacing(GraphicOverlay.CAMERA_FACING_FRONT)
.setRequestedFps(15.0f)
.build()
override fun previewSize(): Size? {
return delegate.previewSize
@apkelly
apkelly / ICameraSource.kt
Last active January 16, 2019 22:38
ICameraSource.kt
interface ICameraSource {
fun previewSize(): Size?
fun cameraFacing(): Int
fun release()
@Throws(IOException::class)
fun start(surfaceHolder: SurfaceHolder)
@apkelly
apkelly / activity_main.xml
Last active January 16, 2019 22:38
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<devnibbles.android.facialrecognition.common.CameraSourcePreview
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/preview"
android:layout_width="match_parent"
android:layout_height="match_parent">
<devnibbles.android.facialrecognition.common.GraphicOverlay
android:id="@+id/faceOverlay"
android:layout_width="match_parent"
@apkelly
apkelly / SaveFrameFaceDetector.kt
Last active January 17, 2019 03:31
SaveFrameFaceDetector.kt
class SaveFrameFaceDetector(private val delegateDetector: Detector<Face>) : Detector<Face>() {
var lastFrame: Frame? = null
override fun detect(frame: Frame): SparseArray<Face> {
lastFrame = frame
return delegateDetector.detect(frame)
}
override fun isOperational(): Boolean {
@apkelly
apkelly / GoogleVisionActivity.kt
Last active January 17, 2019 04:01
GoogleVisionActivity.kt
class GoogleVisionActivity : AbstractActivity() {
companion object {
private const val TAG = "GoogleVisionActivity"
}
private var mCameraSource: GVCameraSource? = null
private lateinit var mDetector: SaveFrameFaceDetector
/**
@apkelly
apkelly / MLKitActivity.kt
Last active January 17, 2019 04:11
MLKitActivity.kt
class MLKitActivity : AbstractActivity() {
companion object {
private const val TAG = "MLKitActivity"
}
private var mCameraSource: MLCameraSource? = null
/**
* Creates and starts the camera.