Skip to content

Instantly share code, notes, and snippets.

View prateek54's full-sized avatar
👨‍💻

Prateek Batra prateek54

👨‍💻
View GitHub Profile
@prateek54
prateek54 / Null Safety a battle in Kotlin 1
Last active September 17, 2020 08:05
Null Safety a battle in Kotlin 1
if(avengers!= null && avenger.haveInfinityStones()) {
destroyThanos(avengers);
}
@prateek54
prateek54 / Null Safety a battle in Kotlin 2
Last active September 17, 2020 08:12
Null Safety a battle in Kotlin 2
var timeStone: String = "Dr Strange"
timeStone = null
//Here thanos(null value) will destroy our timeStone then we can't use gaunet (compilation error)
@prateek54
prateek54 / Null Safety a battle in Kotlin 3
Last active September 17, 2020 08:11
Null Safety a battle in Kotlin 3
var timeStone: String? = "Dr Strange"
timeStone = null
@prateek54
prateek54 / Null Safety a battle in Kotlin 4
Created September 17, 2020 08:06
Null Safety a battle in Kotlin 4
if(avengers?.haveInfinityStones()){
 destroyThanos(avengers)
}
Or
if(avengers!!.haveInfinityStones()){
 destroyThanos(avengers)
}
@prateek54
prateek54 / Null Safety a battle in Kotlin 5
Last active September 17, 2020 08:13
Null Safety a battle in Kotlin 5
val result = nullableVariable?.someMethodCall() ?: fallbackIfNullMethodCall()
@prateek54
prateek54 / ExoPlayerDemo.xml
Created September 27, 2020 21:10
ExoPlayerDemo
<com.google.android.exoplayer2.ui.StyledPlayerView
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:id="@+id/player_exo"
 app:use_controller="true" />
@prateek54
prateek54 / ExoPlayerDemo.xml
Created September 27, 2020 21:12
ExoPlayerDemo
private fun initPlayer() {
player = SimpleExoPlayer.Builder(this).build()
player?.playWhenReady = true
player_exo.player = player
val defaultHttpDataSourceFactory = DefaultHttpDataSourceFactory("ExoPlayerDemoUserAgent")
val mediaItem = MediaItem.fromUri("uri")
val mediaSource =
HlsMediaSource.Factory(defaultHttpDataSourceFactory).createMediaSource(mediaItem)
player?.setMediaSource(mediaSource)
player?.seekTo(playbackPosition)
@prateek54
prateek54 / ExoPlayerDemo.xml
Last active September 27, 2020 21:18
ExoPlayerDemo
override fun onStart() {
super.onStart()
if (Util.SDK_INT >= 24) {
initPlayer()
}
}
override fun onStop() {
super.onStop()
if (Util.SDK_INT >= 24) {
releasePlayer()
@prateek54
prateek54 / ExoPlayerDemo.xml
Last active September 27, 2020 21:20
ExoPlayerDemo
app:show_buffering="when_playing"
app:use_sensor_rotation="true|false"
app:show_subtitle_button="true|false"
app:show_fastforward_button="true|false"
app:show_rewind_button="true|false"
app:fastforward_increment="15000"//in ms i.e 15s
app:rewind_increment="15000"
app:show_next_button="true|false"
app:show_previous_button="true|false"
app:resize_mode="fill|fit|zoom|fixed_height|fixed_width"
@prateek54
prateek54 / MediaExtension.kt
Last active December 29, 2021 21:45
Kotlin Extension Function to Generate Quality List
fun DefaultTrackSelector.generateQualityList(): ArrayList<Pair<String, TrackSelectionOverrides.Builder>> {
//Render Track -> TRACK GROUPS (Track Array)(Video,Audio,Text)->Track
val trackOverrideList = ArrayList<Pair<String, TrackSelectionOverrides.Builder>>()
val renderTrack = this.currentMappedTrackInfo
val renderCount = renderTrack?.rendererCount ?: 0
for (rendererIndex in 0 until renderCount) {
if (isSupportedFormat(renderTrack, rendererIndex)) {
val trackGroupType = renderTrack?.getRendererType(rendererIndex)
val trackGroups = renderTrack?.getTrackGroups(rendererIndex)