Skip to content

Instantly share code, notes, and snippets.

@Kyun-J
Kyun-J / quickSort.js
Last active January 26, 2020 13:24
quickSort.js
const quickSort = (array, left = 0, right = array.length -1) => {
if (left >= right) {
return array;
}
const mid = Math.floor((left + right) / 2);
const pivot = array[mid];
let newLeft = left;
let newRignt = right;
while (newLeft <= newRignt) {
while (array[newLeft] < pivot) {
@Kyun-J
Kyun-J / PromiseSequentialExecution.js
Last active February 11, 2020 04:36
Promise sequential execution
promises.reduce(async (prevProm, postProm) => {
await prevProm;
await postProm;
}, Promise.resolve());
@Kyun-J
Kyun-J / ScaleCheckView.java
Last active January 8, 2020 09:14
ScaleCheckView
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
public class ScaleCheckView extends View {
private ScaleGestureDetector scaleGestureDetector;
@Kyun-J
Kyun-J / AppStateCheck.java
Last active December 20, 2019 09:53
AndroidAppStateCheck
import android.app.Activity;
import android.app.Application;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public class App extends Application {
private static App application;
@Kyun-J
Kyun-J / DetectJailBreak.swift
Created December 11, 2019 02:26
DetectJailBreak
import Foundation
import UIKit
class DetectJailBreak {
func hasJailbreak() -> Bool {
guard let cydiaUrlScheme = NSURL(string: "cydia://package/com.example.package") else { return false }
if UIApplication.shared.canOpenURL(cydiaUrlScheme as URL) {
return true
@Kyun-J
Kyun-J / WebViewResourceMappingWebClient.java
Created December 10, 2019 11:10
WebViewResourceMappingWebClient
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
String resourceUrl = request.getUrl().toString();
String fileExtension = WebViewResourceMappingHelper.getInstance().getFileExt(resourceUrl);
if(WebViewResourceMappingHelper.getInstance().getOverridableExtensions().contains(fileExtension)){
String encoding = "UTF-8";
String assetName = WebViewResourceMappingHelper.getInstance().getLocalAssetPath(resourceUrl);
if (!assetName.equals("")) {
String mimeType = WebViewResourceMappingHelper.getInstance().getMimeType(fileExtension);
if (!mimeType.equals("")) {
@Kyun-J
Kyun-J / WebViewDisableSelection.java
Created December 10, 2019 10:43
WebViewDisableSelection
webview.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return true;
}
});
webview.setLongClickable(false);
@Kyun-J
Kyun-J / DisableSelection.swift
Created December 10, 2019 10:18
wkwebview disable selection
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
let javascriptStyle = "var css = '*{-webkit-touch-callout:none;-webkit-user-select:none}'; var head = document.head || document.getElementsByTagName('head')[0]; var style = document.createElement('style'); style.type = 'text/css'; style.appendChild(document.createTextNode(css)); head.appendChild(style);"
webView.evaluateJavaScript(javascriptStyle, completionHandler: nil)
}
@Kyun-J
Kyun-J / App.java
Created December 9, 2019 03:21
detectAndroidRooted
import android.app.Application;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
public class App extends Application {
@Override
@Kyun-J
Kyun-J / KeyboardAraweLayout.java
Created December 9, 2019 03:17
KeyboardAraweLayout
import android.content.Context;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.widget.RelativeLayout;
public class KeyboardAwareLayout extends Viewgroup {
public KeyboardListener keyboardListener = null;
private Rect rect = new Rect();