You might want to add a special case to `enterSelectMode()` to handle the condition where there are no contacts in the list.  You can immediately return an empty promise.  I accidentally tested this case and noticed the UI is a bit confusing, otherwise, because the "no contacts" overlay is up simultaneously with the selection buttons.