@@ -22,7 +22,7 @@ angular.module('mm.addons.remotestyles')
2222 * @name $mmaRemoteStyles
2323 */
2424. factory ( '$mmaRemoteStyles' , function ( $log , $q , $mmSite , $mmSitesManager , $mmFilepool , $http , $mmFS , mmaRemoteStylesComponent ,
25- mmCoreNotDownloaded , $mmUtil ) {
25+ mmCoreNotDownloaded , $mmUtil , md5 ) {
2626
2727 $log = $log . getInstance ( '$mmaRemoteStyles' ) ;
2828
@@ -45,7 +45,10 @@ angular.module('mm.addons.remotestyles')
4545
4646 var el = angular . element ( '<style id="mobilecssurl-' + siteId + '" disabled="disabled"></style>' ) ;
4747 angular . element ( document . head ) . append ( el ) ;
48- remoteStylesEls [ siteId ] = el ;
48+ remoteStylesEls [ siteId ] = {
49+ element : el ,
50+ hash : ''
51+ } ;
4952
5053 return self . load ( siteId , true ) ;
5154 } ;
@@ -97,7 +100,7 @@ angular.module('mm.addons.remotestyles')
97100 siteId = siteId || $mmSite . getId ( ) ;
98101
99102 if ( remoteStylesEls [ siteId ] ) {
100- remoteStylesEls [ siteId ] . attr ( 'disabled' , false ) ;
103+ remoteStylesEls [ siteId ] . element . attr ( 'disabled' , false ) ;
101104 }
102105 } ;
103106
@@ -166,16 +169,19 @@ angular.module('mm.addons.remotestyles')
166169 $log . debug ( 'Load site: ' , siteId , disabled ) ;
167170 if ( siteId && remoteStylesEls [ siteId ] ) {
168171 // Enable or disable the styles.
169- remoteStylesEls [ siteId ] . attr ( 'disabled' , disabled ) ;
172+ remoteStylesEls [ siteId ] . element . attr ( 'disabled' , disabled ) ;
170173
171174 return self . get ( siteId ) . then ( function ( data ) {
175+ var hash = md5 . createHash ( data . styles ) ;
176+
172177 // Update the styles only if they have changed.
173- if ( data . styles !== remoteStylesEls [ siteId ] . html ( ) ) {
174- remoteStylesEls [ siteId ] . html ( data . styles ) ;
178+ if ( remoteStylesEls [ siteId ] . hash !== hash ) {
179+ remoteStylesEls [ siteId ] . element . html ( data . styles ) ;
180+ remoteStylesEls [ siteId ] . hash = hash ;
175181
176182 // New styles will be applied even if the style is disabled. We'll disable it again if needed.
177- if ( disabled && remoteStylesEls [ siteId ] . attr ( 'disabled' ) == 'disabled' ) {
178- remoteStylesEls [ siteId ] . attr ( 'disabled' , true ) ;
183+ if ( disabled && remoteStylesEls [ siteId ] . element . attr ( 'disabled' ) == 'disabled' ) {
184+ remoteStylesEls [ siteId ] . element . attr ( 'disabled' , true ) ;
179185 }
180186 }
181187
@@ -232,7 +238,7 @@ angular.module('mm.addons.remotestyles')
232238 */
233239 self . removeSite = function ( siteId ) {
234240 if ( siteId && remoteStylesEls [ siteId ] ) {
235- remoteStylesEls [ siteId ] . remove ( ) ;
241+ remoteStylesEls [ siteId ] . element . remove ( ) ;
236242 delete remoteStylesEls [ siteId ] ;
237243 }
238244 } ;
0 commit comments