void M8.IModalPush.Push(M8.GenericParams parms) { ClearItems(); mFlagDataIndex = -1; mCurIndex = 0; mSearchKeywordData = null; mKeywordResultIndex = 0; if (parms != null) { if (parms.ContainsKey(parmSearchKeywordData)) { mSearchKeywordData = parms.GetValue <SearchKeywordData>(parmSearchKeywordData); } if (parms.ContainsKey(parmSearchKeywordResultIndex)) { mKeywordResultIndex = parms.GetValue <int>(parmSearchKeywordResultIndex); } } //grab which item to use FlagData itm = null; if (mSearchKeywordData != null) { titleText.text = string.Format(M8.Localize.Get(titleTextRef), mSearchKeywordData.results[mKeywordResultIndex].text); for (int i = 0; i < items.Length; i++) { var _itm = items[i]; if (_itm.sourceKeywordData == mSearchKeywordData && _itm.sourceKeywordResultIndex == mKeywordResultIndex) { itm = _itm; mFlagDataIndex = i; break; } } } else { } if (itm != null) { //fill list var dats = itm.data; for (int i = 0; i < dats.Length; i++) { AllocateItem(itm, i); } UpdateSelectFlag(); } scroller.normalizedPosition = new Vector2(0f, 1f); }
void M8.IModalPush.Push(M8.GenericParams parms) { ClearItems(); mProceedCallback = null; if (parms != null) { if (parms.ContainsKey(parmSearchType)) { mSearchType = parms.GetValue <SearchType>(parmSearchType); } if (parms.ContainsKey(parmSearchKeywordData)) { mSearchKeywordData = parms.GetValue <SearchKeywordData>(parmSearchKeywordData); } if (parms.ContainsKey(parmProceedCallback)) { mProceedCallback = parms.GetValue <ProceedCallback>(parmProceedCallback); } } if (mSearchKeywordData) { titleText.text = string.Format(M8.Localize.Get(titleTextRef), mSearchKeywordData.key); //populate list var results = mSearchKeywordData.results; for (int i = 0; i < results.Length; i++) { var result = results[i]; if (result.IsSearchMatch(mSearchType)) { AllocateItem(i, result); } } if (mItemActive.Count > 0) { mCurIndex = mItemActive[0].index; UpdateSelectedItemFlag(); flagButtonRootGO.SetActive(true); proceedSelectible.interactable = true; } else { flagButtonRootGO.SetActive(false); proceedSelectible.interactable = false; } } //init scroller scroller.normalizedPosition = Vector2.zero; }
IEnumerator DoRegistryInspect() { //some dialog //open search mSearchKeyword = null; mSearchModalParms[SearchModal.parmTitle] = M8.Localize.Get(registrySearchTitleRef); mSearchModalParms[SearchModal.parmCallback] = (SearchModal.CommitCallback)OnSearchProceed; M8.ModalManager.main.Open(searchModal, mSearchModalParms); //wait for search while (M8.ModalManager.main.isBusy || M8.ModalManager.main.IsInStack(searchModal)) { yield return(null); } if (mSearchKeyword) { var searchProgressTitle = string.Format(M8.Localize.Get(registrySearchProgressTitleFormatRef), mSearchKeyword.key); //do progress yield return(StartCoroutine(DoSearchProgress(searchProgressTitle, searchProgressDelay))); //check if there is match if (mSearchKeyword.CheckResultSearch(SearchType.Registry)) { //open registry log modal M8.ModalManager.main.Open(registryModal, null); while (M8.ModalManager.main.isBusy || M8.ModalManager.main.IsInStack(registryModal)) { yield return(null); } //some dialog } else //show no match message { MessageModal.Open(searchProgressTitle, M8.Localize.Get(searchNoMatchTextRef)); while (M8.ModalManager.main.isBusy || M8.ModalManager.main.IsInStack(MessageModal.modal)) { yield return(null); } } //return to search StartCoroutine(DoRegistryInspect()); } }
IEnumerator DoFileInspect() { //some dialog //open search mSearchKeyword = null; mSearchModalParms[SearchModal.parmTitle] = M8.Localize.Get(fileInspectSearchTitleRef); mSearchModalParms[SearchModal.parmCallback] = (SearchModal.CommitCallback)OnSearchProceed; M8.ModalManager.main.Open(searchModal, mSearchModalParms); //wait for search while (M8.ModalManager.main.isBusy || M8.ModalManager.main.IsInStack(searchModal)) { yield return(null); } if (mSearchKeyword) { var searchProgressTitle = string.Format(M8.Localize.Get(fileInspectSearchProgressTitleFormatRef), mSearchKeyword.key); //do progress yield return(StartCoroutine(DoSearchProgress(searchProgressTitle, searchProgressDelay))); //check if there is match if (mSearchKeyword.CheckResultSearch(SearchType.File)) { //show search result mSearchResultIndex = -1; mSearchResultParms[SearchResultModal.parmSearchType] = SearchType.File; mSearchResultParms[SearchResultModal.parmSearchKeywordData] = mSearchKeyword; mSearchResultParms[SearchResultModal.parmProceedCallback] = (SearchResultModal.ProceedCallback)OnSearchResultProceed; M8.ModalManager.main.Open(searchResultModal, mSearchResultParms); //wait for search result while (M8.ModalManager.main.isBusy || M8.ModalManager.main.IsInStack(searchResultModal)) { yield return(null); } if (mSearchResultIndex != -1) { //open file inspect modal mFileInspectParms[FileInspectModal.parmSearchKeywordData] = mSearchKeyword; mFileInspectParms[FileInspectModal.parmSearchKeywordResultIndex] = mSearchResultIndex; M8.ModalManager.main.Open(fileInspectModal, mFileInspectParms); while (M8.ModalManager.main.isBusy || M8.ModalManager.main.IsInStack(fileInspectModal)) { yield return(null); } //some dialog } } else //show no match message { MessageModal.Open(searchProgressTitle, M8.Localize.Get(searchNoMatchTextRef)); while (M8.ModalManager.main.isBusy || M8.ModalManager.main.IsInStack(MessageModal.modal)) { yield return(null); } } //return to search StartCoroutine(DoFileInspect()); } }
void OnSearchProceed(SearchKeywordData keyword) { mSearchKeyword = keyword; }