WhatsApp is said to be finally working on adding a new invitation system for all users that will enable one to select who can add them to a group.

WhatsApp reportedly working on invitation system for groups, roll...


  • WhatsApp reportedly developing a new group invitation system
  • The feature will enable users to select who can add them to a group.
  • The beta version of the app receives updated Settings UI.

WhatsApp has received quite a few updates since the start of the new year, however, one of the most needed features didn’t make it to the app, yet. As per WABetaInfo, the company is finally working on implementing an invitation system that enables users to select who can add them to groups. Alongside the new feature, WhatsApp also pushed a new update for its beta users that brings some UI changes to the app. The app’s Settings menu now features a cleaner look and new icons have also been added for most options. 

Starting with the new group invitation system, the new feature was needed from quite some time now. If you are someone who dislikes being added to a group without permission, then this feature is surely meant for you. As per the report, the new option will be accessible by iOS beta users who joined the TestFlight beta program in the next update for the app on iOS. The group invitation feature was first spotted in Privacy Settings for Enterprise WhatsApp accounts. This feature enables an option called Groups under the privacy settings for an Enterprise account user. They can then choose who can add them to groups, the settings being Everyone, My Contacts or Nobody. This feature is reportedly in development for all users.

In addition, when one cannot be added by a group admin, they will receive an invite to join the group that expires after 72 hours. WABetaInfo adds that one won’t receive two invitations from the same group, at the same time. One will still be able to join groups using the group link invite regardless of the Group privacy setting. While the option will be rolled out for beta testers of the app on iOS, it is said to roll out for Android users as well, in the future. 

Let us now take a look at the revamped Settings menu interface update that beta users of the app have received on Android. The new update adds icons to almost every Setting and sub-settings under tabs like Account, Chats, Notifications and others. Overall, the interface looks cleaner since the lines dividing every setting is removed and instead of checkboxes, there are toggle sliders for options. 

Screenshot of the stable WhatsApp on the left vs beta app on the right with updated UI

Screenshot of the stable WhatsApp on the left vs beta app on the right with updated UI

Related Reads:


WhatsApp says it bans 2 million accounts monthly for automated behaviour and bulk messaging

Digit NewsDeskDigit NewsDesk

‘).insertAfter(‘.inside-container p:eq(1)’); */
// $( ” ).insertAfter(‘.inside-container p:eq(0)’);
//method to trunkate the text
function shorten(text, maxLength) {
var ret = text;
if (ret.length > maxLength) {
ret = ret.substr(0,maxLength-3) + “…”;
return ret;

//function to put utm on DontMiss links
$(‘div.dontMiss > a’).each(function(){
$(this).prop(‘href’, $(this).prop(‘href’)+’?utm_source=within_article&utm_medium=desktop&utm_campaign=related’);
//trunkate dont miss content
var sub = shorten($(this).html(),47);
$(‘div.dontMiss > a’).each(function(){
$(this).prop(‘href’, $(this).prop(‘href’)+’?utm_source=within_article&utm_medium=mobile&utm_campaign=related’);

//disabled method to append dontmiss links to page content by Mayank
/*$(‘div.dontMiss > a’).each(function(index){
//loop over each list item

// if(index%2 > 0){
// index = index – 1;
// }
if($(‘.inside-container > p:eq(‘+index+’)’).length){
$(‘.inside-container > p:eq(‘+((index * 2) + 1)+’)’).append(‘

Related: ‘ + $(this).html() + ‘‘ );
$(‘.inside-container > p:eq(‘+((index * 2) + 1)+’)’).append(‘

Related: ‘ + $(this).html() + ‘‘ );

/* if(isDesktop()) {
} */

* ga event tracking on page scroll start and end by Mayank

// Debug flag
var debugMode = false;

// Default time delay before checking location
var callBackTime = 100;

// # px before tracking a reader
var readerLocation = 150;

// Set some flags for tracking & execution
var timer = 0;
var scroller = false;
var endContent = false;
var didComplete = false;

// Set some time variables to calculate reading time
var startTime = new Date();
var beginning = startTime.getTime();
var totalTime = 0;

// Get some information about the current page
var pageTitle = document.title;

// Track the aticle load — disabled
if (!debugMode) {
// ga(‘send’, ‘event’, ‘Reading’, ‘ArticleLoaded’, pageTitle, {‘nonInteraction’: 1});
// console.log(“ga(‘send’, ‘event’, ‘Reading’, ‘ArticleLoaded’, pageTitle, {‘nonInteraction’: 1}”);
} else {
alert(‘The page has loaded. Woohoo.’);

// Check the location and track user
function trackLocation() {
bottom = $(window).height() + $(window).scrollTop();
height = $(document).height();

// If user starts to scroll send an event
if (bottom > readerLocation && !scroller) {
currentTime = new Date();
scrollStart = currentTime.getTime();
timeToScroll = Math.round((scrollStart – beginning) / 1000);
if (!debugMode) {
ga(‘send’, ‘event’, ‘Reading’, ‘StartReading’, pageTitle, timeToScroll, {‘metric1’ : timeToScroll});
} else {
alert(‘started reading ‘ + timeToScroll);
scroller = true;

// If user has hit the bottom of the content send an event
if (bottom >= $(‘.inside-container’).scrollTop() + $(‘.inside-container’).innerHeight() && !endContent) {
currentTime = new Date();
contentScrollEnd = currentTime.getTime();
timeToContentEnd = Math.round((contentScrollEnd – scrollStart) / 1000);
if (!debugMode) {
if (timeToContentEnd = height && !didComplete) {
currentTime = new Date();
end = currentTime.getTime();
totalTime = Math.round((end – scrollStart) / 1000);
if (!debugMode) {
ga(‘send’, ‘event’, ‘Reading’, ‘PageBottom’, pageTitle, totalTime, {‘metric3’ : totalTime});
} else {
alert(‘bottom of page ‘+totalTime);
didComplete = true;

// Track the scrolling and track location
$(window).scroll(function() {
if (timer) {

// Use a buffer so we don’t call trackLocation too often.
timer = setTimeout(trackLocation, callBackTime);

‘).insertAfter(“.inside-container p:eq(2)”);


Source link