Skip to content

Instantly share code, notes, and snippets.

View BramYeh's full-sized avatar

Bram Yeh BramYeh

View GitHub Profile
@BramYeh
BramYeh / CyclePagerAdapter.java
Created August 15, 2017 05:08
CyclePagerAdapter Example
public abstract class CyclePagerAdapter<T> extends PagerAdapter implements ViewPager.OnPageChangeListener {
protected List<T> mItemList = null;
private WeakReference<CycleViewPager> mViewPagerRef = null;
public CyclePagerAdapter(@NonNull List<T> list, @NonNull CycleViewPager cycleViewPager) {
if (list.size() <= 1) {
// needn't to support infinite cycle
mItemList = new ArrayList<>(list);
} else {
// refer: https://maniacdev.com/2013/08/tutorial-how-to-create-an-infinite-scrolling-uicollectionview
@BramYeh
BramYeh / 2.json
Last active November 28, 2017 12:28
Schema verison 2 for Migrate SQLiteOpenHelper and SQLiteDatabase to Room (with Testing)
{
"formatVersion": 1,
"database": {
"version": 2,
"identityHash": "99c7946712f93a4d723efbe10a500eb0",
"entities": [
{
"tableName": "Users",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`mId` INTEGER NOT NULL, `mUserName` TEXT, PRIMARY KEY(`mId`))",
"fields": [
@BramYeh
BramYeh / 1.json
Created November 28, 2017 12:13
Schema verison 1 for Migrate SQLiteOpenHelper and SQLiteDatabase to Room (with Testing)
{
"formatVersion": 1,
"database": {
"version": 1,
"identityHash": "99c7946712f93a4d723efbe10a500eb0",
"entities": [
{
"tableName": "users",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`userid` INTEGER NOT NULL, `username` TEXT, PRIMARY KEY(`userid`))",
"fields": [
@BramYeh
BramYeh / ViewPagerBottomSheetBehavior.java
Last active May 22, 2024 02:59
ViewPagerBottomSheetBehavior overrides package level methods and fields
package android.support.design.widget;
import android.support.v4.view.ViewCompat;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import java.lang.ref.WeakReference;
/**
@BramYeh
BramYeh / BottomSheetViewPagerListener.java
Last active December 15, 2020 11:35
extend BottomSheetViewPagerListener to update nest scrolling child
private static class BottomSheetViewPagerListener extends ViewPager.SimpleOnPageChangeListener {
private final ViewPager mViewPager;
private final ViewPagerBottomSheetBehavior<View> mBehavior;
private BottomSheetViewPagerListener(ViewPager viewPager, View bottomSheetParent) {
mViewPager = viewPager;
mBehavior = ViewPagerBottomSheetBehavior.from(bottomSheetParent);
}
@Override
@BramYeh
BramYeh / YouTubePlayerView.class
Last active August 9, 2018 14:12
Obfuscated Code of YouTubePlayerView at YoutubeAndroidPlayerApi-v1.2.2.jar
package com.google.android.youtube.player;
public final class YouTubePlayerView extends ViewGroup implements Provider {
private final YouTubePlayerView.b c;
private com.google.android.youtube.player.internal.b d;
private View f;
private Provider h;
private Bundle i;
....
@BramYeh
BramYeh / YouTubeBaseActivity.class
Last active August 9, 2018 14:13
Obfuscated Code of YouTubeBaseActivity at YoutubeAndroidPlayerApi-v1.2.2.jar
package com.google.android.youtube.player;
public class YouTubeBaseActivity extends Activity {
private YouTubeBaseActivity.a a;
private YouTubePlayerView b;
private Bundle d;
public YouTubeBaseActivity() {
}
@BramYeh
BramYeh / YouTubePlayerFragment.class
Last active August 9, 2018 14:14
Obfuscated Code of YouTubePlayerFragment at YoutubeAndroidPlayerApi-v1.2.2.jar
package com.google.android.youtube.player;
public class YouTubePlayerFragment extends Fragment implements Provider {
private final YouTubePlayerFragment.a a = new YouTubePlayerFragment.a((byte)0);
private Bundle b;
private YouTubePlayerView c;
private String d;
private OnInitializedListener e;
private boolean f;
@BramYeh
BramYeh / YouTubePlayerViewUtils.java
Last active August 10, 2018 06:06
Utils for YouTubePlayerView
package com.google.android.youtube.player;
public class YouTubePlayerViewUtils {
public static YouTubePlayerView createYouTubePlayerView(final Activity activity,
final YouTubePlayer.OnInitializedListener initializedListener,
final Bundle playerState) {
// create YoutubePlayerView by private-package constructor
final YouTubePlayerView view = new YouTubePlayerView(context, /*AttributeSet*/ null, /*defStyleAttr*/ 0,
new YouTubePlayerView.b() {
@BramYeh
BramYeh / YouTubeDemoFragment.java
Last active August 10, 2018 15:35
How to use YouTubePlayerViewUtils to create YouTubePlayerView into Fragment and handle its lifecycle.
import com.google.android.youtube.player.YouTubePlayer.OnInitializedListener;
public class YouTubeDemoFragment extends android.support.v4.app.Fragment {
private YouTubePlayerView mYouTubePlayerView;
private Bundle mYouTubePlayerState;
private OnInitializedListener mOnYoutubePlayerInitializedListener;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {