Esempio n. 1
0
 public override void OnConfigurationChanged(Android.Content.Res.Configuration newConfig)
 {
     base.OnConfigurationChanged(newConfig);
     DrawerToggle.OnConfigurationChanged(newConfig);
 }
Esempio n. 2
0
 public override bool OnOptionsItemSelected(IMenuItem item)
 {
     return(DrawerToggle.OnOptionsItemSelected(item) || base.OnOptionsItemSelected(item));
 }
        // Overridden from Activity
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            if (AppState.context == null)
            {
                StartActivity(typeof(MainActivity));
                Finish();
                return;
            }

            SetContentView(Resource.Layout.activity_home);

            ActionBar.SetDisplayHomeAsUpEnabled(true);
            ActionBar.SetHomeButtonEnabled(true);
            drawerLayout = FindViewById <DrawerLayout>(Resource.Id.main);
            drawerToggle = new DrawerToggle(this, drawerLayout);
            drawerLayout.SetDrawerListener(drawerToggle);
            content    = FindViewById(Resource.Id.content);
            drawer     = FindViewById(Resource.Id.drawer);
            drawerList = FindViewById <ListView>(Resource.Id.drawer_list);
            drawerList.OnItemClickListener = this;
            drawerList.Adapter             = navigationAdapter = new NavigationAdapter(BuildNavigationItems(), cache);

            var up = FindViewById <ImageView>(Android.Resource.Id.Home);

            up.SetPadding(15, 0, 0, 0);

            var emptyText = new TextView(this);

            emptyText.Text       = GetString(Resource.String.app_no_navigation_items);
            drawerList.EmptyView = emptyText;

            var i = Intent;

            var show = i.GetStringExtra(EXTRA_SHOW_FRAGMENT);

            if (show == null)
            {
                show = SHOW_WORKBENCH;
            }

            switch (show)
            {
            case SHOW_WORKBENCH:
                DisplayWorkbench();
                break;

            default:
                Log.D(this, "SHOW_FRAGMENT extra value: " + show + " invalid. Defaulting to workbench");
                DisplayWorkbench();
                break;
            }

            if (ion.appPrefs.showTutorial)
            {
                StartActivity(new Intent(this, typeof(TutorialActivity)));
            }
            else if (!ion.version.Equals(ion.preferences.lastKnownAppVersion) /* && !ion.preferences.firstLaunch*/)
            {
                if (!"0.0.0".Equals(ion.preferences.lastKnownAppVersion))
                {
                    if (ion.appPrefs.showWhatsNew)
                    {
                        try {
                            new WhatsNewDialog(this, ion.appPrefs, AppVersion.ParseOrThrow(ion.preferences.lastKnownAppVersion), AppVersion.ParseOrThrow(ion.version)).Show();
                        } catch (Exception e) {
                            Log.E(this, "Failed to parse current app version {" + ion.version + "}", e);
                            Toast.MakeText(this, Resource.String.error_failed_to_show_whats_new, ToastLength.Long).Show();
                        }
                    }
                }
            }
            ion.preferences.lastKnownAppVersion = ion.version;

            // Show the rss feed.
            Task.Factory.StartNew(ion.portal.DownloadRssOrThrowAsync)
            .ContinueWith((args) => {
                var rss = args.Result.Result;
                try {
                    var items = new List <RssItem>();
                    for (int j = 0; j < rss.channels[0].items.Count; j++)
                    {
                        var item = rss.channels[0].items[j];
                        if (item.publishDate.CompareTo(ion.appPrefs.lastRssDate) >= 0 && DateTime.Now.CompareTo(item.expireDate) <= 0)
                        {
                            items.Add(item);
                        }
                    }

                    if (items.Count > 0)
                    {
                        ion.PostToMain(() => {
                            new RssDialog(this, rss).Show();
                            ion.appPrefs.lastRssDate = DateTime.Now;
                        });
                    }
                } catch (Exception e) {
                    Log.E(this, "Failed to download rss feed", e);
                }
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }