Skip to content

Instantly share code, notes, and snippets.

View BramYeh's full-sized avatar

Bram Yeh BramYeh

View GitHub Profile
@BramYeh
BramYeh / ItemPage.kt
Created July 12, 2020 06:54
ItemPage extends basic Page
class ItemPage : Page() {
override fun verify(): Page {
Espresso.onView(withId(R.id.productitem_product_name))
.check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)))
return this
}
fun withTitle(keyword: String): ItemPage {
Espresso.onView(withId(R.id.productitem_product_name))
@BramYeh
BramYeh / Page.kt
Created July 12, 2020 06:52
Basic Page Class
import android.os.SystemClock
import androidx.test.espresso.Espresso
open class Page {
inline fun <reified T : Page> on(): T {
// reference: https://blog.kotlin-academy.com/creating-a-random-instance-of-any-class-in-kotlin-b6168655b64a
val page = T::class.constructors.first().call()
page.verify()
return page
package com.bram.demo.test.models.gson
import com.google.gson.GsonBuilder
import org.junit.Assert
import org.junit.Test
class GsonKotlinTest {
// Data Class + some property has default value = default value doesn't work.
data class DataClass1(
@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) {
@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 / 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 / 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 / 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 / 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 / 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;
/**