Home / Technology / 4 problems Google needs to repair in a Google Play Store

4 problems Google needs to repair in a Google Play Store

Thank you

Your summary has been sent.

Sorry

There was an blunder emailing this page.

  • lollipop 3

  • n4 hand2

  • se front 2

playstore main

Credit:

Florence Ion

By Florence Ion

Greenbot |

Feb 2, 2015 4:00 AM
PT

‘);$(‘#’ + IDG.GPT.getIMUSlotName()).responsiveAd({screenSize:’971 1115′, scriptTags: []});//–”;
var adDivString = “”;
placementDiff = applyInsert($(this), adDivString);
if (debug) {
console.log(“Just placed an ad and a placementDiff is: ” + placementDiff);
}
placementTarget = cumulativeHeight + placementDiff + interModuleHeight + adHeightBuffer;
}
else {
var moduleDivString = “”;
var elementId = “drr-mod-”+moduleCounter;
moduleDivString = “”;
modules.push(elementId);

placementDiff = applyInsert($(this), moduleDivString);
if (debug) {
console.log(“Just placed a procedure and a placementDiff is: ” + placementDiff);
}
placementTarget = cumulativeHeight + placementDiff + interModuleHeight + moduleHeightBuffer;
moduleCounter++;
}
loopCounter++;
}
// Avoid fixation elements too shortly due to non-large total inflating a accumulative height
if ($(this).is(“figure”) !$(this).is(“figure.large”)) {
cumulativeHeight += grafHeight;
}
else {
cumulativeHeight += $(this).height() + grafHeight;
}
}
});

// counterpart Related Stories procedure m-15 to come in after 2nd para in essay physique for mobile breakpoint display
var $relatedStories = $(‘.related-promo-wrapper’);
if ($relatedStories.length) {
var $relatedStoriesClone = $relatedStories.clone();
$relatedStoriesClone.insertAfter( “#drr-container p:eq(1)”);
}

var $insiderPromo = $(‘.insider-promo-wrapper’);
if ($insiderPromo.length) {
var $insiderPromoClone = $insiderPromo.clone();
$insiderPromoClone.insertAfter( “#drr-container p:eq(1)”);
}

//place left side element
cumulativeHeight = 0;
var leftPlacementTarget = tagHeight = leftPlacementTarget) {
if (debug) {
console.log(“congratulations… we’ve upheld a initial start point”);
}
if (leftPlacementIndex == null) {
//it’s not good adequate to not be a left equivocate – it also shouldn’t be a

with an immediately preceding tiny or middle picture left avoid.
if (!isLeftAvoid($(this)) noPrevFigures($(this)) ) {
leftPlacementIndex = $(this).index();
$leftPlacementElement = $(this);
leftPlacementLookaheadStart = cumulativeHeight;
if (debug) {
console.log(“is not a left equivocate and no prev figures. ########## set placementIndex (“+leftPlacementIndex+”) and lookaheadStart (“+leftPlacementLookaheadStart+”) ##########”);
}
} else {
if (debug) {
console.log(“is a left equivocate or has prior figures. continue”);
}
}
} else {
if (debug) {
console.log(“#### leftPlacementIndex already set to “+leftPlacementIndex+”. looking ahead…”);
}
//not null; has been set
if ((cumulativeHeight – leftPlacementLookaheadStart) leftIntervalHeight) {
if (debug) {
console.log(“###### THRESHOLD REACHED. LOOKAHEAD COMPLETE. END ###### (cumulativeHeight – leftPlacementLookaheadStart) (“+(cumulativeHeight-leftPlacementLookaheadStart)+”) leftIntervalHeight (“+leftIntervalHeight+”).”);
}
return false;
} else {
if (debug) {
console.log(“threshold not reached: (cumulativeHeight – leftPlacementLookaheadStart) (“+(cumulativeHeight-leftPlacementLookaheadStart)+”) tags
if (!(isLeftAvoid($(this)) ($(this).hasClass(‘small’) || $(this).hasClass(‘inline-small’) || $(this).hasClass(‘medium’) || $(this).hasClass(‘inline-medium’) || $(this).hasClass(‘apart’) ))) {
cumulativeHeight += $(this).height() + grafHeight;
}
if (debug) {
console.log(“——————– set cumulativeHeight(“+cumulativeHeight+”) —————”);
console.log(“”);
}
}
});
}

if (leftPlacementIndex != nothing elementNotNearEnd($leftPlacementElement, leftPixelWindow)) {
if (debug) {
console.log(” insert into index “+leftPlacementIndex);
}
$(“#drr-container”).children().eq(leftPlacementIndex).before(“

“);
}

IDG.GPT.trackOmniture();

// Add Right rail procedure content
for (var i=0; i= 0) {
var a = document.createElement(‘a’);
a.href = document.referrer;
var uriParts = a.pathname.split(‘/’);
a = ”;
if (typeof uriParts[3] == ‘undefined’) {
epoParams += “typeId=” + defaultTypeId + “referrer=home”; // default is ‘home’ behavior
}
else {
var refCatSlug = uriParts[3];
epoParams += “catSlug=” + refCatSlug + “referrer=article”;
}
}
// From SEARCH: Show essay with catId same as stream article
else if (document.referrer.indexOf(“google”) = 0 || document.referrer.indexOf(“yahoo”) = 0 || document.referrer.indexOf(“bing”) = 0) {
var categories = [2500];
if (categories instanceof Array categories.length 0) {
var primaryCatId = categories[0];
epoParams += “catId=” + primaryCatId + “referrer=search”;
}
else {
epoParams += “typeId=” + defaultTypeId + “referrer=home”; // default is ‘home’ behavior
}
}
// Default is to uncover like entrance from homepage
else {

epoParams += “typeId=” + defaultTypeId + “referrer=home”;
// default is ‘home’ behavior
}
return epoParams;
}

/**
* @param jqo Original jquery intent target
* @param divString The div to be inserted.
* @return Difference in tallness between strange chain aim and final target.
* Checks initial 6 elements for an acceptable chain (600 pixel window).
* If none, check circuitously for elements that are not right avoids.
* If none, place component before stream target.
*/
function applyInsert(jqo, divString) {
if (debug) {
console.log(“applyInsert during tip and jqo index is: ” + jqo.index());
}

for (var i=0; i 0) {
children = $(“#drr-container”).children().slice(jqo.index(), allowElement.index() );
}
else {
children = $(“#drr-container”).children().slice(allowElement.index(), jqo.index());

}
if (children != null) {
children.each(function(i) {
if (debug) {
console.log(“About to supplement this element’s tallness to heigh diff offset”);
console.log($(this));
}
height += $(this).height() + grafHeight;
});
}
if (offset 300) {
if (debug) {
console.log(“isRightAvoid: found pre. lapse true”);
}
return true;
}
if (jqo.is(“figure”) jqo.hasClass(‘large’)) {
if (debug) {
console.log(“isRightAvoid: found figure.large lapse true”);
}
return true;
}
if (jqo.is(“figure”) jqo.hasClass(‘medium’) jqo.hasClass(‘inline’)) {
if (debug) {
console.log(“isRightAvoid: found figure has category middle and inline.”);
}
return true;
}

if (jqo.is(‘div’) jqo.hasClass(‘table-wrapper’)) {
if (debug) {
console.log(“isRightAvoid: found div with category table-wrapper”);
}
return true;
}
if (jqo.is(‘aside’)) {
if (jqo.hasClass(‘sidebar’) !jqo.hasClass(‘medium’)) {
if (debug) {
console.log(“isRightAvoid: found aside with category sidebar, though category medium”);
}
return true;
}
if (jqo.hasClass(‘statsTable’)) {
if (debug) {
console.log(“isRightAvoid: found aside with category statsTable”);
}
return true;
}
}
if (jqo.hasClass(‘download-asset’)) {
if (debug) {
console.log(“isRightAvoid: found category download-asset lapse true”);
}
return true;
}
if (jqo.hasClass(‘tableLarge’)) {
if (debug) {
console.log(“isRightAvoid: found category tableLarge lapse true”);
}
return true;
}
if (jqo.hasClass(‘reject’)) {
if (debug) {
console.log(“isRightAvoid: found category reject. lapse true”);
}
return true;
}
if (jqo.is(‘table’) jqo.hasClass(‘scorecard’)) {
if (debug) {
console.log(“isRightAvoid: found div with category scorecard”);
}
return true;
}
}
return false;
}

// Return loyal if component has category ‘reject’: will not place drr modules/ads subsequent to these elements
function isRightReject(jqo) {
console.log(“in isRightReject”);
if (jqo != null) {
if (jqo.hasClass(“reject”)) {
if (debug) {
console.log(“isRightReject: found ‘reject’ class”);
}
return true;
}
return false;
}
return false;
}

// Returns loyal if tallness of all elements after this one is some-more than 500; fake otherwise
function elementNotNearEnd(element, pixelWindow) {
if (pixelWindow == null) {
pixelWindow = 500;
}
if (element == null) {
return false;
}
var remainingHeight = 0;
var children = $(“#drr-container”).children().slice(element.index());
if (children == null) {
return false;
}
children.each(function(i){
remainingHeight += $(this).height();
});
if ( remainingHeight pixelWindow) {
return true;
}
else {
if (debug) {
console.log(“Element too tighten to end. Remaining tallness is: ” + remainingHeight + ” and window is ” + pixelWindow);
}
return false;
}
}

/**
* Return loyal if need to equivocate this component when fixation left module.
*/
function isLeftAvoid(jqo) {
if (jqo.is(“figure”)) {
if (debug) {
console.log(“isLeftAvoid: found figure. lapse true”);
}
return true;
}
if (jqo.is(“aside.pullquote”)) {
if (debug) {
console.log(“isLeftAvoid: found pullquote. lapse true”);
}
return true;
}
if (jqo.is(“pre”)) {
if (debug) {
console.log(“isLeftAvoid: found pre. lapse true”);
}
return true;
}
if (jqo.is(“div.gist”)) {
if (debug) {
console.log(“isLeftAvoid: found github formula block. lapse true”);
}
return true;
}

if (jqo.is(“aside”) jqo.hasClass(“sidebar”) jqo.hasClass(“medium”)) {
if (debug) {
console.log(“isLeftAvoid: found middle sidebar. lapse true”);
}
return true;
}

if (jqo.hasClass(“statsTable”)) {
if (debug) {
console.log(“isLeftAvoid: found category statsTable. lapse true”);
}
return true;
}
return false;
}

/**
* lapse loyal if there are no total before a aim chain that competence drain down into chain element
*/
function noPrevFigures($originalTarget) {
var targetIndex = $originalTarget.index();
var numElementsLookBack = 5;
var figureIndex = null;
var figureHeight = null;
var startIndex = targetIndex – numElementsLookBack

It seems like Google never stops regulating adult a Play Store—and that’s a good thing! It means a association is always operative to ideal a marketplace where we gain apps, games, books, movies, and more. But it still feels like there are a few pivotal facilities Google continues to oversee. Here’s a wish list of a fixes we wish Google to exercise immediately.

Better denote of that inclination an app is for

googleplaystore dual netflix

There are two Netflix apps in a Google Play Store and it took me perpetually to comprehend that one was meant for Android TV. 

I went looking for a Netflix app a other day and detected that there were dual instances of it: one that’s meant for an Android phone or tablet, and one that’s finished for Android TV. It took a bit of Googling and a Twitter examination before we had figured any of that out, though Google could have saved me a headache if it usually had a complement in place that prominently settled that height possibly focus was meant for. This isn’t usually an emanate with Android TV; some apps are finished usually for tablets, or are meant for your Android Wear watch.

Apple’s iTunes Store does a good pursuit of this; it even offers a toggle that lets we select possibly we wish to hunt for apps that are concordant with an iPad, an iPhone, or both. It’d be useful if Google offering a same utility, deliberation that it’s usually going to get some-more treacherous now that Android is on your TV, in your car, and on your wrist.

Notifications when apps in your wishlist goes on sale

googleplaystore wishlist

I would conclude if Google would warning me when Secrets of Mana eventually goes on sale.

The Google Play Store’s wish list underline is fun to come behind to on a stormy day—or when a relations slips me a Google Play Store present card—but I’d conclude if we got a presentation when a pricey app goes on sale. It’s tough adequate anticipating out what’s on sale in a store though digging by pages of apps. I’d rather hear it directly from Google instead of a untrustworthy looking, ad-ridden app that scans around for app sales. 

Batch app installations

googleplaystore myapps

There are so many applications here, though there’s no approach we wish to lay and implement them all on my device, one-by-one.

When we set adult a new examination device, we mostly have to go by and implement apps, one-by-one. we know—I should have a backup complement in place, right? But that still requires a con of downloading an app and removing that all that set up, and a best backup utilities need that your phone be rooted. Unlike Windows Phone or iOS, Android doesn’t have a interrelated desktop application, so all we do with your phone or inscription has to be finished possibly on a device itself or from a web.

Google could make this all hassle-free if it usually authorised users to collection implement applications as they indispensable from a Play Store. It’d be even improved if we could divided select a apps we wish commissioned by default and adjust it from time to time so that a notation we sync a device with your Google account, it downloads those specific apps. Or improved yet, concede we to save lists of apps, and download those that we wish to a inclination we want.

Let us forget about apps we no longer use

googleplaystore oldapps

I can collect out during slightest dual apps that haven’t been updated in 2011, and one that hasn’t been overwhelmed in over dual years.

I’ve been an Android user for 5 years now. In that time, I’ve downloaded hundreds of applications, many of that possibly have been deserted by their developers or have been ditched for other applications. But when we click on My apps, we still see a dozens of titles we haven’t overwhelmed in years.

Google should let we curate your app story so that we don’t have to wade by pages of apps we haven’t overwhelmed (or haven’t been updated) in years. Currently, we can disassociate an particular app from your criticism in a Google Play app on your mobile device, though there’s no easy approach to do so from a browser, or to conduct lots of apps during once.

Got any other things we wish Google would balance adult in a Google Play Store? Leave a comment, and if we get adequate we’ll turn them adult and share in a apart post.







Article source: http://www.greenbot.com/article/2878396/4-problems-google-needs-to-fix-in-the-google-play-store.html

Scroll To Top