|
|
|
@ -117,7 +117,7 @@ class ChatBubble extends StatelessWidget {
|
|
|
|
),
|
|
|
|
),
|
|
|
|
).paddingOnly(bottom: 4),
|
|
|
|
).paddingOnly(bottom: 4),
|
|
|
|
if (fileTypeID == 13)
|
|
|
|
if (fileTypeID == 13)
|
|
|
|
currentWaveBubble(context).onPress(() {
|
|
|
|
currentWaveBubble(context, cItem).onPress(() {
|
|
|
|
data.playVoice(context, data: cItem);
|
|
|
|
data.playVoice(context, data: cItem);
|
|
|
|
})
|
|
|
|
})
|
|
|
|
else
|
|
|
|
else
|
|
|
|
@ -220,7 +220,7 @@ class ChatBubble extends StatelessWidget {
|
|
|
|
),
|
|
|
|
),
|
|
|
|
).paddingOnly(bottom: 4),
|
|
|
|
).paddingOnly(bottom: 4),
|
|
|
|
if (fileTypeID == 13)
|
|
|
|
if (fileTypeID == 13)
|
|
|
|
recipetWaveBubble(context).onPress(() {
|
|
|
|
recipetWaveBubble(context, cItem).onPress(() {
|
|
|
|
data.playVoice(context, data: cItem);
|
|
|
|
data.playVoice(context, data: cItem);
|
|
|
|
})
|
|
|
|
})
|
|
|
|
else
|
|
|
|
else
|
|
|
|
@ -288,7 +288,8 @@ class ChatBubble extends StatelessWidget {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Widget currentWaveBubble(BuildContext context) {
|
|
|
|
Widget currentWaveBubble(BuildContext context, SingleUserChatModel data) {
|
|
|
|
|
|
|
|
PlayerController cunController = PlayerController();
|
|
|
|
return Container(
|
|
|
|
return Container(
|
|
|
|
margin: const EdgeInsets.all(0),
|
|
|
|
margin: const EdgeInsets.all(0),
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
@ -315,7 +316,7 @@ class ChatBubble extends StatelessWidget {
|
|
|
|
).paddingAll(10),
|
|
|
|
).paddingAll(10),
|
|
|
|
AudioFileWaveforms(
|
|
|
|
AudioFileWaveforms(
|
|
|
|
size: Size(MediaQuery.of(context).size.width * 0.3, 10),
|
|
|
|
size: Size(MediaQuery.of(context).size.width * 0.3, 10),
|
|
|
|
playerController: data.playerController,
|
|
|
|
playerController: data.voiceController!,
|
|
|
|
padding: EdgeInsets.zero,
|
|
|
|
padding: EdgeInsets.zero,
|
|
|
|
margin: EdgeInsets.zero,
|
|
|
|
margin: EdgeInsets.zero,
|
|
|
|
enableSeekGesture: true,
|
|
|
|
enableSeekGesture: true,
|
|
|
|
@ -336,7 +337,8 @@ class ChatBubble extends StatelessWidget {
|
|
|
|
).circle(5);
|
|
|
|
).circle(5);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Widget recipetWaveBubble(BuildContext context) {
|
|
|
|
Widget recipetWaveBubble(BuildContext context, SingleUserChatModel data) {
|
|
|
|
|
|
|
|
PlayerController repController = PlayerController();
|
|
|
|
return Container(
|
|
|
|
return Container(
|
|
|
|
margin: const EdgeInsets.all(0),
|
|
|
|
margin: const EdgeInsets.all(0),
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
@ -363,7 +365,7 @@ class ChatBubble extends StatelessWidget {
|
|
|
|
).paddingAll(10),
|
|
|
|
).paddingAll(10),
|
|
|
|
AudioFileWaveforms(
|
|
|
|
AudioFileWaveforms(
|
|
|
|
size: Size(MediaQuery.of(context).size.width * 0.3, 10),
|
|
|
|
size: Size(MediaQuery.of(context).size.width * 0.3, 10),
|
|
|
|
playerController: data.playerController,
|
|
|
|
playerController: data.voiceController!,
|
|
|
|
padding: EdgeInsets.zero,
|
|
|
|
padding: EdgeInsets.zero,
|
|
|
|
margin: EdgeInsets.zero,
|
|
|
|
margin: EdgeInsets.zero,
|
|
|
|
enableSeekGesture: true,
|
|
|
|
enableSeekGesture: true,
|
|
|
|
|