Use JNI and appSharedPreferences for store sync staging server flag
This commit is contained in:
+14
-33
@@ -28,7 +28,7 @@ import androidx.preference.Preference.OnPreferenceChangeListener;
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.FileUtils;
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.base.PathUtils;
|
||||
import org.chromium.base.annotations.CalledByNative;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.BraveConfig;
|
||||
import org.chromium.chrome.browser.BraveRelaunchUtils;
|
||||
@@ -200,25 +200,33 @@ public class BraveQAPreferences extends BravePreferenceFragment
|
||||
mUseRewardsStagingServer = (boolean) newValue;
|
||||
mMaximizeAdsNumber.setEnabled((boolean) newValue);
|
||||
enableMaximumAdsNumber(((boolean) newValue) && mMaximizeAdsNumber.isChecked());
|
||||
} else if (PREF_USE_SYNC_STAGING_SERVER.equals(preference.getKey())) {
|
||||
changeSyncServer((boolean) newValue);
|
||||
BraveRelaunchUtils.askForRelaunch(getActivity());
|
||||
} else if (PREF_QA_MAXIMIZE_INITIAL_ADS_NUMBER.equals(preference.getKey())) {
|
||||
enableMaximumAdsNumber((boolean) newValue);
|
||||
} else if (PREF_QA_DEBUG_NTP.equals(preference.getKey())) {
|
||||
} else if (PREF_QA_DEBUG_NTP.equals(preference.getKey()) ||
|
||||
PREF_USE_SYNC_STAGING_SERVER.equals(preference.getKey())) {
|
||||
setOnPreferenceValue(preference.getKey(), (boolean)newValue);
|
||||
BraveRelaunchUtils.askForRelaunch(getActivity());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void setOnPreferenceValue(String preferenceName, boolean newValue) {
|
||||
private static void setOnPreferenceValue(String preferenceName, boolean newValue) {
|
||||
SharedPreferences sharedPreferences = ContextUtils.getAppSharedPreferences();
|
||||
SharedPreferences.Editor sharedPreferencesEditor = sharedPreferences.edit();
|
||||
sharedPreferencesEditor.putBoolean(preferenceName, newValue);
|
||||
sharedPreferencesEditor.apply();
|
||||
}
|
||||
|
||||
private static boolean getPreferenceValue(String preferenceName) {
|
||||
SharedPreferences sharedPreferences = ContextUtils.getAppSharedPreferences();
|
||||
return sharedPreferences.getBoolean(preferenceName, false);
|
||||
}
|
||||
|
||||
@CalledByNative
|
||||
public static boolean isSyncStagingUsed() {
|
||||
return getPreferenceValue(PREF_USE_SYNC_STAGING_SERVER);
|
||||
}
|
||||
|
||||
private void checkQACode() {
|
||||
LayoutInflater inflater =
|
||||
(LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
@@ -346,33 +354,6 @@ public class BraveQAPreferences extends BravePreferenceFragment
|
||||
}
|
||||
}
|
||||
|
||||
private String getSyncStagingServerMarkerPath() {
|
||||
String dataDirectory = PathUtils.getDataDirectory();
|
||||
String markerPath = dataDirectory + "/"
|
||||
+ "use_staging_sync_server";
|
||||
return markerPath;
|
||||
}
|
||||
|
||||
private boolean isSyncStagingUsed() {
|
||||
File file = new File(getSyncStagingServerMarkerPath());
|
||||
return file.exists();
|
||||
}
|
||||
|
||||
private void changeSyncServer(boolean useStaging) {
|
||||
File file = new File(getSyncStagingServerMarkerPath());
|
||||
if (useStaging) {
|
||||
// Create marker file
|
||||
try {
|
||||
file.createNewFile();
|
||||
} catch (IOException e) {
|
||||
Log.w("SYNC", "cannot create sync staging server marker file", e);
|
||||
}
|
||||
} else {
|
||||
// Remove marker file
|
||||
file.delete();
|
||||
}
|
||||
}
|
||||
|
||||
private void requestRestart(boolean isImport) {
|
||||
DialogInterface.OnClickListener onClickListener = new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
#include <unordered_set>
|
||||
|
||||
#include "base/base_switches.h"
|
||||
#include "base/files/file_util.h"
|
||||
#include "base/lazy_instance.h"
|
||||
#include "base/path_service.h"
|
||||
#include "base/task/post_task.h"
|
||||
@@ -56,7 +55,8 @@
|
||||
#endif
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
#include "base/android/path_utils.h"
|
||||
#include "base/android/jni_android.h"
|
||||
#include "brave/build/android/jni_headers/BraveQAPreferences_jni.h"
|
||||
#endif
|
||||
|
||||
namespace {
|
||||
@@ -253,34 +253,21 @@ bool BraveMainDelegate::BasicStartupComplete(int* exit_code) {
|
||||
void BraveMainDelegate::AdjustSyncServiceUrlForAndroid(
|
||||
std::string* brave_sync_service_url) {
|
||||
DCHECK_NE(brave_sync_service_url, nullptr);
|
||||
const char kProcessTypeHost[] = "host";
|
||||
const char kProcessTypeSwitchName[] = "type";
|
||||
|
||||
// On Android we can detect data dir only on host process, and we cannot
|
||||
// for example on renderer or gpu-process, because JNI is not initialized
|
||||
// And no sense to override sync service url for them in anyway
|
||||
std::string process_type = kProcessTypeHost;
|
||||
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
||||
kProcessTypeSwitchName)) {
|
||||
process_type = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
|
||||
kProcessTypeSwitchName);
|
||||
}
|
||||
|
||||
if (process_type != kProcessTypeHost) {
|
||||
// This is something other than browser process
|
||||
return;
|
||||
}
|
||||
|
||||
base::FilePath data_directory;
|
||||
bool get_dir_result = base::android::GetDataDirectory(&data_directory);
|
||||
if (!get_dir_result) {
|
||||
return;
|
||||
}
|
||||
|
||||
const char kStagingSyncServerMarkerName[] = "use_staging_sync_server";
|
||||
base::FilePath staging_marker_path =
|
||||
data_directory.Append(kStagingSyncServerMarkerName);
|
||||
if (base::PathExists(staging_marker_path)) {
|
||||
// we have found marker file
|
||||
JNIEnv* env = base::android::AttachCurrentThread();
|
||||
bool b_use_staging_sync_server =
|
||||
Java_BraveQAPreferences_isSyncStagingUsed(env);
|
||||
if (b_use_staging_sync_server) {
|
||||
*brave_sync_service_url = kBraveSyncServiceStagingURL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -154,6 +154,7 @@ generate_jni("jni_headers") {
|
||||
"//brave/android/java/org/chromium/chrome/browser/preferences/BravePrefServiceBridge.java",
|
||||
"//brave/android/java/org/chromium/chrome/browser/preferences/website/BraveShieldsContentSettings.java",
|
||||
"//brave/android/java/org/chromium/chrome/browser/signin/BraveSigninManager.java",
|
||||
"//brave/android/java/org/chromium/chrome/browser/settings/developer/BraveQAPreferences.java",
|
||||
]
|
||||
|
||||
if (enable_brave_sync ) {
|
||||
|
||||
Reference in New Issue
Block a user