Android – Bloqueando a orientação de tela programaticamente

full_screen_android

Segue alguns métodos uteis para lidar com a orientação de tela programaticamente.

/**
 * Destravando orientação de tela
 *
 */
public static boolean releaseScreenOrientation(Activity activity) {
    return lockScreenOrientation(activity, ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}

/**
 * Travando orientação de tela na posição atual.
 *
 */
public static boolean lockCurrentScreenOrientation(Activity activity) {
    return lockScreenOrientation(activity, activity.getRequestedOrientation());
}

/**
 * Recebe como parametro: ActivityInfo.SCREEN_ORIENTATION_XXXXXX
 *
 * @param activity Activity
 * @param screenOrientation ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
 */
public static boolean lockScreenOrientation(Activity activity, int screenOrientation) {
    activity.setRequestedOrientation(screenOrientation);
    return true;
}

/**
 * Recebe como parametro: Surface.ROTATION_X
 *
 * @param activity Activity
 * @param screenRotation Surface.ROTATION_0 / 90 / 180 / 270
 */
public static boolean lockScreenRotation(Activity activity, int screenRotation) {
    if (screenRotation > -1) {
        int orientation = activity.getRequestedOrientation();
        switch (screenRotation) {
            case Surface.ROTATION_0:
                orientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
                break;
            case Surface.ROTATION_90:
                orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
                break;
            case Surface.ROTATION_180:
                orientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT;
                break;
            case Surface.ROTATION_270:
                orientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE;
                break;
        }
        return lockScreenOrientation(activity, orientation);
    } else {
        return false;
    }
}

Android Studio / Gradle / Maven – Como usar o seu repositório local Maven (How to use Maven Local repository for gradle build)

gradle

Para configurar seu repositório local Maven em um projeto no Android Studio, ou em qualquer outra IDE que utilize o Gradle basta configurarmos o arquivo build.grade adicionando o repositorio local e configurando sua localização. No exemplo a seguir vou configurar meu projeto para que use o mesmo repositório local maven utilizado pelo netbeans, assim consigo utilizar minhas bibliotecas java de uma maneira bem simples.

Abra o arquivo do projeto build.grade e edite da seguinte maneira: Continue reading

Mysql Workbench – Failed to load module “canberra-gtk-module”

mysql-workbenchApós a instalação do Workbench no Debian 8 me deparei com o seguinte erro ao executa-lo:

Failed to load module “canberra-gtk-module”

Segue a instrução para solucionar o problema:

1 – Instale a dependência que está faltando para que o Workbench execute:

$ apt install libcanberra-gtk-module libcanberra-gtk3-module

2 – Desinstale (não consegui fazer funcionar sem desinstalar)

$ apt update ; apt purge mysql-workbench mysql-workbench-data

3 - Instale novamente:

$ apt install mysql-workbench mysql-workbench-data

4 – Pronto basta executar que esta funcionando.

Fontes:

https://askubuntu.com/questions/342202/failed-to-load-module-canberra-gtk-module-but-already-installed

https://www.vivaolinux.com.br/topico/MySQL/MySQL-Workbench-parou-de-funcionar

Android – Como reiniciar a aplicação programaticamente (How to ‘restart’ an android application programmatically)

Android reiniciar aplicativo

    public void backToMain(Bundle params) {
    	//Monta a intent para abrir a aplicação.
        Intent mStartActivity = new Intent(this, MainActivity.class);
        //Se quiser adicionar algum parametro para o inicio da aplicação:
        if (params != null) {
            mStartActivity.putExtras(params);
        }

        //Realiza o agendamento da intent de abrir o aplicativo:
        //No caso abaixo o aplicativo vai ser reaberto daqui 500ms (System.currentTimeMillis() + 500);
        PendingIntent mPendingIntent = PendingIntent.getActivity(this, 123456, mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT);
        AlarmManager mgr = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
        mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 500, mPendingIntent);

        //Mata todos processos associados a este aplicativo.
        android.os.Process.killProcess(android.os.Process.myPid());
        //Fecha o aplicativo.
        System.exit(1);
    }

GIT – Configurando proxy no GIT (Getting git to work with a proxy server)

git_logo

git config –global http.proxy http://usuarioProxy:senhaProxy@IpProxy:8080

Caso seu usuario tenha @ trocar por %40 (Exemplo: gbz@abc ficaria: gbz%40abc)
Caso sua senha ou usuario tenha algum caracter especial utilizar a ‘\’ antes (Exemplo: abc! ficaria: abc\!)

Gradle – Gerar uma distribuição com suas dependências / Gerar um FatJar / Configurar o JavaExec / Configurar Manifest

gradle

Segue um script de configuração para compilar projetos java e gerar uma distribuição com todas dependências, com opcional de fatJar.
- Configurar o Manifest
- Configurar a execução pela IDE através do type: JavaExec
- Gerar uma distribuição com as dependências dentro da pasta libs/
- Gerar uma distribuição fatJar

ARQUIVO BUILD.GRADLE: Continue reading

Java – Bitwise and Bit Shift Operators

/**
 * Bitwise and Bit Shift Operators
 * 
 * Constantes: move 1bit para casa determinada após '<<' x
 * 
 * Varival i: Recebe uma operaçao OU das constantes pedidas;
 * A -   001
 * B -   010
 * C -   100 (Operacao OU)
 * _________
 * Resp: 111 (i = 111 (ou 7 decimal))
 * 
 * Verificacao das constantes dentro da variavel: 
 * - Realiza uma operaçao AND entre a variavel e a constante, se o valor
 * for diferente de 0, contem a constante dentro da variaval:
 * 
 * Exemplo caso i = A|C;
 * i - 101 
 * C - 100 (Operacao AND)
 * _______
 * Resp: 100 (valor != de 0, entra na condiçao (ou 4 dec))
 *
 * Exemplo caso i = A|C;
 * i - 101 
 * B - 010 (Operacao AND)
 * _______
 * Resp: 000 (valor == de 0, nao entra na condiçao)
 * 
 * @author Guilherme Biff Zarelli e Guilherme Alves Silveira
 */
public class teste2 {

    public static final int A = 1 << 1;
    public static final int B = 1 << 2;
    public static final int C = 1 << 3;

    public static void main(String[] args) {
        //ATRIBUICAO DAS CONSTANTES NA VARIAVAL:
        int i = A | C | B; 
        System.out.println(i);//VALOR DA OPERACAO OU
        
        //VERIFICAÇAO DAS CONSTANTES DENTRO DA VARIAVEL:
        if ((i & A) != 0) {
            System.out.println("CONTEM CONSTANTE A");
        }
        if ((i & B) != 0) {
            System.out.println("CONTEM CONSTANTE B");
        }
        if ((i & C) != 0) {
            System.out.println("CONTEM CONSTANTE C");
        }
    }
}

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html

Como resolver teclado travando esporadicamente no Android Studio com Ubuntu

lock_on_the_keyboard

 

Depois de um longo tempo descobri como resolver um problema que estava me deixando louco! Esporadicamente o Android Studio travava o teclado, tinha que fecha-lo e reabrir, ai quando você estava com mais de 3 projetos abertos tinha que fechar tudo e reabrir! Ele trava, simplesmente do nada, as vezes percebia que era a execução do atalho CRTL+Tab ou Editando um XML e pressionar algum atalho, enfim alguma coisa a ver com conflito de atalho do Android Studio com o Ubuntu.

Como resolver: Simples, execute o comando antes de abrir o Android Studio ou insira no /etc/profile do seu sistema:

$ ibus-daemon -rd