I
FeatureState
NormalState(List<String>) : FeatureState
DialogState(String, FeatureState) : FeatureState
мне кажется для диалога хватит и булевого флага
но на самом деле конечно лучше переделать UI, что бы избавиться от диалога,
но тут уже надо подходить индивидуально к задаче