Как проверить, отображается ли progressDialog пользователю через Robolectric

Я хотел бы проверить поведение моей деятельности, когда filePath имеет значение null или содержит недопустимый путь к файлу.

Мой код активности

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(...);
    Intent intent = getIntent();

    filePath = intent.getParcelableExtra(SOMETHING);
    if (TextUtils.isEmpty(filePath)) {
        showErrorAndFinishPopup();
        return;
    }
    mediaMetadataRetriever = new MediaMetadataRetriever();
    try {
        mediaMetadataRetriever.setDataSource(filePath);
    } catch(IllegalArgumentException e) {
        showErrorAndFinishPopup();
        return;
    }
    progressDialog = new ProgressDialog(this);
    progressDialog.setMessage("something");
    progressDialog.show();
    ...
}

Я могу сделать свое собственное намерение с помощью filePath = null и начать свою деятельность. Тем не менее, я не уверен, как проверить, отображается ли прогресс.

1 ответ

Решение

Вы можете проверить, отображается ли диалог, просто позвонив isShowing как это:

if (progressDialog.isShowing())
            {
                // progressDialog is currently visible
            }
            else
            {
                // progressDialog is currently invisible
            }

Я могу использовать тень

ShadowProgressDialog.getShownDialogs()
Другие вопросы по тегам