Skip to content
Snippets Groups Projects
Commit 8377b768 authored by Loloncio's avatar Loloncio
Browse files

Iniciada la opción de ver permisos de dispositivo

Ya funciona el penúltimo botón cuya función es ejecutar el comando de adb que muestra los permisos del dispositivo.

Podría dejarse así o añadir opciones de formato.
parent 1e83f9f1
No related branches found
No related tags found
No related merge requests found
import os
import sys
import subprocess
PROJECT_ROOT = os.path.abspath(os.path.join(
os.path.dirname(__file__),
os.pardir))
sys.path.append(PROJECT_ROOT)
class ControladorADB:
def ejecutar(self):
ruta_adb = os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../Android/Sdk/platform-tools/adb")
comando = f'{ruta_adb} shell pm list permissions'
resultado = subprocess.run(comando, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
salida = []
salida.append(resultado.stdout)
salida.append(resultado.stderr)
return salida
# Método para vovler al menú principal
def volver(self, vistaDefecto, vistaMenu):
vistaMenu.deiconify()
vistaDefecto.destroy()
# Método para cerrar del todo la app al pulsar en cerrar
def cerrar(self, vistMenu):
vistMenu.destroy()
\ No newline at end of file
......@@ -8,6 +8,7 @@ sys.path.append(PROJECT_ROOT)
from View.Defecto import defecto
from View.Listas import listas
from View.Final import final
from View.ADB import adb
class ControladorMenu:
def aDefecto(self, ventanaPrincipal):
......@@ -19,6 +20,7 @@ class ControladorMenu:
def aFirmadas(self, ventanaPrincipal):
return
def aADB(self, ventanaPrincipal):
adb(ventanaPrincipal)
return
def aAyuda(self, ventanaPrincipal):
return
\ No newline at end of file
......@@ -8,14 +8,14 @@ sys.path.append(PROJECT_ROOT)
import tkinter as tk
import customtkinter as ctk
from Controller.DefectoContr import ControladorDef
from Controller.ADBContr import ControladorADB
class defecto(ctk.CTkToplevel):
class adb(ctk.CTkToplevel):
# Algunas variables globales para los parametros que pasaremos a la siguiente vista,
# la opción que se ha seleccionado y una etiqueta de errores
HEIGHT = 720
WIDTH = 1280
controlador = ControladorDef()
controlador = ControladorADB()
def __init__(self, parent, *args, **kwargs):
super().__init__(parent, *args, **kwargs)
self.parent = parent
......@@ -28,12 +28,56 @@ class defecto(ctk.CTkToplevel):
self.title("Permisos del dispositivo")
# Fuente que usaremos en esta vista
leftFont = ctk.CTkFont(family="Inter", size=20, weight="normal")
rightFont = ctk.CTkFont(family="Inter", size=15, weight="normal")
tittleFont = ctk.CTkFont(family="Inter", size=30, weight="normal")
textFont = ctk.CTkFont(family="Inter", size=20, weight="normal")
titulo = ctk.CTkLabel(self, text="Permisos del dispositivo", text_color="white",
corner_radius=10, justify="center", font=tittleFont, height=100)
frameTexto = ctk.CTkScrollableFrame(master=self,fg_color="#504F4F", corner_radius= 10,width = self.WIDTH-40, height=self.HEIGHT-200)
frameInferior = ctk.CTkFrame(master=self, corner_radius=10, width = self.WIDTH-10, fg_color = "#1E1E1E", height=100)
volver = ctk.CTkButton(frameInferior, command=self.volver, text="Menu", font=textFont, corner_radius=10,
fg_color="#504F4F", text_color="white", height=40)
permisos = ctk.CTkLabel(frameTexto, text="", text_color="white", fg_color="#504F4F",
corner_radius=10, justify="center", font=textFont)
ejecutar = ctk.CTkButton(frameInferior, command=lambda texto = permisos:
self.ejecutar(texto)
, text="Ejecutar adb", font=textFont, corner_radius=10,
fg_color="#504F4F", text_color="white", height=40)
info = ctk.CTkLabel(frameInferior, corner_radius=10, justify="center", font=textFont, wraplength=self.WIDTH- 400,
text="Conecta un dispositivo con depuración USB activada y pulsa el boton para ver los permisos disponibles en el dispositivo", text_color="white",
)
titulo.pack()
frameTexto.pack(padx = 20)
frameInferior.pack(pady = 10)
volver.grid(column=0, row=0, padx = 5)
ejecutar.grid(column=3, row=0, padx = 5)
info.grid(column=2, row=0, padx = 5)
permisos.pack(anchor="nw", pady=10)
self.bind("<Configure>", lambda event, frame=frameTexto, self=self: self.ajustarTamanos(self, frame))
# Método para cerrar toda la app al pulsar la x
def cerrar(self):
self.controlador.cerrar(self.parent)
# Método para vovler al menú principal
def volver(self):
self.controlador.volver(self, self.parent)
def ejecutar(self, texto):
mensaje = self.controlador.ejecutar()
if mensaje[1] == "":
texto.configure(text=mensaje[0], anchor="nw")
else:
texto.configure(text=mensaje[1], text_color="red")
# Función para ajustar los tamaños al cambiar el tamaño de la ventana
def ajustarTamanos(self, event, frame):
anchoVentana = self.winfo_width() # Ancho de la ventana
altoVentana = self.winfo_height() # Alto de la ventana
if(self.HEIGHT != altoVentana or self.WIDTH != anchoVentana):
self.HEIGHT = altoVentana
self.WIDTH = anchoVentana
frame.configure(width = self.WIDTH-40, height=self.HEIGHT-200)
# Actualiza la ventana
self.update_idletasks()
\ No newline at end of file
......@@ -87,7 +87,7 @@ class mainWindow(ctk.CTkFrame):
self.controlador.aListas(self, 5)
return
def verDispositivo(self):
print("Ver dispositivo")
self.controlador.aADB(self.parent)
return
def appsFirmadas(self):
print("Apps firmadas")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment