Skip to content

Instantly share code, notes, and snippets.

View massimilianochiodi's full-sized avatar

Massimiliano Chiodi massimilianochiodi

View GitHub Profile
@massimilianochiodi
massimilianochiodi / gist:e9aab7e51d35b580c9475fde29ff9357
Created November 13, 2022 10:38
Warn user for available new version
import Foundation
import UIKit
enum VersionError: Error {
case invalidBundleInfo, invalidResponse
}
class LookupResult: Decodable {
var results: [AppInfo]
@massimilianochiodi
massimilianochiodi / FlipTextPanel Flutter
Created August 21, 2022 05:49
Per creare pannelli del tipo orario dei treni
library fliptextpanel_flutter;
import 'package:flutter/material.dart';
import 'dart:async';
import 'dart:math' as math;
///
/// Signature for a function that creates a widget for a given index, e.g., in a
/// list.
///
typedef Widget IndexedItemBuilder(BuildContext, int);
@massimilianochiodi
massimilianochiodi / getunsignedinteger32.swift
Created May 5, 2022 07:22
Get unsigned integer32 from 4 byte array
fileprivate func getUnsignedInteger32(bigEndian: Bool = true, data: Data) -> UInt32 {
let returnvalue: UInt32 = data.withUnsafeBytes { rawPointer in
rawPointer.bindMemory(to: UInt32.self).baseAddress!.pointee
}
return bigEndian ? returnvalue.bigEndian : returnvalue.littleEndian
}
@massimilianochiodi
massimilianochiodi / createchunkofdata.swift
Created May 5, 2022 07:21
Create chunck of data array swift 5
/// divide data in chunk di 16 bytes
///
/// - Parameters:
/// - forData: Dati di imput
/// - Returns: array di bytes nel formato data
fileprivate func createChunks(forData: Data) -> [Data] {
var offset = 0
let chunksize = 16
let dataleft = forData.count
@massimilianochiodi
massimilianochiodi / calculateencriptioncounter.swift
Created May 5, 2022 07:20
Increment Encription Counter Swift ( Little Endian )
public func CtrIncrement() {
let key: Data = Data(bytes: &self.EncryptionCounter, count: MemoryLayout<UInt32>.size) // 1215590466
let keyrev: [UInt8] = key.bytes.reversed()
var value: Int = byte_to_int(dato: Data(keyrev))
value = value + 1
let keyrevdata: Data = Data(bytes: &value, count: MemoryLayout<UInt32>.size)
let keyrevrev: [UInt8] = keyrevdata.bytes.reversed()
let valore: Int = byte_to_int(dato: Data(keyrevrev))
self.EncryptionCounter = valore
}
@massimilianochiodi
massimilianochiodi / calculatecrt.swift
Created May 5, 2022 07:18
Calculate CRC CCITT Swift 5
/// Calcola il crc16 ( CRC-CCITT ) di un array di bytes nella rappresentazione UInt8
///
/// - Parameters:
/// - input: Array di UInt8
/// - Returns: valore in due bytes in formato UInt16
public func getCRC(input : [UInt8]) -> UInt16 {
if input.count == 0 { return 0 }
var crc: UInt16 = 0xFFFF; // initial value
let polynomial: UInt16 = 0x1021; // 0001 0000 0010 0001 (0, 5, 12)
@massimilianochiodi
massimilianochiodi / shakelistener.java
Created April 15, 2022 09:39
Shake listener (java)
public class ShakeListener implements SensorEventListener {
private static final float SHAKE_THRESHOLD_GRAVITY = 2.7F;
private static final int SHAKE_SLOP_TIME_MS = 500;
private static final int SHAKE_COUNT_RESET_TIME_MS = 3000;
private OnShakeListener mListener;
private long mShakeTimestamp;
private int mShakeCount;
@massimilianochiodi
massimilianochiodi / writejson.java
Created April 15, 2022 09:38
Write json string on file
private void scrivojson(String json, String nome) {
try {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(context.openFileOutput(String.format("%s.json",nome), Context.MODE_PRIVATE));
outputStreamWriter.write(json);
outputStreamWriter.close();
} catch (Exception e) {
Log.d(TAG,"Non ho scritto il file");
}
}
@massimilianochiodi
massimilianochiodi / foregroundchechtask.java
Created April 15, 2022 09:37
Check if app is in foreground or not (java)
class ForegroundCheckTask extends AsyncTask<Context, Void, Boolean> {
@Override
protected Boolean doInBackground(Context... params) {
final Context context = params[0];
return isAppOnForeground(context);
}
/**
* Ritorna true se l'app è in background
@massimilianochiodi
massimilianochiodi / getdword.java
Created April 15, 2022 09:34
Get dword 16bit from integer(signed) array (java)
public String word16bit(int[] listabit) {
StringBuilder result = new StringBuilder();
for (int value : listabit) {
int b2 = value & 0xff;
int b1 = (value >> 8) & 0xff;
if (b2 == 0) {
return result.toString();
} else {
result.append( (char) b2 );