Не существует окончательного решения, но вы можете слушать изменение AudioManager.getMode (). Когда выполняется обычный (не VOIp) voicecall, телефонное приложение устанавливает этот режим в IN_CALL. Обычно другие приложения, которые делают наборы вызовов VOIp, работают в режиме IN_COMMUNICATION. Таким образом, вы можете удалить Listener и создать поток, который прослушивает изменения AudioManager.getMode () и поднимет события, которые вы хотите для обоих режимов.
Это eslint-plugin-promise
правило существует для предотвращения ошибок, вызванных не связанными обещаниями обещаниями:
return somePromise.then(result => {
anotherPromise.then(...);
});
Если вы считаете, что не можете воспользоваться этим правилом, и это только делает ваш код загроможденным с дополнительными return
утверждениями или eslint-disable-*
комментариями отключите его.
Bluebird известна тем, что предотвращает такие ошибки, она выдает предупреждение в случае, если есть вложенное невыпущенное обещание.