diff --git a/mace/examples/android/app/src/main/java/com/xiaomi/mace/demo/AppModel.java b/mace/examples/android/app/src/main/java/com/xiaomi/mace/demo/AppModel.java index c43f6266eeffcb66b4d5725023282c481f2cbf82..d7447afbe5f0dbcca55d446c7ff3511671575f4b 100644 --- a/mace/examples/android/app/src/main/java/com/xiaomi/mace/demo/AppModel.java +++ b/mace/examples/android/app/src/main/java/com/xiaomi/mace/demo/AppModel.java @@ -49,11 +49,14 @@ public class AppModel { }); } - public void maceMobilenetCreateEngine(final InitData initData) { + public void maceMobilenetCreateEngine(final InitData initData, final CreateEngineCallback callback) { mJniThread.post(new Runnable() { @Override public void run() { - JniMaceUtils.maceMobilenetCreateEngine(initData.getModel(), initData.getDevice()); + int result = JniMaceUtils.maceMobilenetCreateEngine(initData.getModel(), initData.getDevice()); + if (result == -1 && callback != null) { + callback.onCreateEngineFail(); + } } }); } @@ -72,4 +75,8 @@ public class AppModel { }); } + public interface CreateEngineCallback { + void onCreateEngineFail(); + } + } diff --git a/mace/examples/android/app/src/main/java/com/xiaomi/mace/demo/CameraActivity.java b/mace/examples/android/app/src/main/java/com/xiaomi/mace/demo/CameraActivity.java index e11173322c82ea91f5d04de1f136e4c9f6e22412..7d7ccc89698cb0ee4d60d188529d05ff3a174732 100644 --- a/mace/examples/android/app/src/main/java/com/xiaomi/mace/demo/CameraActivity.java +++ b/mace/examples/android/app/src/main/java/com/xiaomi/mace/demo/CameraActivity.java @@ -15,6 +15,8 @@ package com.xiaomi.mace.demo; import android.app.Activity; +import android.app.AlertDialog; +import android.content.DialogInterface; import android.content.pm.PackageManager; import android.os.Bundle; import android.support.annotation.NonNull; @@ -23,6 +25,7 @@ import android.view.WindowManager; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; +import android.widget.Toast; import com.xiaomi.mace.demo.camera.CameraEngage; @@ -39,7 +42,7 @@ import org.greenrobot.eventbus.ThreadMode; import java.util.Arrays; import java.util.List; -public class CameraActivity extends Activity implements View.OnClickListener { +public class CameraActivity extends Activity implements View.OnClickListener, AppModel.CreateEngineCallback { CameraEngage mCameraEngage; ImageView mPictureResult; @@ -138,7 +141,7 @@ public class CameraActivity extends Activity implements View.OnClickListener { private void initJni() { AppModel.instance.maceMobilenetSetAttrs(initData); - AppModel.instance.maceMobilenetCreateEngine(initData); + AppModel.instance.maceMobilenetCreateEngine(initData, this); } @Override @@ -166,7 +169,7 @@ public class CameraActivity extends Activity implements View.OnClickListener { public void onCLickItem(String content) { mSelectPhoneType.setText(content); initData.setDevice(content); - AppModel.instance.maceMobilenetCreateEngine(initData); + AppModel.instance.maceMobilenetCreateEngine(initData, CameraActivity.this); } }); } @@ -178,8 +181,23 @@ public class CameraActivity extends Activity implements View.OnClickListener { public void onCLickItem(String content) { mSelectMode.setText(content); initData.setModel(content); - AppModel.instance.maceMobilenetCreateEngine(initData); + AppModel.instance.maceMobilenetCreateEngine(initData, CameraActivity.this); } }); } + + @Override + public void onCreateEngineFail() { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle("Error"); + builder.setMessage("Failed to create inference engine with current setting!"); + builder.setCancelable(false); + builder.setPositiveButton("Quit", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + finish(); + } + }); + builder.show(); + } }