| Index: components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedBridge.java
|
| diff --git a/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedBridge.java b/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedBridge.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3af546bf3bf62115b4ff37c4ff207f4c58f6a54d
|
| --- /dev/null
|
| +++ b/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedBridge.java
|
| @@ -0,0 +1,60 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +package org.chromium.components.variations.firstrun;
|
| +
|
| +import android.content.Context;
|
| +import android.content.SharedPreferences;
|
| +import android.preference.PreferenceManager;
|
| +import android.util.Base64;
|
| +
|
| +import org.chromium.base.annotations.CalledByNative;
|
| +
|
| +/**
|
| + * VariationsSeedBridge is a class which used to pass variations first run seed that was fetched
|
| + * before the actual Chrome first run to Chromium core. Class provides methods to store the seed
|
| + * in SharedPreferences and to get the seed from there. To store raw seed data class serializes
|
| + * byte[] to Base64 encoded string and decodes this string before passing to C++ side.
|
| + */
|
| +public final class VariationsSeedBridge {
|
| + private static final String VARIATIONS_FIRST_RUN_SEED_BASE64 = "variations_seed_base64";
|
| + private static final String VARIATIONS_FIRST_RUN_SEED_SIGNATURE = "variations_seed_signature";
|
| + private static final String VARIATIONS_FIRST_RUN_SEED_COUNTRY = "variations_seed_country";
|
| +
|
| + private static String getVariationsFirstRunSeedPref(Context context, String prefName) {
|
| + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
| + return prefs.getString(prefName, "");
|
| + }
|
| +
|
| + /**
|
| + * Stores variations seed data (raw data, seed signature and country code) in SharedPreferences.
|
| + */
|
| + public static void setVariationsFirstRunSeed(
|
| + Context context, byte[] rawSeed, String signature, String country) {
|
| + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
| + prefs.edit()
|
| + .putString(VARIATIONS_FIRST_RUN_SEED_BASE64,
|
| + Base64.encodeToString(rawSeed, Base64.NO_WRAP))
|
| + .putString(VARIATIONS_FIRST_RUN_SEED_SIGNATURE, signature)
|
| + .putString(VARIATIONS_FIRST_RUN_SEED_COUNTRY, country)
|
| + .apply();
|
| + }
|
| +
|
| + @CalledByNative
|
| + private static byte[] getVariationsFirstRunSeedData(Context context) {
|
| + return Base64.decode(
|
| + getVariationsFirstRunSeedPref(context, VARIATIONS_FIRST_RUN_SEED_BASE64),
|
| + Base64.NO_WRAP);
|
| + }
|
| +
|
| + @CalledByNative
|
| + private static String getVariationsFirstRunSeedSignature(Context context) {
|
| + return getVariationsFirstRunSeedPref(context, VARIATIONS_FIRST_RUN_SEED_SIGNATURE);
|
| + }
|
| +
|
| + @CalledByNative
|
| + private static String getVariationsFirstRunSeedCountry(Context context) {
|
| + return getVariationsFirstRunSeedPref(context, VARIATIONS_FIRST_RUN_SEED_COUNTRY);
|
| + }
|
| +}
|
|
|