def METHOD_NAME(self, p1, p2, duration=(0.1, 0.2), name='SWIPE', distance_check=True):
    self.handle_control_check(name)
    p1, p2 = ensure_int(p1, p2)
    duration = ensure_time(duration)
    method = self.config.Emulator_ControlMethod
    if method == 'minitouch':
        logger.info('Swipe %s -> %s' % (point2str(*p1), point2str(*p2)))
    elif method == 'uiautomator2':
        logger.info('Swipe %s -> %s, %s' % (point2str(*p1), point2str(*p2), duration))
    elif method == 'scrcpy':
        logger.info('Swipe %s -> %s' % (point2str(*p1), point2str(*p2)))
    elif method == 'MaaTouch':
        logger.info('Swipe %s -> %s' % (point2str(*p1), point2str(*p2)))
    else:
        # ADB needs to be slow, or swipe doesn't work
        duration *= 2.5
        logger.info('Swipe %s -> %s, %s' % (point2str(*p1), point2str(*p2), duration))
    if distance_check:
        if np.linalg.norm(np.subtract(p1, p2)) < 10:
            # Should swipe a certain distance, otherwise AL will treat it as click.
            # uiautomator2 should >= 6px, minitouch should >= 5px
            logger.info('Swipe distance < 10px, dropped')
            return
    if method == 'minitouch':
        self.swipe_minitouch(p1, p2)
    elif method == 'uiautomator2':
        self.swipe_uiautomator2(p1, p2, duration=duration)
    elif method == 'scrcpy':
        self.swipe_scrcpy(p1, p2)
    elif method == 'MaaTouch':
        self.swipe_maatouch(p1, p2)
    else:
        self.swipe_adb(p1, p2, duration=duration)