diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml
index 11a95a8..c05c711 100644
--- a/.idea/assetWizardSettings.xml
+++ b/.idea/assetWizardSettings.xml
@@ -158,7 +158,7 @@
@@ -168,14 +168,8 @@
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 961fd3f..1565ab4 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,9 @@
+
\ No newline at end of file
diff --git a/app/src/main/java/com/hossainkhan/android/demo/data/LayoutDataStore.kt b/app/src/main/java/com/hossainkhan/android/demo/data/LayoutDataStore.kt
index 69505eb..9b1dfd7 100644
--- a/app/src/main/java/com/hossainkhan/android/demo/data/LayoutDataStore.kt
+++ b/app/src/main/java/com/hossainkhan/android/demo/data/LayoutDataStore.kt
@@ -176,7 +176,28 @@ class LayoutDataStore @Inject constructor(
layoutResourceId = R.layout.demo_movie_details,
thumbnailResourceId = R.drawable.spider_verse_poster,
title = "Demo: Movie Details",
- description = "A demo screen containing movie details. Rotate device to see constraints in action.")
+ description = "A demo screen containing movie details. Rotate device to see constraints in action."),
+
+ /*
+ * This is a demo of TED Talk video playback screen.
+ * ___________________
+ * )=| | /
+ * | TED Talks |====||
+ * | |====||
+ * | |+ \
+ * -------------------
+ * (--)
+ * * *
+ * * *
+ * * *
+ * * *
+ * * *
+ */
+ LayoutInformation(
+ layoutResourceId = R.layout.demo_ted_talk_playback,
+ thumbnailResourceId = R.drawable.ic_ted_talks_logo,
+ title = "Demo: TED Talk Preview Screen",
+ description = "A demo screen containing TED talks video playback screen with different controls.")
/*
diff --git a/app/src/main/java/com/hossainkhan/android/demo/di/ActivityBindingModule.kt b/app/src/main/java/com/hossainkhan/android/demo/di/ActivityBindingModule.kt
index ad96348..7b364f9 100644
--- a/app/src/main/java/com/hossainkhan/android/demo/di/ActivityBindingModule.kt
+++ b/app/src/main/java/com/hossainkhan/android/demo/di/ActivityBindingModule.kt
@@ -17,6 +17,7 @@
package com.hossainkhan.android.demo.di
import com.hossainkhan.android.demo.ui.functionaldemo.MovieDetailsPreviewActivity
+import com.hossainkhan.android.demo.ui.functionaldemo.TedTalkPlaybackActivity
import com.hossainkhan.android.demo.ui.layoutpreview.LayoutChainStyleActivity
import com.hossainkhan.android.demo.ui.layoutpreview.LayoutDimensionMinMaxActivity
import com.hossainkhan.android.demo.ui.layoutpreview.LayoutGuidelineBarrierActivity
@@ -27,9 +28,9 @@ import dagger.Module
import dagger.android.ContributesAndroidInjector
/**
- * We want Dagger.Android to create a Subcomponent which has a parent Component of whichever
- * module ActivityBindingModule is on, in our case that will be [DemoApplicationComponent].
- *
+ * We want Dagger.Android to create a Subcomponent which has a parent Component of whichever
+ * module ActivityBindingModule is on, in our case that will be [DemoApplicationComponent].
+ *
* The beautiful part about this setup is that you never need to tell [DemoApplicationComponent]
* that it is going to have all these subcomponents nor do you need to tell these subcomponents
* that [DemoApplicationComponent] exists.
@@ -78,4 +79,8 @@ abstract class ActivityBindingModule {
@ActivityScope
@ContributesAndroidInjector
abstract fun layoutMovieDetailsPreviewActivity(): MovieDetailsPreviewActivity
+
+ @ActivityScope
+ @ContributesAndroidInjector
+ abstract fun layoutTedTalkPlaybackPreviewActivity(): TedTalkPlaybackActivity
}
\ No newline at end of file
diff --git a/app/src/main/java/com/hossainkhan/android/demo/ui/browse/LayoutBrowseViewModel.kt b/app/src/main/java/com/hossainkhan/android/demo/ui/browse/LayoutBrowseViewModel.kt
index 1c96090..ae96860 100644
--- a/app/src/main/java/com/hossainkhan/android/demo/ui/browse/LayoutBrowseViewModel.kt
+++ b/app/src/main/java/com/hossainkhan/android/demo/ui/browse/LayoutBrowseViewModel.kt
@@ -23,6 +23,7 @@ import com.hossainkhan.android.demo.R
import com.hossainkhan.android.demo.data.AppDataStore
import com.hossainkhan.android.demo.data.LayoutInformation
import com.hossainkhan.android.demo.ui.functionaldemo.MovieDetailsPreviewActivity
+import com.hossainkhan.android.demo.ui.functionaldemo.TedTalkPlaybackActivity
import com.hossainkhan.android.demo.ui.layoutpreview.LayoutChainStyleActivity
import com.hossainkhan.android.demo.ui.layoutpreview.LayoutDimensionMinMaxActivity
import com.hossainkhan.android.demo.ui.layoutpreview.LayoutGuidelineBarrierActivity
@@ -73,6 +74,9 @@ class LayoutBrowseViewModel(
R.layout.demo_movie_details -> {
browseNavigator.loadLayoutPreview(MovieDetailsPreviewActivity::class.java, layoutResId)
}
+ R.layout.demo_ted_talk_playback -> {
+ browseNavigator.loadLayoutPreview(TedTalkPlaybackActivity::class.java, layoutResId)
+ }
else -> {
// By default it loads the preview activity with the layout requested.
browseNavigator.loadLayoutPreview(layoutResId)
diff --git a/app/src/main/java/com/hossainkhan/android/demo/ui/functionaldemo/TedTalkPlaybackActivity.kt b/app/src/main/java/com/hossainkhan/android/demo/ui/functionaldemo/TedTalkPlaybackActivity.kt
new file mode 100644
index 0000000..ca52a4b
--- /dev/null
+++ b/app/src/main/java/com/hossainkhan/android/demo/ui/functionaldemo/TedTalkPlaybackActivity.kt
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2019 Hossain Khan
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.hossainkhan.android.demo.ui.functionaldemo
+
+import android.os.Bundle
+import android.view.View
+import android.widget.ImageButton
+import android.widget.Toast
+import com.hossainkhan.android.demo.R
+import com.hossainkhan.android.demo.ui.layoutpreview.LayoutPreviewBaseActivity
+
+class TedTalkPlaybackActivity : LayoutPreviewBaseActivity() {
+ private val generalClickListener = View.OnClickListener { view ->
+ Toast.makeText(view.context, "You tapped on ${view}", Toast.LENGTH_SHORT).show()
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ // Apply generic toast listener to touchable views so that user gets feedback when they tap it
+ applyToastListener(
+ findViewById(R.id.action_prev_track),
+ findViewById(R.id.action_rewind15),
+ findViewById(R.id.action_play_pause),
+ findViewById(R.id.action_forward15),
+ findViewById(R.id.action_next_track)
+ )
+ }
+
+ private fun applyToastListener(vararg views: View) {
+ views.forEach {
+ it.setOnClickListener(generalClickListener)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable-xxxhdpi/thumb_roger_hanlon.png b/app/src/main/res/drawable-xxxhdpi/thumb_roger_hanlon.png
new file mode 100644
index 0000000..14d0b24
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/thumb_roger_hanlon.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/thumb_ted_talk.png b/app/src/main/res/drawable-xxxhdpi/thumb_ted_talk.png
new file mode 100644
index 0000000..7128efa
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/thumb_ted_talk.png differ
diff --git a/app/src/main/res/drawable/circle.xml b/app/src/main/res/drawable/circle.xml
new file mode 100644
index 0000000..6503aea
--- /dev/null
+++ b/app/src/main/res/drawable/circle.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_forward_30_black_42dp.xml b/app/src/main/res/drawable/ic_forward_30_black_42dp.xml
new file mode 100644
index 0000000..218837a
--- /dev/null
+++ b/app/src/main/res/drawable/ic_forward_30_black_42dp.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_play_arrow_black_42dp.xml b/app/src/main/res/drawable/ic_play_arrow_black_42dp.xml
new file mode 100644
index 0000000..c927ebe
--- /dev/null
+++ b/app/src/main/res/drawable/ic_play_arrow_black_42dp.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_replay_30_black_42dp.xml b/app/src/main/res/drawable/ic_replay_30_black_42dp.xml
new file mode 100644
index 0000000..9cf95d9
--- /dev/null
+++ b/app/src/main/res/drawable/ic_replay_30_black_42dp.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_skip_next_black_42dp.xml b/app/src/main/res/drawable/ic_skip_next_black_42dp.xml
new file mode 100644
index 0000000..8e848bb
--- /dev/null
+++ b/app/src/main/res/drawable/ic_skip_next_black_42dp.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_skip_previous_black_42dp.xml b/app/src/main/res/drawable/ic_skip_previous_black_42dp.xml
new file mode 100644
index 0000000..ecae220
--- /dev/null
+++ b/app/src/main/res/drawable/ic_skip_previous_black_42dp.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_ted_talks_logo.xml b/app/src/main/res/drawable/ic_ted_talks_logo.xml
new file mode 100644
index 0000000..9934c9d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_ted_talks_logo.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
diff --git a/app/src/main/res/layout/demo_ted_talk_playback.xml b/app/src/main/res/layout/demo_ted_talk_playback.xml
new file mode 100644
index 0000000..0badc45
--- /dev/null
+++ b/app/src/main/res/layout/demo_ted_talk_playback.xml
@@ -0,0 +1,339 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index ce306d7..0b87ef8 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -28,6 +28,7 @@
40dp
80dp
120dp
+ 220dp
- 1
\ No newline at end of file