Advertisement Image/ Video Module

merge-requests/69/head
Aamir Muhammad 3 years ago
parent ed15ce92b6
commit db3e1427c5

@ -1,7 +1,7 @@
class ApiConsts { class ApiConsts {
//static String baseUrl = "http://10.200.204.20:2801/"; // Local server //static String baseUrl = "http://10.200.204.20:2801/"; // Local server
//static String baseUrl = "https://uat.hmgwebservices.com"; // UAT server static String baseUrl = "https://uat.hmgwebservices.com"; // UAT server
static String baseUrl = "https://hmgwebservices.com"; // Live server //static String baseUrl = "https://hmgwebservices.com"; // Live server
static String baseUrlServices = baseUrl + "/Services/"; // server static String baseUrlServices = baseUrl + "/Services/"; // server
// static String baseUrlServices = "https://api.cssynapses.com/tangheem/"; // Live server // static String baseUrlServices = "https://api.cssynapses.com/tangheem/"; // Live server
static String utilitiesRest = baseUrlServices + "Utilities.svc/REST/"; static String utilitiesRest = baseUrlServices + "Utilities.svc/REST/";

@ -73,7 +73,7 @@ class ChatProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
); );
searchedChats = pChatHistory; searchedChats = pChatHistory;
isLoading = false; isLoading = false;
await getUserChatHistoryNotDeliveredAsync( await invokeUserChatHistoryNotDeliveredAsync(
userId: int.parse( userId: int.parse(
AppState().chatDetails!.response!.id.toString(), AppState().chatDetails!.response!.id.toString(),
), ),
@ -81,13 +81,8 @@ class ChatProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
notifyListeners(); notifyListeners();
} }
Future getUserChatHistoryNotDeliveredAsync({required int userId}) async { Future invokeUserChatHistoryNotDeliveredAsync({required int userId}) async {
// try {
await hubConnection.invoke("GetUserChatHistoryNotDeliveredAsync", args: [userId]); await hubConnection.invoke("GetUserChatHistoryNotDeliveredAsync", args: [userId]);
// } finally {
// hubConnection.off("OnGetUserChatHistoryNotDeliveredAsync", method: chatNotDelivered);
// }
return ""; return "";
} }
@ -137,26 +132,28 @@ class ChatProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
chatCID = uuid.v4(); chatCID = uuid.v4();
} }
void markRead(List<SingleUserChatModel> data, reciverID) { void markRead(List<SingleUserChatModel> data, int receiverID) {
for (SingleUserChatModel element in data!) { if (data != null) {
if (element.isSeen != null) { for (SingleUserChatModel element in data!) {
if (!element.isSeen!) { if (element.isSeen != null) {
dynamic data = [ if (!element.isSeen!) {
{ dynamic data = [
"userChatHistoryId": element.userChatHistoryId, {
"TargetUserId": element.targetUserId, "userChatHistoryId": element.userChatHistoryId,
"isDelivered": true, "TargetUserId": element.targetUserId,
"isSeen": true, "isDelivered": true,
} "isSeen": true,
]; }
updateUserChatHistoryStatusAsync(data); ];
updateUserChatHistoryStatusAsync(data);
}
} }
} }
} for (ChatUser element in searchedChats!) {
for (ChatUser element in searchedChats!) { if (element.id == receiverID) {
if (element.id == reciverID) { element.unreadMessageCount = 0;
element.unreadMessageCount = 0; notifyListeners();
notifyListeners(); }
} }
} }
} }

@ -132,12 +132,12 @@ class ChatBubble extends StatelessWidget {
color: isCurrentUser ? MyColors.grey41Color.withOpacity(.5) : MyColors.white.withOpacity(0.7), color: isCurrentUser ? MyColors.grey41Color.withOpacity(.5) : MyColors.white.withOpacity(0.7),
), ),
if (isCurrentUser) 5.width, if (isCurrentUser) 5.width,
// if (isCurrentUser) if (isCurrentUser)
// Icon( Icon(
// isDelivered ? Icons.done_all : Icons.done_all, isDelivered ? Icons.done_all : Icons.done_all,
// color: isSeen ? MyColors.textMixColor : MyColors.grey9DColor, color: isSeen ? MyColors.textMixColor : MyColors.grey9DColor,
// size: 14, size: 14,
// ), ),
], ],
), ),
], ],

@ -1,10 +1,12 @@
import 'dart:async'; import 'dart:async';
import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_countdown_timer/flutter_countdown_timer.dart'; import 'package:flutter_countdown_timer/flutter_countdown_timer.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:mohem_flutter_app/api/dashboard_api_client.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart'; import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/colors.dart'; import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/classes/consts.dart'; import 'package:mohem_flutter_app/classes/consts.dart';
@ -17,6 +19,7 @@ import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/main.dart'; import 'package:mohem_flutter_app/main.dart';
import 'package:mohem_flutter_app/models/offers_and_discounts/get_offers_list.dart'; import 'package:mohem_flutter_app/models/offers_and_discounts/get_offers_list.dart';
import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart'; import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart';
import 'package:mohem_flutter_app/ui/landing/itg/its_add_screen_video_image.dart';
import 'package:mohem_flutter_app/ui/landing/widget/app_drawer.dart'; import 'package:mohem_flutter_app/ui/landing/widget/app_drawer.dart';
import 'package:mohem_flutter_app/ui/landing/widget/menus_widget.dart'; import 'package:mohem_flutter_app/ui/landing/widget/menus_widget.dart';
import 'package:mohem_flutter_app/ui/landing/widget/services_widget.dart'; import 'package:mohem_flutter_app/ui/landing/widget/services_widget.dart';
@ -53,9 +56,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
super.initState(); super.initState();
scheduleMicrotask(() { scheduleMicrotask(() {
data = Provider.of<DashboardProviderModel>(context, listen: false); data = Provider.of<DashboardProviderModel>(context, listen: false);
data.getUserAutoLoginToken().whenComplete(() { _bHubCon();
buildHubConnection();
});
_onRefresh(); _onRefresh();
}); });
} }
@ -71,6 +72,12 @@ class _DashboardScreenState extends State<DashboardScreen> {
hubConnection.stop(); hubConnection.stop();
} }
void _bHubCon() {
data.getUserAutoLoginToken().whenComplete(() {
buildHubConnection();
});
}
void _onRefresh() async { void _onRefresh() async {
data.initProvider(); data.initProvider();
// data.getITGNotification().then((value) { // data.getITGNotification().then((value) {
@ -93,44 +100,41 @@ class _DashboardScreenState extends State<DashboardScreen> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
key: _scaffoldState, key: _scaffoldState,
// appBar: AppBar( appBar: AppBar(
// actions: [ actions: [
// IconButton( IconButton(
// onPressed: () { onPressed: () {
// data.getITGNotification().then((value) { data.getITGNotification().then((value) {
// print("--------------------detail_1-----------------"); if (value!.result!.data != null) {
// if (value!.result!.data != null) { if (value.result!.data!.notificationType == "Survey") {
// print(value.result!.data!.notificationMasterId); Navigator.pushNamed(context, AppRoutes.survey, arguments: value.result!.data);
// print(value.result!.data!.notificationType); } else {
// if (value.result!.data!.notificationType == "Survey") { DashboardApiClient().getAdvertisementDetail(value.result!.data!.notificationMasterId ?? "").then(
// Navigator.pushNamed(context, AppRoutes.survey, arguments: value.result!.data); (value) {
// } else { if (value!.mohemmItgResponseItem!.statusCode == 200) {
// DashboardApiClient().getAdvertisementDetail(value.result!.data!.notificationMasterId ?? "").then( if (value.mohemmItgResponseItem!.result!.data != null) {
// (value) { String? rFile = value.mohemmItgResponseItem!.result!.data!.advertisement!.viewAttachFileColl!.first.base64String;
// if (value!.mohemmItgResponseItem!.statusCode == 200) { String? rFileExt = value.mohemmItgResponseItem!.result!.data!.advertisement!.viewAttachFileColl!.first.fileName;
// if (value.mohemmItgResponseItem!.result!.data != null) { Navigator.push(
// String? image64 = value.mohemmItgResponseItem!.result!.data!.advertisement!.viewAttachFileColl!.first.base64String; context,
// print(image64); MaterialPageRoute(
// var sp = image64!.split("base64,"); builder: (BuildContext context) => ITGAdsScreen(
// Navigator.push( encodedBytes: rFile!,
// context, fileExtenshion: rFileExt!,
// MaterialPageRoute( ),
// builder: (context) => MovieTheaterBody( ),
// encodedBytes: sp[1], );
// ), }
// ), }
// ); },
// } );
// } }
// }, }
// ); });
// } },
// } icon: Icon(Icons.add))
// }); ],
// }, ),
// icon: Icon(Icons.add))
// ],
// ),
body: Column( body: Column(
children: [ children: [
Row( Row(

@ -0,0 +1,138 @@
import 'dart:convert';
import 'dart:io' as Io;
import 'dart:io';
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:path_provider/path_provider.dart';
import 'package:video_player/video_player.dart';
class ITGAdsScreen extends StatefulWidget {
final String encodedBytes;
final String fileExtension;
const ITGAdsScreen({required this.encodedBytes, required this.fileExtension});
@override
_ITGAdsScreenState createState() => _ITGAdsScreenState();
}
class _ITGAdsScreenState extends State<ITGAdsScreen> {
late Future<VideoPlayerController> _futureController;
late VideoPlayerController _controller;
bool skip = false;
Future<VideoPlayerController> createVideoPlayer() async {
try {
Uint8List decodedBytes = base64Decode(widget.encodedBytes.split("base64,").last);
Directory appDocumentsDirectory = await getApplicationDocumentsDirectory(); // 1
File file = Io.File("${appDocumentsDirectory.path}/myAdsVideo.mp4");
file.writeAsBytesSync(decodedBytes);
VideoPlayerController controller = VideoPlayerController.file(file);
await controller.initialize();
await controller.play();
await controller.setVolume(1.0);
await controller.setLooping(false);
return controller;
} catch (e) {
return new VideoPlayerController.asset("dataSource");
}
}
void checkType(){
// getFileTypeDescription(value);
}
String getFileTypeDescription(String value) {
switch (value) {
case ".pdf":
return "application/pdf";
case ".png":
return "image/png";
case ".txt":
return "text/plain";
case ".jpg":
return "image/jpg";
case ".jpeg":
return "image/jpeg";
case ".ppt":
return "application/vnd.openxmlformats-officedocument.presentationml.presentation";
case ".pptx":
return "application/vnd.openxmlformats-officedocument.presentationml.presentation";
case ".doc":
return "application/vnd.openxmlformats-officedocument.wordprocessingm";
case ".docx":
return "application/vnd.openxmlformats-officedocument.wordprocessingm";
case ".xls":
return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
case ".xlsx":
return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
case ".zip":
return "application/octet-stream";
case ".rar":
return "application/octet-stream";
default:
return "";
}
}
@override
void initState() {
_futureController = createVideoPlayer();
initTimer();
super.initState();
}
void initTimer() {
Future.delayed(const Duration(milliseconds: 500), () {
setState(() {
skip = true;
});
});
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
double height = MediaQuery.of(context).size.height * .25;
return Scaffold(
body: Column(
children: [
SizedBox(
height: MediaQuery.of(context).size.height * .3,
child: FutureBuilder(
future: _futureController,
builder: (BuildContext context, AsyncSnapshot<Object?> snapshot) {
if (snapshot.connectionState == ConnectionState.done && snapshot.data != null) {
_controller = snapshot.data as VideoPlayerController;
return AspectRatio(
aspectRatio: _controller.value.aspectRatio,
child: VideoPlayer(_controller),
);
} else {
return const Center(
child: CircularProgressIndicator(),
);
}
},
),
),
if (skip)
ElevatedButton(
onPressed: () {},
child: const Text("Go To Dashboard"),
)
],
),
);
}
}

@ -1,96 +0,0 @@
import 'dart:convert';
import 'dart:io' as Io;
import 'package:flutter/material.dart';
import 'package:video_player/video_player.dart';
class MovieTheaterBody extends StatefulWidget {
final String encodedBytes;
const MovieTheaterBody({required this.encodedBytes});
@override
_MovieTheaterBodyState createState() => _MovieTheaterBodyState();
}
class _MovieTheaterBodyState extends State<MovieTheaterBody> {
late Future<VideoPlayerController> _futureController;
late VideoPlayerController _controller;
Future<VideoPlayerController> createVideoPlayer() async {
try {
var decodedBytes = base64Decode(widget.encodedBytes);
var file = Io.File("decodedBezkoder.mp4");
file.writeAsBytesSync(decodedBytes);
VideoPlayerController controller = VideoPlayerController.file(file);
await controller.initialize();
await controller.setLooping(true);
return controller;
} catch (e) {
print("object0000000");
print(e);
return new VideoPlayerController.asset("dataSource");
}
}
@override
void initState() {
_futureController = createVideoPlayer();
super.initState();
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Expanded(
child: FutureBuilder(
future: _futureController,
builder: (context, snapshot) {
//UST: 05/2021 - MovieTheaterBody - id:11 - 2pts - Criação
if (snapshot.connectionState == ConnectionState.done && snapshot.data != null) {
_controller = snapshot.data as VideoPlayerController;
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
AspectRatio(
aspectRatio: _controller.value.aspectRatio,
child: VideoPlayer(_controller),
),
const SizedBox(
height: 50,
),
FloatingActionButton(
onPressed: () {
setState(() {
if (_controller.value.isPlaying) {
_controller.pause();
} else {
// If the video is paused, play it.
_controller.play();
}
});
},
backgroundColor: Colors.green[700],
child: Icon(
_controller.value.isPlaying ? Icons.pause : Icons.play_arrow,
),
)
],
);
} else {
return const Center(child: CircularProgressIndicator());
}
},
),
),
);
}
}
Loading…
Cancel
Save