anchor.diff:      },
     );
   }
  +
  +class _TerminateSessionMediaInfo extends StatelessWidget {
  +  final ActivityItem activity;
  +
  +  const _TerminateSessionMediaInfo({
  +    Key key,
  +    @required this.activity,
  +  }) : super(key: key);
  +
  +  @override
  +  Widget build(BuildContext context) {
  +    String row1;
  +    String row2;
  +    String row3;
  +
  +    switch (activity.mediaType) {
  +      case ('movie'):
  +        if (activity.title != null) {
  +          row1 = activity.title;
  +        }
  +        if (activity.year != null) {
  +          row2 = activity.year.toString();
  +        }
  +        break;
  +      case ('episode'):
  +        if (activity.grandparentTitle != null) {
  +          row1 = activity.grandparentTitle;
  +        }
  +        if (activity.title != null) {
  +          row2 = activity.title;
  +        }
  +        if (activity.parentMediaIndex != null && activity.mediaIndex != null) {
  +          row3 = 'S${activity.parentMediaIndex} • E${activity.mediaIndex}';
  +        } else if (activity.originallyAvailableAt != null &&
  +            activity.live == 1) {
  +          row3 = activity.originallyAvailableAt;
  +        }
  +        break;
  +      case ('track'):
  +        if (activity.title != null) {
  +          row1 = activity.title;
  +        }
  +        if (activity.grandparentTitle != null) {
  +          row2 = activity.grandparentTitle;
  +        }
  +        if (activity.parentTitle != null) {
  +          row3 = activity.parentTitle;
  +        }
  +        break;
  +      case ('clip'):
  +        if (activity.title != null) {
  +          row1 = activity.title;
  +        }
  +        if (activity.subType != null) {
  +          row2 = '(${StringFormatHelper.capitalize(activity.subType)})';
  +        }
  +        break;
  +    }
  +
  +    return Padding(
  +      padding: const EdgeInsets.only(bottom: 6),
  +      child: Column(
  +        children: <Widget>[
  +          Text(
  +            activity.friendlyName,
  +            style: TextStyle(
  +              color: Theme.of(context).accentColor,
  +            ),
  +          ),
  +          if (row1 != null)
  +            Padding(
  +              padding: const EdgeInsets.symmetric(vertical: 2),
  +              child: Text(
  +                row1,
  +                style: TextStyle(
  +                  color: Theme.of(context).accentColor,
  +                ),
  +              ),
  +            ),
  +          if (row2 != null)
  +            Padding(
  +              padding: const EdgeInsets.symmetric(vertical: 2),
  +              child: Text(
  +                row2,
  +                style: TextStyle(
  +                  color: Theme.of(context).accentColor,
  +                ),
  +              ),
  +            ),
  +          if (row3 != null)
  +            Padding(
  +              padding: const EdgeInsets.symmetric(vertical: 2),
  +              child: Text(
  +                row3,
  +                style: TextStyle(
  +                  color: Theme.of(context).accentColor,
  +                ),
  +              ),
  +            ),
  +        ],
  +      ),
  +    );
  +  }
  +}
  
positive.code:                             final confirm = await _showTerminateSessionDialog(
                                context: context,
                                controller: _terminateMessageController,
                              );
                              if (confirm) {
                                terminateSessionBloc.add(
  
negative.code:     builder: (context) {
        return AlertDialog(
          title: Text('Are you sure you want to terminate this stream?'),
          content: IntrinsicHeight(
            child: Column(
              children: <Widget>[
                _TerminateSessionMediaInfo(activity: activity),
                TextFormField(
                  controller: controller,
                  maxLines: 2,
                  decoration: InputDecoration(
                      helperText: 'Terminate Message',
                      hintText: 'The server owner has ended the stream.'),
                ),
              ],
            ),
          ),
          actions: <Widget>[
            FlatButton(
  