Bug 1201646 - Basic updates support r=snorp
authorFabrice Desré <fabrice@mozilla.com>
Thu, 24 Sep 2015 09:55:52 -0700
changeset 264280 3c90be122d3e352416e25a088ed7f282f3e0433e
parent 264279 a515a700781a024c05c04763a19995bb284807d8
child 264281 1b161b73d4b94ab56d09b67f0d37a10591bf2e63
push id65590
push userkwierso@gmail.com
push dateFri, 25 Sep 2015 00:14:23 +0000
treeherdermozilla-inbound@0ab67cace54f [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerssnorp
bugs1201646
milestone44.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1201646 - Basic updates support r=snorp
b2g/chrome/content/settings.js
mobile/android/b2gdroid/app/Makefile.in
mobile/android/b2gdroid/app/src/main/AndroidManifest.xml
mobile/android/b2gdroid/app/src/main/java/org/mozilla/b2gdroid/Launcher.java
--- a/b2g/chrome/content/settings.js
+++ b/b2g/chrome/content/settings.js
@@ -15,16 +15,17 @@ const Cr = Components.results;
 
 // The load order is important here SettingsRequestManager _must_ be loaded
 // prior to using SettingsListener otherwise there is a race in acquiring the
 // lock and fulfilling it. If we ever move SettingsListener or this file down in
 // the load order of shell.html things will likely break.
 Cu.import('resource://gre/modules/SettingsRequestManager.jsm');
 Cu.import('resource://gre/modules/XPCOMUtils.jsm');
 Cu.import('resource://gre/modules/Services.jsm');
+Cu.import('resource://gre/modules/AppConstants.jsm');
 
 #ifdef MOZ_WIDGET_GONK
 XPCOMUtils.defineLazyGetter(this, "libcutils", function () {
   Cu.import("resource://gre/modules/systemlibs.js");
   return libcutils;
 });
 #endif
 
@@ -322,17 +323,18 @@ setUpdateTrackingId();
           window.navigator.mozSettings.createLock().set(setting);
         }
       } catch(e) {
         console.log('Unable to read pref ' + prefName + ': ' + e);
       }
     });
   }
 
-  syncCharPref('app.update.url');
+  syncCharPref(AppConstants.MOZ_B2GDROID ? 'app.update.url.android'
+                                         : 'app.update.url');
   syncCharPref('app.update.channel');
 })();
 
 // ================ Debug ================
 (function Composer2DSettingToPref() {
   //layers.composer.enabled can be enabled in three ways
   //In order of precedence they are:
   //
--- a/mobile/android/b2gdroid/app/Makefile.in
+++ b/mobile/android/b2gdroid/app/Makefile.in
@@ -16,16 +16,18 @@ JAVAFILES := \
 # base/ is traversed before b2gdroid/app.  Since base/libs builds classes.dex,
 # the underlying JAR files are built before the libs tier of b2gdroid/app is
 # processed.  Second, there is a correctness issue: the GeckoView JAR providing
 # org.mozilla.gecko.R does not have the correct resource IDs for the consuming
 # application, so we skip it.  The b2gdroid APK builds a JAR containing
 # org.mozilla.gecko.R itself.
 jars_dir := $(DEPTH)/mobile/android/base
 ANDROID_EXTRA_JARS := $(filter-out %gecko-R.jar,$(wildcard $(jars_dir)/*.jar))
+# Needed for the UpdateService
+ANDROID_EXTRA_JARS += $(ANDROID_COMPAT_LIB)
 
 # The GeckoView consuming APK depends on the GeckoView resources.  This hacks a
 # type of poor man's AAR support.
 .aapt.deps: .geckoview_resources.deps
 
 .geckoview_resources.deps: $(DEPTH)/mobile/android/base/geckoview_resources.zip
 	@$(TOUCH) $@
 	$(UNZIP) -u -o $< -d $(CURDIR)/geckoview_resources
--- a/mobile/android/b2gdroid/app/src/main/AndroidManifest.xml
+++ b/mobile/android/b2gdroid/app/src/main/AndroidManifest.xml
@@ -104,11 +104,17 @@
             </intent-filter>
 
             <!-- We will route the search intent to Gaia -->
             <intent-filter>
                 <action android:name="android.intent.action.SEARCH" />
             </intent-filter>
         </activity>
 
+        <service
+            android:exported="false"
+            android:name="org.mozilla.gecko.updater.UpdateService"
+            android:process="org.mozilla.b2gdroid.UpdateService">
+        </service>
+
     </application>
 
 </manifest>
--- a/mobile/android/b2gdroid/app/src/main/java/org/mozilla/b2gdroid/Launcher.java
+++ b/mobile/android/b2gdroid/app/src/main/java/org/mozilla/b2gdroid/Launcher.java
@@ -23,16 +23,17 @@ import org.mozilla.gecko.BaseGeckoInterf
 import org.mozilla.gecko.ContactService;
 import org.mozilla.gecko.ContextGetter;
 import org.mozilla.gecko.EventDispatcher;
 import org.mozilla.gecko.GeckoAppShell;
 import org.mozilla.gecko.GeckoBatteryManager;
 import org.mozilla.gecko.GeckoEvent;
 import org.mozilla.gecko.GeckoThread;
 import org.mozilla.gecko.IntentHelper;
+import org.mozilla.gecko.updater.UpdateServiceHelper;
 import org.mozilla.gecko.util.GeckoEventListener;
 
 import org.mozilla.b2gdroid.ScreenStateObserver;
 import org.mozilla.b2gdroid.Apps;
 
 public class Launcher extends Activity
                       implements GeckoEventListener, ContextGetter {
     private static final String LOGTAG = "B2G";
@@ -81,16 +82,18 @@ public class Launcher extends Activity
         KeyguardManager keyguardManager = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
         KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
         lock.disableKeyguard();
 
         initGecko();
 
         GeckoAppShell.setGeckoInterface(new BaseGeckoInterface(this));
 
+        UpdateServiceHelper.registerForUpdates(this);
+
         EventDispatcher.getInstance().registerGeckoThreadListener(this,
             "Launcher:Ready");
 
         setContentView(R.layout.launcher);
     }
 
     @Override
     public void onResume() {