xMova Launcher
O Launcher é uma aplicação que permite aos usuários não fazerem uso de aplicativos de terceiros. Para isso, foi desenvolvimento em um modelo conhecido por kiosk-mode.
Esta documentação descreve brevemente, a estrutura de funcionamento do Launcher, descrevendo de forma superficial os pacotes e a composição da aplicação.
Properties file
Contém as URLs de gerenciamento do Launcher, onde temos:
- url_launcher: Endereço onde o Launcher irá verificar a existência de novas atualizações do produto, dado o número de versão que receber etc.;
- url_simova_apps: Endereço para download de aplicativos do Simova Apps, ou seja, irá buscar pelo fluxo passado como parâmetro;
- url_support_log: Endereço de envio do Log, pois o Launcher também envia, semelhante ao Simova Apps;
Estrutura
- AppPackageAdapter: Contém o holder da listagem de aplicativos;
- ListBaseAdapter: Classe abstrata que contém a estrutura básica de um adaptador para listas na aplicação;
- AppModel: Descreve cada ícone ou aplicativo do Sistema, podendo ser um elemento de caller (ligação), marcador (selecionar para liberar) ou apenas listagem;
- WSError: Throwable da aplicação para lançamento de erros;
- LockPickManager: Classe principal, cujo objetivo é gerenciar se a aplicação é permita ou não;
- AppsLoader: Efetua o loader dos aplicativos permitidos utilizando com base o AppModel para listá-los;
- CollapseStatusBar: Classe que faz uso de reflection para não permitir o swipe da status bar, ou seja, bloquear o ato de puxar de cima para baixo do sistema operacional;
- InstallSimovaAppsCore: Instalador que irá ler o conteúdo do properties file e usar suas URLs para efetuar o download de um aplicativo Simova Apps;
- KillApplication: Classe que irá tentar efetuar o fechando de um aplicativo;
- UpdateApplicationCore: Classe que efetuará a leitura do arquivo de properties e irá verificar novas atualizações do Launcher;
- BaseActivity: Activity básica que contém os métodos padrões para tratar activities, como popular a toolbar etc.;
- LauncherSimovaApplication: Application Manager, ou seja, a classe pai do aplicativo, usado para agendamento de atualizações e armazenamento primário de informações de status, home da aplicação etc.;
- SharedPreferenceManager: gerencia as preferências do aplicativo, ou seja, salva nas preferências padrões do Android algum conteúdo básico;
- VersionPreferences: Trata o conteúdo do arquivo de properties como preferência pelo Simova Apps;
- CommunicationReceiver: Efetua a comunicação com outras aplicações, em suma, com o Simova Apps, tratando a resposta, ou seja, é um receptor;
- OnBootReceiver: indica que o usuário fez o boot da aplicação;
- PasswordBroadcastReceiver: Trata as senhas relativas do usuário e se é uma senha válida ou não;
- ReturnCurrentApplicationReceiver: Retorna a aplicação principal;
- AlarmVersionDayService: Serviço de alarme das atualizações do aplicativo;
- CurrentApplicationService: Inicia o LockPick para verificar a aplicação corrente de tempo fixo para bloquear ou permitir;
- InstallSimovaAppsTask: Responsável por iniciar o processo de instalação de um aplicativo do Simova Apps;
- UpdateApplicationTask: Idem ao instalador, mas update.
- pacote activities: Contém as telas que representam o Launcher, ou seja, tela principal, inserção de senha, listagem/bloqueio de celulares etc.