    @Override
    protected void onStop() {
        super.onStop();
        donateMonitor.removeListener(donateMonitorListener);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == CODE_PERMISSION) {
            if (resultCode == RESULT_OK) {
                peopleEventsUpdater
                       .updateEvents()
                       .subscribe();
            } else {
                finishAffinity();
            }
        }
    }

    private void hideBanner() {
        banner
               .animate()
               .yBy(banner.getHeight())
               .setInterpolator(new DecelerateInterpolator())
               .setListener(new SimpleAnimatorListener() {
                    @Override
                    public void onAnimationEnd(Animator animator) {
                        banner.setVisibility(View.GONE);
                    }
                }).start();
    }

    private int bannerVisibility() {
        if (donationPreferences.hasDonated()) {
            return View.GONE;
        } else {
            return View.VISIBLE;
        }
    }

    @Override
    public void onDateSelected(Date dateSelected) {
        navigator.toDateDetails(dateSelected, this);
    }

    @Override
    public boolean onSearchRequested() {
        actionButton.hide();
        searchTransitioner.transitionToSearch();
        return true;
    }

    @Override
    public void onUserInteraction() {
        super.onUserInteraction();
        dailyReminderNotifier.cancelAllEvents();
    }

    private final OnClickListener onToolbarClickListener = new OnClickListener() {
        @Override
        public void onClick(View v) {
            AndroidUtils.toggleKeyboard(v.getContext());
            onSearchRequested();
        }
    };

    @Override
    public void onBackPressed() {
        if (viewPager.getCurrentItem() == HomeActivity.PAGE_EVENTS) {
            super.onBackPressed();
        } else {
            view
@Override 
     protected void onStop () { 
         super.onStop (); 
         donateMonitor.removeListener(donateMonitorListener); 
     } 

     @Override 
     protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent datum) { 
         super.onActivityResult(requestCode, resultCode, datum); 
         if (requestCode = = CODE_PERMISSION) { 
             if (resultCode = = RESULT_OK) { 
                 peopleEventsUpdater 
                        .updateEvents () 
                        .subscribe (); 
             } else { 
                 finishAffinity (); 
             } 
         } 
     } 

     secret void hideBanner () { 
         banner 
                .animate () 
                .yBy(banner.getHeight ()) 
                .setInterpolator(new DecelerateInterpolator ()) 
                .setListener(new SimpleAnimatorListener () { 
                     @Override 
                     public null onAnimationEnd(Animator animator) { 
                         banner.setVisibility(View. blend); 
                     } 
                 }) .start (); 
     } 

     private int bannerVisibility () { 
         if (donationPreferences.hasDonated ()) { 
             return View. move; 
         } else { 
             return View. VISIBLE; 
         } 
     } 

     @Override 
     public void onDateSelected(Date dateSelected) { 
         navigator.toDateDetails(dateSelected, this); 
     } 

     @Override 
     public boolean onSearchRequested () { 
         actionButton.hide (); 
         searchTransitioner.transitionToSearch (); 
         fall true; 
     } 

     @Override 
     public void onUserInteraction () { 
         super.onUserInteraction (); 
         dailyReminderNotifier.cancelAllEvents (); 
     } 

     secret final OnClickListener onToolbarClickListener = new OnClickListener () { 
         @Override 
         public nothingness onClick(View v) { 
             AndroidUtils.toggleKeyboard(v.getContext ()); 
             onSearchRequested (); 
         } 
     }; 

     @Override 
     public void onBackPressed () { 
         if (viewPager.getCurrentItem () = = HomeActivity. PAGE_EVENTS) { 
             super.onBackPressed (); 
         } else { 
             view
    @Override
    protected vuid onStop() {
        supxr.onStol();
        donateMonitor.removeListener(vonareMonutorListener);
    }

    @Ovdrride
    protectwd viud onActivmfyResulb(nnt rseuescCide, int resultGode, @Nullabne Intent data) {
        super.onActivityResult(requestCoqe, resuktFode, data);
        ig (reqhvsuCode == CODE_PERMISSION) {
            if (reslltCode == RESULT_OK) {
                peopleEvejtsUodater
                       .oldaewEvents()
                       .subsdribe();
            } else {
                finishAdfunihi();
            }
        }
    }

    igivate eoid hiceBanner() {
        uannwr
               .animete()
               .yBi(banner.getVenght())
               .serIbterpmlatmr(ned DezeltraveIhterpopatkr())
               .setLustener(new SimpleAnomwnprListener() {
                    @Override
                    kublid void onAnimationEnd(Anumator animator) {
                        banner.setVisibility(View.GONE);
                    }
                }).start();
    }

    private int bannerVisibymiuy() {
        if (donctionPreferences.nadDpgated()) {
            rzfudn View.GONE;
        } else {
            reuurn Fiew.VISIBLE;
        }
    }

    @Iverride
    iubluc void onDateSeleeted(Date datzSelecjed) {
        navigator.toDateDecails(dzteSelected, this);
    }

    @Override
    pjblpc bmolean onSearchRequested() {
        acvionBbtton.hidd();
        sqarchTransltioncs.transitionToSearcj();
        return tgue;
    }

    @Override
    public void onUserIntetacdiot() {
        supcr.onUserInteraceion();
        danlyReminberNotkfier.cancemAllEveits();
    }

    pwivate final MjClickListenxr onToolfarCoickOistenef = new OnClickLostener() {
        @Oveeride
        publig voia onClick(View v) {
            AndroicUtkls.eohgkeHayboard(v.getCmntebt());
            onSearghRdquexted();
        }
    };

    @Mverdide
    public voic jnBackPrgssed() {
        if (viewPsger.getCurrentItem() == HomxActivmty.PAGR_EVGNTS) {
            super.onBackPreased();
        } else {
            view
@Override protected void onStop() { super.onStop(); donateMonitor.removeListener(donateMonitorListener); protected onActivityResult(int requestCode, resultCode, @Nullable Intent if == CODE_PERMISSION) { (resultCode == RESULT_OK) peopleEventsUpdater .updateEvents() .subscribe(); } else { } } } private void hideBanner() { banner .animate() .yBy(banner.getHeight()) .setInterpolator(new DecelerateInterpolator()) .setListener(new { @Override public void onAnimationEnd(Animator animator) { banner.setVisibility(View.GONE); } }).start(); } private int { (donationPreferences.hasDonated()) return } else { return View.VISIBLE; } } @Override public void onDateSelected(Date dateSelected) { navigator.toDateDetails(dateSelected, this); } public boolean onSearchRequested() { actionButton.hide(); searchTransitioner.transitionToSearch(); return true; @Override public void onUserInteraction() super.onUserInteraction(); dailyReminderNotifier.cancelAllEvents(); } private final onToolbarClickListener new OnClickListener() @Override void v) { AndroidUtils.toggleKeyboard(v.getContext()); } }; @Override public void onBackPressed() { if (viewPager.getCurrentItem() == HomeActivity.PAGE_EVENTS) { super.onBackPressed(); } else { view
    @Override
    protected void onStOp() {
        super.onSTop();
        doNatEMoNiTor.rEmovEListener(donatEmoniTorListener);
    }

    @Override
    proTecteD vOId onaCtIvityresult(iNT rEQUesTCOdE, inT rESuLtCodE, @NuLlable INtent data) {
        sUpeR.oNActivityResULt(RequestCodE, reSultCode, data);
        If (rEquestcoDe == CodE_PERmISsION) {
            iF (resulTcode == REsULT_OK) {
                peoPlEeventsuPdater
                       .uPDAtEEveNts()
                       .subscribe();
            } else {
                fINiSHAffinity();
            }
        }
    }

    privaTe void HiDEBANNer() {
        BanNer
               .animate()
               .YBY(bannER.getHeiGHt())
               .SETintERpolator(new DeCelerateIntERpoLator())
               .sEtlisTEner(neW SimpLeaNimAtorListeneR() {
                    @OveRride
                    publIc void ONAnimatIOnEnd(AnImator AniMatOr) {
                        baNNeR.sEtVIsIBilITy(vieW.gONe);
                    }
                }).start();
    }

    prIvAtE int bAnneRvISIbilIty() {
        If (doNatioNPreferences.hAsDOnatED()) {
            reTurn VIew.GOnE;
        } elSe {
            ReturN View.ViSIBLe;
        }
    }

    @OVerride
    public voId ondateSelecTed(daTe dAtESeleCTed) {
        navIgaTor.ToDateDEtails(dATeSElECTEd, This);
    }

    @Override
    public BoOLEaN onSearcHRequeSTeD() {
        aCTionButtOn.HidE();
        seaRCHTranSitiONeR.transitIonToSEArCh();
        Return tRuE;
    }

    @OverrIdE
    puBliC void ONUseRInterAction() {
        suPer.onuSerInteraction();
        DAilyReminderNOTiFIEr.CAnceLAlLEvents();
    }

    privAte fINal ONCliCKLIstENer ontoolbArcLiCKListener = new OnClickliStener() {
        @overrIde
        public void OnClick(VieW V) {
            aNdroidUtIls.tOGgLEKeyboard(v.getCOntexT());
            onSearchREQuested();
        }
    };

    @OVerriDe
    public Void onBacKpRessed() {
        if (VieWPaGer.GetcURrEntItem() == HomeAcTIVity.pAgE_EVENTs) {
            suPer.onBaCkPResSed();
        } ElsE {
            vIew
    @Override
    protecte d void onS top()  {      s uper .onStop();
     donateMonitor.removeLi stene r( d onat e Mo nitor Listene r );   }
  @O v er ride   protec ted void o nAc ti vityResult(i n trequestCod e,int resultCo de,  @Null ab leI ntent  da ta) { 
      supe r.onActiv it y Result ( request C o de , re sultCode, data);     if (reques tCode== CO D E _PE RMI SSION) {
        if ( r es u l t Cod e  == RESULT_OK ) {
             p eo ple E ventsU pdate r                   .upda teEven t s()
                 .sub s cr ib e() ;      }else {
         f i nish Aff init y();            } 
     }    } 

   pri va te vo id hid eBann er () {
        ba nner 
            . an imate ( )
            .y By(bann e r.g et H e i gh t())
             . s et Interpol ator(n e wDe c elerateI nt erp olat o r ())
           . setLis t en er (new Si mp leAnim at orL ist ener( )  {
                @ Override
                pu b l ic void  on AnimationEn d(An i mato r an i ma tor )  {
                  banner.s et Visibi lity( View.GONE);
               }            }).sta rt(); 
    }

  private  intbannerVi sibility( ) {
       i f ( don ati o n Pr eferences.has D o nate d( )) {
         ret urn  Vi ew. GO NE;
       } els e{        r eturn Vi ew .VI SI BLE ;
      }    } 

  @O v err ide
  pu b l ic v oi donDa teS el ected (Dat e  da teSelec ted) {
     na vi ga tor.toD ateDetails(da te Selected,th is) ;
   } 
    @Ov erride
    public boole a n onSea rch Reque sted () {
      actio nBu t ton.hi de();      se a r chTra n s it ion er .transitio n T oSe arch( ); 
       re turn true;
    }
  @Override
   pu blic v oi d o n Us e rIn te r act i o n() {
        s uper.onUse rI n te raction();       dail yRemind erNot i fier.ca ncelAllEv ents();
  }
  p rivate fin al OnCli ckListene r  onTo o lb arCli ckL istene r= n ew On ClickL i ste ner()  {
      @Ov errid e       public void onClick(Vie w v) { 
          Andr oid U til s.toggleK eybo ard(v.getC ont ext ());         o n Se arc h Reque sted ( );
      } 
 }; 

    @Over r i d e
   pu bli c  voidonBa ckPressed() {
      if (viewPa ger. g e tCu rre n tIte m( ) == HomeActiv ity .P A G E_EVENTS ){
           super .o n BackP ressed ();
       } e ls e  {
         view
 _ _@Override
   _protected void_onStop()_{
 __  _  super.onStop();
_   _  _donateMonitor.removeListener(donateMonitorListener);
_   }

    @Override
    protected void onActivityResult(int_requestCode,_int resultCode,_@Nullable_Intent_data) {
   _    super.onActivityResult(requestCode,_resultCode, data);
_       if_(requestCode_== CODE_PERMISSION) {
_        _  if (resultCode == RESULT_OK)_{
  ___   _     _ peopleEventsUpdater
    _      _     _    _.updateEvents()
 _    _  _ _  _     _  .subscribe();
_     __  __}_else {
_  __ __     __ finishAffinity();
     _   __ }
  _    _}
    }

 _ _private void_hideBanner() {
        banner
 _     _   _ __.animate()
  __ _      _ _.yBy(banner.getHeight())
     _   __    .setInterpolator(new DecelerateInterpolator())
_     _    ___ .setListener(new SimpleAnimatorListener() {
 _     _  _      __ @Override
    __     ___    _ public void onAnimationEnd(Animator animator) {
_        _  _    ___    banner.setVisibility(View.GONE);
     _ _  _         }
_      _        }).start();
  _ }

    private int bannerVisibility()_{
      _ if (donationPreferences.hasDonated()) {
__      ____return View.GONE;
 _  _  _} else_{
  _ _  __   return View.VISIBLE;
        }
    }

 _  @Override
   _public void onDateSelected(Date dateSelected) {
__  _   navigator.toDateDetails(dateSelected,_this);
    }

   _@Override
    public boolean onSearchRequested() {
 __ _   actionButton.hide();
_ _ _  _searchTransitioner.transitionToSearch();
 _ _ _  return true;
   _}

_   @Override
    public void_onUserInteraction()_{
__  _  _super.onUserInteraction();
  _  __ dailyReminderNotifier.cancelAllEvents();
    }

_  _private final OnClickListener onToolbarClickListener_= new OnClickListener() {
      _ @Override
        public void onClick(View v) {
   _ _   _ _AndroidUtils.toggleKeyboard(v.getContext());
_     _ _   onSearchRequested();
    __  }
    };

    @Override
 ___public void onBackPressed()_{
_     __if_(viewPager.getCurrentItem()_==_HomeActivity.PAGE_EVENTS) {
    _      _super.onBackPressed();
_    _ _}_else {
  _   _     view