Merge "Revert "Allow system images larger than 2GiB."" into lmp-mr1-dev
diff --git a/core/install_jni_libs_internal.mk b/core/install_jni_libs_internal.mk
index 944420b..c28bb15 100644
--- a/core/install_jni_libs_internal.mk
+++ b/core/install_jni_libs_internal.mk
@@ -100,9 +100,15 @@
 my_prebuilt_jni_libs := $(addprefix $(LOCAL_PATH)/, \
     $(filter-out @%, $(my_prebuilt_jni_libs)))
 ifdef my_prebuilt_jni_libs
+ifdef my_embed_jni
+# Embed my_prebuilt_jni_libs to the apk
+my_jni_shared_libraries += $(my_prebuilt_jni_libs)
+else # not my_embed_jni
+# Install my_prebuilt_jni_libs as separate files.
 $(foreach lib, $(my_prebuilt_jni_libs), \
     $(eval $(call copy-one-file, $(lib), $(my_app_lib_path)/$(notdir $(lib)))))
 
 $(LOCAL_INSTALLED_MODULE) : | $(addprefix $(my_app_lib_path)/, $(notdir $(my_prebuilt_jni_libs)))
+endif  # my_embed_jni
 endif  # inner my_prebuilt_jni_libs
 endif  # outer my_prebuilt_jni_libs
diff --git a/target/board/generic_mips/BoardConfig.mk b/target/board/generic_mips/BoardConfig.mk
index a319ad7..7cef968 100644
--- a/target/board/generic_mips/BoardConfig.mk
+++ b/target/board/generic_mips/BoardConfig.mk
@@ -50,7 +50,7 @@
 USE_OPENGL_RENDERER := true
 
 TARGET_USERIMAGES_USE_EXT4 := true
-BOARD_SYSTEMIMAGE_PARTITION_SIZE := 786432000
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 838860800
 BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800
 BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016
 BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
diff --git a/target/board/generic_x86_64/BoardConfig.mk b/target/board/generic_x86_64/BoardConfig.mk
index c4fd958..295ee2b 100755
--- a/target/board/generic_x86_64/BoardConfig.mk
+++ b/target/board/generic_x86_64/BoardConfig.mk
@@ -41,7 +41,7 @@
 USE_OPENGL_RENDERER := true
 
 TARGET_USERIMAGES_USE_EXT4 := true
-BOARD_SYSTEMIMAGE_PARTITION_SIZE := 943718400 # 900MB
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1073741824 # 1GB 
 BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800
 BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016
 BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
diff --git a/tools/droiddoc/templates-sdk/assets/js/docs.js b/tools/droiddoc/templates-sdk/assets/js/docs.js
index b0ee279..7f4be4e 100644
--- a/tools/droiddoc/templates-sdk/assets/js/docs.js
+++ b/tools/droiddoc/templates-sdk/assets/js/docs.js
@@ -603,9 +603,12 @@
   return frameHeight - (marginTop * 2);
 }
 
+var mPlayerPaused = false;
+
 function startYouTubePlayer(videoId) {
   $("#video-container").show();
   $("#video-frame").show();
+  mPlayerPaused = false;
 
   // compute the size of the player so it's centered in window
   var maxWidth = 940;  // the width of the web site content
@@ -645,7 +648,7 @@
     // reset the size in case the user adjusted the window since last play
     youTubePlayer.setSize(videoWidth, videoHeight);
     // if a video different from the one already playing was requested, cue it up
-    if (videoId != youTubePlayer.getVideoUrl().split('?v=')[1]) {
+    if (videoId != youTubePlayer.getVideoUrl().split('?v=')[1].split('&')[0].split('%')[0]) {
       youTubePlayer.cueVideoById(videoId);
     }
     youTubePlayer.playVideo();
@@ -654,16 +657,13 @@
 
 function onPlayerReady(event) {
   event.target.playVideo();
-  // track the start playing event so we know from which page the video was selected
-  ga('send', 'event', 'Videos', 'Start: ' +
-      youTubePlayer.getVideoUrl().split('?v=')[1], 'on: ' + document.location.href);
+  mPlayerPaused = false;
 }
 
 function closeVideo() {
   try {
     youTubePlayer.pauseVideo();
   } catch(e) {
-    console.log('Video not available');
   }
   $("#video-container").fadeOut(200);
 }
@@ -672,18 +672,30 @@
 function onPlayerStateChange(event) {
     // Video starts, send the video ID
     if (event.data == YT.PlayerState.PLAYING) {
-      ga('send', 'event', 'Videos', 'Play',
-          youTubePlayer.getVideoUrl().split('?v=')[1]);
+      if (mPlayerPaused) {
+        ga('send', 'event', 'Videos', 'Resume',
+            youTubePlayer.getVideoUrl().split('?v=')[1].split('&')[0].split('%')[0]);
+      } else {
+        // track the start playing event so we know from which page the video was selected
+        ga('send', 'event', 'Videos', 'Start: ' +
+            youTubePlayer.getVideoUrl().split('?v=')[1].split('&')[0].split('%')[0],
+            'on: ' + document.location.href);
+      }
+      mPlayerPaused = false;
     }
     // Video paused, send video ID and video elapsed time
     if (event.data == YT.PlayerState.PAUSED) {
       ga('send', 'event', 'Videos', 'Paused',
-          youTubePlayer.getVideoUrl().split('?v=')[1], youTubePlayer.getCurrentTime());
+            youTubePlayer.getVideoUrl().split('?v=')[1].split('&')[0].split('%')[0],
+            youTubePlayer.getCurrentTime());
+      mPlayerPaused = true;
     }
     // Video finished, send video ID and video elapsed time
     if (event.data == YT.PlayerState.ENDED) {
       ga('send', 'event', 'Videos', 'Finished',
-          youTubePlayer.getVideoUrl().split('?v=')[1], youTubePlayer.getCurrentTime());
+            youTubePlayer.getVideoUrl().split('?v=')[1].split('&')[0].split('%')[0],
+            youTubePlayer.getCurrentTime());
+      mPlayerPaused = true;
     }
 }
 
diff --git a/tools/releasetools/sign_target_files_apks b/tools/releasetools/sign_target_files_apks
index 4cb89cd..931acb8 100755
--- a/tools/releasetools/sign_target_files_apks
+++ b/tools/releasetools/sign_target_files_apks
@@ -198,6 +198,7 @@
         print "NOT signing: %s" % (name,)
         output_tf_zip.writestr(out_info, data)
     elif info.filename in ("SYSTEM/build.prop",
+                           "VENDOR/build.prop",
                            "RECOVERY/RAMDISK/default.prop"):
       print "rewriting %s:" % (info.filename,)
       new_data = RewriteProps(data, misc_info)