// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package dev.flutter;

import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.test.runner.AndroidJUnitRunner;
import dev.flutter.scenariosui.ScreenshotUtil;

public class TestRunner extends AndroidJUnitRunner {
  @Override
  public void onCreate(@Nullable Bundle arguments) {
    ScreenshotUtil.onCreate();
    super.onCreate(arguments);
  }

  @Override
  public void finish(int resultCode, @Nullable Bundle results) {
    ScreenshotUtil.finish();
    super.finish(resultCode, results);
  }
}
