Skip to content

Instantly share code, notes, and snippets.

Avatar
:octocat:
Try full stack.

PasserYi kylin17

:octocat:
Try full stack.
View GitHub Profile
@kylin17
kylin17 / stopFinalizerWatchdogDaemon
Created Aug 13, 2018
Android stop 'FinalizerWatchdogDaemon' use reflection to avoid 'finalize timed out after 10 seconds' exception.
View stopFinalizerWatchdogDaemon
@WorkerThread
public static void stopFinalizerWatchdogDaemon() {
try {
Class<?> watchdogDaemonClazz = Class.forName("java.lang.Daemons$FinalizerWatchdogDaemon");
Class<?> daemonClazz = Class.forName("java.lang.Daemons$Daemon");
Field instanceField = watchdogDaemonClazz.getDeclaredField("INSTANCE");
instanceField.setAccessible(true);
Object watchdogDaemonInstance = instanceField.get(null);
Method daemonIsRunningMethod = daemonClazz.getDeclaredMethod("isRunning");
daemonIsRunningMethod.setAccessible(true);
@kylin17
kylin17 / readme.md
Last active Dec 13, 2017
remove any “Installed by enterprise policy” Chrome Extension
View readme.md

In administrator mode

  • Step 1:
rd /S /Q "%WinDir%\System32\GroupPolicyUsers"

Press Enter.

  • Step 2:
rd /S /Q "%WinDir%\System32\GroupPolicy"
View gist:149fa8135ae87d36fa2f442d05b499b6
1. For paddingStart, Severity: Errors.
because we also have paddingLeft, so for old platform, the paddingStart is ignored; so api < 17, the lint tool
will show error about paddingStart, and we do not currently support RTL, and paddingStart work the same way as
paddingLeft, so i think it really about the NewApi. Because the lint tool just check whether paddingStart is
compatible with api < 17, and I check that when api == 16, it works fine and does not crash. I have checked all
the lint error list, i do not find other lint checks might solve this. So I think just add
tools:ignore="NewApi" will be fine.
2. the warnings in build.gradle showing that some of the tools are using the old version, do i need change
these to newest, or just suppress lint to ignore NewerVersionAvailable.
View EndlessRecyclerOnScrollListener.java
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
public abstract class EndlessRecyclerOnScrollListener extends RecyclerView.OnScrollListener {
public static String TAG = EndlessRecyclerOnScrollListener.class.getSimpleName();
private int previousTotal = 0; // The total number of items in the dataset after the last load
private boolean loading = true; // True if we are still waiting for the last set of data to load.
private int visibleThreshold = 5; // The minimum amount of items to have below your current scroll position before loading more.
int firstVisibleItem, visibleItemCount, totalItemCount;
View Android enlarge touch area
usage:
<com.lnikkila.extendedtouchview.ExtendedTouchView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:touchHeight="48dp">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
You can’t perform that action at this time.