protected override void OnLoad(EventArgs e) { base.OnLoad(e); var resourcefile = Server.MapPath(LocalResourceFile + ".ascx.resx"); if (File.Exists(resourcefile)) { var document = new XPathDocument(resourcefile); var navigator = document.CreateNavigator(); var nodes = navigator.Select("/root/data[starts-with(@name, 'WhatsNew')]/@name"); var releasenotes = new List <ReleaseInfo>(); while (nodes.MoveNext()) { var key = nodes.Current.Value; var version = string.Format(Localization.GetString("notestitle.text", LocalResourceFile), key.Replace("WhatsNew.", string.Empty)); releasenotes.Add(new ReleaseInfo(Localization.GetString(key, LocalResourceFile), version)); } releasenotes.Sort(CompareReleaseInfo); WhatsNewList.DataSource = releasenotes; WhatsNewList.DataBind(); header.InnerHtml = Localization.GetString("header.text", LocalResourceFile); footer.InnerHtml = Localization.GetString("footer.text", LocalResourceFile); } }
async void WhatsNewList_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { if (whatsNewQueue.Count > 0) { await Task.Delay(500); await DispatcherHelper.RunAsync(() => { if (whatsNewQueue.Count > 0) { var gc = whatsNewQueue.Dequeue(); WhatsNewList.Add(gc); } }); } }
async void AddWhatsNew(ResourceLoader loader) { whatsNewQueue.Clear(); WhatsNewList.Clear(); //webm, 번역추가... whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(2016, 304, 191), new VersionContent[] { new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00079")), //libraries update new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00080")) //asf })); //webm, 번역추가... whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(2016, 204, 190), new VersionContent[] { new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00077")), //포르투갈어/프랑스어 new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00078")), //webm지원 })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(2015, 1231, 189), new VersionContent[] { new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00076")), //자막 인코딩 검출 로직 변경 })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(2015, 1226, 188), new VersionContent[] { new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00055")), //앱크래쉬 버그 (이미지 자막의 경우에 rect가 NULL이 될때) new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00075")), //재생 패널위 배터리 및 시간 표시 })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(2015, 1218, 1871), new VersionContent[] { new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00074") + " (SMI Format)"), //일부 자막 스킵 버그 수정 })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(2015, 1216, 187), new VersionContent[] { new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00073")), //일부 MKV파일 재생 시작시 앱크래쉬 해결 new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00074")), //일부 자막 스킵 버그 수정 })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 8, 6), new VersionContent[] { new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00055")), //앱크래쉬 버그 (자막 avcodec_decode_subtitle2 에서 디코드 실패후 음수값이 나와 패킷 사이즈가 더 커지는 현상) new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00067")), //ASS/SSA 버그 })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 8, 5), new VersionContent[] { new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00070")), //MKV/3G2컨테이너내 XviD코덱 요류 new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00071")), //일부 FLV 파일의 재생 오류 new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00072")), //모든 비디오 허브 사용 여부 옵션 추가 })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 8, 4), new VersionContent[] { new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00068")), //TTC, OTC 폰트 컬렉션 지원 new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00069")), //폰트 관련 버그 수정 new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00054")), //코덱 호환성 향상 })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 8, 3), new VersionContent[] { new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00067")), //ASS/SSA 버그 수정 new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00002")), //버그 수정 })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 8, 2), new VersionContent[] { new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00004")), //자막 관련 버그 new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00054")), //코덱 호환성 })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 8, 1), new VersionContent[] { new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00063")), //일부 자막 깜빡임 수정 new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00066")), //디코더 성능 new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00064")), //줌 4X 확대 지원 new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00065")), //터키어 번역 추가 })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 8, 0), new VersionContent[] { new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00062")), //Pinch to Zoom (Only Pro Feature) new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00014")), //multi select bug in Explorer new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00054")), //improved audio codec compatibility })); var gc179 = new GroupCollection <VersionContent>( GetVersion(1, 7, 9), new VersionContent[] { new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00059")), //smi font bug fix new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00060")) //added aspect ratio }); if (!VersionHelper.IsFullVersion) { gc179.AddItem(new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00061"))); //IAPs } whatsNewQueue.Enqueue(gc179); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 7, 8), new VersionContent[] { new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00058")), //Playback bug fix })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 7, 6), new VersionContent[] { new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00057")), //내장 자막 Timed Text지원 })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 7, 5), new VersionContent[] { new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00014")), //UI테마 아이콘 색상, 재생 로딩 속도, 핸들러 타는 횟수. })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 7, 4), new VersionContent[] { new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00054")), //코덱 호환성 new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00055")), //재생시 앱 크래쉬 new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00056")), //볼륨 제스쳐 버그 })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 7, 3), new VersionContent[] { new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00051")), //자막 플리커 버그 수정 new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00052")), //ASS 이펙터 무시 new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00053")), //24Bit 오디오 재생 (다운샘플링) })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 7, 2), new VersionContent[] { new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00050")), //Shader 색공간 변환 버그 수정 })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 7, 1), new VersionContent[] { new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00046")), //힌디 추가 new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00047")), //폴더보호기능 new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00048")), //시작메뉴선택기능 new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00049")), //SW디코더 성능개선 })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 7, 0), new VersionContent[] { new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00044")), new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00045")), })); //whatsNewQueue.Enqueue(new GroupCollection<VersionContent>( // GetVersion(1, 5, 7), // new VersionContent[] // { // new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00043")), // })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 5, 6), new VersionContent[] { new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00038")), new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00039")), new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00040")), new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00041")), new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00042")), })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 5, 5), new VersionContent[] { new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00035")), new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00036")), new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00037")), })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 5, 4), new VersionContent[] { new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00033")), new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00034")), })); //whatsNewQueue.Enqueue(new GroupCollection<VersionContent>( // GetVersion(1, 5, 3), // new VersionContent[] // { // new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00032")), // })); //whatsNewQueue.Enqueue(new GroupCollection<VersionContent>( // GetVersion(1, 5, 2), // new VersionContent[] // { // new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00031")), // })); //whatsNewQueue.Enqueue(new GroupCollection<VersionContent>( // GetVersion(1, 5, 1), // new VersionContent[] // { // new VersionContent(VersionContentType.MOD, loader.GetString("UpdateHistory00013")), // new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00014")), // })); /* * 1. Could you give us the option to choose whether videos resume or play from the beginning by default? * 2. At the end of a video playlist, could you give us the option to either go back to the beginning of said video playlist and play it all over again or just stop altogether? * 3. In the transition from one video to the next, could you give us the option of either a loading animation of sorts or just quick progression to the next video in the playlist? */ whatsNewQueue.Enqueue(new GroupCollection <VersionContent>( GetVersion(1, 5, 0), new VersionContent[] { new VersionContent(VersionContentType.MOD, loader.GetString("UpdateHistory00027")), new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00028")), new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00029")), new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00030")), })); //whatsNewQueue.Enqueue(new GroupCollection<VersionContent>(GetVersion(1, 2, 6), new VersionContent[] // { // new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00024")), // new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00025")), // new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00026")), // })); //비슷한 자막 파일 지원 //자막 위치 조정기능 추가 //기타 버그 수정 및 개선 whatsNewQueue.Enqueue(new GroupCollection <VersionContent>(GetVersion(1, 2, 5), new VersionContent[] { new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00022")), new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00023")), })); //whatsNewQueue.Enqueue(new GroupCollection<VersionContent>(GetVersion(1, 2, 4), new VersionContent[] // { // new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00014")), // })); ////0. 모든 비디오 목록에 캐싱 적용 ////1. Light Theme에서 제스쳐시 상태 표시가 되지 않는 버그 수정 ////2. Storage 처리 관련 버그 수정 (카드가 바뀌거나 토큰이 다른 경우) ////3. Keyframe이 없는 MKV재생 지원 ////4. 외부 앱에서 CCPlayer호출 관련 버그 수정 ////5. 520/620 FHD 버그 수정 ////6. 기타 개선 및 버그 수정 //whatsNewQueue.Enqueue(new GroupCollection<VersionContent>(GetVersion(1, 2, 3), new VersionContent[] // { // new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00006")), // new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00014")), // new VersionContent(VersionContentType.MOD, loader.GetString("UpdateHistory00013")), // new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00015")), // })); var version = new GroupCollection <VersionContent>(GetVersion(1, 2, 2), new VersionContent[] { new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00018")), new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00019")), new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00021")), new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00014")) }); if (!VersionHelper.IsFullVersion) { version.AddItem(new VersionContent(VersionContentType.MOD, loader.GetString("UpdateHistory00020"))); } whatsNewQueue.Enqueue(version); //whatsNewQueue.Enqueue(new GroupCollection<VersionContent>(GetVersion(1, 2, 1), new VersionContent[] // { // new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00017")), // })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>(GetVersion(1, 2, 0), new VersionContent[] { new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00016")), })); //whatsNewQueue.Enqueue(new GroupCollection<VersionContent>(GetVersion(1, 1, 9), new VersionContent[] // { // new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00015")), // new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00014")), // })); //whatsNewQueue.Enqueue(new GroupCollection<VersionContent>(GetVersion(1, 1, 8), new VersionContent[] // { // new VersionContent(VersionContentType.MOD, loader.GetString("UpdateHistory00013")), // new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00014")), // })); //whatsNewQueue.Enqueue(new GroupCollection<VersionContent>(GetVersion(1, 1, 7), new VersionContent[] // { // new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00010")), // new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00011")), // //new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00012")), // new VersionContent(VersionContentType.MOD, loader.GetString("UpdateHistory00013")), // new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00014")), // })); //whatsNewQueue.Enqueue(new GroupCollection<VersionContent>(GetVersion(1, 1, 6), new VersionContent[] // { // new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00009")), // })); //whatsNewQueue.Enqueue(new GroupCollection<VersionContent>(GetVersion(1, 1, 5), new VersionContent[] // { // new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00008")), // })); //whatsNewQueue.Enqueue(new GroupCollection<VersionContent>(GetVersion(1, 1, 4), new VersionContent[] // { // new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00006")), // new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00007")), // })); //whatsNewQueue.Enqueue(new GroupCollection<VersionContent>(GetVersion(1, 1, 3), new VersionContent[] // { // new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00004")), // new VersionContent(VersionContentType.IMP, loader.GetString("UpdateHistory00005")), // })); //whatsNewQueue.Enqueue(new GroupCollection<VersionContent>(GetVersion(1, 1, 2), new VersionContent[] // { // new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00002")), // })); //whatsNewQueue.Enqueue(new GroupCollection<VersionContent>(GetVersion(1, 1, 1), new VersionContent[] // { // new VersionContent(VersionContentType.FIX, loader.GetString("UpdateHistory00002")), // new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00003")), // })); whatsNewQueue.Enqueue(new GroupCollection <VersionContent>(GetVersion(1, 1, 0), new VersionContent[] { new VersionContent(VersionContentType.NEW, loader.GetString("UpdateHistory00001")), })); await DispatcherHelper.RunAsync(() => { WhatsNewList.Add(whatsNewQueue.Dequeue()); }); }