Re: Activity widget
You will most likely need to make a custom widget and a new function.
If you look at the default Site Wide Activity Widget that comes with BP, on line 36 of bp_activity_widget.php, you’ll see this line:
$activity = bp_activity_get_sitewide_activity( $options['max_items'] );
Instead of call that function, which exists in bp_activity.php and ends up calling the model get_sitewide_activity() in bp_activity_classes.php, you will need to create a new function that instead calls the model get_activity_for_friends().