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 {
if (loadMore) {
List<SingleUserChatModel> temp = getSingleUserChatModel(response.body);
userChatHistory.insertAll(0, temp);
List<SingleUserChatModel> temp = getSingleUserChatModel(response.body).reversed.toList();
userChatHistory.addAll(temp);
} else {
userChatHistory = getSingleUserChatModel(response.body);
userChatHistory = userChatHistory.reversed.toList();
}
}
isLoading = false;
@ -594,6 +595,17 @@ class ChatProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
notifyListeners();
}
void clearAll() {
searchedChats = pChatHistory;
search.clear();
isChatScreenActive = false;
paginationVal = 0;
message.text = '';
isFileSelected = false;
repliedMsg = [];
sFileType = "";
}
void scrollListener() {
_firstAutoscrollExecuted = true;
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);
}
await Future.delayed(const Duration(milliseconds: 1000));
_refreshController.refreshCompleted();
_refreshController.loadComplete();
}
@override
@ -54,17 +54,21 @@ class ChatDetailScreen extends StatelessWidget {
Expanded(
flex: 2,
child: SmartRefresher(
enablePullDown: true,
enablePullUp: false,
enablePullDown: false,
enablePullUp: true,
onLoading: () {
getMoreChat();
},
header: const MaterialClassicHeader(
color: MyColors.gradiantEndColor,
),
controller: _refreshController,
onRefresh: getMoreChat,
reverse: true,
child: ListView.builder(
controller: m.scrollController,
shrinkWrap: true,
reverse: false,
physics: const BouncingScrollPhysics(),
reverse: true,
itemCount: m.userChatHistory.length,
padding: const EdgeInsets.only(top: 20),
itemBuilder: (BuildContext context, int i) {

@ -26,11 +26,16 @@ class _ChatHomeState extends State<ChatHome> {
PageController controller = PageController();
late ChatProviderModel data;
@override
void dispose() {
data.clearAll();
super.dispose();
}
@override
Widget build(BuildContext context) {
data = Provider.of<ChatProviderModel>(context, listen: false);
data.getUserAutoLoginToken().then((value){
data.getUserAutoLoginToken().then((value) {
data.getUserRecentChats();
});
return Scaffold(
@ -41,7 +46,7 @@ class _ChatHomeState extends State<ChatHome> {
showHomeButton: true,
),
body: Column(
children: [
children: <Widget>[
Container(
padding: const EdgeInsets.only(left: 21, right: 21, top: 16, bottom: 16),
decoration: const BoxDecoration(
@ -60,12 +65,7 @@ class _ChatHomeState extends State<ChatHome> {
),
),
child: Row(
children: [
myTab(LocaleKeys.mychats.tr(), 0),
myTab(
LocaleKeys.favorite.tr(),
1)
],
children: [myTab(LocaleKeys.mychats.tr(), 0), myTab(LocaleKeys.favorite.tr(), 1)],
),
),
PageView(
@ -76,7 +76,7 @@ class _ChatHomeState extends State<ChatHome> {
tabIndex = pageIndex;
});
},
children: [ChatHomeScreen(), ChatFavoriteUsersScreen()],
children: <Widget>[ChatHomeScreen(), ChatFavoriteUsersScreen()],
).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:provider/provider.dart';
class ChatHomeScreen extends StatelessWidget {
class ChatHomeScreen extends StatefulWidget {
@override
State<ChatHomeScreen> createState() => _ChatHomeScreenState();
}
class _ChatHomeScreenState extends State<ChatHomeScreen> {
TextEditingController search = TextEditingController();
@override
void dispose() {
super.dispose();
search.clear();
}
@override
Widget build(BuildContext context) {
return Scaffold(
@ -45,6 +56,18 @@ class ChatHomeScreen extends StatelessWidget {
hintStyle: const TextStyle(color: MyColors.lightTextColor, fontStyle: FontStyle.italic),
filled: true,
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