Skip to content

Instantly share code, notes, and snippets.

View b-cancel's full-sized avatar

Bryan Cancel b-cancel

View GitHub Profile
@b-cancel
b-cancel / Unity3D_character_To_KeyCode.cs
Last active June 17, 2023 15:37
UNITY 3D => Unity Key Codes to Characters (for MOST keys that display a character when pressed)
//NOTE: This is only a DICTIONARY with MOST character to keycode bindings... it is NOT a working cs file
//ITS USEFUL: when you are reading in your control scheme from a file
//NOTE: some characters SHOULD map to multiple keycodes (but this is impossible)
//since this is a dictionary, only 1 character is bound to 1 keycode
//EX: * from the keyboard will be read the same as * from the keypad... because they produce the same character in a text file
Dictionary<char, KeyCode> chartoKeycode = new Dictionary<char, KeyCode>()
{
//-------------------------LOGICAL mappings-------------------------
@b-cancel
b-cancel / gattSpecs.dart
Last active April 4, 2023 18:47
Bluetooth Gatt Specification Maps For Dart
//other stuff to maybe map out
//https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers/
//https://www.bluetooth.com/specifications/assigned-numbers/16-bit-uuids-for-members/
//https://www.bluetooth.com/specifications/assigned-numbers/16-bit-uuids-for-sdos/
//https://www.bluetooth.com/specifications/assigned-numbers/service-discovery/
//https://www.bluetooth.com/specifications/assigned-numbers/health-device-profile/
//https://www.bluetooth.com/specifications/assigned-numbers/units/
//Gatt Service Hierarchy
//Device
@b-cancel
b-cancel / sliverPersistentHeaderDelegate.dart
Created September 16, 2019 03:41
SliverPersistentHeaderDelegate Example
/*
SliverPersistentHeader(
pinned: true,
floating: true,
delegate: OurDelegate(
toolBarHeight: MediaQuery.of(context).padding.top,
openHeight: 250,
closedHeight: 40,
),
),
@b-cancel
b-cancel / main.dart
Last active November 29, 2021 19:41
FLUTTER => Overriding Back Button in Flutter
import 'package:flutter/material.dart';
import 'dart:async';
void main() => runApp(new BackButtonOverrideDemoWidget());
class BackButtonOverrideDemoWidget extends StatefulWidget{
@override
_BackButtonOverrideDemoWidgetState createState() => new _BackButtonOverrideDemoWidgetState();
}
@b-cancel
b-cancel / main.dart
Last active December 29, 2020 21:33
Receipt Test
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
double totalHeight;
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
@b-cancel
b-cancel / main.dart
Created September 4, 2018 06:30
FLUTTER => password and confirm password field validation before the creation of a user. Handles all edge cases well without blocking user input at any point.
String getPasswordValidationError(bool forPassword) {
String initialPasswordString = focusNodeToValue[passwordFocusNode].value;
String confirmPasswordString = focusNodeToValue[confirmPasswordFocusNode].value;
///-----make sure this particular password is valid
if (forPassword) {
if (initialPasswordString.isNotEmpty == false)
return "Password Required";
else if (initialPasswordString.length < 6)
return "The Password Requires 6 Characters Or More";
@b-cancel
b-cancel / main.dart
Last active November 24, 2019 19:24
FLUTTER select contact page setup
import 'package:flutter/material.dart';
import 'package:flutter_sticky_header/flutter_sticky_header.dart';
//-----Start App
void main() => runApp(MyApp());
//-----Entry Point
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
@b-cancel
b-cancel / alphaScrollBarOverlay.dart
Created August 6, 2019 21:29
FLUTTER Dynamic Alphabetic Overlay
import 'package:flutter/material.dart';
import 'dart:math' as math;
//NOTE: this widget is designed specifically to go OVER a slider
//the idea is that the slider takes you to certain positions and this should give you some idea of what those positions are
//In order to meet it's goals as best as possible we MUST
//1. fill the entirety of the totalHeight
// - otherwise the overlay won't match the slider and it won't be helpful
@b-cancel
b-cancel / EnsureVisibleWhenFocused
Last active June 28, 2019 00:49
FLUTTER => Ensures that "TextFormFields" are visible when focused in Flutter
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/services.dart';
import 'package:meta/meta.dart';
/// Note:
/// [*] some functions are async simply because that schedules them after something else that should happen first for everything to work properly
/// [*] you really should not use "ensureVisible" or "ensureErrorVisible" or "KeyboardListener" unless that field is already wrapped in "EnsureVisibleWhenFocused"
/// you will get very unusual behavior
@b-cancel
b-cancel / main.dart
Last active August 15, 2018 05:11
FLUTTER => Synchronous Operations Taking Up Time In An Asynchronous Function
import 'dart:async';
import 'package:flutter/material.dart';
/*
OUTPUT (one of many) NOTE: how far behind the Loose Timer is, is not predictable either
I/flutter (11433): Timer Restarted
I/flutter (11433): Timers Started
I/flutter (11433): Loose Timer Will Take 588 solid runs of 0:00:00.017000 and an extra run of 0:00:00.004000