Skip to content

Instantly share code, notes, and snippets.

View azizbekian's full-sized avatar

Andranik Azizbekian azizbekian

  • Yerevan, Armenia
View GitHub Profile
@handstandsam
handstandsam / kill-hung-emulators.sh
Last active August 18, 2017 07:37
Kill Hung Emulators on CI (Mac & Linux) that have been running more than 1 hour
#!/bin/bash
# Will find all emulator processes that have been running longer than an hour, and kill -9 them.
SEARCH_TERM="qemu-system"
echo "$(ps eaxo etime,pid,comm | grep ${SEARCH_TERM})" | while read line
do
if [ "${#line}" -gt 0 ]; then
echo "Found Emulator -> $line"
COLUMNS=()
for word in $line
@vinaysshenoy
vinaysshenoy / MatrixViewTestFinal.java
Created August 6, 2017 16:27
Final MatrixTestViewTest
package com.vinaysshenoy.multitouch.widget.matrixtest;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.RectF;
import android.support.annotation.Nullable;
@vestrel00
vestrel00 / ButterknifeBindingExample.java
Last active June 14, 2018 03:46
B: 2 - Butterknife binding in onViewCreated vs onViewStateRestored
/**
* Logs lifecycle events and provides subclasses a method to bind the views, bindViews().
*
* Note that the bindViews() uses Butterknife to bind the views. However, the views
* can also be bound without using Butterknife. Using Butterknife or not
* plays no part in this demonstration.
*/
// BaseFragment.java
public abstract class BaseFragment extends Fragment {
@adroitandroid
adroitandroid / BaseBottomNavActivity.java
Created January 17, 2017 19:21
Custom bottom navigation bar
abstract class BaseBottomNavActivity extends BaseActivity { // you can directly extend AppCompatActivity
@Override
@CallSuper
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initOnCreate(savedInstanceState);
getBottomNavigationBar().setOnTabSelectionListener(
new CustomBottomNavigationBar.OnTabSelectionListener() {
@Override
@android10
android10 / build.gradle
Last active August 29, 2023 14:31
Compile and launch android app from the command line.
task deployDebug(type: Exec, dependsOn: 'app:installDebug') {
def rootDir = project.rootDir
def localProperties = new File(rootDir, "local.properties")
if (localProperties.exists()) {
Properties properties = new Properties()
localProperties.withInputStream {
inputStream -> properties.load(inputStream)
}
def sdkDir = properties.getProperty('sdk.dir')
def adb = "$sdkDir/platform-tools/adb"
@Arinerron
Arinerron / permissions.txt
Last active April 14, 2025 21:41
A list of all Android permissions...
android.permission.ACCESS_ALL_DOWNLOADS
android.permission.ACCESS_BLUETOOTH_SHARE
android.permission.ACCESS_CACHE_FILESYSTEM
android.permission.ACCESS_CHECKIN_PROPERTIES
android.permission.ACCESS_CONTENT_PROVIDERS_EXTERNALLY
android.permission.ACCESS_DOWNLOAD_MANAGER
android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED
android.permission.ACCESS_DRM_CERTIFICATES
android.permission.ACCESS_EPHEMERAL_APPS
android.permission.ACCESS_FM_RADIO
@fangzhzh
fangzhzh / gradle_task_grant_permission
Last active October 3, 2017 06:46
gradle task to grant permission to device
android.applicationVariants.all { variant ->
def applicationId = variant.applicationId
def adb = androidadbExe. as String
def variantName = variant.name.capitalize()
def grantPermissionTask = task.create("create${variantName}Permissions") << {
"${adb} devices".execute().text.eachLine {
if(it.endsWith("device")){
def device = it.split()[0]
println "Granting permissions on devices ${device}"
"${adb} -s ${devices} shell pm grant ${applicationId} android.permission.ACCESS_FINE_LOCATION".execute()
@swankjesse
swankjesse / HostSelectionInterceptor.java
Last active May 17, 2024 19:11
This OkHttp application interceptor will replace the destination hostname in the request URL.
import java.io.IOException;
import okhttp3.HttpUrl;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
/** An interceptor that allows runtime changes to the URL hostname. */
public final class HostSelectionInterceptor implements Interceptor {
private volatile String host;
@tunjos
tunjos / copyReleaseApkToCustomDir.gradle
Last active December 8, 2021 03:10
Copy release apk to custom directory
def publish = project.tasks.create("copyReleaseApkToCustomDir")
publish.description "Copies release apk to custom directory"
android.applicationVariants.all { variant ->
if (variant.buildType.name.equals("release")) {
variant.outputs.each { output ->
if ( output.outputFile != null && output.outputFile.name.endsWith('.apk')) {
def task = project.tasks.create("copyAndRename${variant.name}Apk", Copy)
def outputFile = output.outputFile
println "Creating " + rootProject.name + "-${versionName}.apk" + " from " + project.name + "-${variant.name}.apk"
@Ghedeon
Ghedeon / filter_devices.groovy
Created July 22, 2015 12:40
Android Gradle (1.3.0-beta4). Filter multiple devices
project.afterEvaluate {
project.("connectedDebugAndroidTest").doFirst {
def originalProvider = deviceProvider
deviceProvider = [
getName : { originalProvider.getName() },
init : { originalProvider.init() },
terminate : { originalProvider.terminate() },
getDevices : { filterDevices(originalProvider.getDevices()) },
getTimeoutInMs: { originalProvider.getTimeoutInMs() },
isConfigured : { originalProvider.isConfigured() },