diff --git a/app/build.gradle b/app/build.gradle index 424440c..c0a9be7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,7 +4,7 @@ plugins { id 'org.jetbrains.kotlin.plugin.compose' } -def blazeSDK = '1.11.6' +def blazeSDK = '1.13.2' android { namespace 'com.wscsports.android.blaze.sampleapp' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 998e717..a693e67 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,6 +10,7 @@ android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" + android:networkSecurityConfig="@xml/network_security_config" android:theme="@style/Theme.BlazeSDKAndroidSampleApp" tools:targetApi="31"> diff --git a/app/src/main/java/com/wscsports/android/blaze/sampleapp/Application.kt b/app/src/main/java/com/wscsports/android/blaze/sampleapp/Application.kt index b032780..5262a19 100644 --- a/app/src/main/java/com/wscsports/android/blaze/sampleapp/Application.kt +++ b/app/src/main/java/com/wscsports/android/blaze/sampleapp/Application.kt @@ -20,7 +20,7 @@ class Application : Application() { BlazeSDK.init( // Please provide valid API-KEY here - apiKey = "[API_KEY]", + apiKey = "739741c1465c4d0681b39e4b3e633730", cachingLevel = BlazeCachingLevel.DEFAULT, cachingSize = 512, sdkDelegate = Delegates.globalDelegate, diff --git a/app/src/main/java/com/wscsports/android/blaze/sampleapp/MainActivity.kt b/app/src/main/java/com/wscsports/android/blaze/sampleapp/MainActivity.kt index 77fd54a..5afb755 100644 --- a/app/src/main/java/com/wscsports/android/blaze/sampleapp/MainActivity.kt +++ b/app/src/main/java/com/wscsports/android/blaze/sampleapp/MainActivity.kt @@ -43,7 +43,7 @@ class MainActivity : AppCompatActivity() { private fun prepareMomentsContainer() { BlazeMomentsPlayerContainer.prepareMoments( containerId = "blaze-moments-container-unique-id", - dataSource = BlazeDataSourceType.Labels(BlazeWidgetLabel.singleLabel("moments")) + dataSource = BlazeDataSourceType.Labels(BlazeWidgetLabel.singleLabel("all-access")) ) } diff --git a/app/src/main/java/com/wscsports/android/blaze/sampleapp/moments/MomentsFragment.kt b/app/src/main/java/com/wscsports/android/blaze/sampleapp/moments/MomentsFragment.kt index 608a06d..289778e 100644 --- a/app/src/main/java/com/wscsports/android/blaze/sampleapp/moments/MomentsFragment.kt +++ b/app/src/main/java/com/wscsports/android/blaze/sampleapp/moments/MomentsFragment.kt @@ -15,6 +15,7 @@ import com.wscsports.android.blaze.sampleapp.core.Delegates import com.wscsports.android.blaze.sampleapp.databinding.FragmentMomentsBinding class MomentsFragment : Fragment(R.layout.fragment_moments) { + val MOMENT_ID = "all-access" private var binding: FragmentMomentsBinding? = null @@ -55,13 +56,13 @@ class MomentsFragment : Fragment(R.layout.fragment_moments) { momentsRowWidget.updateDataSource( dataSourceType = BlazeDataSourceType.Labels( - BlazeWidgetLabel.singleLabel("moments") + BlazeWidgetLabel.singleLabel(MOMENT_ID) ) ) momentsGridWidget.updateDataSource( dataSourceType = BlazeDataSourceType.Labels( - BlazeWidgetLabel.singleLabel("moments") + BlazeWidgetLabel.singleLabel(MOMENT_ID) ) ) @@ -73,7 +74,22 @@ class MomentsFragment : Fragment(R.layout.fragment_moments) { private fun initRowWidget() { // Using rectangles Preset - val momentsWidgetRowPreset = BlazeWidgetLayout.Presets.MomentsWidget.Row.verticalRectangles + val momentsWidgetRowPreset = BlazeWidgetLayout.Presets.MomentsWidget.Row.verticalRectangles.apply{ + widgetItemStyle.statusIndicator.let{ + it.unreadState.apply{ + textStyle.textColor = android.graphics.Color.GREEN + backgroundColor = android.graphics.Color.RED + isVisible = true + } + it.readState.apply{ + textStyle.textColor = android.graphics.Color.CYAN; + backgroundColor = android.graphics.Color.BLUE; + isVisible = true + } + } + } + + // Using default player Preset val momentsPlayerPreset = BlazeMomentsPlayerStyle.base() @@ -87,7 +103,7 @@ class MomentsFragment : Fragment(R.layout.fragment_moments) { binding?.momentsRowWidget?.initWidget( widgetLayout = momentsWidgetRowPreset, playerStyle = momentsPlayerPreset, - dataSource = BlazeDataSourceType.Labels(BlazeWidgetLabel.singleLabel("moments")), + dataSource = BlazeDataSourceType.Labels(BlazeWidgetLabel.singleLabel(MOMENT_ID)), widgetId = "moments-row", widgetDelegate = Delegates.widgetDelegate, shouldOrderWidgetByReadStatus = true @@ -96,7 +112,20 @@ class MomentsFragment : Fragment(R.layout.fragment_moments) { private fun initGridWidget() { // Using 2 columns Preset - val momentsWidgetGridPreset = BlazeWidgetLayout.Presets.MomentsWidget.Grid.twoColumnsVerticalRectangles + val momentsWidgetGridPreset = BlazeWidgetLayout.Presets.MomentsWidget.Grid.twoColumnsVerticalRectangles.apply{ + widgetItemStyle.statusIndicator.let{ + it.unreadState.apply{ + textStyle.textColor = android.graphics.Color.GREEN + backgroundColor = android.graphics.Color.RED + isVisible = true + } + it.readState.apply{ + textStyle.textColor = android.graphics.Color.CYAN; + backgroundColor = android.graphics.Color.BLUE; + isVisible = true + } + } + } // Using default player Preset val momentsPlayerPreset = BlazeMomentsPlayerStyle.base() @@ -117,7 +146,7 @@ class MomentsFragment : Fragment(R.layout.fragment_moments) { binding?.momentsGridWidget?.initWidget( widgetLayout = momentsWidgetGridPreset, playerStyle = momentsPlayerPreset, - dataSource = BlazeDataSourceType.Labels(BlazeWidgetLabel.singleLabel("moments")), + dataSource = BlazeDataSourceType.Labels(BlazeWidgetLabel.singleLabel(MOMENT_ID)), widgetId = "moments-grid", widgetDelegate = Delegates.widgetDelegate, shouldOrderWidgetByReadStatus = true diff --git a/app/src/main/java/com/wscsports/android/blaze/sampleapp/stories/StoriesFragment.kt b/app/src/main/java/com/wscsports/android/blaze/sampleapp/stories/StoriesFragment.kt index 418e48c..1c68f82 100644 --- a/app/src/main/java/com/wscsports/android/blaze/sampleapp/stories/StoriesFragment.kt +++ b/app/src/main/java/com/wscsports/android/blaze/sampleapp/stories/StoriesFragment.kt @@ -15,6 +15,7 @@ import com.wscsports.android.blaze.sampleapp.core.Delegates import com.wscsports.android.blaze.sampleapp.databinding.FragmentStoriesBinding class StoriesFragment : Fragment(R.layout.fragment_stories) { + private val STORY_ID = "game-stories" private var binding: FragmentStoriesBinding? = null @@ -55,13 +56,13 @@ class StoriesFragment : Fragment(R.layout.fragment_stories) { storyRowWidget.updateDataSource( dataSourceType = BlazeDataSourceType.Labels( - BlazeWidgetLabel.singleLabel("live-stories") + BlazeWidgetLabel.singleLabel(STORY_ID) ) ) storyGridWidget.updateDataSource( dataSourceType = BlazeDataSourceType.Labels( - BlazeWidgetLabel.singleLabel("top-stories") + BlazeWidgetLabel.singleLabel(STORY_ID) ) ) @@ -73,8 +74,20 @@ class StoriesFragment : Fragment(R.layout.fragment_stories) { private fun initRowWidget() { // Using default Preset - val storiesWidgetRowPreset = BlazeWidgetLayout.Presets.StoriesWidget.Row.circles - + val storiesWidgetRowPreset = BlazeWidgetLayout.Presets.StoriesWidget.Row.circles.apply{ + widgetItemStyle.statusIndicator.let{ + it.unreadState.apply{ + textStyle.textColor = android.graphics.Color.GREEN + backgroundColor = android.graphics.Color.RED + isVisible = true + } + it.readState.apply{ + textStyle.textColor = android.graphics.Color.CYAN; + backgroundColor = android.graphics.Color.BLUE; + isVisible = true + } + } + } // Using default player Preset val storiesPlayerPreset = BlazeStoryPlayerStyle.base() @@ -95,7 +108,7 @@ class StoriesFragment : Fragment(R.layout.fragment_stories) { binding?.storyRowWidget?.initWidget( widgetLayout = storiesWidgetRowPreset, playerStyle = storiesPlayerPreset, - dataSource = BlazeDataSourceType.Labels(BlazeWidgetLabel.singleLabel("live-stories")), + dataSource = BlazeDataSourceType.Labels(BlazeWidgetLabel.singleLabel(STORY_ID)), widgetId = "live-stories-row", widgetDelegate = Delegates.widgetDelegate, shouldOrderWidgetByReadStatus = true @@ -104,7 +117,20 @@ class StoriesFragment : Fragment(R.layout.fragment_stories) { private fun initGridWidget() { // Using default Preset - val storiesWidgetGridPreset = BlazeWidgetLayout.Presets.StoriesWidget.Grid.twoColumnsVerticalRectangles + val storiesWidgetGridPreset = BlazeWidgetLayout.Presets.StoriesWidget.Grid.twoColumnsVerticalRectangles.apply{ + widgetItemStyle.statusIndicator.let{ + it.unreadState.apply{ + textStyle.textColor = android.graphics.Color.GREEN + backgroundColor = android.graphics.Color.RED + isVisible = true + } + it.readState.apply{ + textStyle.textColor = android.graphics.Color.CYAN; + backgroundColor = android.graphics.Color.BLUE; + isVisible = true + } + } + } // Using default player Preset val storiesPlayerPreset = BlazeStoryPlayerStyle.base() @@ -127,7 +153,7 @@ class StoriesFragment : Fragment(R.layout.fragment_stories) { binding?.storyGridWidget?.initWidget( widgetLayout = storiesWidgetGridPreset, playerStyle = storiesPlayerPreset, - dataSource = BlazeDataSourceType.Labels(BlazeWidgetLabel.singleLabel("top-stories")), + dataSource = BlazeDataSourceType.Labels(BlazeWidgetLabel.singleLabel(STORY_ID)), widgetId = "top-stories-grid", widgetDelegate = Delegates.widgetDelegate, shouldOrderWidgetByReadStatus = true diff --git a/app/src/main/res/xml/network_security_config.xml b/app/src/main/res/xml/network_security_config.xml new file mode 100644 index 0000000..61fbfee --- /dev/null +++ b/app/src/main/res/xml/network_security_config.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + yinzcam.com + yi.nzc.am + amazonaws.com + + + + + + + \ No newline at end of file