Skip to content

Instantly share code, notes, and snippets.

Avatar
🏠
Working from home

Andrey Tkachenko falkolab

🏠
Working from home
  • Russian Federation
View GitHub Profile
@falkolab
falkolab / download.js
Created Jul 30, 2014
Download file by http with progress (NodeJS)
View download.js
function download(fileUrl, apiPath, callback) {
var url = require('url'),
http = require('http'),
p = url.parse(fileUrl),
timeout = 10000;
var file = fs.createWriteStream(apiPath);
var timeout_wrapper = function( req ) {
return function() {
@falkolab
falkolab / findViews.js
Created Sep 2, 2014
Find views in view hierarchy that corresponded specified properties. Titanium Alloy.
View findViews.js
var findViews = function(where, props, deep) {
var ctl = _.where(where.children, props);
if(deep){
return _.reduce(where.children, function(memo, view) {
return memo.concat(findViews(view, props, true));
}, ctl);
} else {
return ctl;
}
};
@falkolab
falkolab / alloy.js
Last active Aug 29, 2015
TIMOB-18128 monkey patch
View alloy.js
var patches = require('patches');
patches.fix_displayCaps();
@falkolab
falkolab / TelephonyInfoProxy.java
Last active Sep 11, 2017
Titanium android module proxy to check whether the phone is dual SIM
View TelephonyInfoProxy.java
// http://stackoverflow.com/a/17499889/506724
package com.falkolab.drunkmode.platform;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.reflect.Method;
import java.util.ArrayList;
import org.appcelerator.kroll.KrollProxy;
@falkolab
falkolab / base.js
Last active Sep 4, 2015
View proxy remain in memory after window closed. https://yadi.sk/i/jmtrY-I0isR3g
View base.js
exports.setMenuItemEnabled = function(menuItem, isEnabled) {
if(OS_ANDROID) {
if(Alloy.Globals.isAndroid3Plus && menuItem.actionView) {
menuItem.actionView.touchEnabled = isEnabled;
}
menuItem.setEnabled(isEnabled);
}
};
@falkolab
falkolab / index.js
Last active Sep 22, 2015
Memory leak test case for Titanium SDK
View index.js
function doClick(e) {
Alloy.createController("test").getView().open();
}
$.index.open();
View demo.js
var args = arguments[0] || {};var url = "https://api.github.com/search/repositories?q=pushed:>2015-09-01&order=desc";
var page = 1,
loading = false;
function init() {
$.activityIndicator.show();
load(function(items) {
$.list.setItems(transform(items));
$.activityIndicator.hide();
@falkolab
falkolab / alloy.js
Last active Oct 15, 2015
Android VERSION_CODES for Titanium SDK
View alloy.js
Alloy.Globals.Android = Alloy.Globals.Android || {};
_.extend(Alloy.Globals.Android.VERSION_CODES, {
CUR_DEVELOPMENT: 10000,
BASE: 1,
BASE_1_1: 2,
CUPCAKE: 3,
DONUT: 4,
ECLAIR: 5,
ECLAIR_0_1: 6,
ECLAIR_MR1: 7,
@falkolab
falkolab / fixmenu.js
Last active Feb 14, 2016
Fix for not displayed ActionBar menu in Titanium SDK
View fixmenu.js
// Not rendered menu fix
// Author: Andrey Tkachenko, falkolab
// Source: https://gist.github.com/falkolab/29ab007f4981f1d747f2
exports.fix = function(win) {
if (win.activity) {
win.addEventListener('open', function fixMenu(evt) {
evt.source.removeEventListener(evt.type, fixMenu);
var activity = evt.source.activity;
if (activity.onCreateOptionsMenu) {
activity.onCreateOptionsMenu = _.partial(function(func, e) {
@falkolab
falkolab / momentLang.js
Last active Feb 11, 2016
Set Moment locale to the Titanium SDK Ti.Locale.currentLocale
View momentLang.js
var moment = require('alloy/moment');
// First add languages that support your application
var languages = ['ru', 'nl', 'fr', 'fr-ca'];
// Full language list: https://github.com/appcelerator/alloy/tree/master/Alloy/builtins/moment/lang
// You must explicit way to require language files in order to compiler saw their.
require('alloy/moment/lang/ru');
require('alloy/moment/lang/nl');
require('alloy/moment/lang/fr');