am f1d8a76d: am cbe032f8: Sync style changes from external (sync3).

* commit 'f1d8a76dec754849001f56b0697e1690edd8b770':
  Sync style changes from external (sync3).
This commit is contained in:
Dirk Dougherty 2015-05-22 20:44:15 +00:00 committed by Android Git Automerger
commit 632c5203c1
11 changed files with 1682 additions and 1438 deletions

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 794 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -76,7 +76,7 @@ $(document).ready(function() {
}
// set up the search close button
$('#search-close').click(function() {
$('#search-close').on('click touchend', function() {
$searchInput = $('#search_autocomplete');
$searchInput.attr('value', '');
$(this).addClass("hide");
@ -91,7 +91,8 @@ $(document).ready(function() {
$("#search_autocomplete").focus(function() {
$("#search-container").addClass('active');
})
$("#search-container").mouseover(function() {
$("#search-container").on('mouseover touchend', function(e) {
if ($(e.target).is('#search-close')) { return; }
$("#search-container").addClass('active');
$("#search_autocomplete").focus();
})
@ -3581,6 +3582,7 @@ function showSamples() {
var opts = {
cardSizes: ($widget.data('cardsizes') || '').split(','),
maxResults: parseInt($widget.data('maxresults') || '100', 10),
initialResults: $widget.data('initialResults'),
itemsPerPage: $widget.data('itemsperpage'),
sortOrder: $widget.data('sortorder'),
query: $widget.data('query'),
@ -3764,14 +3766,30 @@ function showSamples() {
function drawResourcesFlowWidget($widget, opts, resources) {
$widget.empty().addClass('cols');
var cardSizes = opts.cardSizes || ['6x6'];
var initialResults = opts.initialResults || resources.length;
var i = 0, j = 0;
var plusone = false; // stop showing plusone buttons on cards
var cardParent = $widget;
while (i < resources.length) {
if (i === initialResults && initialResults < resources.length) {
// Toggle remaining cards
cardParent = $('<div class="dac-toggle-content clearfix">').appendTo($widget);
$widget.addClass('dac-toggle');
$('<div class="col-1of1 dac-section-links dac-text-center">')
.append(
$('<div class="dac-section-link" data-toggle="section">')
.append('<span class="dac-toggle-expand">More<i class="dac-sprite dac-auto-unfold-more"></i></span>')
.append('<span class="dac-toggle-collapse">Less<i class="dac-sprite dac-auto-unfold-less"></i></span>')
)
.appendTo($widget)
}
var cardSize = cardSizes[j++ % cardSizes.length];
cardSize = cardSize.replace(/^\s+|\s+$/,'');
var column = createResponsiveFlowColumn(cardSize).appendTo($widget);
var column = createResponsiveFlowColumn(cardSize).appendTo(cardParent);
// A stack has a third dimension which is the number of stacked items
var isStack = cardSize.match(/(\d+)x(\d+)x(\d+)/);
@ -4044,6 +4062,12 @@ function showSamples() {
imgUrl = toRoot + imgUrl;
}
if (resource.type === 'youtube') {
$('<div>').addClass('play-button')
.append($('<i class="dac-sprite dac-play-white">'))
.appendTo(this);
}
$('<div>').addClass('card-bg')
.css('background-image', 'url(' + (imgUrl || toRoot +
'assets/images/resource-card-default-android.jpg') + ')')
@ -4437,6 +4461,11 @@ function showSamples() {
anchorMethod = 'prepend';
}
// Some h2s are in their own container making it pretty hard to find the end, so skip.
if ($contents.length === 0) {
return;
}
// Remove from DOM before messing with it. DOM is slow!
$section.detach();
@ -4451,6 +4480,16 @@ function showSamples() {
$section = $section.wrapAll('<div class="dac-toggle dac-mobile">').parent();
$contents.wrapAll('<div class="dac-toggle-content"><div>'); // extra div used for max-height calculation.
// Pre-expand section if requested.
if ($title.hasClass('is-expanded')) {
$section.addClass('is-expanded');
}
// Pre-expand section if targetted by hash.
if (location.hash && $section.find(location.hash).length) {
$section.addClass('is-expanded');
}
// Add it back to the dom.
$anchor[anchorMethod].call($anchor, $section);
});
@ -4550,6 +4589,9 @@ function showSamples() {
slide.toggleClass('dac-invert', resource.heroInvert || fullBleed);
slide.toggleClass('dac-darken', fullBleed);
// Should be clickable
slide.append($('<a class="dac-hero-carousel-action">').attr('href', cleanUrl(resource.url)));
var cols = $('<div class="cols dac-hero-content">');
// inline image column
@ -4651,6 +4693,7 @@ function showSamples() {
frameSelector: 'article',
loop: true,
start: 0,
swipeThreshold: 160,
pagination: '[data-carousel-pagination]'
};
@ -4678,6 +4721,15 @@ function showSamples() {
DacCarousel.prototype.initEvents = function() {
var that = this;
this.touch = {
start: {x: 0, y: 0},
end: {x: 0, y: 0}
};
this.el.on('touchstart', this.touchstart_.bind(this));
this.el.on('touchend', this.touchend_.bind(this));
this.el.on('touchmove', this.touchmove_.bind(this));
this.el.hover(function() {
that.pauseRotateTimer();
}, function() {
@ -4695,6 +4747,30 @@ function showSamples() {
});
};
DacCarousel.prototype.touchstart_ = function(event) {
var t = event.originalEvent.touches[0];
this.touch.start = {x: t.screenX, y: t.screenY};
};
DacCarousel.prototype.touchend_ = function() {
var deltaX = this.touch.end.x - this.touch.start.x;
var deltaY = Math.abs(this.touch.end.y - this.touch.start.y);
var shouldSwipe = (deltaY < Math.abs(deltaX)) && (Math.abs(deltaX) >= this.options.swipeThreshold);
if (shouldSwipe) {
if (deltaX > 0) {
this.prev();
} else {
this.next();
}
}
};
DacCarousel.prototype.touchmove_ = function(event) {
var t = event.originalEvent.touches[0];
this.touch.end = {x: t.screenX, y: t.screenY};
};
DacCarousel.prototype.initFrame = function() {
this.frames.removeClass('active').eq(this.options.start).addClass('active');
};
@ -4775,21 +4851,17 @@ function showSamples() {
this.el.on('click', function(event) {
if (!$.contains($('.dac-modal-window')[0], event.target)) {
return this.close_();
return this.el.trigger('modal-close');
}
}.bind(this));
this.el.on('open', this.open_.bind(this));
this.el.on('close', this.close_.bind(this));
this.el.on('toggle', this.toggle_.bind(this));
this.el.on('modal-open', this.open_.bind(this));
this.el.on('modal-close', this.close_.bind(this));
this.el.on('modal-toggle', this.toggle_.bind(this));
}
Modal.prototype.toggle_ = function() {
if (this.isOpen) {
this.close_();
} else {
this.open_();
}
this.el.trigger('modal-' + (this.isOpen ? 'close' : 'open'));
};
Modal.prototype.close_ = function() {
@ -4815,7 +4887,7 @@ function showSamples() {
ToggleModal.prototype.clickHandler_ = function(event) {
event.preventDefault();
this.modal.trigger('toggle');
this.modal.trigger('modal-toggle');
};
/**
@ -4929,12 +5001,38 @@ function showSamples() {
}
/**
* Close the modal when the form is sent.
* Milliseconds until modal has vanished after modal-close is triggered.
* @type {number}
* @private
*/
NewsletterForm.CLOSE_DELAY_ = 300;
/**
* Switch view to display form after close.
* @private
*/
NewsletterForm.prototype.closeHandler_ = function() {
setTimeout(function() {
this.el.trigger('swap-reset');
}.bind(this), NewsletterForm.CLOSE_DELAY_);
};
/**
* Reset the modal to initial state.
* @private
*/
NewsletterForm.prototype.reset_ = function() {
this.form.trigger('reset');
this.el.one('modal-close', this.closeHandler_.bind(this));
};
/**
* Display a success view on submit.
* @private
*/
NewsletterForm.prototype.submitHandler_ = function() {
this.form.trigger('reset');
this.el.trigger('close');
this.el.one('swap-complete', this.reset_.bind(this));
this.el.trigger('swap-content');
};
/**
@ -5027,6 +5125,97 @@ function showSamples() {
});
})(jQuery);
(function($) {
'use strict';
/**
* A component that swaps two dynamic height views with an animation.
* Listens for the following events:
* * swap-content: triggers SwapContent.swap_()
* * swap-reset: triggers SwapContent.reset()
* @param el
* @param options
* @constructor
*/
function SwapContent(el, options) {
this.el = $(el);
this.options = $.extend({}, SwapContent.DEFAULTS_, options);
this.containers = this.el.find(this.options.container);
this.initiallyActive = this.containers.children('.' + this.options.activeClass).eq(0);
this.el.on('swap-content', this.swap.bind(this));
this.el.on('swap-reset', this.reset.bind(this));
}
/**
* SwapContent's default settings.
* @type {{activeClass: string, container: string, transitionSpeed: number}}
* @private
*/
SwapContent.DEFAULTS_ = {
activeClass: 'dac-active',
container: '[data-swap-container]',
transitionSpeed: 500
};
/**
* Returns container's visible height.
* @param container
* @returns {number}
*/
SwapContent.prototype.currentHeight = function(container) {
return container.children('.' + this.options.activeClass).outerHeight();
};
/**
* Reset to show initial content
*/
SwapContent.prototype.reset = function() {
if (!this.initiallyActive.hasClass(this.initiallyActive)) {
this.containers.children().toggleClass(this.options.activeClass);
}
};
/**
* Complete the swap.
*/
SwapContent.prototype.complete = function() {
this.containers.height('auto');
this.containers.trigger('swap-complete');
};
/**
* Perform the swap of content.
*/
SwapContent.prototype.swap = function() {
console.log(this.containers);
this.containers.each(function(index, container) {
container = $(container);
container.height(this.currentHeight(container)).children().toggleClass(this.options.activeClass);
container.animate({height: this.currentHeight(container)}, this.options.transitionSpeed,
this.complete.bind(this));
}.bind(this));
};
/**
* jQuery plugin
* @param {object} options - Override default options.
*/
$.fn.dacSwapContent = function(options) {
return this.each(function() {
new SwapContent(this, options);
});
};
/**
* Data Attribute API
*/
$(document).on('ready.aranja', function() {
$('[data-swap]').each(function() {
$(this).dacSwapContent($(this).data());
});
});
})(jQuery);
(function($) {
function Toggle(el) {
$(el).on('click.dac.togglesection', this.toggle);
@ -5054,7 +5243,9 @@ function showSamples() {
var $parent = selector && $(selector);
return $parent && $parent.length ? $parent : $this.parent();
$parent = $parent && $parent.length ? $parent : $this.closest('.dac-toggle');
return $parent.length ? $parent : $this.parent();
}
/**
@ -5063,8 +5254,7 @@ function showSamples() {
* @param visible
*/
function transitionMaxHeight($el, visible) {
// Only supports 1 child
var contentHeight = $el.children().outerHeight();
var contentHeight = $el.prop('scrollHeight');
var targetHeight = visible ? contentHeight : 0;
var duration = $el.transitionDuration();

View File

@ -80,9 +80,9 @@
<?cs call:header_search_widget() ?>
<?cs /if ?>
<?cs if:ndk ?><a class="dac-header-consoleBtn" href="http://developer.android.com">
<?cs if:ndk ?><a class="dac-header-console-btn" href="http://developer.android.com">
<span class="dac-visible-desktop-inline">Back to Android Developers</span>
</a><?cs else ?><a class="dac-header-consoleBtn" href="https://play.google.com/apps/publish/">
</a><?cs else ?><a class="dac-header-console-btn" href="https://play.google.com/apps/publish/">
<span class="dac-sprite dac-google-play"></span>
<span class="dac-visible-desktop-inline">Developer</span>
Console

View File

@ -482,7 +482,7 @@ elif:samples ?><?cs include:"../../../../frameworks/base/docs/html-ndk/ndk/sampl
def:header_search_widget() ?>
<div class="dac-header-search" id="search-container">
<div class="dac-header-search-inner">
<div class="dac-header-search-btn" id="search-btn"></div>
<div class="dac-sprite dac-search dac-header-search-btn" id="search-btn"></div>
<form class="dac-header-search-form" onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"

View File

@ -1,5 +1,5 @@
<div class="dac-footer dac-expand">
<div class="wrap">
<div class="wrap">
<div class="dac-footer<?cs if:fullpage ?> dac-landing<?cs /if ?>">
<div class="cols dac-footer-main">
<div class="col-1of2">
<a class="dac-footer-getnews" data-modal-toggle="newsletter" href="javascript:;">Get news &amp; tips <span
@ -55,101 +55,117 @@
</div>
</div> <!-- end footer -->
<div data-modal="newsletter" data-newsletter class="dac-modal newsletter">
<div data-modal="newsletter" data-newsletter data-swap class="dac-modal newsletter">
<div class="dac-modal-container">
<div class="dac-modal-window">
<header class="dac-modal-header">
<button class="dac-modal-header-close" data-modal-toggle><i class="dac-sprite dac-close"></i></button>
<h2 class="norule dac-modal-header-title">
Get the latest Android developer news and tips that will help you find success on Google Play.
</h2>
<p class="dac-modal-header-subtitle">&#42; Required Fields</p>
<div class="dac-swap" data-swap-container>
<section class="dac-swap-section dac-active dac-down">
<h2 class="norule dac-modal-header-title">Get the latest Android developer news and tips that will help you find success on Google Play.</h2>
<p class="dac-modal-header-subtitle">&#42; Required Fields</p>
</section>
<section class="dac-swap-section dac-up">
<h2 class="norule dac-modal-header-title">Hooray!</h2>
</section>
</div>
</header>
<form action="https://docs.google.com/forms/d/1QgnkzbEJIDu9lMEea0mxqWrXUJu0oBCLD7ar23V0Yys/formResponse" class="dac-form" method="post" target="dac-newsletter-iframe">
<section class="dac-modal-content">
<fieldset class="dac-form-fieldset">
<div class="cols">
<div class="col-1of2 newsletter-leftCol">
<div class="dac-form-input-group">
<label for="newsletter-full-name" class="dac-form-floatlabel">Full name</label>
<input type="text" class="dac-form-input" name="entry.1357890476" id="newsletter-full-name" required>
<span class="dac-form-required">*</span>
</div>
<div class="dac-form-input-group">
<label for="newsletter-email" class="dac-form-floatlabel">Email address</label>
<input type="email" class="dac-form-input" name="entry.472100832" id="newsletter-email" required>
<span class="dac-form-required">*</span>
</div>
</div>
<div class="col-1of2 newsletter-rightCol">
<div class="dac-form-input-group">
<label for="newsletter-company" class="dac-form-floatlabel">Company / developer name</label>
<input type="text" class="dac-form-input" name="entry.1664780309" id="newsletter-company">
</div>
<div class="dac-form-input-group">
<label for="newsletter-play-store" class="dac-form-floatlabel">One of your Play Store app URLs</label>
<input type="url" class="dac-form-input" name="entry.47013838" id="newsletter-play-store" required>
<span class="dac-form-required">*</span>
</div>
</div>
</div>
</fieldset>
<fieldset class="dac-form-fieldset">
<div class="cols">
<div class="col-1of2 newsletter-leftCol">
<legend class="dac-form-legend">Which best describes your business:<span class="dac-form-required">*</span>
</legend>
<div class="dac-form-radio-group">
<input type="radio" value="Apps" class="dac-form-radio" name="entry.1796324055" id="newsletter-business-type-app" required>
<label for="newsletter-business-type-app" class="dac-form-radio-button"></label>
<label for="newsletter-business-type-app" class="dac-form-label">Apps</label>
</div>
<div class="dac-form-radio-group">
<input type="radio" value="Games" class="dac-form-radio" name="entry.1796324055" id="newsletter-business-type-games" required>
<label for="newsletter-business-type-games" class="dac-form-radio-button"></label>
<label for="newsletter-business-type-games" class="dac-form-label">Games</label>
</div>
<div class="dac-form-radio-group">
<input type="radio" value="Apps and Games" class="dac-form-radio" name="entry.1796324055" id="newsletter-business-type-appsgames" required>
<label for="newsletter-business-type-appsgames" class="dac-form-radio-button"></label>
<label for="newsletter-business-type-appsgames" class="dac-form-label">Apps &amp; Games</label>
</div>
</div>
<div class="col-1of2 newsletter-rightCol newsletter-checkboxes">
<div class="dac-form-radio-group">
<div class="dac-media">
<div class="dac-media-figure">
<input type="checkbox" class="dac-form-checkbox" name="entry.732309842" id="newsletter-add" required value="Add me to the mailing list for the monthly newsletter and occasional emails about development and Google Play opportunities.">
<label for="newsletter-add" class="dac-form-checkbox-button"></label>
<div class="dac-swap" data-swap-container>
<section class="dac-swap-section dac-active dac-left">
<form action="https://docs.google.com/forms/d/1QgnkzbEJIDu9lMEea0mxqWrXUJu0oBCLD7ar23V0Yys/formResponse" class="dac-form" method="post" target="dac-newsletter-iframe">
<section class="dac-modal-content">
<fieldset class="dac-form-fieldset">
<div class="cols">
<div class="col-1of2 newsletter-leftCol">
<div class="dac-form-input-group">
<label for="newsletter-full-name" class="dac-form-floatlabel">Full name</label>
<input type="text" class="dac-form-input" name="entry.1357890476" id="newsletter-full-name" required>
<span class="dac-form-required">*</span>
</div>
<div class="dac-media-body">
<label for="newsletter-add" class="dac-form-label dac-form-aside">Add me to the mailing list for the monthly newsletter and occasional emails about development and Google Play opportunities.<span class="dac-form-required">*</span></label>
<div class="dac-form-input-group">
<label for="newsletter-email" class="dac-form-floatlabel">Email address</label>
<input type="email" class="dac-form-input" name="entry.472100832" id="newsletter-email" required>
<span class="dac-form-required">*</span>
</div>
</div>
<div class="col-1of2 newsletter-rightCol">
<div class="dac-form-input-group">
<label for="newsletter-company" class="dac-form-floatlabel">Company / developer name</label>
<input type="text" class="dac-form-input" name="entry.1664780309" id="newsletter-company">
</div>
<div class="dac-form-input-group">
<label for="newsletter-play-store" class="dac-form-floatlabel">One of your Play Store app URLs</label>
<input type="url" class="dac-form-input" name="entry.47013838" id="newsletter-play-store" required>
<span class="dac-form-required">*</span>
</div>
</div>
</div>
<div class="dac-form-radio-group">
<div class="dac-media">
<div class="dac-media-figure">
<input type="checkbox" class="dac-form-checkbox" name="entry.2045036090" id="newsletter-terms" required value="I acknowledge that the information provided in this form will be subject to Google's privacy policy (https://www.google.com/policies/privacy/).">
<label for="newsletter-terms" class="dac-form-checkbox-button"></label>
</fieldset>
<fieldset class="dac-form-fieldset">
<div class="cols">
<div class="col-1of2 newsletter-leftCol">
<legend class="dac-form-legend">Which best describes your business:<span class="dac-form-required">*</span>
</legend>
<div class="dac-form-radio-group">
<input type="radio" value="Apps" class="dac-form-radio" name="entry.1796324055" id="newsletter-business-type-app" required>
<label for="newsletter-business-type-app" class="dac-form-radio-button"></label>
<label for="newsletter-business-type-app" class="dac-form-label">Apps</label>
</div>
<div class="dac-media-body">
<label for="newsletter-terms" class="dac-form-label dac-form-aside">I acknowledge that the information provided in this form will be subject to <a href="https://www.google.com/policies/privacy/">Google's privacy policy</a>.<span class="dac-form-required">*</span></label>
<div class="dac-form-radio-group">
<input type="radio" value="Games" class="dac-form-radio" name="entry.1796324055" id="newsletter-business-type-games" required>
<label for="newsletter-business-type-games" class="dac-form-radio-button"></label>
<label for="newsletter-business-type-games" class="dac-form-label">Games</label>
</div>
<div class="dac-form-radio-group">
<input type="radio" value="Apps and Games" class="dac-form-radio" name="entry.1796324055" id="newsletter-business-type-appsgames" required>
<label for="newsletter-business-type-appsgames" class="dac-form-radio-button"></label>
<label for="newsletter-business-type-appsgames" class="dac-form-label">Apps &amp; Games</label>
</div>
</div>
<div class="col-1of2 newsletter-rightCol newsletter-checkboxes">
<div class="dac-form-radio-group">
<div class="dac-media">
<div class="dac-media-figure">
<input type="checkbox" class="dac-form-checkbox" name="entry.732309842" id="newsletter-add" required value="Add me to the mailing list for the monthly newsletter and occasional emails about development and Google Play opportunities.">
<label for="newsletter-add" class="dac-form-checkbox-button"></label>
</div>
<div class="dac-media-body">
<label for="newsletter-add" class="dac-form-label dac-form-aside">Add me to the mailing list for the monthly newsletter and occasional emails about development and Google Play opportunities.<span class="dac-form-required">*</span></label>
</div>
</div>
</div>
<div class="dac-form-radio-group">
<div class="dac-media">
<div class="dac-media-figure">
<input type="checkbox" class="dac-form-checkbox" name="entry.2045036090" id="newsletter-terms" required value="I acknowledge that the information provided in this form will be subject to Google's privacy policy (https://www.google.com/policies/privacy/).">
<label for="newsletter-terms" class="dac-form-checkbox-button"></label>
</div>
<div class="dac-media-body">
<label for="newsletter-terms" class="dac-form-label dac-form-aside">I acknowledge that the information provided in this form will be subject to <a href="https://www.google.com/policies/privacy/">Google's privacy policy</a>.<span class="dac-form-required">*</span></label>
</div>
</div>
</div>
</div>
</div>
</fieldset>
</section>
<footer class="dac-modal-footer">
<div class="cols">
<div class="col-2of5">
</div>
</div>
</div>
</fieldset>
<button type="submit" value="Submit" class="dac-fab dac-primary dac-large dac-modal-action"><i class="dac-sprite dac-arrow-right"></i></button>
</footer>
</form>
</section>
<footer class="dac-modal-footer">
<div class="cols">
<div class="col-2of5">
</div>
<section class="dac-swap-section dac-right">
<div class="dac-modal-content">
<p class="newsletter-success-message">
You have successfully signed up for the latest Android developer news and tips.
</p>
</div>
<button type="submit" value="Submit" class="dac-fab dac-primary dac-large dac-modal-action"><i class="dac-sprite dac-arrow-right"></i></button>
</footer>
</form>
</section>
</div>
</div>
</div>
</div> <!-- end footer -->