[tor-commits] [tor-browser/tor-browser-60.4.0esr-8.5-1] Bug 28640 - Reload distribution preferences on update

gk at torproject.org gk at torproject.org
Fri Dec 14 20:07:13 UTC 2018


commit 3c43ec1e862040767030bb5104c41265823ec8a5
Author: Matthew Finkel <Matthew.Finkel at gmail.com>
Date:   Thu Nov 29 20:33:14 2018 +0000

    Bug 28640 - Reload distribution preferences on update
---
 .../mozilla/gecko/distribution/Distribution.java    | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/mobile/android/base/java/org/mozilla/gecko/distribution/Distribution.java b/mobile/android/base/java/org/mozilla/gecko/distribution/Distribution.java
index ea9534bfd741..2e2d07d58914 100644
--- a/mobile/android/base/java/org/mozilla/gecko/distribution/Distribution.java
+++ b/mobile/android/base/java/org/mozilla/gecko/distribution/Distribution.java
@@ -43,7 +43,9 @@ import org.mozilla.gecko.EventDispatcher;
 import org.mozilla.gecko.GeckoAppShell;
 import org.mozilla.gecko.GeckoApplication;
 import org.mozilla.gecko.GeckoSharedPrefs;
+import org.mozilla.gecko.preferences.DistroSharedPrefsImport;
 import org.mozilla.gecko.Telemetry;
+import org.mozilla.gecko.preferences.GeckoPreferences;
 import org.mozilla.gecko.util.FileUtils;
 import org.mozilla.gecko.util.GeckoBundle;
 import org.mozilla.gecko.util.HardwareUtils;
@@ -247,6 +249,18 @@ public class Distribution {
                         data = new GeckoBundle(1);
                         data.putString("preferences", preferencesJSON);
 
+                        // Only overwrite the current preferences if we upgraded.
+                        // This isn't the best behavior because if the user
+                        // changed one of the preferences, then this overwrites
+                        // it. What we really want is a feature where we can
+                        // set a new preference if the current value wasn't
+                        // user-modified. This implementation doesn't support
+                        // something like that. #28842
+                        final SharedPreferences settings = distribution.getSharedPreferences();
+                        if (!AppConstants.MOZ_APP_BUILDID.equals(settings.getString(GeckoPreferences.PREFS_APP_UPDATE_LAST_BUILD_ID, null))) {
+                            DistroSharedPrefsImport.importPreferences(distribution.context, distribution);
+                        }
+
                     } catch (IOException e) {
                         Log.e(LOGTAG, "Error getting distribution descriptor file.", e);
                     }
@@ -498,6 +512,13 @@ public class Distribution {
 
         // We've done the work once; don't do it again.
         if (this.state == STATE_SET) {
+            // If this is a new version of the app, then copy the
+            // distribution files from the APK
+            if (!AppConstants.MOZ_APP_BUILDID.equals(settings.getString(GeckoPreferences.PREFS_APP_UPDATE_LAST_BUILD_ID, null))) {
+                Log.i(LOGTAG, "Copying APK distribution file because the build ID changed.");
+                copyAndCheckAPKDistribution();
+            }
+
             // Note that we don't compute the distribution directory.
             // Call `ensureDistributionDir` if you need it.
             runReadyQueue();





More information about the tor-commits mailing list