Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View kyze8439690's full-sized avatar
📱
Working

Yang Hui kyze8439690

📱
Working
View GitHub Profile
@kyze8439690
kyze8439690 / SettingFragment.kt
Created February 9, 2022 16:50
Get itemView in androidx.preference.PreferenceFragmentCompat
findPreference<Preference>(getString(R.string.setting_settings_key))
?.setOnPreferenceClickListener { pref ->
@SuppressLint("RestrictedApi")
if (listView.adapter is PreferenceGroupAdapter) {
val adapter = listView.adapter as PreferenceGroupAdapter
val position = adapter.getPreferenceAdapterPosition(pref)
if (position != RecyclerView.NO_POSITION) {
val itemView = listView.findViewHolderForAdapterPosition(position)?.itemView
if (itemView != null) {
// do something
@kyze8439690
kyze8439690 / build.gradle.kts
Created December 21, 2021 16:08
Protobuf gradle plugin with gradle kotlin dsl
import com.google.protobuf.gradle.*
plugins {
id("com.google.protobuf") version "0.8.18"
}
protobuf {
protoc {
artifact = "com.google.protobuf:protoc:3.19.1"
}
@kyze8439690
kyze8439690 / watch-fds.sh
Created April 16, 2021 09:32 — forked from jhansche/watch-fds.sh
Simple script to monitor the number open file descriptors for an Android application.
#!/bin/sh
# Usage: ./watch-fds.sh <application_id> [delay_secs = 5]
APP_ID=${1:?missing application id}
DELAY=$(( ${2:-5} ))
DEVICE_LIMIT=$(( $(adb shell ulimit -n) ))
WARN_THRESHOLD=$(( ${DEVICE_LIMIT} / 3 ))
echo "Will warn at ${WARN_THRESHOLD}"
@kyze8439690
kyze8439690 / NestedAppBarLayout.java
Created June 24, 2015 03:23
NestedAppBarLayout, make AppBarLayout scrollable in CoordinatorLayout, merge code from NestedScrollView, lots of thing to improve...
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.design.widget.AppBarLayout;
import android.support.v4.view.MotionEventCompat;
import android.support.v4.view.NestedScrollingChild;
import android.support.v4.view.NestedScrollingChildHelper;
import android.support.v4.view.VelocityTrackerCompat;
import android.support.v4.view.ViewCompat;
import android.support.v4.widget.ScrollerCompat;
import android.util.AttributeSet;
GetObjectClass -> DeleteLocalRef
FindClass -> DeleteLocalRef
NewString -> DeleteLocalRef
NewStringUTF -> DeleteLocalRef
NewObject -> DeleteLocalRef
NewBooleanArray -> DeleteLocalRef
NewByteArray -> DeleteLocalRef
NewCharArray -> DeleteLocalRef
NewShortArray -> DeleteLocalRef
NewIntArray -> DeleteLocalRef
@kyze8439690
kyze8439690 / ListViewOnScrollListener.java
Created December 26, 2013 07:34
OnScrollListener to detect scrollup and scrolldown in ListView.
public class ListViewOnScrollListener extends OnScrollListener{
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {}
private int lastVisibleItem = 0;
private int lastY = 0;
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
int top = 0;
@kyze8439690
kyze8439690 / CursorAdapter2
Created October 19, 2014 06:07
CursorAdapter used for RecyclerView
package me.yugy.cnbeta.widget;
import android.content.Context;
import android.database.ContentObserver;
import android.database.Cursor;
import android.database.DataSetObservable;
import android.database.DataSetObserver;
import android.os.Handler;
import android.support.v7.widget.RecyclerView;
import android.view.ViewGroup;
@kyze8439690
kyze8439690 / SelectorImageView.java
Created April 12, 2015 09:33
ImageView that will draw a selector on top of image, support normal drawable and the newest RippleDrawable.
import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.support.annotation.NonNull;
import android.util.AttributeSet;
import android.widget.ImageView;
import me.yugy.app.timeline.R;
@kyze8439690
kyze8439690 / build.gradle
Last active January 19, 2017 08:52
Use build.gradle to compile all jars in libs folder and ndk support
//compile all jar in libs folder
dependencies {
compile fileTree(dir: 'libs' , include: '*.jar')
}
//pack all so file into a jar and compile it
task nativeLibsToJar(
type: Zip,
description: 'create a jar archive of the native libs') {
destinationDir file('./libs')
baseName 'native-libs'
import android.support.v4.view.ViewPager;
import android.view.View;
public class StackPageTransformer implements ViewPager.PageTransformer {
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public void transformPage(View page, float position) {
final float alpha;
final float translationX;