Maven – Configurando proxy (Maven Configuring a proxy)

maven

Para configurar o proxy no Maven basta criar ou editar o arquivo de configuração settings.xml no diretorio: ${user.home}/.m2/settings.xml
Caso você queira configurar para apenas um projeto, é só inserir esse arquivo junto ao diretorio aonde esta seu pom.xml.

 

    <settings>
      .
      .
      <proxies>
       <proxy>
          <id>example-proxy</id>
          <active>true</active>
          <protocol>http</protocol>
          <host>proxy.example.com</host>
          <port>8080</port>
          <username>proxyuser</username>
          <password>somepassword</password>
          <nonProxyHosts>www.google.com|*.example.com</nonProxyHosts>
        </proxy>
      </proxies>
      .
      .
    </settings>

Fonte: https://maven.apache.org/guides/mini/guide-proxies.html

Java/Kotlin -Utilizando um unico array para os argumentos do String.format() (String.format() takes an array as a single argument)

java_kotlin

Como passar os argumentos de um String format em uma unica lista de parametros.

Em Java:

        
        String a = "V1: %s - V2: %s - V3: %s";
        List strings = new ArrayList();
        strings.add("var1");
        strings.add("var2");
        strings.add("var3");

        System.out.println(String.format(a, (Object[]) strings.toArray()));

Em Android utilizando Kotlin:

       
        val a = "V1: %s - V2: %s - V3: %s"
        val strings = ArrayList()
        strings.add("var1")
        strings.add("var2")
        strings.add("var3")

        println(String.format(a, *strings.toTypedArray() as Array<*>))

Android – Como alterar os atributos do TextView da mensagem de um Snackbar

Android

            snack = Snackbar.make(my_id_layout, myMessage, Snackbar.LENGTH_INDEFINITE);
            val view = snack!!.getView()
            val tv = view.findViewById<TextView>(android.support.design.R.id.snackbar_text)
            tv.setTextColor(Color.WHITE)
            tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20f);
            snack!!.show()

Para uma simples alteração de cor podemos utilizar:

snack.setActionTextColor(Color.RED)

Ou:

 
Snackbar.make(view, 
       Html.fromHtml("Tap to open").show()

Também podemos alterar o background:

 snackbar.getView().setBackgroundColor(Color.BLACK);

Android – android.os.FileUriExposedException: file:///storage/emulated/0/{MY_FILE} exposed beyond app through Intent.getData()

files java file intent data

Problema:

FATAL EXCEPTION: Thread-2
Process: br.com.helpdev.teste, PID: 26078
android.os.FileUriExposedException: file:///storage/emulated/0/{MY_FILE} exposed beyond app through Intent.getData()
at android.os.StrictMode.onFileUriExposed(StrictMode.java:1813)
at android.net.Uri.checkFileUriExposed(Uri.java:2360)
at android.content.Intent.prepareToLeaveProcess(Intent.java:8981)
at android.content.Intent.prepareToLeaveProcess(Intent.java:8942)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1583)
at android.app.Activity.startActivityForResult(Activity.java:4228)
at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:67)
at android.app.Activity.startActivityForResult(Activity.java:4187)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:732)
at android.app.Activity.startActivity(Activity.java:4515)
at android.app.Activity.startActivity(Activity.java:4483)
at br.com.helpdev.teste.sistema.pacote.PacotesUtils.instalarPacote(PacotesUtils.java:29)
at br.com.helpdev.teste.sistema.pacote.GerenciadorPacotes.install(GerenciadorPacotes.java:154)
at br.com.helpdev.teste.sistema.pacote.GerenciadorPacotes$2.run(GerenciadorPacotes.java:172)

Solução:
O correto seria utilizar o FileProvider mas uma solução “workaround” bem simples seria: Continue reading

Android – Como pegar uma View da Activity dentro de um Fragment (getActivity().findViewById returns null, called from fragment onActivityCreated)

Android

O segredo para não retornar null é utilizar o getActivity().findViewById dentro do método onActivityCreated

    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        activity.findViewById<Button>(R.id.bt_iniciar).setOnClickListener({
            startActivity(Intent(activity, MyActivity::class.java))
        })
    }

Android / Gradle – Definindo um versionName diferente para build e release

gradle

Não é possível definir um versionName diferente para ‘debug’ e ‘release’ porem é possível adicionar um suffix no final do versionName:

android {
    signingConfigs {
        releaseKey {
            keyAlias 'key_flavors'
            keyPassword 'xxxxx'
            storeFile file('../key_release_flavors.jks')
            storePassword 'xxxx'
        }
    }
    compileSdkVersion 27
    defaultConfig {
        applicationId "br.com.helpdev.flavors"
        minSdkVersion 14
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        debug {
            versionNameSuffix ".15.1"
        }
        release {
            versionNameSuffix ".14"
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.releaseKey
        }
    }
}

Dessa maneira ao compilar o projeto o debug ficaria com o versionName: 1.0.15.1 e o release com: 1.0.14.

Android – Mobile Vision, API de detecção de faces e objetos (Find objects in photos and video, using real-time on-device vision technology. Face Detection)

face_detect

Introdução à Visão Móvel

A API Mobile Vision fornece uma estrutura para encontrar objetos em fotos e vídeos. A estrutura inclui detectores, que localizam e descrevem objetos visuais em imagens ou quadros de vídeo e uma API orientada a eventos que rastreia a posição desses objetos no vídeo.

API

Atualmente, a API Mobile Vision inclui detectores de rosto, código de barras e texto, que podem ser aplicados separadamente ou em conjunto.

O pacote de visão inclui uma estrutura de funcionalidade de base comum e subpacotes para implementações específicas de detectores:

Funcionalidade comum: com.google.android.gms.vision
Detector de rosto: com.google.android.gms.vision.face
Detector de código de barras: com.google.android.gms.vision.barcode
Detetor de texto: com.google.android.gms.vision.text

COMEÇANDO… Continue reading