The next smartphone in Samsung’s M-series is expected to come bearing three cameras at the back, Exynos 7904 SoC and a 5,000mAh battery.

Samsung’s expecting a new family ‘M’ember: Galaxy M30 specs leake...

Samsung’s M series is fairly new and its market response is yet unmeasured, but the idea behind the new smartphone lineup was to target competition from Chinese counterparts in the mid-range and budget smartphone segments. We have already witnessed the launch of the Galaxy M10 and M20, one of which we also had the chance to review. The next phone in the series is expected to be called the Galaxy M30, specs of which have leaked once again.

A known tipster called Sudhanshu Ambhore has tweeted out the alleged spec sheet of the Galaxy M30 and the leak matches a lot of what has already been reported about the device till now. As per the leak, the Galaxy M30 will come bearing a 6.38-inch full-HD display with a resolution of 2220X1080. Just like the Galaxy M20, the new phone could be powered by Samsung’s Octa-core chipset Exynos 7904, complimented by 4GB RAM and 64GB built-in storage. It is also expected to feature the same battery size as the M20 and come with a 5,000mAh battery‏.

In the camera department, the M30 could feature a triple camera setup at the back – 13MP (F1.9) + 5MP (F2.2 ) + 5MP (F2.2). The selfie camera could be a 16MP sensor with F2.0 aperture. The source also claims that the M30 will feature a gradient design. It could be made available in gradient blue and black colours.

Samsung has not confirmed the Galaxy M30 yet and the company is possibly holding out till Xiaomi launches its Redmi Note 7 or rumoured Note 7 Pro in India. However, the M30 did appear in a Geekbench listing back in December. That listing showed the rumoured device equipped with the Exynos 7885 SoC, coupled with 4GB RAM.

What Samsung finally launches is a mystery as of now, possibly till the company gauges performance of its current M10 and M20 smartphones.

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