anchor.diff:                  tag: widget.heroTag ?? UniqueKey(),
                   child: PosterChooser(item: widget.item),
                 ),
  +            ),
  +          ),
  +        ],
  +      ),
  +    );
  +  }
  +}
  +
  +class _TabController extends StatelessWidget {
  +  final int length;
  +  final String mediaType;
  +  final MediaItem item;
  +  final bool metadataFailed;
  +
  +  const _TabController({
  +    @required this.length,
  +    @required this.item,
  +    this.mediaType,
  +    this.metadataFailed = false,
  +    Key key,
  +  }) : super(key: key);
  +
  +  @override
  +  Widget build(BuildContext context) {
  +    return DefaultTabController(
  +      length: length,
  +      child: Column(
  +        children: [
  +          Padding(
  +            padding: const EdgeInsets.only(bottom: 8),
  +            child: TabBar(
  +              indicatorSize: TabBarIndicatorSize.label,
  +              tabs: _tabBuilder(
  +                mediaType: mediaType,
  +                metadataFailed: metadataFailed,
  +              ),
  +            ),
  +          ),
  +          Expanded(
  +            child: _TabContents(
  +              item: item,
  +              mediaType: mediaType,
  +              metadataFailed: metadataFailed,
               ),
             ),
           ],
  
positive.code:                           child: BlocBuilder<MetadataBloc, MetadataState>(
                              builder: (context, state) {
                                if (widget.item.mediaType != null) {
                                  return DefaultTabController(
                                    length: ['show', 'season', 'artist', 'album']
                                            .contains(widget.item.mediaType)
                                        ? 3
                                        : 2,
                                    child: Column(
                                      children: [
                                        Padding(
                                          padding:
                                              const EdgeInsets.only(bottom: 8),
                                          child: TabBar(
                                            indicatorSize:
                                                TabBarIndicatorSize.label,
                                            tabs: _tabBuilder(
                                              mediaType: widget.item.mediaType,
                                            ),
                                          ),
                                        ),
                                        Expanded(
                                          child: _TabContents(
                                            item: widget.item,
                                          ),
                                        ),
                                      ],
                                    ),
                                  );
                                } else {
                                  if (state is MetadataInProgress) {
                                    return DefaultTabController(
                                      length: 3,
                                      child: Column(
                                        children: [
                                          Padding(
                                            padding:
                                                const EdgeInsets.only(bottom: 8),
                                            child: TabBar(
                                              indicatorSize:
                                                  TabBarIndicatorSize.label,
                                              tabs: _tabBuilder(
                                                mediaType: widget.item.mediaType,
                                              ),
                                            ),
                                          ),
                                          Expanded(
                                            child: _TabContents(
                                              item: widget.item,
                                            ),
                                          ),
                                        ],
                                      ),
                                    );
                                  }
                                  if (state is MetadataFailure) {
                                    return DefaultTabController(
                                      length: 2,
                                      child: Column(
                                        children: [
                                          Padding(
                                            padding:
                                                const EdgeInsets.only(bottom: 8),
                                            child: TabBar(
                                              indicatorSize:
                                                  TabBarIndicatorSize.label,
                                              tabs: _tabBuilder(
                                                metadataFailed: true,
                                              ),
                                            ),
                                          ),
                                          Expanded(
                                            child: _TabContents(
                                              item: widget.item,
                                              metadataFailed: true,
                                            ),
                                          ),
                                        ],
                                      ),
                                    );
                                  }
                                  if (state is MetadataSuccess) {
                                    return DefaultTabController(
                                      length: [
                                        'show',
                                        'season',
  
negative.code:                                     ].contains(state.metadata.mediaType)
                                          ? 3
                                          : 2,
                                      item: widget.item,
                                      mediaType: state.metadata.mediaType,
                                    );
                                  }
                                }
  