def METHOD_NAME(self, *args, **kwargs):
    """
    Args:
        self (Adb):
    """
    init = None
    for _ in range(RETRY_TRIES):
        try:
            if callable(init):
                retry_sleep(_)
                init()
            return func(self, *args, **kwargs)
        # Can't handle
        except RequestHumanTakeover:
            break
        # When adb server was killed
        except ConnectionResetError as e:
            logger.error(e)
            def init():
                self.adb_reconnect()
        # AdbError
        except AdbError as e:
            if handle_adb_error(e):
                def init():
                    self.adb_reconnect()
            else:
                break
        # Package not installed
        except PackageNotInstalled as e:
            logger.error(e)
            def init():
                self.detect_package()
        # Unknown, probably a trucked image
        except Exception as e:
            logger.exception(e)
            def init():
                pass
    logger.critical(f'Retry {func.__name__}() failed')
    raise RequestHumanTakeover