Skip to content

Instantly share code, notes, and snippets.

@felipebelluco
felipebelluco / Main.java
Last active August 9, 2017 00:45
Concise way to get a null safe Stream from a Collection.
import java.util.*;
public class Main {
public static void main(String[] args) {
List<String> names = null;
// NPE!!!
names.stream().filter(Objects::nonNull).forEach(System.out::println);
import java.util.*;
import static br.com.felipebelluco.javaplayground.PredicateUtil.negate;
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("foo", "", "bar");
// Instead of this...
list.stream().filter(name -> !name.isEmpty()).forEach(System.out::println);
// Preferences > Key Bindings > Add it to your "Keymap User" file:
{"keys": ["alt+shift+f"], "command": "reindent", "args": {"single_line": false}}
@felipebelluco
felipebelluco / gist:370c805fe24567b082e33819e9ff47ee
Created September 15, 2018 00:02
Number of files grouped by extension
cd src/ && find -type f | sed -e 's/.*.//' | sort | uniq -c
@felipebelluco
felipebelluco / CheckIfPermissionIsGranted.kt
Last active September 27, 2018 21:56
Check for permission in Android with Kotlin
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
// Permissão ainda não foi concedida
} else {
// Permissão já foi concedida, já é possível usufruir da funcionalidade
}
@felipebelluco
felipebelluco / CheckIfPermissionIsNotGranted.kt
Created September 28, 2018 13:51
Check if permission is not granted;
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
// Permissão ainda não foi concedida
} else {
// Permissão já foi concedida, já é possível usufruir da funcionalidade
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
// Verifica se o usuário já negou acesso a permisão
if (shouldShowRequestPermissionRationale(Manifest.permission.CALL_PHONE)) {
// Usuário negou acesso
// Mostrar uma dialog explicando a importância do app ter acesso a funcionalidade
} else {
// Usuário não negou acesso ou negou e marcou a caixa de "não perguntar novamente"
// Fazer a requisição da permissão
}
}
AlertDialog.Builder(thisActivity).apply {
setMessage(R.string.more_info_dialog_message)
setTitle(R.string.more_info_dialog_title)
setPositiveButton(R.string.yes_please) { d, i ->
// Se o usuário quiser, requere novamente permissão à funcionalidade
ActivityCompat.requestPermissions(
thisActivity,
arrayOf(Manifest.permission.CALL_PHONE),
CALL_PHONE_RESULT_CODE)
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
when (requestCode) {
CALL_PHONE_RESULT_CODE -> {
// Gerenciar o resultado da requisição
}
}
}
ActivityCompat.requestPermissions(
thisActivity,
arrayOf(Manifest.permission.CALL_PHONE),
CALL_PHONE_RESULT_CODE)