Пример #1
0
        private async Task LoadMaterial(MyTheme theme)
        {
            if (materialDataLoader == null)
            {
                materialDataLoader = new DataLoader <MaterialGroup>();
            }

            string materialFilePath = Path.Combine(Constants.THEME_MODULE, theme.id, Constants.MATERIAL_DATA_FILE);
            var    materialGroup    = await materialDataLoader.LoadLocalData(materialFilePath);

            if (materialGroup == null)
            {
                materialGroup = new MaterialGroup();
            }

            var visibleMaterials = materialGroup.Materials.Where(x => x.visible);

            foreach (var m in visibleMaterials)
            {
                materials_all.Add(m);
            }

            var types = Enum.GetValues(typeof(MaterialType));

            foreach (var type in types)
            {
                var key   = type.ToString();
                var mList = visibleMaterials.Where(x => x.type == key);

                foreach (var m in mList)
                {
                    material_dict[key].Add(m);
                }
            }
        }
Пример #2
0
        private async void LoadData_SplitFile(MyTheme theme)
        {
            if (materialDataLoader == null)
            {
                materialDataLoader = new DataLoader <MaterialGroup>();
            }

            materialFilePath = Path.Combine(Constants.THEME_MODULE, theme.id, Constants.MATERIAL_DATA_FILE);
            materialGroup    = await materialDataLoader.LoadLocalData(materialFilePath);

            if (materialGroup == null)
            {
                materialGroup = new MaterialGroup();
            }

            var materials = from m in materialGroup.Materials
                            where m.themePackID.Equals(theme.id)
                            select m;

            foreach (var material in materials)
            {
                material.ThemeEnabled = theme.visible;
            }

            this.myMaterialListBox.ItemsSource = materials;
        }
Пример #3
0
        private async void LoadGroupedData(MyTheme theme)
        {
            if (vm == null)
            {
                vm = new MyThemeDetailViewModel();
            }

            if (materialDataLoader == null)
            {
                materialDataLoader = new DataLoader <MaterialGroup>();
            }

            materialFilePath = Path.Combine(Constants.THEME_MODULE, theme.id, Constants.MATERIAL_DATA_FILE);
            materialGroup    = await materialDataLoader.LoadLocalData(materialFilePath);

            if (materialGroup == null)
            {
                materialGroup = new MaterialGroup();
            }

            var materials = from m in materialGroup.Materials
                            where m.themePackID.Equals(theme.id)
                            select m;

            foreach (var material in materials)
            {
                material.ThemeEnabled = theme.visible;
            }

            vm.SetData(materials);

            groupList.DataContext = vm;
        }
Пример #4
0
        private void ImageSwitch_CheckStateChanged(Shared.Control.ImageSwitch sender, bool suggestedState)
        {
            MyTheme theme = sender.GetDataContext <MyTheme>();

            if (theme != null)
            {
                theme.visible = !theme.visible;
                SaveData();
            }
        }
Пример #5
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            if (e.NavigationMode == NavigationMode.New)
            {
                currentTheme = (MyTheme)e.Parameter;
                //LoadData_SplitFile(currentTheme);
                LoadGroupedData(currentTheme);
            }

            UmengSDK.UmengAnalytics.TrackPageStart(this.GetType().ToString());
        }
Пример #6
0
        private void theme_Tapped(object sender, TappedRoutedEventArgs e)
        {
            MyTheme theme = sender.GetDataContext <MyTheme>();

            if (listEditing)
            {
                theme.Selected = !theme.Selected;
            }
            else
            {
                Frame.Navigate(typeof(MyThemeDetailPage), theme);
            }
        }
Пример #7
0
        /// <summary>
        /// Конструктор объекта приложения.
        /// </summary>
        public App()
        {
            // Глобальный обработчик неперехваченных исключений.
            UnhandledException += Application_UnhandledException;

            // Стандартная инициализация Silverlight
            InitializeComponent();

            // Инициализация телефона
            InitializePhoneApplication();

            // Отображение сведений о профиле графики во время отладки.
            if (System.Diagnostics.Debugger.IsAttached)
            {
                // Отображение текущих счетчиков частоты смены кадров.
                Application.Current.Host.Settings.EnableFrameRateCounter = true;

                MemoryDiagnosticsHelper.Start(TimeSpan.FromMilliseconds(500), true);

                // Отображение областей приложения, перерисовываемых в каждом кадре.
                //Application.Current.Host.Settings.EnableRedrawRegions = true;

                // Включение режима визуализации анализа нерабочего кода
                // для отображения областей страницы, переданных в GPU, с цветным наложением.
                //Application.Current.Host.Settings.EnableCacheVisualization = true;

                // Отключите обнаружение простоя приложения, установив для свойства UserIdleDetectionMode
                // объекта PhoneApplicationService приложения значение Disabled.
                // Внимание! Используйте только в режиме отладки. Приложение, в котором отключено обнаружение бездействия пользователя, будет продолжать работать
                // и потреблять энергию батареи, когда телефон не будет использоваться.
                PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
            }

            //Проверяем есть ли дирректория в Isolate Storage для данных. Если нет - создаем
            if (!fileStorage.DirectoryExists("Data"))
            {
                fileStorage.CreateDirectory("Data");
            }
            ////Проверяем есть ли дирректория в Isolate Storage для изображений. Если нет - создаем
            //if (!fileStorage.DirectoryExists("Img"))
            //    fileStorage.CreateDirectory("Img");

            // Установка стартовой страницы
            SetupUriMapper();
            //Тема
            MyTheme.AppTheme();
        }
Пример #8
0
        private async Task AddMyThemeData(ThemePack themePack, int materialCount)
        {
            try
            {
                if (myThemeDataLoader == null)
                {
                    myThemeDataLoader = new DataLoader <MyThemeData>();
                }

                //load data file
                var data = await myThemeDataLoader.LoadLocalData(Constants.THEME_MODULE, Constants.MY_THEME_DATA_FILE);

                if (data == null)
                {
                    data = new MyThemeData();
                }

                if (data.myThemes.Any(x => x.id == themePack.id))
                {
                    return;
                }

                //add new theme
                MyTheme newTheme = new MyTheme();
                newTheme.id            = themePack.id;
                newTheme.name          = themePack.name;
                newTheme.thumbnail     = themePack.thumbnailUrl;
                newTheme.materialCount = materialCount;
                data.myThemes.Insert(0, newTheme);

                //save data
                string json = JsonSerializer.Serialize(data);
                await IsolatedStorageHelper.WriteToFileAsync(Constants.THEME_MODULE, Constants.MY_THEME_DATA_FILE, json);
            }
            catch (Exception ex)
            {
                somethingWrong = true;
            }
        }
Пример #9
0
 private async Task DeleteThemeFolder(MyTheme theme)
 {
     string folderName = string.Format("{0}\\{1}", Constants.THEME_MODULE, theme.id);
     await IsolatedStorageHelper.DeleteFolderAsync(folderName);
 }