Skip to content

Instantly share code, notes, and snippets.

View vaibhavpandeyvpz's full-sized avatar
🐢
I may be slow to respond.

Vaibhav Pandey vaibhavpandeyvpz

🐢
I may be slow to respond.
View GitHub Profile
@vaibhavpandeyvpz
vaibhavpandeyvpz / TimelineView.java
Last active March 19, 2022 19:15
Class that display video frames in a timeline-like manner. To be used at later point in time when developing a video trimmer.
package com.vaibhavpandey.trimview;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.media.MediaMetadataRetriever;
import android.media.ThumbnailUtils;
import android.net.Uri;
import android.os.Build;
@vaibhavpandeyvpz
vaibhavpandeyvpz / GifBuilder.kt
Last active July 26, 2020 14:56
Create animated GIFs using square/gifencoder
import android.graphics.Bitmap
import com.squareup.gifencoder.*
import java.io.File
import java.io.OutputStream
import java.util.concurrent.TimeUnit
class GifBuilder(file: File,
width: Int,
height: Int,
private val delay: Long = 250,
@vaibhavpandeyvpz
vaibhavpandeyvpz / ResumableTimer.kt
Created July 14, 2020 12:28
Countdown timer for Android, support pause & resume functions.
import android.os.Handler
import java.util.concurrent.TimeUnit
class ResumableTimer(
private var duration: Long, // in milliseconds
private var delay: Long = TimeUnit.SECONDS.toMillis(1), // in milliseconds
private val listener: OnCountDownListener?
) {
import android.annotation.SuppressLint
import android.content.Context
import android.util.AttributeSet
import android.view.MotionEvent
import com.otaliastudios.cameraview.CameraView
import kotlin.math.abs
class SwipeableCameraView(context: Context, attributes: AttributeSet) : CameraView(context, attributes) {
import java.io.IOException
import java.io.OutputStream
class WavHeader (
private val format: Int = 0,
private val channels: Int = 0,
private val hertz: Int = 0,
private val bitrate: Int = 0,
private val size: Int = 0
) {
@vaibhavpandeyvpz
vaibhavpandeyvpz / ContentUriUtil.kt
Created July 12, 2020 02:12
Get file path from Uri when using Intent.ACTION_GET_CONTENT
package the.example.app
import android.content.ContentUris
import android.content.Context
import android.database.Cursor
import android.net.Uri
import android.os.Build
import android.os.Environment
import android.provider.DocumentsContract
import android.provider.MediaStore
@vaibhavpandeyvpz
vaibhavpandeyvpz / encrypt.cpp
Last active May 31, 2023 05:28
AES-256-CBC encryption in Qt with OpenSLL
#include <QCryptographicHash>
#include <QRandomGenerator>
#include <QStringList>
#include <openssl/conf.h>
#include <openssl/evp.h>
#include "SecurityUtil.h"
static char *bytes2chara(const QByteArray &bytes) {
auto size = bytes.size() + 1;
auto data = new char[size];
@vaibhavpandeyvpz
vaibhavpandeyvpz / facebook.py
Created April 19, 2020 05:02
Use Facebook's Graph API with Python.
import facebook
import os
import requests
APP_ID = os.getenv('FACEBOOK_APP_ID')
APP_SECRET = os.getenv('FACEBOOK_APP_SECRET')
LLT_ENDPOINT = 'https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=%s&client_secret' \
'=%s&fb_exchange_token=%s '
@vaibhavpandeyvpz
vaibhavpandeyvpz / snippet.cpp
Last active April 10, 2020 10:16
Search for emails in QString (Qt5)
QRegularExpression emails(R"([A-Z0-9a-z._-]{1,}@(\w+)\.(\w+)(?:\.(\w+))?)");
auto matches = emails.globalMatch(html);
while (matches.hasNext()) {
auto match = matches.next();
if (match.hasMatch()) {
auto email = match.captured(0);
}
}
@vaibhavpandeyvpz
vaibhavpandeyvpz / CMakeLists.txt
Created April 8, 2020 10:15
CMake configuration for Gumbo parser.
set(GUMBO_SOURCES
gumbo-parser/src/attribute.h
gumbo-parser/src/attribute.c
gumbo-parser/src/char_ref.h
gumbo-parser/src/char_ref.c
gumbo-parser/src/error.h
gumbo-parser/src/error.c
gumbo-parser/src/gumbo.h
gumbo-parser/src/insertion_mode.h
gumbo-parser/src/parser.h