sábado, 8 de julho de 2017

Vigésima Segunda Semana - Começo das Férias

A cada Sprint definimos uma pontuação baseada na quantidade de atividades pedidas por outras matérias para evitar uma sobrecarga de tarefas durante a semana, assim em semanas de provas a pontuação tende a ser menor do que em semanas de início de bimestre, por exemplo. Porém, mesmo com este método de pontuação a equipe tem falhado ao cumprir com as Sprints tendo completado poucas durante o semestre por conta da falta de compromisso dos integrantes. Percebemos que mesmo tendo uma metodologia eficiente, os integrantes precisam ser cobrados constantemente para que concluam suas tarefas durante as Sprints e que tarefas mais complexas demandam integrantes que trabalhem em harmonia, ou seja, não possuem ideias ou raciocínios distintos para atingir um mesmo objetivo, resultando em uma produtividade maior. Como entramos de férias essa semana, a pontuação das Sprints serão maiores. Por conta disso, todos os integrantes do time definiram horários fixos para trabalhar no projeto todos os dias, dedicando mais tempo durante os fins de semana visando um aumento de produtividade e recuperar as metas não alcançadas nos últimos meses.
Como resposta ao e-mail enviado semana passada, o professor explicou que as publicações devem conter além do resumo semanal, contemplar técnicas importantes que desenvolvemos no decorrer da semana, lembrando que pode haver mais de uma publicação por semana. Seguindo esta orientação, iremos apresentar a construção de uma classe que gerência as permissões necessárias de uma aplicação mobile (Android).
Construindo a classe:
Para construir a classe de permissões, criaremos um método que dado como parâmetros um activity, um requestCode e uma listagem com as permissões verifica se as permissões passadas já estão autorizadas e caso não estejam, solicita através de um "pop up" a permissão. A seguir, o código da classe de permissões:
public class PermissionUtils {

    //Solicita as permissões
    public static boolean validate(Activity activity, int requestCode, String... permissions) {
        List<String> list = new ArrayList<String>();
        for (String permission : permissions) {
            // Valida permissões
            boolean ok = ContextCompat.checkSelfPermission(activity, permission) == PackageManager.PERMISSION_GRANTED;
            if (! ok ) {
                list.add(permission);
            }
        }
        if (list.isEmpty()) {
            // Tudo ok, retorna true
            return true;
        }

        // Lista de permissões que falta acesso.
        String[] newPermissions = new String[list.size()];
        list.toArray(newPermissions);

        // Solicita permissões
        ActivityCompat.requestPermissions(activity, newPermissions, 1);

        return false;
    }
}
Para chamar esta classe, em sua activity inicial (Activity da primeira tela que é exibida na aplicação) basta colocar o código abaixo dentro do OnCreate.
String[] permissoes = new String[] {
    Manifest.permission.PERMISSAO_QUE_VOCE_QUER_1,
    Manifest.permission.PERMISSAO_QUE_VOCE_QUER_2,
    Manifest.permission.PERMISSAO_QUE_VOCE_QUER_3,
}

Todas as Strings de permissão do Android
De: Giovanni Henrique

Nenhum comentário:

Postar um comentário