Skip to content

Instantly share code, notes, and snippets.

View Hesamedin's full-sized avatar
🏠
Busy Busy Busy

Hesam Hesamedin

🏠
Busy Busy Busy
View GitHub Profile
@Hesamedin
Hesamedin / android.md
Last active August 29, 2015 14:25 — forked from geekygecko/android.md
Android Cheat Sheet

Android Cheat Sheet

Developer tips

Record a video of your app

Developer options -> Check show touches
adb shell screenrecord /sdcard/video.mp4
adb pull /sdcard/video.mp4
@Hesamedin
Hesamedin / Comment.java
Last active March 23, 2016 00:02
Factory Design pattern for Storing Object in DB
public class Comment {
long commentId;
String message;
// Other setter/getter methodes
...
}
@Hesamedin
Hesamedin / .bash_profile
Last active August 4, 2017 20:52
Colorful Commandline for Git
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
@Hesamedin
Hesamedin / App.js
Created August 9, 2017 18:34
React-native project setup
import React, { Component } from 'react';
import { Text, View } from "react-native";
import { Provider } from 'react-redux';
import { createStore } from 'redux';
import reducer from './reducers/'
class App extends Component {
render() {
return (
<Provider store={createStore(reducer)}>
@Hesamedin
Hesamedin / hmac_generator.kt
Last active April 1, 2019 16:32
HMAC Generator based on path(URL), expiry time and reuse times
package hmac
import org.apache.commons.codec.binary.Base64
import java.net.URLEncoder
import java.time.LocalDateTime
import java.time.OffsetDateTime
import javax.crypto.Mac
import javax.crypto.spec.SecretKeySpec
import java.util.HashMap
@Hesamedin
Hesamedin / build.gradle
Last active November 10, 2019 13:15
KTLint integration
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'io.fabric'
apply from: '../gradle/afsTasks.gradle' <========
android {
compileSdkVersion 28
Scaffold(
appBar: AppBar(...),
body: WillPopScope(
onWillPop: onBackClick,
child: CustomScrollView(
slivers: <Widget>[
SliverToBoxAdapter(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Future<void> storePushNotificationToken(String userId, String token) async {
final batch = _firestore.batch();
final pushTokenRef = _firestore.collection(FirestoreCollection.pushToken.path).doc(userId);
batch.set(
pushTokenRef,
{'userId': userId, 'token': token},
SetOptions(merge: true),
);
[
{
"origin": ["*"],
"method": ["GET"],
"maxAgeSeconds": 3600
}
]
import 'dart:convert';
import 'dart:html';
Future<void> downloadFile(String fileName, String pathToFile) async {
if (pathToFile.isEmpty) return;
if (!kIsWeb) return;
Uint8List? data = await FirebaseStorage.instance.ref(pathToFile).getData();
if (data == null) return;
String encodedData = base64Encode(data);