public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { HasOptionsMenu = true; var fragment = inflater.Inflate(Resource.Layout.frag_ViewLetters, container, false); _viewSwitcher = fragment.FindViewById <ViewSwitcher>(Resource.Id.viewLettersFrag_viewSwitcher); _lettersRecyclerView = fragment.FindViewById <RecyclerView>(Resource.Id.viewLettersFrag_lettersRecycler); var layoutManager = new LinearLayoutManager(fragment.Context, LinearLayoutManager.Vertical, false); _lettersRecyclerView.SetLayoutManager(layoutManager); var letters = IsDraftLettersViewer() ? GetBaseApp().LetterManager.GetAllDraftLetters() : GetBaseApp().LetterManager.GettAllSentLetters(); _adapter = new LetterAdapter(this, letters); _adapter.LetterClick += OnLetterClicked; _adapter.CopyLetterSucceeded += LetterCopied; _adapter.DeleteLetterSucceeded += LetterDeleted; _lettersRecyclerView.SetAdapter(_adapter); _emptyDraftLettersText = fragment.FindViewById <TextView>(Resource.Id.viewLettersFrag_emptyText); _emptyDraftLettersText.Text = AndroidHelper.GetString(IsDraftLettersViewer() ? Resource.String.emptyDraftLettersText : Resource.String.emptySentLettersText); return(fragment); }
public void UpdateLetters(List <Letter> letters) { _letters = letters; NotifyDataSetChanged(); _fragment.ShowToast(AndroidHelper.GetString(Resource.String.updatedDraftLetters), ToastLength.Short); }
public CommitteeAdapter(BaseFragment fragment) { _fragment = fragment; _logger = new Logger(Class.SimpleName); _subcommitte = AndroidHelper.GetString(Resource.String.subcommitte); }
protected virtual void SetupSearchMenuItem(IMenu menu) { if (SearchItemId != 0) { using (var searchMenuItem = menu.FindItem(SearchItemId)) using (var searchView = MenuItemCompat.GetActionView(searchMenuItem)) using (var searchViewJavaObj = searchView.JavaCast <Android.Support.V7.Widget.SearchView>()) { searchViewJavaObj.QueryHint = AndroidHelper.GetString(Resource.String.enterSearchCriteria); searchViewJavaObj.QueryTextSubmit += (s, e) => { _searchTextChanged?.Invoke(e.Query); e.Handled = true; }; var onSearchCollapsedListener = new OnActionExpandListener(); onSearchCollapsedListener.MenuItemCollaspe += (sender, e) => { _searchSearchviewCollapsed?.Invoke(); e.Handled = true; }; MenuItemCompat.SetOnActionExpandListener(searchMenuItem, onSearchCollapsedListener); } } }
private void VerifyUserWantsToUpdateLegislators() { var lastUpdate = AppHelper.GetLastLegislatorUpdate(); var message = string.Format("{0}{1}{1}{2}{1}{1}{3}", AndroidHelper.GetString(Resource.String.verifyUpdateOfLegislatorData), System.Environment.NewLine, AndroidHelper.GetString(Resource.String.verifyUpdateOfLegislatorDataWarning), lastUpdate == DateTime.MinValue ? string.Empty : $"{AndroidHelper.GetString(Resource.String.verifyUpdateOfLegislatorDataLastUpdate)}: {lastUpdate.ToString("G")}"); var verifyPrompt = new Android.Support.V7.App.AlertDialog.Builder(this);//, Resource.Style.VerifyDialogTheme); verifyPrompt.SetTitle(AndroidHelper.GetString(Resource.String.confirmRefresh)); verifyPrompt.SetMessage(message); verifyPrompt.SetNegativeButton(Resource.String.dismiss, (sender, args) => { RunOnUiThread(() => (sender as Android.Support.V7.App.AlertDialog).Dismiss()); }); verifyPrompt.SetPositiveButton(Resource.String.ok, (sender, args) => { RunOnUiThread(UpdateLegislators); }); verifyPrompt.Create().Show(); }
protected override void FetchMoreLegislatorContent(bool isNextClick) { base.FetchMoreLegislatorContent(isNextClick); var getBillsTask = GetBillsContentTaskForViewerMode(_viewerMode); getBillsTask.ContinueWith((antecedent) => { if (Activity == null || Activity.IsDestroyed || Activity.IsFinishing) { return; } Activity.RunOnUiThread(() => { if (antecedent.IsFaulted || antecedent.IsCanceled) { HandleErrorRetrievingData(); } else { HandleSuccessfullDataRetrieval(); currentPage = antecedent.Result.Item3 + 1; _isThereMoreVotes = antecedent.Result.Item2; if (_billsToDisplay == null || !_billsToDisplay.Any()) { _billsToDisplay = antecedent.Result.Item1; } else { _billsToDisplay.AddRange(antecedent.Result.Item1); } //SetLoadMoreButtonInDisabledState(false); //SetLoadMoreButtonVisibility(_isThereMoreVotes); ShowBills(_billsToDisplay, _isThereMoreVotes); if (_viewerMode == BillViewerKind.LastestBillsForEveryone) { GetBaseActivity().UpdateTitleBarText(AndroidHelper.GetString(Resource.String.latestBills)); } else if (_viewerMode == BillViewerKind.BillSearch) { GetBaseActivity().UpdateTitleBarText($"'{antecedent.Result.Item4}' Bills"); } } if (_viewerMode == BillViewerKind.BillSearch) { SetToolbarForSearchResultReturned(AreThereBillsToShow()); } }); }); getBillsTask.Start(); }
private void UpdateLegislators() { var results = GetBaseApp().UpdateLegislatorData(); var message = AndroidHelper.GetString(results ? Resource.String.legislatorDataSuccessfullyUpdated : Resource.String.unableToUpdateLegislatorData); ShowToast(message); }
public override void OnPrepareOptionsMenu(IMenu menu) { GetToolbar().SetDisplayShowTitleEnabled(true); GetToolbar().Title = AndroidHelper.GetString(IsDraftLettersViewer() ? Resource.String.drafts : Resource.String.sent); base.OnPrepareOptionsMenu(menu); }
public VoteAdapter(BaseFragment fragment) { _fragment = fragment; voteResult = AndroidHelper.GetString(Resource.String.voteResult); voteType = AndroidHelper.GetString(Resource.String.voteType); date = AndroidHelper.GetString(Resource.String.date); billInfo = AndroidHelper.GetString(Resource.String.billInfo); nominationInfo = AndroidHelper.GetString(Resource.String.nominationInfo); }
private void HandleExitSearchviewClicked() { GetBaseActivity().UpdateTitleBarText(AndroidHelper.GetString(Resource.String.searchBills)); GetBaseActivityWithToolbarSearch().SetToolbarFilterviewVisibility(false); _lastSearchTerm = string.Empty; currentPage = 1; _billsToDisplay = null; ShowBills(_billsToDisplay, _isThereMoreVotes); }
protected virtual void HandleErrorRetrievingData() { //errorOccurred = true; if (emptyText != null) { emptyText.Text = AndroidHelper.GetString(Resource.String.unableToRetrieveFavLegislators); } ShowToast(AndroidHelper.GetString(Resource.String.dataRetrievedError), ToastLength.Long); }
public BillAdapter(BaseFragment fragment) { _fragment = fragment; dateIntroduced = AndroidHelper.GetString(Resource.String.dateIntroduced); cosponsors = AndroidHelper.GetString(Resource.String.cosponsorCount); status = AndroidHelper.GetString(Resource.String.status); date = AndroidHelper.GetString(Resource.String.statusDate); summary = AndroidHelper.GetString(Resource.String.summary); lastaction = AndroidHelper.GetString(Resource.String.lastAction); lastactionDate = AndroidHelper.GetString(Resource.String.lastActionDate); }
public LegislatorAdapter(BaseFragment fragment, List <Legislator> legislators) { Logger = new Logger(Class.SimpleName); _legislators = legislators; _fragment = fragment; _termStartDate = AndroidHelper.GetString(Resource.String.termStarted); _termEndDate = AndroidHelper.GetString(Resource.String.termEnds); _senate = AndroidHelper.GetString(Resource.String.senate); _congress = AndroidHelper.GetString(Resource.String.congress); _selectableItemBackground = AppHelper.GetTypedValueFromActv(_fragment.Activity); }
public override string ViewerTitle() { switch (_viewerMode) { case BillViewerKind.SponsoredBills: return(AndroidHelper.GetString(Resource.String.billsSponsored)); case BillViewerKind.CosponsoredBills: return(AndroidHelper.GetString(Resource.String.billsCosponsored)); default: return(string.Empty); } }
private void OnActionButtonClick(int position, int buttonResourceId) { var legislator = GetLegislatorAtPosition(position); if (legislator == null) { Logger.Error($"Unable to process legislator's action button click. Unable to find legislator at position {position}"); _fragment.ShowToast(AndroidHelper.GetString(Resource.String.unableToProcessAction)); return; } ContactMethod contactMethod = null; switch (buttonResourceId) { case Resource.Id.legislatorCtrl_email: contactMethod = legislator.Email; break; case Resource.Id.legislatorCtrl_phone: contactMethod = legislator.OfficeNumber; break; case Resource.Id.legislatorCtrl_address: contactMethod = legislator.OfficeAddress; break; case Resource.Id.legislatorCtrl_facebook: contactMethod = legislator.FacebookId; break; case Resource.Id.legislatorCtrl_twitter: contactMethod = legislator.TwitterId; break; case Resource.Id.legislatorCtrl_youtube: contactMethod = legislator.YouTubeId; break; case Resource.Id.legislatorCtrl_webpage: contactMethod = legislator.Website; break; } if (contactMethod != null) { AppHelper.PerformContactMethodIntent(_fragment, contactMethod, false); } }
protected virtual void HandleErrorRetrievingData() { errorOccurred = true; if (loadMoreButton != null) { loadMoreButton.Enabled = true; } if (emptyText != null) { emptyText.Text = AndroidHelper.GetString(Resource.String.unableToRetrieveData); } ShowToast(AndroidHelper.GetString(Resource.String.dataRetrievedError), ToastLength.Long); }
private void UpdateTextview(View fragment, int textviewResId, int labelTextId, string text) { using (var textView = fragment.FindViewById <TextView>(textviewResId)) { if (string.IsNullOrWhiteSpace(text)) { textView.Visibility = ViewStates.Gone; } else { var labelText = AndroidHelper.GetString(labelTextId); textView.Text = $"{labelText}: {text}"; textView.Visibility = ViewStates.Visible; } } }
protected virtual void SetupFilterMenuItem(IMenu menu) { if (FilterDataItemId != 0) { using (var filterMenuItem = menu.FindItem(FilterDataItemId)) using (var filterView = MenuItemCompat.GetActionView(filterMenuItem)) using (var filterViewJavaObj = filterView.JavaCast <Android.Support.V7.Widget.SearchView>()) { filterViewJavaObj.QueryHint = AndroidHelper.GetString(Resource.String.enterFilterCriteria); filterViewJavaObj.QueryTextChange += (s, e) => { _filterDataTextChanged?.Invoke(e.NewText); e.Handled = true; }; filterViewJavaObj.QueryTextSubmit += (s, e) => { _filterDataTextChanged?.Invoke(e.Query); e.Handled = true; }; var onCollapseListener = new OnActionExpandListener(); onCollapseListener.MenuItemCollaspe += (sender, e) => { _filterSearchviewCollapsed?.Invoke(); e.Handled = true; }; MenuItemCompat.SetOnActionExpandListener(filterMenuItem, onCollapseListener); if (!string.IsNullOrWhiteSpace(CurrentFilter)) { var previousFilter = CurrentFilter; //For some reason these to invoke QueryTextChanged // the secodn time it is called, the CurrentFilter is set to empty filterMenuItem.ExpandActionView(); CurrentFilter = previousFilter; filterViewJavaObj.SetQuery(CurrentFilter, false); CurrentFilter = previousFilter; } } } }
private void PopulateBasicInfo(View fragment, Legislator legislator) { _portrait = fragment.FindViewById <ImageView>(Resource.Id.viewLegislatorFrag_portrait); AppHelper.SetLegislatorPortrait(legislator, _portrait); using (var chamber = fragment.FindViewById <TextView>(Resource.Id.viewLegislatorFrag_chamber)) chamber.Text = $"{AndroidHelper.GetString(Resource.String.chamber)}: {legislator.Chamber} ({legislator.State.ToString()})"; using (var party = fragment.FindViewById <TextView>(Resource.Id.viewLegislatorFrag_party)) party.Text = $"{AndroidHelper.GetString(Resource.String.party)}: {legislator.Party.ToString()}"; var termStartDateText = AndroidHelper.GetString(Resource.String.termStarted); using (var termStartDate = fragment.FindViewById <TextView>(Resource.Id.viewLegislatorFrag_termStartDate)) termStartDate.Text = AppHelper.GetLegislatorTermStartDate(legislator, termStartDateText); var termEndDateText = AndroidHelper.GetString(Resource.String.termEnds); using (var termEndDate = fragment.FindViewById <TextView>(Resource.Id.viewLegislatorFrag_termEndDate)) termEndDate.Text = AppHelper.GetLegislatorTermEndDate(legislator, termEndDateText); using (var birthday = fragment.FindViewById <TextView>(Resource.Id.viewLegislatorFrag_birthdate)) { var bdayText = AndroidHelper.GetString(Resource.String.birthday); birthday.Text = legislator.Birthday == DateTime.MinValue ? string.Empty : $"{bdayText}: {AppHelper.GetLegislatorBirthdateAndAge(legislator)}"; } UpdateTextview(fragment, Resource.Id.viewLegislatorFrag_votesTotal, Resource.String.votesTotal, legislator.TotalVotes.ToString()); UpdateTextview(fragment, Resource.Id.viewLegislatorFrag_voteWithPartyPrct, Resource.String.votesWithPartyPercent, legislator.VotesWithPartyPercent.ToString()); UpdateTextview(fragment, Resource.Id.viewLegislatorFrag_voteMissedPrct, Resource.String.votesMissedPercent, legislator.MissedVotesPercent.ToString()); }
public LetterAdapter(BaseFragment fragment, List <Letter> letters) { _logger = new Logger(Class.SimpleName); _letters = letters; _fragment = fragment; _lastSavedDate = AndroidHelper.GetString(Resource.String.letterSaved); _sendDate = AndroidHelper.GetString(Resource.String.send); //TODO RM: Ensure this works with pre 5.0 like 4.4 try { _fragment.Activity.Theme.ResolveAttribute(Android.Resource.Attribute.SelectableItemBackground, _selectableItemBackground, true); } catch (Exception e) { _logger.Error($"An Error occurred while retrieving the SelectableItemBackground used for transparent buttons. {e.Message}"); _selectableItemBackground = null; } }
public override bool OnOptionsItemSelected(IMenuItem item) { switch (item.ItemId) { case Resource.Id.viewLegislator_menu_favButtonOff: AppHelper.AddLegislatorToFavoriteList(_viewLegislatorFragment.GetLegislator()); ShowToast(AndroidHelper.GetString(Resource.String.legislatorAddedToFavorites)); _currentMenuId = Resource.Menu.menu_viewLegislator_favButtonOn; break; case Resource.Id.viewLegislator_menu_favButtonOn: AppHelper.RemoveLegislatorFromFavoriteList(_viewLegislatorFragment.GetLegislator()); ShowToast(AndroidHelper.GetString(Resource.String.legislatorRemovedFromFavorites)); _currentMenuId = Resource.Menu.menu_viewLegislator_favButtonOff; break; } //ReloadMenu(); SupportInvalidateOptionsMenu(); return(true); }
private void Copy_Click(int position) { var letter = GetLetterAtPosition(position); if (letter == null) { _logger.Error($"Unable to copy letter. Could not retrive letter at position {position}."); _fragment.ShowToast(AndroidHelper.GetString(Resource.String.unableToCopyLetter)); return; } var copiedLetter = new Letter() { Body = letter.Body, Id = Guid.NewGuid(), DateSent = DateTime.MinValue, LastSaved = DateTime.Now, Recipient = letter.Recipient, RecipientEmail = letter.RecipientEmail, Sent = false, Signature = letter.Signature, Subject = letter.Subject }; if (_fragment.GetBaseApp().LetterManager.SaveLetter(copiedLetter)) { _letters.Insert(0, copiedLetter); NotifyItemInserted(0); OnCopyLetterSucceeded(position); _fragment.ShowToast(AndroidHelper.GetString(Resource.String.letterCopied)); } else { _fragment.ShowToast(AndroidHelper.GetString(Resource.String.unableToCopyLetter)); } }
private void Delete_Click(int position) { var letter = GetLetterAtPosition(position); if (letter == null) { _logger.Error($"Unable to delete letter. Could not retrive letter at position {position}."); _fragment.ShowToast(AndroidHelper.GetString(Resource.String.unableToDeleteLetter)); return; } if (_fragment.GetBaseApp().LetterManager.DeleteLetterById(letter.Id.ToString())) { //Position is not zero based _letters.RemoveAt(position); NotifyItemRemoved(position); _fragment.ShowToast(AndroidHelper.GetString(Resource.String.letterDeleted)); DeleteLetterSucceeded?.Invoke(this, position); } else { _fragment.ShowToast(AndroidHelper.GetString(Resource.String.unableToDeleteLetter)); } }
protected void SetLoadingUi() { emptyText.Text = AndroidHelper.GetString(Resource.String.loading); ShowEmptyview(); }
public override void OnStart() { base.OnStart(); (Activity as Activities.BaseActivity).UpdateTitleBarText(AndroidHelper.GetString(Resource.String.settings)); }
public override void OnStart() { base.OnStart(); GetBaseActivity().UpdateTitleBarText(AndroidHelper.GetString(Resource.String.donate)); }
protected virtual string GetSuccessfullDataRetrievalMessage() { return(AndroidHelper.GetString(Resource.String.dataRetrievedSuccessfully)); }
protected void SetLoadingTextInEmptyView() { ShowEmptyview(AndroidHelper.GetString(Resource.String.loading)); }
protected override string EmptyText() { return(AndroidHelper.GetString(Resource.String.emptyBillsText)); }
protected override void OnStart() { base.OnStart(); UpdateTitleBarText(AndroidHelper.GetString(Resource.String.feedback)); }