Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add decode event type to other DecoderStates to support filtering. #1099

Conversation

VolFFProCoder
Copy link
Contributor

This is in addition to Add filter button to messages #1098.

This adds the event type to allow for filtering of the remaining system protocols.

VolFFProCoder and others added 26 commits November 10, 2021 21:37
* Added DecodeEventType to decode event objects.

* Refactor of P25 models to accommodate adding event type to P25 event builders.

* Create new filters for Events. Created EventFilter base class.

* Update DecodeEvent panel to show filter button

* Fixed filtering bug that only checked the first IFilter in a FilterSet.

* Added Clear button to Events.

* Removed old test code accidentally pushed.

* Grouped Encrypted calls into separate filter.
* Create Last Seen panel and filter

* Created Last Heard panel and filter

* Added Last Seen and Last Heard panels to Now Playing panel.
@DSheirer
Copy link
Owner

@VolFFProCoder my apologies for the delay in merging your PRs. I merged the first PR that adds the filter and clear button panel.

Could you please squash your commits and rebase onto master so that I can merge this one.

…ecoderstates' into add_decode_event_type_to_other_decoderstates

# Conflicts:
#	src/main/java/io/github/dsheirer/module/decode/event/filter/DecodeEventFilterSet.java
#	src/main/java/io/github/dsheirer/module/decode/event/filter/DecodedCallEventFilter.java
#	src/main/java/io/github/dsheirer/module/decode/event/filter/DecodedCommandEventFilter.java
#	src/main/java/io/github/dsheirer/module/decode/event/filter/DecodedRegistrationEventFilter.java
@VolFFProCoder
Copy link
Contributor Author

VolFFProCoder commented May 4, 2022 via email

@DSheirer
Copy link
Owner

DSheirer commented May 4, 2022

The process I use is to squash your commits first and then do a force-push to sync the remote branch with your local branch. IntelliJ makes squashing easy by selecting all of the commits you want to squash in the Git:Log view and then right-click squash.

Now that you have your local & remote repo changes (squashed) into a single commit, rebase your branch onto master, so that your single commit sits on top of the latest master branch commit.

That's it.

But, if you've rebased onto master (or rebased master onto your branch) in the middle of a bunch of commits and some of the classes that you change are also changed on master, then it gets messy with your commit history looking like a spider web.

With 20 commits, I would sometimes recommend:

  1. Create/checkout a fresh new branch from the latest master.
  2. Use Intelli-J's Git history view and filter it to see the commit history of your existing branch.
  3. Select each commit, oldest to newest, from your original branch and use the 'Cherry Pick' to copy that commit onto your new clean branch.
  4. Work through each of your 20 commits.

In the end, you'll have a fresh branch from master with your 20 commits cleanly layered on top. Then you can 'squash' and 'force push' and then your branch is ready for merge.

Don't spend too much time on this ... if you can't get it, let me know and I can knock it out fairly quickly for you.

Git is easy to use once you've figured it out ... but getting to that point of knowing how to use it is a challenge for everyone.

@VolFFProCoder
Copy link
Contributor Author

VolFFProCoder commented May 5, 2022 via email

@apankowski
Copy link
Contributor

@VolFFProCoder do you need help in either (or both):

  1. rebasing your PR on top of master?
  2. finishing the PR due to conflicts in master?

@DSheirer
Copy link
Owner

DSheirer commented Dec 18, 2022

@VolFFProCoder I created a new branch from master and cherry-picked all of your commits from the PR and squashed into a single commit. If you could checkout this branch and confirm that it functions correctly according to the way that you implemented it.

See this issue for branch link: #1368

Question: What is the purpose of the newly added 'Last Seen' and 'Last Heard' tabs that were added to the Now Playing panel?

When I ran the code, these tabs were partially populated with a few events and the only filtering options were the 'Icon' that was assigned to the event.

@VolFFProCoder
Copy link
Contributor Author

I have confirmed that the changes in the branch still work after resolving some merge conflicts.
The intent of the feature is to capture events when a radio ID becomes active. This is to allow the user to monitor their favorite radio group identified by the icon type. Before, it was difficult to determine if any radio has been active on the system because the events are numerous and buffer is cleared often. Last Seen and Last Heard provides a list of events of registration or when audio is transmitted.

@DSheirer
Copy link
Owner

Closing. Contents of this PR were merged under PR #1601

@DSheirer DSheirer closed this Jul 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants