Exemple #1
0
        public void OnReceiveResult(string resultData)
        {
            try
            {
                //Toast.MakeText(Application.Context, "Result got ", ToastLength.Short)?.Show();

                if (AppSettings.LastChatSystem == SystemApiGetLastChat.New)
                {
                    var result = JsonConvert.DeserializeObject <LastChatObject>(resultData);
                    if (result != null)
                    {
                        LastChatTab?.LoadDataLastChatNewV(result);
                        Activity?.RunOnUiThread(() => { LastChatFragment.LoadCall(result); });
                    }
                }
                else
                {
                    var result = JsonConvert.DeserializeObject <GetUsersListObject>(resultData);
                    if (result != null)
                    {
                        LastChatTab?.LoadDataLastChatOldV(result);
                        Activity?.RunOnUiThread(() => { LastChatFragment.LoadCall(result); });
                    }
                }
            }
            catch (Exception e)
            {
                Methods.DisplayReportResultTrack(e);
            }
        }
Exemple #2
0
        private void SetUpViewPager(ViewPager2 viewPager)
        {
            try
            {
                LastChatTab  = new LastChatFragment();
                LastCallsTab = new LastCallsFragment();

                Adapter = new MainTabAdapter(this);
                switch (AppSettings.LastChatSystem)
                {
                case SystemApiGetLastChat.New:
                    Adapter.AddFragment(LastChatTab, GetText(Resource.String.Lbl_Tab_Chats));
                    break;

                case SystemApiGetLastChat.Old:
                {
                    LastGroupChatsTab = new LastGroupChatsFragment();
                    LastPageChatsTab  = new LastPageChatsFragment();

                    Adapter.AddFragment(LastChatTab, GetText(Resource.String.Lbl_Tab_Chats));
                    if (AppSettings.EnableChatGroup)
                    {
                        Adapter.AddFragment(LastGroupChatsTab, GetText(Resource.String.Lbl_Tab_GroupChats));
                    }

                    if (AppSettings.EnableChatPage)
                    {
                        Adapter.AddFragment(LastPageChatsTab, GetText(Resource.String.Lbl_Tab_PageChats));
                    }

                    break;
                }
                }

                if (AppSettings.EnableAudioVideoCall)
                {
                    Adapter.AddFragment(LastCallsTab, GetText(Resource.String.Lbl_Tab_Calls));
                }

                viewPager.CurrentItem        = Adapter.ItemCount;
                viewPager.OffscreenPageLimit = Adapter.ItemCount;

                viewPager.Orientation = ViewPager2.OrientationHorizontal;
                viewPager.Adapter     = Adapter;
                viewPager.Adapter.NotifyDataSetChanged();

                viewPager.RegisterOnPageChangeCallback(new MyOnPageChangeCallback(this));
            }
            catch (Exception e)
            {
                Methods.DisplayReportResultTrack(e);
            }
        }
Exemple #3
0
        private async Task LoadChatAsync()
        {
            try
            {
                //Toast.MakeText(Application.Context, "StartApiService", ToastLength.Short)?.Show();
                if (LastChatFragment.ApiRun)
                {
                    return;
                }

                LastChatFragment.ApiRun = true;

                if (AppSettings.LastChatSystem == SystemApiGetLastChat.New)
                {
                    var fetch = "users";
                    if (AppSettings.EnableChatGroup)
                    {
                        fetch += ",groups";
                    }

                    if (AppSettings.EnableChatPage)
                    {
                        fetch += ",pages";
                    }

                    var(apiStatus, respond) = await RequestsAsync.Message.GetChatAsync(fetch);

                    if (apiStatus != 200 || respond is not LastChatObject result || result.Data == null)
                    {
                        LastChatFragment.ApiRun = false;
                        //Methods.DisplayReportResult(new Activity(), respond);
                    }
                    else
                    {
                        var respondList = result.Data.Count;
                        if (respondList > 0)
                        {
                            if (Methods.AppLifecycleObserver.AppState == "Foreground")
                            {
                                MsgTabbedMainActivity.GetInstance()?.OnReceiveResult(JsonConvert.SerializeObject(result));
                            }
                            else
                            {
                                ListUtils.UserList = new ObservableCollection <ChatObject>(result.Data);

                                //Insert All data users to database
                                SqLiteDatabase dbDatabase = new SqLiteDatabase();
                                dbDatabase.Insert_Or_Update_LastUsersChat(Application.Context, ListUtils.UserList, UserDetails.ChatHead);

                                LastChatFragment.LoadCall(result);
                                LastChatFragment.ApiRun = false;
                            }
                        }
                    }
                }
                else
                {
                    if (Methods.AppLifecycleObserver.AppState == "Background")
                    {
                        UserDetails.OnlineUsers = false;
                    }

                    var(apiStatus, respond) = await RequestsAsync.Message.GetusersListAsync(UserDetails.UserId, UserDetails.UserId, "20", "0", UserDetails.OnlineUsers);

                    if (apiStatus != 200 || respond is not GetUsersListObject result || result.Users == null)
                    {
                        LastChatFragment.ApiRun = false;
                        //Methods.DisplayReportResult(new Activity(), respond);
                    }