Skip to content

Instantly share code, notes, and snippets.

View pagetronic's full-sized avatar
👮‍♂️
Restructuration !

Laurent PAGE pagetronic

👮‍♂️
Restructuration !
View GitHub Profile
import 'dart:async';
class Deferrer {
final int milliseconds;
Future? _next;
Deferrer(this.milliseconds);
void defer(void Function() toDo) {
Future? next_;
@pagetronic
pagetronic / aync.dart
Created November 1, 2023 10:54
FutureOrBuilder
import 'dart:async';
import 'package:flutter/widgets.dart';
class FutureOrBuilder<T> extends StatelessWidget {
final FutureOr<T?> future;
final Widget Function(BuildContext context, AsyncSnapshot<T?> snapshot) builder;
const FutureOrBuilder({super.key, required this.builder, required this.future});
@pagetronic
pagetronic / color_picker.dart
Last active October 24, 2023 11:04
Simple color picker for Flutter
import 'dart:math';
import 'dart:typed_data';
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
class ColorPicker extends StatefulWidget {
final ValueNotifier<Color?> color;
const ColorPicker({super.key, required this.color});
@pagetronic
pagetronic / events.dart
Last active October 6, 2023 13:09
Flutter Big SQLite && Big ListView with low memory consumption
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
import '../../map/utils/geojson.dart';
import 'objs.dart';
class Event extends DbObject {
String? asset;
int? surface;
int? regna;
int? event;
/*
* Copyright 2019 Laurent PAGE, Apache Licence 2.0
*/
package com.agroneo.grow.system.utils;
import android.text.Html;
import android.text.Spanned;
import androidx.annotation.NonNull;
/*
* Public Domain @ CPMGN
* Centre de Production Multimédia de la Gendarmerie Nationale
*/
package com.agroneo.grow.system.utils;
import android.os.Handler;
import android.os.Looper;
import java.util.concurrent.ExecutorService;
@pagetronic
pagetronic / ShortsModels.java
Created January 31, 2022 16:08
Intent modeler
package fr.gendarmerie.docpro.settings.shortcuts;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ShortcutInfo;
import android.graphics.drawable.Icon;
import androidx.annotation.Nullable;
import org.apache.commons.lang3.StringUtils;
@pagetronic
pagetronic / Aggregator.java
Created May 18, 2018 06:02
Aggregator exemples MongoDb
package live.page.base.db;
import com.mongodb.client.model.Accumulators;
import com.mongodb.client.model.BsonField;
import live.page.base.utils.Json;
import java.util.ArrayList;
import java.util.List;
public class Aggregator extends ArrayList<BsonField> {
@pagetronic
pagetronic / TropicosApi.java
Created May 16, 2018 16:36
Import Tropicos Mobot data from Tropicos service Api
package gaia.mobot;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.model.Accumulators;
import com.mongodb.client.model.Aggregates;
import com.mongodb.client.model.Filters;
@pagetronic
pagetronic / since.js
Created May 16, 2018 16:09
Javascript function to display date in "since" format
function since(from, level) {
var durationInit = sys.time - new Date(from).getTime();
var DAYS_PER_YEAR = 365.24225;
var M_PER_SECOND = 1000;
var M_PER_MINUTE = 60 * M_PER_SECOND;
var M_PER_HOUR = 60 * M_PER_MINUTE;
var M_PER_DAY = 24 * M_PER_HOUR;
var M_PER_WEEKS = 7 * M_PER_DAY;
var M_PER_MONTH = Math.floor((DAYS_PER_YEAR / 12) * M_PER_DAY);
var M_PER_YEAR = Math.floor(DAYS_PER_YEAR * M_PER_DAY);