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

Ajustes de nombres y patrón MVC

Ajustados nombres de clases para seguir el mismo patrón en todos.

Ahora es ManifestMod quien crea el Manifest, asi seguimos MVC.
parent 11646d75
No related branches found
No related tags found
No related merge requests found
Showing
with 67 additions and 60 deletions
No preview for this file type
......@@ -7,13 +7,11 @@ android:required="false" />
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<permission android:name="appperm.permission.TEST_PERMISSION3"
android:description="@string/descripción_prueba1"
android:protectionLevel="dangerous"/>
<uses-permission android:name="appperm.permission.TEST_PERMISSION3"/>
<permission
android:name="android.permission.READ_HOME_APP_SEARCH_DATA"
android:protectionLevel="internal"
android:permissionGroup="android.permission-group.NEARBY_DEVICES"/>
<uses-permission android:name="android.permission.READ_HOME_APP_SEARCH_DATA"/>
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
......@@ -22,7 +20,7 @@ android:required="false" />
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.TFG">
android:theme="@style/Theme.AppPerm">
<activity
android:name=".RevocarPermisos"
android:exported="false" />
......@@ -30,6 +28,9 @@ android:exported="false" />
android:name=".GruposNoSys"
android:exported="false" />
<activity
android:name=".Phone"
android:exported="false" />
<activity
android:name=".Grupos"
android:exported="false" />
<activity
......
......
......@@ -5,6 +5,7 @@ import android.content.pm.PermissionGroupInfo
class Modelo constructor() {
private var permisos = arrayOf(
"appperm.permission.TEST_PERMISSION3",
Manifest.permission.ACCEPT_HANDOVER,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION,
......
......
No preview for this file type
......@@ -7,7 +7,7 @@ PROJECT_ROOT = os.path.abspath(os.path.join(
os.pardir))
sys.path.append(PROJECT_ROOT)
class ControladorADB:
class ADBContr():
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 -g'
......
......
......@@ -11,7 +11,7 @@ sys.path.append(PROJECT_ROOT)
from Model.GruposMod import GruposMod
from Model.PermisosMod import PermisosMod
class ControladorDef:
class DefectoContr():
# Cargamos los modelos de datos necesarios
modeloGrupos = GruposMod()
modeloPermisos = PermisosMod()
......
......
......@@ -47,19 +47,8 @@ class FinalContr():
return
# Crea un archivo AndroidManifest.xml y se compila el apk con ese Manifest
def compilar(self):
manifest = self.modeloManifest.getManifest()
rutaManifest = os.path.join(os.path.dirname(os.path.abspath(__file__)),"../../Android/App-Perm/app/src/main/AndroidManifest.xml")
try:
with open(rutaManifest, "w") as salida:
for linea in manifest:
salida.write(linea)
except FileNotFoundError:
print("No existe el archivo")
return
except Exception as e:
print("Se ha producido un error", end=" ")
print(e)
return
self.modeloManifest.creaManifest()
rutaProyecto = os.path.join(os.path.dirname(os.path.abspath(__file__)),"../../Android/App-Perm")
comando = f"{rutaProyecto}/gradlew.bat assembleDebug --stacktrace"
resultado = subprocess.run(comando, shell=True, cwd=rutaProyecto, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
......
......
......@@ -9,7 +9,7 @@ PROJECT_ROOT = os.path.abspath(os.path.join(
sys.path.append(PROJECT_ROOT)
from Model.GruposMod import GruposMod
from Model.PermisosMod import PermisosMod
from View.Final import final
from View.Final import Final
class ListasContr():
modeloPermisos = PermisosMod()
......@@ -33,18 +33,18 @@ class ListasContr():
if grupos[0] == self.modeloPermisos.getGrupo(permiso):
return "El permiso ya pertenece a ese grupo"
else:
final(parent, opcion, permiso, grupos, protection)
Final(parent, opcion, permiso, grupos, protection)
elif opcion == 2:
if grupos[0] == self.modeloPermisos.getGrupo(permiso):
return "El permiso ya pertenece a ese grupo"+grupos[0]
elif grupos[1] == self.modeloPermisos.getGrupo(permiso):
return "El permiso ya pertenece al grupo"+grupos[1]
else:
final(parent, opcion, permiso, grupos, protection)
Final(parent, opcion, permiso, grupos, protection)
elif opcion == 3:
if protection == self.modeloPermisos.getProtection(permiso):
return "El permiso ya tiene ese protection level"
else:
final(parent, opcion, permiso, grupos, protection)
Final(parent, opcion, permiso, grupos, protection)
else:
final(parent, opcion, permiso, grupos, protection)
\ No newline at end of file
Final(parent, opcion, permiso, grupos, protection)
\ No newline at end of file
......@@ -5,26 +5,25 @@ PROJECT_ROOT = os.path.abspath(os.path.join(
os.path.dirname(__file__),
os.pardir))
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
from View.Firmadas import firmadas
from View.Ayuda import ayuda
from View.Defecto import Defecto
from View.Listas import Listas
from View.ADB import ADB
from View.Firmadas import Firmadas
from View.Ayuda import Ayuda
class ControladorMenu:
class MenuContr:
def aDefecto(self, ventanaPrincipal):
defecto(ventanaPrincipal)
Defecto(ventanaPrincipal)
return
def aListas(self, ventanaMenu, opcion):
listas(ventanaMenu.parent, opcion)
Listas(ventanaMenu.parent, opcion)
return
def aFirmadas(self, ventanaPrincipal):
firmadas(ventanaPrincipal)
Firmadas(ventanaPrincipal)
return
def aADB(self, ventanaPrincipal):
adb(ventanaPrincipal)
ADB(ventanaPrincipal)
return
def aAyuda(self, ventanaPrincipal):
ayuda(ventanaPrincipal)
Ayuda(ventanaPrincipal)
return
\ No newline at end of file
......@@ -4,7 +4,7 @@
# Autor: Alejandro de la Cruz Garijo
import csv
import os
class GruposMod:
class GruposMod():
# Abrimos el csv con los datos y creamos un diccionario con los grupos como clave y
# una lista de sus permsios como valor
def __init__(self):
......
......
import os
MANIFEST1 = '<?xml version="1.0" encoding="utf-8"?>\n<manifest xmlns:android="http://schemas.android.com/apk/res/android"\nxmlns:tools="http://schemas.android.com/tools">\n<uses-feature\nandroid:name="android.hardware.camera"\nandroid:required="false" />\n<uses-feature\nandroid:name="android.hardware.telephony"\nandroid:required="false" />'
MANIFEST2 ='\n<application\n android:allowBackup="true"\n android:dataExtractionRules="@xml/data_extraction_rules"\n android:fullBackupContent="@xml/backup_rules"\n android:icon="@mipmap/ic_launcher"\n android:label="@string/app_name"\n android:roundIcon="@mipmap/ic_launcher_round"\n android:supportsRtl="true"\n android:theme="@style/Theme.AppPerm"> \n<activity\nandroid:name=".RevocarPermisos"\nandroid:exported="false" /> \n<activity\nandroid:name=".GruposNoSys"\nandroid:exported="false" /> \n<activity\nandroid:name=".Phone"\nandroid:exported="false" /> \n<activity\nandroid:name=".Grupos"\nandroid:exported="false" /> \n<activity\nandroid:name=".Permisos"\nandroid:exported="false" /> \n<activity\nandroid:name=".Inicio"\nandroid:exported="true">\n<intent-filter> \n<action android:name="android.intent.action.MAIN" /> \n<category android:name="android.intent.category.LAUNCHER" />\n</intent-filter>\n<meta-data\n android:name="android.app.lib_name"\n android:value="" />\n </activity>\n </application>\n\n</manifest>'
ESQUEMA_NUEVO_PERMISO = '<permission\nandroid:name="XXXX"\nandroid:protectionLevel="XXXX"\nandroid:permissionGroup="XXXX"\nandroid:description="@string/descripción_generica"/>'
ESQUEMA_NUEVO_GRUPO = '<permission-group\nandroid:name="App-perm.GRUPO"\nandroid:description="@string/descripcion_grupo_general"\nandroid:label="@string/grupo_general" />'
class ManifestMod:
class ManifestMod():
manifest = None
def getManifest1(self):
return MANIFEST1
......@@ -18,3 +21,17 @@ class ManifestMod:
return
def getManifest(self):
return self.manifest
def creaManifest(self):
rutaManifest = os.path.join(os.path.dirname(os.path.abspath(__file__)),"../../Android/App-Perm/app/src/main/AndroidManifest.xml")
try:
with open(rutaManifest, "w") as salida:
for linea in self.manifest:
salida.write(linea)
except FileNotFoundError:
print("No existe el archivo")
return
except Exception as e:
print("Se ha producido un error", end=" ")
print(e)
return
return
\ No newline at end of file
......@@ -4,7 +4,7 @@
# Autor: Alejandro de la Cruz Garijo
import csv
import os
class PermisosMod:
class PermisosMod():
# Abrimos el fichero csv de datos y obtenemos una matriz con los datos de los permisos
def __init__(self):
self.permisos = []
......
......
......@@ -8,14 +8,14 @@ sys.path.append(PROJECT_ROOT)
import tkinter as tk
import customtkinter as ctk
from Controller.ADBContr import ControladorADB
from Controller.ADBContr import ADBContr
class adb(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 = ControladorADB()
controlador = ADBContr()
def __init__(self, parent, *args, **kwargs):
super().__init__(parent, *args, **kwargs)
self.parent = parent
......
......
......@@ -10,7 +10,7 @@ PROJECT_ROOT = os.path.abspath(os.path.join(
sys.path.append(PROJECT_ROOT)
from Controller.AyudaContr import AyudaContr
class ayuda(ctk.CTkToplevel):
class Ayuda(ctk.CTkToplevel):
HEIGHT = 720
WIDTH = 1280
controlador = AyudaContr()
......
......
......@@ -17,14 +17,14 @@ sys.path.append(PROJECT_ROOT)
import tkinter as tk
import customtkinter as ctk
from Controller.DefectoContr import ControladorDef
from Controller.DefectoContr import DefectoContr
class defecto(ctk.CTkToplevel):
class Defecto(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 = DefectoContr()
def __init__(self, parent, *args, **kwargs):
super().__init__(parent, *args, **kwargs)
self.parent = parent
......
......
......@@ -14,7 +14,7 @@ PROJECT_ROOT = os.path.abspath(os.path.join(
sys.path.append(PROJECT_ROOT)
from Controller.FinalContr import FinalContr
class final(ctk.CTkToplevel):
class Final(ctk.CTkToplevel):
DONE = False
realizando = None
controlador = FinalContr()
......
......
......@@ -10,7 +10,7 @@ PROJECT_ROOT = os.path.abspath(os.path.join(
sys.path.append(PROJECT_ROOT)
from Controller.FirmadasContr import FirmadasContr
class firmadas(ctk.CTkToplevel):
class Firmadas(ctk.CTkToplevel):
HEIGHT = 720
WIDTH = 1280
......
......
......@@ -14,7 +14,7 @@ PROJECT_ROOT = os.path.abspath(os.path.join(
sys.path.append(PROJECT_ROOT)
from Controller.ListasContr import ListasContr
class listas(ctk.CTkToplevel):
class Listas(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
PERMISO = ""
......
......
......@@ -13,10 +13,10 @@ PROJECT_ROOT = os.path.abspath(os.path.join(
os.path.dirname(__file__),
os.pardir))
sys.path.append(PROJECT_ROOT)
from Controller.MenuContr import ControladorMenu
from Controller.MenuContr import MenuContr
class mainWindow(ctk.CTkFrame):
controlador = ControladorMenu()
class Menu(ctk.CTkFrame):
controlador = MenuContr()
def __init__(self, parent, *args, **kwargs):
super().__init__(parent, *args, **kwargs)
......@@ -102,5 +102,5 @@ if __name__ == "__main__":
root.geometry("1280x720")
root.minsize(width=1280,height=720)
root.title("App-Perm")
mainWindow(root).pack(side="top", fill="both", expand=True)
Menu(root).pack(side="top", fill="both", expand=True)
root.mainloop()
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment