Skip to content

Instantly share code, notes, and snippets.

View amadeu01's full-sized avatar
:octocat:
Working from Stockholm

Amadeu Cavalcante Filho amadeu01

:octocat:
Working from Stockholm
View GitHub Profile
@amadeu01
amadeu01 / Bundle.swift
Last active May 7, 2019 21:50
Bundle extension with useful swizzling
private func swizzle(_ bundle: Bundle.Type) {
[(#selector(bundle.localizedString(forKey:value:table:)),
#selector(bundle.rd_localizedString(forKey:value:table:)))]
.forEach { original, swizzled in
guard let originalMethod = class_getInstanceMethod(bundle, original),
let swizzledMethod = class_getInstanceMethod(bundle, swizzled) else { return }
let didAddMethod = class_addMethod(
@amadeu01
amadeu01 / PhoneFormatter.swift
Created March 19, 2019 17:15
PhoneFormatter for eureka.
public class PhoneFormatter: Formatter, FormatterProtocol {
override public func getObjectValue(
_ obj: AutoreleasingUnsafeMutablePointer<AnyObject?>?,
for string: String,
errorDescription error: AutoreleasingUnsafeMutablePointer<NSString?>?) -> Bool {
guard obj != nil else { return false }
let str = string.components(separatedBy: CharacterSet.decimalDigits.inverted).joined(separator: "")
obj?.pointee = str as AnyObject
return true
@amadeu01
amadeu01 / String+email.swift
Created March 11, 2019 12:45
String nice extensions
private let firstpart = "[A-Z0-9a-z]([A-Z0-9a-z._%+-]{0,30}[A-Z0-9a-z])?"
private let serverpart = "([A-Z0-9a-z]([A-Z0-9a-z-]{0,30}[A-Z0-9a-z])?\\.){1,5}"
private let emailRegex = firstpart + "@" + serverpart + "[A-Za-z]{2,8}"
private let emailPredicate = NSPredicate(format: "SELF MATCHES %@", emailRegex)
extension String {
var isEmail: Bool {
return emailPredicate.evaluate(with: self)
}
}
@amadeu01
amadeu01 / InjectedFragment.kt
Last active December 12, 2018 12:14
Injected Fragment for Kodein
abstract class InjectedFragment<T> : Fragment(), KodeinAware {
private val activityKodein by closestKodein()
override val kodein: Kodein by retainedKodein {
extend(activityKodein)
import(fragmentModule(parseBundle(arguments)))
}
open fun fragmentModule(data: T?) = Kodein.Module("activityModule") {}
@amadeu01
amadeu01 / calculator.swift
Last active September 28, 2018 19:45
Calculator UI
import UIKit
import PlaygroundSupport
extension UIView {
static func roundedView(x: Int, y: Int) -> UIView {
let customView = UIView()
customView.frame = CGRect(
x: x, y: y,
width: 60, height: 60)
customView.backgroundColor = .green
CameraManager manager =
(CameraManager) view.getContext().getSystemService(CAMERA_SERVICE);
try {
for (String cameraId : manager.getCameraIdList()) {
CameraCharacteristics chars
= manager.getCameraCharacteristics(cameraId);
App.logException(Log.DEBUG, "PhotoAction", chars.toString());
manager.openCamera(cameraId, new CameraDevice.StateCallback() {
@Override
@amadeu01
amadeu01 / Twofer.kt
Created July 11, 2018 02:31
Twofer function for passing `Twofer` tests
fun twofer(name: String = "you"): String {
return "One for ${name}, one for me."
}
@amadeu01
amadeu01 / TwoferTest.kt
Created July 11, 2018 02:30
Test of `TwoTest` exercism exercise.
import org.junit.Ignore
import org.junit.Test
import kotlin.test.assertEquals
class TwoferTest {
@Test
fun noNameGiven() {
assertEquals("One for you, one for me.", twofer())
}
public class FirebaseMessagingService extends com.google.firebase.messaging.FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
try {
if (remoteMessage.getData().size() > 0) {
// do stuff.....
}
public class FirebaseMessagingHelper extends FirebaseInstanceIdService {
static public String token;
@Override
public void onCreate() {
super.onCreate();
token = FirebaseInstanceId.getInstance().getToken();
if(token != null) Timber.d("Token %s", token);