Links

Video Feed Layouts

The initialization of the FwVideoFeedView

To initialize the FwVideoFeedView, the host app must call the init() function which accepts the ViewOptions instance as an optional parameter. The reason behind optional ViewOptions is the fact that you can also set the view option params in XML layout:
val videoFeedView = findViewById<FwVideoFeedView>(R.id.videoFeedView)
videoFeedView.init()

Note

The configuration passed via ViewOptions programmatically has higher priority and overrides the xml attributes.

Horizontal Layout

XML layout:
<com.firework.videofeed.FwVideoFeedView
android:id="@+id/videoFeedView"
android:layout_width="match_parent"
android:layout_height="400dp"
app:fw_feedLayout="horizontal"
app:fw_feedResource="discovery"
app:fw_feedTitleTextColor="@color/white"
app:fw_feedTitleTextNumberOfLines="1"
app:fw_feedTitleTextPadding="4dp"
app:fw_feedTitleTextSize="24sp"
app:fw_itemSpacing="12dp"
app:fw_showFeedTitle="true" />
Programmatically:
Kotlin DSL
Java
val viewOptions = viewOptions {
baseOptions {
feedResource(FeedResource.Discovery)
}
layoutOptions {
feedLayout(FeedLayout.HORIZONTAL)
}
}
val videoFeedView = findViewById<FwVideoFeedView>(R.id.videoFeedView)
videoFeedView.init(viewOptions)
BaseOption baseOption = new BaseOption.Builder()
.feedResource(FeedResource.Discovery)
.build();
LayoutOption layoutOption = new LayoutOption.Builder()
.feedLayout(FeedLayout.HORIZONTAL)
.build();
ViewOptions viewOptions = new ViewOptions.Builder()
.baseOption(baseOption)
.layoutOption(layoutOption)
.build();
FwVideoFeedView videoFeedView = findViewById<FwVideoFeedView>(R.id.videoFeedView);
videoFeedView.init(viewOptions);

Vertical Layout

XML layout:
<com.firework.videofeed.FwVideoFeedView
android:id="@+id/videoFeedView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:fw_feedLayout="vertical"
app:fw_feedResource="discovery"
app:fw_feedTitleTextColor="@color/white"
app:fw_feedTitleTextNumberOfLines="1"
app:fw_feedTitleTextPadding="4dp"
app:fw_feedTitleTextSize="24sp"
app:fw_itemSpacing="12dp"
app:fw_showFeedTitle="true" />
Programmatically:
Kotlin DSL
Java
val viewOptions = viewOptions {
baseOptions {
feedResource(FeedResource.Discovery)
}
layoutOptions {
feedLayout(FeedLayout.VERTICAL)
}
}
val videoFeedView = findViewById<FwVideoFeedView>(R.id.videoFeedView)
videoFeedView.init(viewOptions)
BaseOption baseOption = new BaseOption.Builder()
.feedResource(FeedResource.Discovery)
.build();
LayoutOption layoutOption = new LayoutOption.Builder()
.feedLayout(FeedLayout.VERTICAL)
.build();
ViewOptions viewOptions = new ViewOptions.Builder()
.baseOption(baseOption)
.layoutOption(layoutOption)
.build();
FwVideoFeedView videoFeedView = findViewById<FwVideoFeedView>(R.id.videoFeedView);
videoFeedView.init(viewOptions);

Grid Layout

XML layout:
<com.firework.videofeed.FwVideoFeedView
android:id="@+id/videoFeedView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:fw_feedLayout="grid"
app:fw_columns="3"
app:fw_feedResource="discovery"
app:fw_feedTitleTextColor="@color/white"
app:fw_feedTitleTextNumberOfLines="1"
app:fw_feedTitleTextPadding="4dp"
app:fw_feedTitleTextSize="24sp"
app:fw_itemSpacing="12dp"
app:fw_showFeedTitle="true" />
Programmatically:
Kotlin DSL
Java
val viewOptions = viewOptions {
baseOptions {
feedResource(FeedResource.Discovery)
}
layoutOptions {
feedLayout(FeedLayout.GRID)
columnCount(3)
}
}
val videoFeedView = findViewById<FwVideoFeedView>(R.id.videoFeedView)
videoFeedView.init(viewOptions)
BaseOption baseOption = new BaseOption.Builder()
.feedResource(FeedResource.Discovery)
.build();
LayoutOption layoutOption = new LayoutOption.Builder()
.feedLayout(FeedLayout.GRID)
.columnCount(3)
.build();
ViewOptions viewOptions = new ViewOptions.Builder()
.baseOption(baseOption)
.layoutOption(layoutOption)
.build();
FwVideoFeedView videoFeedView = findViewById<FwVideoFeedView>(R.id.videoFeedView);
videoFeedView.init(viewOptions);