I created a test site with Flag and Views module enabled and so far, I could create a view to display users who have poked me.
Create a new Flag to flag users. This don't have to be a global flag. Flag text could be "Poke" and unflag text could be "remove".
Users are presented with a list view of other users
Users click the "poke" flag link on a single user
- Create a view on users table
- Add a new relationship: Flags: User.
- Uncheck "Include only flagged content "; Choose the poke flag; By: Current user.
- You will see a new field "Flags: Flag link". Add it.
You will now get a view that shows users and a flag link to flag them. Modify the View as you wish.
http://paste2.org/CGZshUFN
Users then browse to /pokes/ and view all other people that have poked
them
This is a really tricky part.
- Create a new View on users table.
- Add a new relationship: Flags: User flag.
- Uncheck "Include only flagged content "; Choose the poke flag; By: Any user.
- Add a new contextual filter: Flags: Content ID
- Under contextual filter settings, choose the just-added relationship and set to user the current logged in user ID.
- Now we have access to a list of user IDs that has flagged the currently logged in user.
- Add a new relationship: Flags: User
- Under this relationship's settings, check "require this relationship".
- Add a new field: User: name and choose the relationship created in step #7.
- Add a new relationship: Flags: User flag (yes, you are added one already in step 2 but go ahead).
- Under this relationship's settings, choose the the user relationship created at step #7. Uncheck "include only flagged content"; By: current user.
- Add a new field: Flags: Flag link and choose the relationship created at step #10.
http://paste2.org/tkWg99vp
Above step 12 will add the "flag back" type link that the user can see a list of users who have flagged the current user and a link to flag them back.
You will need many Views template tweaks to adjust the wording of the View to suit your need.
Good luck!