Chat Favorite Screen & Fixes

merge-requests/55/head
Aamir Muhammad 3 years ago
parent 670a5fbc03
commit c190fbf5ca

@ -109,10 +109,11 @@ class ChatProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
} }
} else { } else {
if (loadMore) { if (loadMore) {
List<SingleUserChatModel> temp = getSingleUserChatModel(response.body); List<SingleUserChatModel> temp = getSingleUserChatModel(response.body).reversed.toList();
userChatHistory.insertAll(0, temp); userChatHistory.addAll(temp);
} else { } else {
userChatHistory = getSingleUserChatModel(response.body); userChatHistory = getSingleUserChatModel(response.body);
userChatHistory = userChatHistory.reversed.toList();
} }
} }
isLoading = false; isLoading = false;
@ -594,6 +595,17 @@ class ChatProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
notifyListeners(); notifyListeners();
} }
void clearAll() {
searchedChats = pChatHistory;
search.clear();
isChatScreenActive = false;
paginationVal = 0;
message.text = '';
isFileSelected = false;
repliedMsg = [];
sFileType = "";
}
void scrollListener() { void scrollListener() {
_firstAutoscrollExecuted = true; _firstAutoscrollExecuted = true;
if (scrollController.hasClients && scrollController.position.pixels == scrollController.position.maxScrollExtent) { if (scrollController.hasClients && scrollController.position.pixels == scrollController.position.maxScrollExtent) {

@ -32,7 +32,7 @@ class ChatDetailScreen extends StatelessWidget {
data.getSingleUserChatHistory(senderUID: AppState().chatDetails!.response!.id.toString(), receiverUID: userDetails["targetUser"].id, loadMore: true, isNewChat: false); data.getSingleUserChatHistory(senderUID: AppState().chatDetails!.response!.id.toString(), receiverUID: userDetails["targetUser"].id, loadMore: true, isNewChat: false);
} }
await Future.delayed(const Duration(milliseconds: 1000)); await Future.delayed(const Duration(milliseconds: 1000));
_refreshController.refreshCompleted(); _refreshController.loadComplete();
} }
@override @override
@ -54,17 +54,21 @@ class ChatDetailScreen extends StatelessWidget {
Expanded( Expanded(
flex: 2, flex: 2,
child: SmartRefresher( child: SmartRefresher(
enablePullDown: true, enablePullDown: false,
enablePullUp: false, enablePullUp: true,
onLoading: () {
getMoreChat();
},
header: const MaterialClassicHeader( header: const MaterialClassicHeader(
color: MyColors.gradiantEndColor, color: MyColors.gradiantEndColor,
), ),
controller: _refreshController, controller: _refreshController,
onRefresh: getMoreChat, reverse: true,
child: ListView.builder( child: ListView.builder(
controller: m.scrollController, controller: m.scrollController,
shrinkWrap: true, shrinkWrap: true,
reverse: false, physics: const BouncingScrollPhysics(),
reverse: true,
itemCount: m.userChatHistory.length, itemCount: m.userChatHistory.length,
padding: const EdgeInsets.only(top: 20), padding: const EdgeInsets.only(top: 20),
itemBuilder: (BuildContext context, int i) { itemBuilder: (BuildContext context, int i) {

@ -26,11 +26,16 @@ class _ChatHomeState extends State<ChatHome> {
PageController controller = PageController(); PageController controller = PageController();
late ChatProviderModel data; late ChatProviderModel data;
@override
void dispose() {
data.clearAll();
super.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
data = Provider.of<ChatProviderModel>(context, listen: false); data = Provider.of<ChatProviderModel>(context, listen: false);
data.getUserAutoLoginToken().then((value){ data.getUserAutoLoginToken().then((value) {
data.getUserRecentChats(); data.getUserRecentChats();
}); });
return Scaffold( return Scaffold(
@ -41,7 +46,7 @@ class _ChatHomeState extends State<ChatHome> {
showHomeButton: true, showHomeButton: true,
), ),
body: Column( body: Column(
children: [ children: <Widget>[
Container( Container(
padding: const EdgeInsets.only(left: 21, right: 21, top: 16, bottom: 16), padding: const EdgeInsets.only(left: 21, right: 21, top: 16, bottom: 16),
decoration: const BoxDecoration( decoration: const BoxDecoration(
@ -60,12 +65,7 @@ class _ChatHomeState extends State<ChatHome> {
), ),
), ),
child: Row( child: Row(
children: [ children: [myTab(LocaleKeys.mychats.tr(), 0), myTab(LocaleKeys.favorite.tr(), 1)],
myTab(LocaleKeys.mychats.tr(), 0),
myTab(
LocaleKeys.favorite.tr(),
1)
],
), ),
), ),
PageView( PageView(
@ -76,7 +76,7 @@ class _ChatHomeState extends State<ChatHome> {
tabIndex = pageIndex; tabIndex = pageIndex;
}); });
}, },
children: [ChatHomeScreen(), ChatFavoriteUsersScreen()], children: <Widget>[ChatHomeScreen(), ChatFavoriteUsersScreen()],
).expanded, ).expanded,
], ],
), ),

@ -14,9 +14,20 @@ import 'package:mohem_flutter_app/widgets/bottom_sheets/search_employee_bottom_s
import 'package:mohem_flutter_app/widgets/shimmer/dashboard_shimmer_widget.dart'; import 'package:mohem_flutter_app/widgets/shimmer/dashboard_shimmer_widget.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class ChatHomeScreen extends StatelessWidget { class ChatHomeScreen extends StatefulWidget {
@override
State<ChatHomeScreen> createState() => _ChatHomeScreenState();
}
class _ChatHomeScreenState extends State<ChatHomeScreen> {
TextEditingController search = TextEditingController(); TextEditingController search = TextEditingController();
@override
void dispose() {
super.dispose();
search.clear();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
@ -45,6 +56,18 @@ class ChatHomeScreen extends StatelessWidget {
hintStyle: const TextStyle(color: MyColors.lightTextColor, fontStyle: FontStyle.italic), hintStyle: const TextStyle(color: MyColors.lightTextColor, fontStyle: FontStyle.italic),
filled: true, filled: true,
fillColor: const Color(0xFFF7F7F7), fillColor: const Color(0xFFF7F7F7),
suffixIcon: m.search.text.isNotEmpty
? IconButton(
onPressed: () {
m.clearSelections();
},
icon: const Icon(
Icons.clear,
size: 22,
),
color: MyColors.redA3Color,
)
: null,
), ),
), ),
), ),

Loading…
Cancel
Save