Skip to content

Instantly share code, notes, and snippets.

View dukess's full-sized avatar

Serguei S. Dukachev dukess

View GitHub Profile
@dukess
dukess / AvoidSpinnerDropdownFocus.java
Created August 2, 2021 10:29 — forked from kakajika/AvoidSpinnerDropdownFocus.java
Avoid taking window focus by Android Spinner's Dropdown to keep setSystemUiVisibility flags (such as Immersive Mode).
import android.widget.ListPopupWindow;
import android.widget.PopupWindow;
import android.widget.Spinner;
public static void avoidSpinnerDropdownFocus(Spinner spinner) {
try {
Field listPopupField = Spinner.class.getDeclaredField("mPopup");
listPopupField.setAccessible(true);
Object listPopup = listPopupField.get(spinner);
if (listPopup instanceof ListPopupWindow) {
@dukess
dukess / YUV_NV21toI420.java
Created March 15, 2021 14:01
Convert YUV NV21 to I420
/** Convert NV21 (YYYYYYYYY:VUVU) to I420 (YYYYYYYY:UU:VV)
Convert I420 (YYYYYYYY:UU:VV) to NV21 (YYYYYYYYY:VUVU) can be get here: https://gist.github.com/pnemonic78/2d8411ed6b0bd6c71b651800bc97eb8e
*/
public byte[] NV21toI420(final byte[] input, byte[] output, final int width, final int height) {
if (output == null) {
output = new byte[input.length];
}
final int size = width * height;
final int quarter = size / 4;
final int v0 = size + quarter;