Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e492e493 authored by Chris Thornton's avatar Chris Thornton
Browse files

SoundTriggerTestApp: also unload on error conditions

When the service is killed/going down, it should unload all the sound
models it has running as part of being a good citizen.

Test: Kill/stop the service and see that the models are evicted from the
HAL

Change-Id: I6f88c8327682df5870b381d5bafda79e67fb7079
parent c79d4388
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -100,7 +100,7 @@ public class SoundTriggerTestService extends Service {
    @Override
    public void onDestroy() {
        super.onDestroy();
        stopAllRecognitions();
        stopAllRecognitionsAndUnload();
        unregisterReceiver(mBroadcastReceiver);
    }

@@ -171,7 +171,7 @@ public class SoundTriggerTestService extends Service {
    @Override
    public void onTaskRemoved(Intent rootIntent) {
        super.onTaskRemoved(rootIntent);
        stopAllRecognitions();
        stopAllRecognitionsAndUnload();
        stopSelf();
    }

@@ -197,8 +197,10 @@ public class SoundTriggerTestService extends Service {
        }
    }

    private synchronized void stopAllRecognitions() {
    private synchronized void stopAllRecognitionsAndUnload() {
        Log.e(TAG, "Stop all recognitions");
        for (ModelInfo modelInfo : mModelInfoMap.values()) {
            Log.e(TAG, "Loop " + modelInfo.modelUuid);
            if (modelInfo.detector != null) {
                Log.i(TAG, "Stopping recognition for " + modelInfo.name);
                try {
@@ -206,6 +208,12 @@ public class SoundTriggerTestService extends Service {
                } catch (Exception e) {
                    Log.e(TAG, "Failed to stop recognition", e);
                }
                try {
                    mSoundTriggerUtil.deleteSoundModel(modelInfo.modelUuid);
                    modelInfo.detector = null;
                } catch (Exception e) {
                    Log.e(TAG, "Failed to unload sound model", e);
                }
            }
        }
    }