from kivy.uix.anchorlayout import AnchorLayout
from kivy.animation import Animation
from kivy.clock import Clock
import kivy.metrics as metrics
from kivy.properties import StringProperty, ObjectProperty

class Toast(AnchorLayout):
    text = StringProperty("Oops! Error")

    def __init__(self, **kwargs):
        super().__init__(**kwargs)

    def show(self, desc):
        self.text = desc
        anim = Animation(y = metrics.dp(50), t = 'in_out_expo')
        anim.start(self)
        Clock.schedule_once(self.exit, 5)

    def exit(self, dt):
        Clock.unschedule(self.exit)
        anim = Animation(y = metrics.dp(-50), t = 'in_out_expo')
        anim.start(self)

    def on_text(self, instance, value):
        self.ids.label.text = value