protected override void OnNavigatedTo(NavigationEventArgs e)
    {
      base.OnNavigatedTo(e);

      if (e.NavigationMode != NavigationMode.Back)
      {
        var source = new PropertyDataSource(new JsonWebPropertySearch(new MarshalInvokeService()));
        var geolocationService = new GeoLocationService();

        var statePersistence = new StatePersistenceService();
        PropertyCrossPersistentState state = statePersistence.LoadState();

        _presenter = new PropertyCrossPresenter(state, source,
          new NavigationService(NavigationService), geolocationService);
        _presenter.SetView(this);
      }
    }
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate (bundle);

            var app = PropertyCrossApplication.GetApplication(this);
            app.CurrentActivity = this;

            var uiMarshal = new MarshalInvokeService(app);
            var source = new PropertyDataSource(new JsonWebPropertySearch(uiMarshal));
            geoLocationService = new GeoLocationService(
                    (Android.Locations.LocationManager)GetSystemService(Context.LocationService), uiMarshal);
            var stateService = new StatePersistenceService(app);
            PropertyCrossPersistentState state = stateService.LoadState();

            SetContentView (Resource.Layout.PropertyCrossView);
            searchText = FindViewById<EditText>(Resource.Id.search);

            searchText.TextChanged += delegate(object sender, Android.Text.TextChangedEventArgs e) {
                String searchTerm = searchText.Text;
                if (searchTerm != null)
                {
                    searchTerm = searchTerm.Trim();
                    SearchTextChanged(this, new SearchTextChangedEventArgs(searchTerm));
                }
            };
            searchText.SetOnEditorActionListener(this);

            myLocationButton = FindViewById<Button>(Resource.Id.use_location);
            myLocationButton.Click += LocationButton_Clicked;

            startSearchButton = (Button) FindViewById(Resource.Id.do_search);
            startSearchButton.Click += StartSearchButton_Clicked;

            messageText = (TextView) FindViewById(Resource.Id.mainview_message);

            resultsHeader = (TextView) FindViewById(Resource.Id.results_header);
            resultsList = (ListView) FindViewById(Resource.Id.results_list);
            resultsList.ItemClick += ResultsListItem_Clicked;
            resultsList.Adapter = new RecentSearchAdapter(this, new List<RecentSearch>());

            loadingAnimation = AnimationUtils.LoadAnimation(this, Resource.Animation.loading_rotate);
            loadingAnimation.RepeatMode = RepeatMode.Restart;

            presenter =
                new PropertyCrossPresenter(state,
                                            source,
                                            new NavigationService(app),
                                            geoLocationService);
            presenter.SetView(this);

            app.Presenter = presenter;
        }