Repository navigation
Closed
Description
``
from kivy.app import App
from kivy.clock import Clock
from kivy.animation import Animation
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
from kivy.core.window import Window
from kivy.graphics import Color, Rectangle
Window.clearcolor = (0, 0, 0, 1)
Window.fullscreen = "auto"
class DeviceLocked(App):
def build(self):
self.tempo = 60
self.erros = 0
self.tela = BoxLayout(
orientation="vertical",
padding=25,
spacing=15
)
self.mostrar_inicio()
return self.tela
def fundo(self, cor):
self.tela.canvas.before.clear()
with self.tela.canvas.before:
Color(*cor)
self.rect = Rectangle(
pos=self.tela.pos,
size=self.tela.size
)
self.tela.bind(
pos=self.atualizar_fundo,
size=self.atualizar_fundo
)
def atualizar_fundo(self, *args):
self.rect.pos = self.tela.pos
self.rect.size = self.tela.size
def limpar(self):
self.tela.clear_widgets()
self.tela.opacity = 1
def mostrar_inicio(self):
self.limpar()
self.fundo((0.02, 0.02, 0.02, 1))
titulo = Label(
text="[b]DEVICE LOCKED[/b]",
markup=True,
font_size=35
)
botao = Button(
text="EXECUTAR",
font_size=25,
size_hint=(1, 0.25)
)
botao.bind(on_release=self.iniciar)
self.tela.add_widget(titulo)
self.tela.add_widget(botao)
def iniciar(self, *args):
self.tempo = 60
self.erros = 0
self.mostrar_bloqueio()
Clock.schedule_interval(self.contagem, 1)
def mostrar_bloqueio(self):
self.limpar()
self.fundo((0.65, 0, 0, 1))
self.titulo = Label(
text="[b]DEVICE LOCKED[/b]",
markup=True,
font_size=36
)
self.aviso = Label(
text="ESCAPE DISABLED\n\nSeus arquivos estão em risco!",
font_size=20
)
self.timer = Label(
text="TEMPO: 01:00",
font_size=30
)
self.codigo = TextInput(
hint_text="Digite o código",
multiline=False,
size_hint=(1, 0.15)
)
self.desbloquear = Button(
text="DESBLOQUEAR",
size_hint=(1, 0.18)
)
self.desbloquear.bind(
on_release=self.verificar_codigo
)
self.tela.add_widget(self.titulo)
self.tela.add_widget(self.aviso)
self.tela.add_widget(self.timer)
self.tela.add_widget(self.codigo)
self.tela.add_widget(self.desbloquear)
def verificar_codigo(self, *args):
if self.codigo.text == "1234":
Clock.unschedule(self.contagem)
self.mostrar_inicio()
else:
self.erros += 1
self.codigo.text = ""
if self.erros >= 2:
self.codigo.disabled = True
self.desbloquear.disabled = True
self.aviso.text = "ACCESS DENIED"
def contagem(self, dt):
self.tempo -= 1
minutos = self.tempo // 60
segundos = self.tempo % 60
self.timer.text = (
f"TEMPO: {minutos:02d}:{segundos:02d}"
)
if self.tempo <= 0:
Clock.unschedule(self.contagem)
self.expirou()
def expirou(self):
self.limpar()
self.fundo((0, 0, 0, 1))
mensagem = Label(
text="[b]TIME EXPIRED[/b]",
markup=True,
font_size=40
)
self.tela.add_widget(mensagem)
Clock.schedule_once(self.fade, 5)
def fade(self, dt):
animacao = Animation(opacity=0, duration=2)
animacao.bind(
on_complete=lambda *args: self.mostrar_inicio()
)
animacao.start(self.tela)
DeviceLocked().run()
``
Metadata
Metadata
Assignees
Labels
No labels
Activity