예제 #1
0
        private void ConfigureUniversalImageLoader()
        {
            // Create global configuration and initialize ImageLoader with this config
            ImageLoaderConfiguration config = new ImageLoaderConfiguration
                                              .Builder(Context)
                                              .Build();

            ImageLoader.Instance.Init(config);

            ImageSource.DefaultImageLoader = ImageLoader.Instance.LoadImageAsync;
        }
        public override void OnCreate()
        {
            base.OnCreate();
            DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder()
                                                      .CacheInMemory(true)
                                                      .CacheOnDisk(true).Build();
            ImageLoaderConfiguration imagaeLoaderConfigurtaion = new ImageLoaderConfiguration.Builder(ApplicationContext)
                                                                 .DefaultDisplayImageOptions(displayImageOptions)
                                                                 .Build();

            ImageLoader.Instance.Init(imagaeLoaderConfigurtaion);
        }
예제 #3
0
        public static void InitImageLoader(Context context)
        {
            var config = new ImageLoaderConfiguration.Builder(context)
                         .ThreadPriority(Thread.NormPriority - 2)
                         .DenyCacheImageMultipleSizesInMemory()
                         .DiskCacheFileNameGenerator(new Md5FileNameGenerator())
                         .TasksProcessingOrder(QueueProcessingType.Lifo)
                         .WriteDebugLogs()
                         .Build();

            ImageLoader.Instance.Init(config);
        }
예제 #4
0
        private void ConfigureUniversalImageLoader()
        {
            MainPage.AppContext = Context;
            MainPage.UsbManager = (UsbManager)GetSystemService(UsbService);

            // Create global configuration and initialize ImageLoader with this config
            var config = new ImageLoaderConfiguration
                         .Builder(Context)
                         .Build();

            ImageLoader.Instance.Init(config);

            ImageSource.DefaultImageLoader = ImageLoader.Instance.LoadImageAsync;
        }
        public static void InitImageLoader(Context context)
        {
            // This configuration tuning is custom. You can tune every option, you may tune some of them,
            // or you can create default configuration by
            //  ImageLoaderConfiguration.createDefault(this);
            // method.
            ImageLoaderConfiguration.Builder config = new ImageLoaderConfiguration.Builder(context);
            config.ThreadPriority(Java.Lang.Thread.NormPriority - 2);
            config.DenyCacheImageMultipleSizesInMemory();
            config.DiskCacheFileNameGenerator(new Md5FileNameGenerator());
            config.DiskCacheSize(50 * 1024 * 1024); // 50 MiB
            config.TasksProcessingOrder(QueueProcessingType.Lifo);
            config.WriteDebugLogs(); // Remove for release app

            // Initialize ImageLoader with configuration.
            ImageLoader.Instance.Init(config.Build());
        }
예제 #6
0
        private void InitImageLoader()
        {
            DisplayImageOptions defaultOptions =
                new DisplayImageOptions.
                Builder().CacheOnDisk(true).
                ImageScaleType(ImageScaleType.ExactlyStretched).
                BitmapConfig(Bitmap.Config.Rgb565).
                Build();

            ImageLoaderConfiguration.Builder builder =
                new ImageLoaderConfiguration.Builder(Application.Context).DefaultDisplayImageOptions(defaultOptions);

            ImageLoaderConfiguration config = builder.Build();

            imageLoader = ImageLoader.Instance;
            imageLoader.Init(config);
        }
        public static void InitImageLoader(Context context)
        {
            // This configuration tuning is custom. You can tune every option, you may tune some of them,
            // or you can create default configuration by
            //  ImageLoaderConfiguration.createDefault(this);
            // method.
            ImageLoaderConfiguration.Builder config = new ImageLoaderConfiguration.Builder(context);
            config.ThreadPriority(Java.Lang.Thread.NormPriority - 2);
            config.DenyCacheImageMultipleSizesInMemory();
            config.DiskCacheFileNameGenerator(new Md5FileNameGenerator());
            config.DiskCacheSize(50 * 1024 * 1024); // 50 MiB
            config.TasksProcessingOrder(QueueProcessingType.Lifo);
            config.WriteDebugLogs();                // Remove for release app

            // Initialize ImageLoader with configuration.
            ImageLoader.Instance.Init(config.Build());
        }
예제 #8
0
파일: App.cs 프로젝트: masgeek/automotive
        public static void InitImageLoader(Context context)
        {
            // This configuration tuning is custom.
            var config = new ImageLoaderConfiguration.Builder(context);

            config.ThreadPriority(Java.Lang.Thread.NormPriority - 2);
            //thread priority of the app, it is lower than normal to prevent lockup
            config.DenyCacheImageMultipleSizesInMemory();
            config.DiskCacheFileNameGenerator(new Md5FileNameGenerator());
            config.ThreadPoolSize(4);                              //number of threads to run default is 3
            config.DiskCacheSize(100 * 1024 * 1024);               // 100 MiB maximum cache size
            config.TasksProcessingOrder(QueueProcessingType.Lifo); //Last in fast out...dont know how it works

            config.WriteDebugLogs();                               // Remove for release app

            // Initialize ImageLoader with configuration setting above.
            ImageLoader.Instance.Init(config.Build());
        }
예제 #9
0
        public Setup(Context applicationContext) : base(applicationContext)
        {

            // Set up UniversalImageLoader
            var options = new DisplayImageOptions.Builder()
                .CacheInMemory(true)
                .CacheOnDisk(false)
                .ConsiderExifParams(true)
				.ShowImageForEmptyUri(Resource.Drawable.ic_launcher)
                .ImageScaleType(ImageScaleType.InSampleInt)
                .BitmapConfig(Bitmap.Config.Rgb565)
                .ResetViewBeforeLoading(true)
                .Build();
            var uilConfig = new ImageLoaderConfiguration.Builder(applicationContext)
                .DefaultDisplayImageOptions(options)
                .Build();
            ImageLoader.Instance.Init(uilConfig);

        }
        private void LoadNetImage()
        {
            ImageLoaderConfiguration config = new ImageLoaderConfiguration
                                              .Builder(this)
                                              .ThreadPriority(Thread.NormPriority - 2)
                                              .DenyCacheImageMultipleSizesInMemory()
                                              .MemoryCacheSize(2 * 1024 * 1024)
                                              .DefaultDisplayImageOptions(DisplayImageOptions.CreateSimple())
                                              .ImageDownloader(new BaseImageDownloader(this, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间
                                              .WriteDebugLogs()                                                    // Remove for release app
                                              .Build();

            ImageLoader.Instance.Init(config);

            ImageLoader.Instance.DisplayImage(
                "drawable://" + Resource.Mipmap.lotus,
                new ImageView(this),
                new ImageLoadingListener(this));
        }
예제 #11
0
        public override void OnCreate()
        {
            base.OnCreate();
            ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this).WriteDebugLogs().Build();

            ImageLoader.Instance.Init(configuration);//初始化图片加载框架
            Config.Debug = true;
            SQLiteUtil.Instance();
            MobclickAgent.SetDebugMode(true);//开启调试模式,如果不开启则不会上传umeng统计
            MobclickAgent.OpenActivityDurationTrack(false);
            MobclickAgent.SetScenarioType(this, MobclickAgent.EScenarioType.EUmNormal);
            PlatformConfig.SetWeixin("wx633888643fbae319", "5034ad765b2ba64dec7ed7c6618581fb");
            PlatformConfig.SetSinaWeibo("1422675167", "02975c36afd93d3ae983f8da9e596b86", "https://api.weibo.com/oauth2/default.html");
            PlatformConfig.SetQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
            if (!BuildConfig.Debug)
            {
                AndroidEnvironment.UnhandledExceptionRaiser += AndroidEnvironment_UnhandledExceptionRaiser;
            }
            activities = new List <Activity>();
        }
예제 #12
0
 protected void InitializeEnvironment()
 {
     CoreUtility.ExecuteMethod("InitializeEnvironment", delegate()
     {
         // Initialize Image Loader
         DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
                                              .BitmapConfig(Bitmap.Config.Rgb565)
                                              .ImageScaleType(ImageScaleType.Exactly)
                                              .CacheOnDisk(true)
                                              .CacheInMemory(true)
                                              .Displayer(new FadeInBitmapDisplayer(200))
                                              .Build();
         ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(BaseContext)
                                           .DefaultDisplayImageOptions(defaultOptions)
                                           .DiskCacheExtraOptions(480, 320, null)
                                           .Build();
         ImageLoader.Instance.Init(config);
         Container.ImageLoader = ImageLoader.Instance;
     });
 }
        public override void OnCreate()
        {
            base.OnCreate();
            #region 极光推送相关
            //注册Jpush
            JPushInterface.SetDebugMode(true);
            JPushInterface.Init(ApplicationContext);
            //设置基本样式
            SetNotificationStyleBasic();
            //自定义推送通知栏样式 test
            SetNotificationStyleCustom();
            //设置保留最近5条通知
            JPushInterface.SetLatestNotificationNumber(ApplicationContext, 5);
            #endregion

            #region imageloader 使用二级缓存
            //var configuration = ImageLoaderConfiguration.CreateDefault(ApplicationContext);//创建默认的ImageLoader配置参数

            //自定义缓存路径
            var          cachePath = Android.OS.Environment.ExternalStorageDirectory.ToString() + "/" + "eldyoungCommCenter/Cache/HeadImage/";
            Java.IO.File file      = new Java.IO.File(cachePath);
            if (!file.Exists())
            {
                file.Mkdirs();                                                                     // 创建文件夹
            }
            File cacheDir      = StorageUtils.GetOwnCacheDirectory(ApplicationContext, cachePath); //自定义缓存路径
            var  configuration = new ImageLoaderConfiguration.Builder(ApplicationContext).MemoryCacheExtraOptions(480, 800)
                                 .ThreadPoolSize(3).ThreadPriority(Thread.NormPriority - 2).DenyCacheImageMultipleSizesInMemory()
                                 .MemoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)).MemoryCacheSize(2 * 1024 * 1024).DiskCacheSize(50 * 1024 * 1024)
                                 .DiskCacheFileNameGenerator(new Md5FileNameGenerator()).TasksProcessingOrder(QueueProcessingType.Lifo).DiskCacheFileCount(100)
                                 .DiskCache(new UnlimitedDiskCache(cacheDir)).DefaultDisplayImageOptions(DisplayImageOptions.CreateSimple()).ImageDownloader(new BaseImageDownloader(ApplicationContext, 5 * 1000, 30 * 1000))
                                 .Build();
            ImageLoader.Instance.Init(configuration);

            #endregion

            #region 百度地图使用
            SDKInitializer.Initialize(ApplicationContext);
            #endregion
        }
예제 #14
0
        public SimpleCarouselAdapter(List<string> urls, Context context)
        {
            Urls = urls;

            DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
                .CacheOnDisc(true)
                .ImageScaleType(ImageScaleType.Exactly)
                .BitmapConfig(Bitmap.Config.Rgb565)
                .CacheInMemory(false)
                .Build();

            ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
                context)
                .WriteDebugLogs()
                .ThreadPoolSize(1)
                .DiskCacheExtraOptions(480, 320, null)
                .DefaultDisplayImageOptions(defaultOptions)
                //.DenyCacheImageMultipleSizesInMemory()
                .Build();
            ImageLoader.Instance.Init(config);
            imageLoader = ImageLoader.Instance;
        }
예제 #15
0
        public override void OnCreate()
        {
            base.OnCreate();

            DisplayImageOptions options = new DisplayImageOptions.Builder()
                                          .CacheOnDisk(true)
                                          .CacheInMemory(true)
                                          .ResetViewBeforeLoading()
                                          .ShowImageOnFail(Resource.Color.blue)
                                          .ShowImageForEmptyUri(Resource.Drawable.defaultsearchthumbnail)
                                          .BitmapConfig(Bitmap.Config.Rgb565)
                                          .Build();

            var config = new ImageLoaderConfiguration.Builder(ApplicationContext)
                         .DefaultDisplayImageOptions(options)
                         .DiskCacheExtraOptions(300, 300, null)
                         .DiskCacheFileCount(10)
                         .Build();

            // Initialize ImageLoader with configuration.
            ImageLoader.Instance.Init(config);
        }
예제 #16
0
        protected override async void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            // Create your application here
            StatusBarUtil.SetColorStatusBars(this);
            ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this).WriteDebugLogs().Build();//初始化图片加载框架

            ImageLoader.Instance.Init(configuration);
            //显示图片配置
            options = new DisplayImageOptions.Builder()
                      .ShowImageForEmptyUri(Resource.Drawable.icon_yuanyou)
                      .ShowImageOnFail(Resource.Drawable.icon_yuanyou)
                      .ShowImageOnLoading(Resource.Drawable.icon_user)
                      .CacheInMemory(true)
                      .BitmapConfig(Bitmap.Config.Rgb565)
                      .CacheOnDisk(true)
                      // .Displayer(new DisplayerImageCircle(20))
                      .Build();
            SetToolBarNavBack();
            tv_title        = FindViewById <TextView>(Resource.Id.tv_title);
            tv_award        = FindViewById <TextView>(Resource.Id.tv_award);
            tv_dateAdded    = FindViewById <TextView>(Resource.Id.tv_dateAdded);
            tv_userName     = FindViewById <TextView>(Resource.Id.tv_userName);
            iv_userIcon     = FindViewById <ImageView>(Resource.Id.iv_userIcon);
            tv_tags         = FindViewById <TextView>(Resource.Id.tv_tags);
            tv_dingCount    = FindViewById <TextView>(Resource.Id.tv_ding);
            tv_viewCount    = FindViewById <TextView>(Resource.Id.tv_view);
            tv_qScore       = FindViewById <TextView>(Resource.Id.tv_qScore);
            btn_answerCount = FindViewById <Button>(Resource.Id.btn_comment);
            btn_mark        = FindViewById <Button>(Resource.Id.btn_mark);

            tv_dealFlag = FindViewById <TextView>(Resource.Id.tv_dealFlag);
            wb_content  = FindViewById <WebView>(Resource.Id.wb_content);

            questionId = Intent.GetIntExtra("id", 0);
            GetClientQuestion(questionId);
            GetServerQuestion();
            shareWidget            = new UMengShareWidget(this);
            btn_answerCount.Click += (s, e) =>
            {
                QuestionAnswerActivity.Enter(this, questionId);
            };
            //_swipeRefreshLayout = FindViewById<SwipeRefreshLayout>(Resource.Id.swipeRefreshLayout);
            //_swipeRefreshLayout.SetColorSchemeResources(Resource.Color.primary);
            //_swipeRefreshLayout.SetOnRefreshListener(this);
            //_swipeRefreshLayout.Post(() =>
            //{
            //    _swipeRefreshLayout.Refreshing = true;

            //});

            wb_content.Settings.DomStorageEnabled       = true;
            wb_content.Settings.JavaScriptEnabled       = true;    //支持js
            wb_content.Settings.DefaultTextEncodingName = "utf-8"; //设置编码方式utf-8
            wb_content.Settings.SetSupportZoom(false);             //不可缩放
            wb_content.Settings.DisplayZoomControls = false;       //隐藏原生的缩放控件
            wb_content.Settings.BuiltInZoomControls = false;       //设置内置的缩放控件
            wb_content.Settings.CacheMode           = CacheModes.CacheElseNetwork;
            wb_content.ScrollBarStyle = ScrollbarStyles.InsideOverlay;
            wb_content.Settings.LoadsImagesAutomatically = true; //支持自动加载图片
            wb_content.Settings.UseWideViewPort          = true; //将图片调整到合适webview的大小
            wb_content.Settings.SetLayoutAlgorithm(WebSettings.LayoutAlgorithm.SingleColumn);
            var jsInterface = new WebViewJSInterface(this);

            wb_content.SetWebViewClient(ContentWebViewClient.Instance(this));
            wb_content.AddJavascriptInterface(jsInterface, "openlistner");
            jsInterface.CallFromPageReceived += delegate(object sender, WebViewJSInterface.CallFromPageReceivedEventArgs e)
            {
                PhotoActivity.Enter(this, e.Result.Split(','), e.Index);
            };
        }
예제 #17
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            // Create your application here
            StatusBarUtil.SetColorStatusBars(this);
            ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this).WriteDebugLogs().Build();//初始化图片加载框架

            ImageLoader.Instance.Init(configuration);
            //显示图片配置
            options = new DisplayImageOptions.Builder()
                      .ShowImageForEmptyUri(Resource.Drawable.icon_yuanyou)
                      .ShowImageOnFail(Resource.Drawable.icon_yuanyou)
                      .ShowImageOnLoading(Resource.Drawable.icon_user)
                      .CacheInMemory(true)
                      .BitmapConfig(Bitmap.Config.Rgb565)
                      .CacheOnDisk(true)
                      // .Displayer(new DisplayerImageCircle(20))
                      .Build();
            SetToolBarNavBack();
            ID                 = Intent.GetIntExtra("id", 0);
            tv_author          = FindViewById <TextView>(Resource.Id.tv_author);
            tv_postDate        = FindViewById <TextView>(Resource.Id.tv_postDate);
            wb_content         = FindViewById <WebView>(Resource.Id.wb_content);
            iv_avatar          = FindViewById <ImageView>(Resource.Id.iv_avatar);
            tv_articleTitle    = FindViewById <TextView>(Resource.Id.tv_articleTitle);
            btn_comment        = FindViewById <Button>(Resource.Id.btn_comment);
            tv_ding            = FindViewById <TextView>(Resource.Id.tv_ding);
            btn_mark           = FindViewById <Button>(Resource.Id.btn_mark);
            tv_view            = FindViewById <TextView>(Resource.Id.tv_view);
            swipeRefreshLayout = FindViewById <SwipeRefreshLayout>(Resource.Id.swipeRefreshLayout);
            swipeRefreshLayout.SetColorSchemeColors(Resources.GetColor(Resource.Color.primary));
            swipeRefreshLayout.SetOnRefreshListener(this);
            btn_mark.Click += (s, e) =>
            {
                AddBookmarkActivity.Enter(this, article.Url, article.Title, "add");
            };

            btn_comment.Click += (s, e) =>
            {
                ArticleCommentActivity.Enter(this, article.BlogApp, ID);
            };
            wb_content.Settings.DomStorageEnabled       = true;
            wb_content.Settings.JavaScriptEnabled       = true;    //支持js
            wb_content.Settings.DefaultTextEncodingName = "utf-8"; //设置编码方式utf-8
            wb_content.Settings.SetSupportZoom(false);             //不可缩放
            wb_content.Settings.DisplayZoomControls = false;       //隐藏原生的缩放控件
            wb_content.Settings.BuiltInZoomControls = false;       //设置内置的缩放控件
            wb_content.Settings.CacheMode           = CacheModes.CacheElseNetwork;
            wb_content.ScrollBarStyle = ScrollbarStyles.InsideOverlay;
            wb_content.Settings.LoadsImagesAutomatically = true; //支持自动加载图片
            wb_content.Settings.UseWideViewPort          = true; //将图片调整到合适webview的大小
            wb_content.Settings.SetLayoutAlgorithm(WebSettings.LayoutAlgorithm.SingleColumn);
            var jsInterface = new  WebViewJSInterface(this);

            wb_content.SetWebViewClient(ContentWebViewClient.Instance(this));
            wb_content.AddJavascriptInterface(jsInterface, "openlistner");
            jsInterface.CallFromPageReceived += delegate(object sender, WebViewJSInterface.CallFromPageReceivedEventArgs e)
            {
                PhotoActivity.Enter(this, e.Result.Split(','), e.Index);
            };
            if (ID == 0)
            {
                Android.OS.Handler handle = new Android.OS.Handler();
                handle.PostDelayed(() =>
                {
                    Finish();
                }, 2000);
                AlertUtil.ToastShort(this, "获取id错误立即返回");
            }
            InitArticle();
            shareWidget = new UMengShareWidget(this);
        }
예제 #18
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            var prefs = PreferenceManager.GetDefaultSharedPreferences(Application.Context);

            if (prefs.GetBoolean("disable_drawer_header", false))
            {
                viewId = Resource.Layout.page_home_noheader;
            }

            base.OnCreate(savedInstanceState);
            var config = ImageLoaderConfiguration.CreateDefault(ApplicationContext);
            // Initialize ImageLoader with configuration.
            //ImageLoader.Instance.Init(config);

            DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
                                                 .CacheInMemory(true)
                                                 .CacheOnDisk(true)
                                                 .Build();
            ImageLoaderConfiguration newConfig = new ImageLoaderConfiguration.Builder(ApplicationContext)
                                                 .DefaultDisplayImageOptions(defaultOptions)
                                                 .Build();

            ImageLoader.Instance.Init(newConfig);

            UserDialogs.Init(this);
            MicsManager.instance = new MicsManager();


            ISharedPreferencesEditor editor = prefs.Edit();

            if (string.IsNullOrEmpty(prefs.GetString("notif_title", "")))
            {
                editor.PutString("notif_title", "Sound Detected");
                editor.Apply();
            }
            if (string.IsNullOrEmpty(prefs.GetString("notif_body", "")))
            {
                editor.PutString("notif_body", "#SOUND");
                editor.Apply();
            }

            drawerLayout = FindViewById <DrawerLayout> (Resource.Id.drawer_layout);



            SupportActionBar.SetHomeAsUpIndicator(Resource.Drawable.ic_menu);
            navigationView = FindViewById <NavigationView> (Resource.Id.nav_view);

            for (int i = 1; i < 6; i++)
            {
                navigationView.Menu.GetItem(i).SetCheckable(false);
            }

            navigationView.NavigationItemSelected += (sender, e) => {
                //e.MenuItem.SetChecked (true);
                e.MenuItem.SetChecked(false);
                //navigationView.Selected = false;

                switch (e.MenuItem.ItemId)
                {
                case Resource.Id.nav_home:
                    e.MenuItem.SetChecked(true);
                    ListItemClicked(0);
                    break;

                case Resource.Id.nav_mics:
                    ListItemClicked(1);
                    break;

                case Resource.Id.nav_bt:
                    ListItemClicked(2);
                    break;

                case Resource.Id.nav_settings:
                    ListItemClicked(3);
                    break;

                case Resource.Id.nav_help:
                    ListItemClicked(4);
                    break;

                case Resource.Id.nav_feedback:
                    ListItemClicked(5);
                    break;
                }

                drawerLayout.CloseDrawers();
            };

            //if first time you will want to go ahead and click first item.
            if (savedInstanceState == null)
            {
                //SupportActionBar.SetWindowTitle("Notifications");

                ListItemClicked(-1);
            }
        }
예제 #19
0
        private void Initialize()
        {
            //Xamarin.Insights.Initialize(global::InPublishing.XamarinInsights.ApiKey, this);
            AppCenter.Start("cab73ad7-da5e-4ce1-a472-6d48df685f2f", typeof(Analytics), typeof(Crashes));

            //image loader
            var config = new ImageLoaderConfiguration.Builder(ApplicationContext);

            config.ThreadPriority(Java.Lang.Thread.NormPriority - 2);
            config.DenyCacheImageMultipleSizesInMemory();
            config.DiskCacheFileNameGenerator(new Md5FileNameGenerator());
            config.DiskCacheSize(50 * 1024 * 1024); // 50 MiB
            config.TasksProcessingOrder(QueueProcessingType.Lifo);
            config.WriteDebugLogs();                // Remove for release app

            // Initialize ImageLoader with configuration.
            ImageLoader.Instance.Init(config.Build());



            if (!DataManager.AlreadyRegistered <ISettingsManager>())
            {
                DataManager.RegisterReference <ISettingsManager, SettingsManager>();
            }

            DataManager.Get <ISettingsManager>().AndroidGetSettings = p =>
            {
                string content;
                using (StreamReader sr = new StreamReader(Assets.Open("AppSettings.xml")))
                {
                    content = sr.ReadToEnd();
                    return(content);
                }
            };

            DataManager.Get <ISettingsManager>().Load();

            //se è attiva la condivisione setto la cartella nella root
            string sharedPath = "";

            if (DataManager.Get <ISettingsManager>().Settings.ShareDir)
            {
                string appName = ApplicationInfo.LoadLabel(PackageManager);
                sharedPath = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath, appName);
            }
            else
            {
                sharedPath = GetExternalFilesDir("shared").AbsolutePath;
            }

            if (this.CanAccessExternal())
            {
                if (!Directory.Exists(sharedPath))
                {
                    Directory.CreateDirectory(sharedPath);
                }
            }

            //cartella per le pubblicazioni nascosta

/*#if DEBUG
 *                      string docPath = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/.Inpublishing/Publications";
 *                      string notePath = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/.Inpublishing/Notes";*/
//#else
            string docPath  = GetExternalFilesDir("publications").AbsolutePath;
            string notePath = GetExternalFilesDir("notes").AbsolutePath;

//#endif

            //Se non esiste la creo
            if (!Directory.Exists(docPath))
            {
                Directory.CreateDirectory(docPath);
            }

            DataManager.Get <ISettingsManager>().Settings.Debug      = true;
            DataManager.Get <ISettingsManager>().Settings.DocPath    = docPath;
            DataManager.Get <ISettingsManager>().Settings.SharedPath = sharedPath;
            DataManager.Get <ISettingsManager>().Settings.NotePath   = notePath;

            DataManager.Get <ISettingsManager>().Settings.AndroidContext = this;

            /*WifiManager manager = Application.Context.GetSystemService (Context.WifiService) as WifiManager;
             * WifiInfo info = manager.ConnectionInfo;
             * string address = info.MacAddress;*///uuid

            ISharedPreferences prefs = GetSharedPreferences(this.PackageName, FileCreationMode.Private);

            string deviceId = prefs.GetString("UniqueDeviceIdentifier", "");

            if (deviceId == "")
            {
                //Guid guid = Guid.NewGuid();
                //deviceId = guid.ToString ();
                deviceId = Android.Provider.Settings.Secure.GetString(ApplicationContext.ContentResolver, Android.Provider.Settings.Secure.AndroidId);
                ISharedPreferencesEditor editor = prefs.Edit();
                editor.PutString("UniqueDeviceIdentifier", deviceId);
                editor.Apply();
            }

            DataManager.Get <ISettingsManager>().Settings.DeviceUID  = deviceId;
            DataManager.Get <ISettingsManager>().Settings.DeviceOS   = DocumentOS.Android;
            DataManager.Get <ISettingsManager>().Settings.DeviceType = Utility.IsTablet(this) ? DocumentDevice.Tablet : DocumentDevice.Phone;

            //statistiche
            DataManager.Get <ISettingsManager>().Settings.StatsPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);

            FileSystemManager.AndroidCopyFunc = delegate()
            {
                //se è singola e devo importare i documenti elimino quelli presenti
                if (DataManager.Get <ISettingsManager>().Settings.SingolaApp&& Directory.Exists(DataManager.Get <ISettingsManager>().Settings.DocPath))
                {
                    System.IO.DirectoryInfo di = new DirectoryInfo(DataManager.Get <ISettingsManager>().Settings.DocPath);

                    foreach (FileInfo file in di.GetFiles())
                    {
                        file.Delete();
                    }
                    foreach (DirectoryInfo dir in di.GetDirectories())
                    {
                        dir.Delete(true);
                    }
                }

                string       dPath = DataManager.Get <ISettingsManager>().Settings.SharedPath;
                AssetManager am    = Resources.Assets;
                var          files = am.List("pub");
                foreach (string file in files)
                {
                    using (Stream source = Assets.Open("pub/" + file))
                    {
                        if (!File.Exists(Path.Combine(dPath, file)))
                        {
                            using (var dest = System.IO.File.Create(Path.Combine(dPath, file)))
                            {
                                source.CopyTo(dest);
                            }
                        }
                    }
                }
            };

            FileSystemManager.AndroidCountFunc = p =>
            {
                AssetManager am = Resources.Assets;
                return(am.List("pub").Length);
            };

            //preferenze
            if (!DataManager.AlreadyRegistered <IPreferencesManager>())
            {
                DataManager.RegisterReference <IPreferencesManager, PreferencesManager>();
            }

            DataManager.Get <ISettingsManager>().Load();

            //ordinamento
            if (!DataManager.Get <IPreferencesManager>().Preferences.AlreadyRun)
            {
                var order = DataManager.Get <ISettingsManager>().Settings.EdicolaOrder;

                DataManager.Get <IPreferencesManager>().Preferences.EdicolaOrder = order;
                DataManager.Get <IPreferencesManager>().Save();
            }

            //notifiche
            if (CheckPlayServices())
            {
                gcm   = GoogleCloudMessaging.GetInstance(this);
                regid = GetRegistrationId(ApplicationContext);
                //regid = "";
                if (regid == "")
                {
                    //ConnectivityManager connectivityManager = (ConnectivityManager) GetSystemService(ConnectivityService);
                    NetworkStatus internetStatus = Reachability.InternetConnectionStatus();
                    if (internetStatus == NetworkStatus.ReachableViaCarrierDataNetwork || internetStatus == NetworkStatus.ReachableViaWiFiNetwork)
                    {
                        RegisterInBackground();
                    }
                }
                else                 //anche se ho già il token registro comunque il dispositivo sull'edicola, saltando la richiesta del token però
                {
                    Thread _Thread = new Thread(() =>
                    {
                        try
                        {
                            SendRegistrationIdToBackend();
                        }
                        catch (Java.IO.IOException ex)
                        {
                            Log.Info(TAG, ex.Message);
                        }
                    });
                    _Thread.Start();
                }
            }
            else
            {
                Log.Info(TAG, "No valid Google Play Services APK found.");
            }

            //se la versione è diversa setto come se fosse la prima volta che l'app parte
            string version = PackageManager.GetPackageInfo(PackageName, 0).VersionCode.ToString();

            if (DataManager.Get <IPreferencesManager>().Preferences.AppVersion == "" || DataManager.Get <IPreferencesManager>().Preferences.AppVersion != version)
            {
                DataManager.Get <IPreferencesManager>().Preferences.DocImported = false;
            }

            DataManager.Get <IPreferencesManager>().Preferences.AppVersion = version;
            DataManager.Get <IPreferencesManager>().Save();

            if (DataManager.Get <ISettingsManager>().Settings.EdicolaEnabled&& !DataManager.Get <ISettingsManager>().Settings.SingolaApp)
            {
                //var intent = new Intent(this, typeof(EdicolaScreen));
                var intent = new Intent(this, typeof(HomeScreen));
                intent.SetFlags(ActivityFlags.NewTask | ActivityFlags.ClearTop);
                StartActivity(intent);
            }
            else
            {
                var intent = new Intent(this, typeof(DownloaderScreen));
                intent.SetFlags(ActivityFlags.NewTask | ActivityFlags.ClearTop);
                StartActivity(intent);
            }

            StatisticheManager.SendStats();

            MBDownloadManager.RemoveAll();

            //google analytics
            AnalyticsService.Initialize(this);
            AnalyticsService.SendEvent("App", AnalyticsEventAction.AppStart);

            DataManager.Get <IPreferencesManager>().Preferences.AlreadyRun = true;
            DataManager.Get <IPreferencesManager>().Save();
        }
예제 #20
0
        public override void OnCreate()
        {
            base.OnCreate();
            ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this).WriteDebugLogs().Build();

            ImageLoader.Instance.Init(configuration);//初始化图片加载框架
            blogCategoryList = new List <BlogCategoryModel>();
            blogCategoryList.Add(new BlogCategoryModel()
            {
                CategoryId = 1, CategoryName = "首页", ItemListActionName = "PostList", ParentCategoryId = 0, Position = 0, CategoryType = "TopSiteCategory"
            });
            blogCategoryList.Add(new BlogCategoryModel()
            {
                CategoryId = 2, CategoryName = "推荐", ItemListActionName = "PostList", ParentCategoryId = 0, Position = 1, CategoryType = "TopSiteCategory"
            });
            blogCategoryList.Add(new BlogCategoryModel()
            {
                CategoryId = 108698, CategoryName = ".NET", ItemListActionName = "PostList", ParentCategoryId = 0, Position = 2, CategoryType = "TopSiteCategory"
            });
            blogCategoryList.Add(new BlogCategoryModel()
            {
                CategoryId = 106876, CategoryName = "Java", ItemListActionName = "PostList", ParentCategoryId = 2, Position = 3, CategoryType = "SiteCategory"
            });
            blogCategoryList.Add(new BlogCategoryModel()
            {
                CategoryId = 108706, CategoryName = "Android", ItemListActionName = "PostList", ParentCategoryId = 108705, Position = 4, CategoryType = "SiteCategory"
            });
            blogCategoryList.Add(new BlogCategoryModel()
            {
                CategoryId = 807, CategoryName = "程序人生", ItemListActionName = "PostList", ParentCategoryId = 4, Position = 5, CategoryType = "SiteCategory"
            });
            blogCategoryList.Add(new BlogCategoryModel()
            {
                CategoryId = 108696, CategoryName = "Python", ItemListActionName = "PostList", ParentCategoryId = 2, Position = 6, CategoryType = "SiteCategory"
            });
            blogCategoryList.Add(new BlogCategoryModel()
            {
                CategoryId = 106882, CategoryName = "PHP", ItemListActionName = "PostList", ParentCategoryId = 2, Position = 7, CategoryType = "SiteCategory"
            });
            blogCategoryList.Add(new BlogCategoryModel()
            {
                CategoryId = 108703, CategoryName = "Web前端", ItemListActionName = "PostList", ParentCategoryId = 0, Position = 8, CategoryType = "TopSiteCategory"
            });
            blogCategoryList.Add(new BlogCategoryModel()
            {
                CategoryId = 108712, CategoryName = "数据库", ItemListActionName = "PostList", ParentCategoryId = 0, Position = 9, CategoryType = "TopSiteCategory"
            });
            blogCategoryList.Add(new BlogCategoryModel()
            {
                CategoryId = 108701, CategoryName = "软件设计", ItemListActionName = "PostList", ParentCategoryId = 0, Position = 10, CategoryType = "TopSiteCategory"
            });
            blogCategoryList.Add(new BlogCategoryModel()
            {
                CategoryId = 108724, CategoryName = "操作系统", ItemListActionName = "PostList", ParentCategoryId = 0, Position = 11, CategoryType = "TopSiteCategory"
            });

            //一些要求不高的初始化操作新开线程执行
            new Thread(() => {
                UserInfoManager.Init(this);
            }).Start();
        }