Skip to content

Instantly share code, notes, and snippets.

@xleon
xleon / ExtendedSearchBarRenderer.cs
Created February 25, 2015 01:44
Xamarin.Forms renderer to hide the "Cancel" button of a SearchBar on iOS
using System;
using Xamarin.Forms.Platform.iOS;
using Xamarin.Forms;
using UIKit;
using System.Diagnostics;
[assembly: ExportRenderer(typeof(SearchBar), typeof(Namespace.iOS.Renderers.ExtendedSearchBarRenderer))]
namespace Namespace.iOS.Renderers
{
@xleon
xleon / Android.csproj
Last active March 26, 2021 10:35
Firebase Cloud Management in XAMARIN
<PackageReference Include="Xamarin.Firebase.Messaging" Version="121.0.1" />
<PackageReference Include="Xamarin.GooglePlayServices.Base" Version="117.6.0" />
<PackageReference Include="Xamarin.Google.Dagger" Version="2.27.0" /> <!-- Fixes runtime error class not found -->
@xleon
xleon / ExifRotation.cs
Last active November 13, 2020 19:40
Exif rotation fix (Android Xamarin) borrowed from mvvmcross
using Android.Graphics;
using Android.Media;
private static Bitmap ExifRotateBitmap(string filePath, Bitmap bitmap)
{
if (bitmap == null)
return null;
var exif = new ExifInterface(filePath);
var rotation = exif.GetAttributeInt(ExifInterface.TagOrientation, (int)Orientation.Normal);
@xleon
xleon / models.py
Created October 23, 2013 07:38
Next and prev models when using django-admin-sortable. This is useful for "next" and "prev" buttons of a project detail for example
from adminsortable.models import Sortable
from django.template.defaultfilters import slugify
class Project(Sortable):
name = models.CharField("Name", max_length=255)
slug = models.SlugField(max_length=255, editable=False)
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
super(Project, self).save(*args, **kwargs)
@xleon
xleon / SignalR_IntegrationTest.cs
Last active July 26, 2018 20:18
Attempt to test a SignalR (authorized) method (chat "SendMessage") in a one-to-one chat
[TestMethod]
public async Task SendMessage_Should_SaveData_AndReachPeer()
{
IHubProxy proxy1 = await CreateConnectionAndGetProxy(AdminToken);
IHubProxy proxy2 = await CreateConnectionAndGetProxy(UserToken);
ChatMessageDTO pushedMessage = new ChatMessageDTO();
proxy1.On<ChatMessageDTO>("AddNewMessage", m => pushedMessage = m);
ChatMessageEntryDTO message = new ChatMessageEntryDTO
@xleon
xleon / fix_permissions.py
Last active January 31, 2018 08:03 — forked from magopian/fix_permissions.py
Django admin command to "fix permissions" (create them properly for proxy models).This is needed because of the following bug in Django (not fixed as of 1.6): https://code.djangoproject.com/ticket/11154
# -*- coding: utf-8 -*-
"""Add permissions for proxy model.
This is needed because of the bug https://code.djangoproject.com/ticket/11154
in Django (as of 1.6, it's not fixed).
When a permission is created for a proxy model, it actually creates if for it's
base model app_label (eg: for "article" instead of "about", for the About proxy
model).
What we need, however, is that the permission be created for the proxy model
itself, in order to have the proper entries displayed in the admin.
"""
Ejemplo simple de calculadora para IVA e IRPF dada una base imponible
"""
from colorama import init, Fore, Back, Style
init()
IVA_PERCENT = 0.21
IRPF_PERCENT = 0.15
CURRENCY = '€'
using Android.Content;
using Android.Support.Design.Widget;
using Android.Support.V4.View;
using Android.Util;
using Android.Views;
using Java.Interop;
namespace Droid.Helpers
{
public class ScrollAwareFloatingAactionButtonBehavior : CoordinatorLayout.Behavior
@xleon
xleon / FileStreamAsyncWritter.as
Last active September 30, 2016 14:41
Write bytes to a FileStream in async mode and close stream when finished
package lba.utils
{
import flash.events.IOErrorEvent;
import flash.events.OutputProgressEvent;
import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;
import flash.utils.ByteArray;
import org.osflash.signals.Signal;
@xleon
xleon / ILocator.as
Last active August 10, 2016 10:42
Service Locator for ActionScript applications
package Core.Utils.ServiceLocation
{
public interface ILocator
{
function RegisterConstant(value:Object, type:Class):void;
function Register(type:Class, contract:Class = null):void;
function RegisterSingleton(type:Class, contract:Class = null):void;