public void AddUserVideotextureView(int uid, SurfaceView surfaceView, bool isLocal) { try { if (surfaceView == null) { return; } int id = -1; if (isLocal) { if (MUidList.Contains(0)) { MUidList.Remove(0); MUserViewList.Remove(0); } if (MUidList.Count == MaxUser) { MUidList.Remove(0); MUserViewList.Remove(0); } id = 0; } else { if (MUidList.Contains(uid)) { MUidList.Remove(uid); MUserViewList.Remove(uid); } if (MUidList.Count < MaxUser) { id = uid; } } if (id == 0) { MUidList.Add(uid); } else { MUidList.Add(uid); } if (id != -1) { MUserViewList.Add(uid, CreateVideoView(surfaceView)); if (MStatsManager != null) { MStatsManager.AddUserStats(uid, isLocal); if (MStatsManager.IsEnabled()) { MHandler.RemoveCallbacks(this); MHandler.PostDelayed(this, StatsRefreshInterval); } } RequestGridLayout(); } } catch (Exception e) { Methods.DisplayReportResultTrack(e); } }