|
|
@ -215,9 +215,9 @@ class ChatInputRow extends StatelessWidget {
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
if (controller.matrix!.isMultiAccount &&
|
|
|
|
if (Matrix.of(context).isMultiAccount &&
|
|
|
|
controller.matrix!.hasComplexBundles &&
|
|
|
|
Matrix.of(context).hasComplexBundles &&
|
|
|
|
controller.matrix!.currentBundle!.length > 1)
|
|
|
|
Matrix.of(context).currentBundle!.length > 1)
|
|
|
|
Container(
|
|
|
|
Container(
|
|
|
|
height: 56,
|
|
|
|
height: 56,
|
|
|
|
alignment: Alignment.center,
|
|
|
|
alignment: Alignment.center,
|
|
|
@ -279,8 +279,9 @@ class _ChatAccountPicker extends StatelessWidget {
|
|
|
|
|
|
|
|
|
|
|
|
const _ChatAccountPicker(this.controller, {Key? key}) : super(key: key);
|
|
|
|
const _ChatAccountPicker(this.controller, {Key? key}) : super(key: key);
|
|
|
|
|
|
|
|
|
|
|
|
void _popupMenuButtonSelected(String mxid) {
|
|
|
|
void _popupMenuButtonSelected(String mxid, BuildContext context) {
|
|
|
|
final client = controller.matrix!.currentBundle!
|
|
|
|
final client = Matrix.of(context)
|
|
|
|
|
|
|
|
.currentBundle!
|
|
|
|
.firstWhere((cl) => cl!.userID == mxid, orElse: () => null);
|
|
|
|
.firstWhere((cl) => cl!.userID == mxid, orElse: () => null);
|
|
|
|
if (client == null) {
|
|
|
|
if (client == null) {
|
|
|
|
Logs().w('Attempted to switch to a non-existing client $mxid');
|
|
|
|
Logs().w('Attempted to switch to a non-existing client $mxid');
|
|
|
@ -291,14 +292,13 @@ class _ChatAccountPicker extends StatelessWidget {
|
|
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
controller.matrix ??= Matrix.of(context);
|
|
|
|
|
|
|
|
final clients = controller.currentRoomBundle;
|
|
|
|
final clients = controller.currentRoomBundle;
|
|
|
|
return Padding(
|
|
|
|
return Padding(
|
|
|
|
padding: const EdgeInsets.all(8.0),
|
|
|
|
padding: const EdgeInsets.all(8.0),
|
|
|
|
child: FutureBuilder<Profile>(
|
|
|
|
child: FutureBuilder<Profile>(
|
|
|
|
future: controller.sendingClient!.fetchOwnProfile(),
|
|
|
|
future: controller.sendingClient!.fetchOwnProfile(),
|
|
|
|
builder: (context, snapshot) => PopupMenuButton<String>(
|
|
|
|
builder: (context, snapshot) => PopupMenuButton<String>(
|
|
|
|
onSelected: _popupMenuButtonSelected,
|
|
|
|
onSelected: (mxid) => _popupMenuButtonSelected(mxid, context),
|
|
|
|
itemBuilder: (BuildContext context) => clients
|
|
|
|
itemBuilder: (BuildContext context) => clients
|
|
|
|
.map(
|
|
|
|
.map(
|
|
|
|
(client) => PopupMenuItem<String>(
|
|
|
|
(client) => PopupMenuItem<String>(
|
|
|
@ -322,7 +322,7 @@ class _ChatAccountPicker extends StatelessWidget {
|
|
|
|
child: Avatar(
|
|
|
|
child: Avatar(
|
|
|
|
mxContent: snapshot.data?.avatarUrl,
|
|
|
|
mxContent: snapshot.data?.avatarUrl,
|
|
|
|
name: snapshot.data?.displayName ??
|
|
|
|
name: snapshot.data?.displayName ??
|
|
|
|
controller.matrix!.client.userID!.localpart,
|
|
|
|
Matrix.of(context).client.userID!.localpart,
|
|
|
|
size: 20,
|
|
|
|
size: 20,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|