Skip to content

Commit

Permalink
Uplift of #5560 (squashed) to beta
Browse files Browse the repository at this point in the history
  • Loading branch information
brave-browser-releases committed May 21, 2020
1 parent b444bbf commit 4a6925d
Show file tree
Hide file tree
Showing 9 changed files with 437 additions and 48 deletions.
2 changes: 2 additions & 0 deletions android/brave_java_sources.gni
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ brave_java_sources = [
"../../brave/android/java/org/chromium/chrome/browser/settings/BraveSyncScreensPreference.java",
"../../brave/android/java/org/chromium/chrome/browser/settings/ClosingAllTabsClosesBravePreference.java",
"../../brave/android/java/org/chromium/chrome/browser/settings/developer/BraveQAPreferences.java",
"../../brave/android/java/org/chromium/chrome/browser/settings/developer/BraveRewardsDebugPreferences.java",
"../../brave/android/java/org/chromium/chrome/browser/settings/homepage/BraveHomepageSettings.java",
"../../brave/android/java/org/chromium/chrome/browser/settings/privacy/BraveClearBrowsingDataPreferencesAdvanced.java",
"../../brave/android/java/org/chromium/chrome/browser/settings/privacy/BravePrivacySettings.java",
Expand All @@ -127,6 +128,7 @@ brave_java_sources = [
"../../brave/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java",
"../../brave/android/java/org/chromium/chrome/browser/upgrade/BravePackageReplacedBroadcastReceiver.java",
"../../brave/android/java/org/chromium/chrome/browser/upgrade/BraveUpgradeJobIntentService.java",
"../../brave/android/java/org/chromium/chrome/browser/util/BraveDbUtil.java",
"../../brave/android/java/org/chromium/chrome/browser/util/BraveReferrer.java",
"../../brave/android/java/org/chromium/chrome/browser/util/PackageUtils.java",
"../../brave/android/java/org/chromium/chrome/browser/util/TabUtils.java",
Expand Down
24 changes: 24 additions & 0 deletions android/java/org/chromium/chrome/browser/BraveActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import android.net.Uri;
import android.os.Build;
import android.provider.Settings;
import android.support.v7.app.AlertDialog;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.LayoutInflater;
Expand Down Expand Up @@ -48,6 +49,7 @@
import org.chromium.chrome.browser.tabmodel.TabModelUtils;
import org.chromium.chrome.browser.tab.TabSelectionType;
import org.chromium.chrome.browser.toolbar.top.BraveToolbarLayout;
import org.chromium.chrome.browser.util.BraveDbUtil;
import org.chromium.chrome.browser.util.BraveReferrer;
import org.chromium.chrome.browser.util.UrlConstants;
import org.chromium.chrome.browser.settings.BackgroundImagesPreferences;
Expand Down Expand Up @@ -437,4 +439,26 @@ private void setBgBraveAdsDefaultOff() {
sharedPreferencesEditor.apply();
}
}

@Override
public void performPreInflationStartup() {
BraveDbUtil dbUtil = BraveDbUtil.getInstance();
if (dbUtil.dbOperationRequested()) {
AlertDialog dialog = new AlertDialog.Builder(this)
.setMessage(dbUtil.performDbExportOnStart() ? "Exporting database, please wait..."
: "Importing database, please wait...")
.setCancelable(false)
.create();
dialog.setCanceledOnTouchOutside(false);
if (dbUtil.performDbExportOnStart()) {
dbUtil.setPerformDbExportOnStart(false);
dbUtil.ExportRewardsDb(dialog);
} else if (dbUtil.performDbImportOnStart() && !dbUtil.dbImportFile().isEmpty()) {
dbUtil.setPerformDbImportOnStart(false);
dbUtil.ImportRewardsDb(dialog, dbUtil.dbImportFile());
}
dbUtil.cleanUpDbOperationRequest();
}
super.performPreInflationStartup();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,24 @@

package org.chromium.chrome.browser.settings;

import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.v7.preference.PreferenceFragmentCompat;
import android.os.Build;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.content.Intent;

import org.chromium.chrome.R;
import org.chromium.base.ContextUtils;
import org.chromium.chrome.browser.ChromeTabbedActivity;

public class BravePreferenceFragment extends PreferenceFragmentCompat {
protected static final int STORAGE_PERMISSION_EXPORT_REQUEST_CODE = 8000;
protected static final int STORAGE_PERMISSION_IMPORT_REQUEST_CODE = STORAGE_PERMISSION_EXPORT_REQUEST_CODE + 1;

@Override
public void onActivityCreated(Bundle savedInstanceState) {
setHasOptionsMenu(true);
Expand All @@ -41,4 +48,20 @@ public boolean onOptionsItemSelected(MenuItem item) {
@Override
public void onCreatePreferences(Bundle bundle, String s) {
}

protected boolean isStoragePermissionGranted(boolean isExport) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Context context = ContextUtils.getApplicationContext();
if (context.checkSelfPermission(
android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
return true;
} else {
requestPermissions(
new String[] { android.Manifest.permission.WRITE_EXTERNAL_STORAGE },
isExport ? STORAGE_PERMISSION_EXPORT_REQUEST_CODE : STORAGE_PERMISSION_IMPORT_REQUEST_CODE);
return false;
}
}
return true;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,12 @@

package org.chromium.chrome.browser.settings.developer;

import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
Expand All @@ -30,6 +33,7 @@
import org.chromium.chrome.browser.settings.BravePreferenceFragment;
import org.chromium.chrome.browser.settings.ChromeSwitchPreference;
import org.chromium.chrome.browser.settings.SettingsUtils;
import org.chromium.chrome.browser.util.BraveDbUtil;

/**
* Settings fragment containing preferences for QA team.
Expand All @@ -42,6 +46,10 @@ public class BraveQAPreferences extends BravePreferenceFragment
private static final String PREF_QA_DEBUG_NTP= "qa_debug_ntp";

private static final String QA_ADS_PER_HOUR = "qa_ads_per_hour";
private static final String QA_IMPORT_REWARDS_DB = "qa_import_rewards_db";
private static final String QA_EXPORT_REWARDS_DB = "qa_export_rewards_db";

private static final int CHOOSE_FILE_FOR_IMPORT_REQUEST_CODE = STORAGE_PERMISSION_IMPORT_REQUEST_CODE + 1;

private static final int MAX_ADS = 50;
private static final int DEFAULT_ADS_PER_HOUR = 2;
Expand All @@ -50,6 +58,11 @@ public class BraveQAPreferences extends BravePreferenceFragment
private ChromeSwitchPreference mMaximizeAdsNumber;
private ChromeSwitchPreference mDebugNTP;

private Preference mImportRewardsDb;
private Preference mExportRewardsDb;
private BraveDbUtil mDbUtil;
private String mFileToImport;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Expand All @@ -71,12 +84,40 @@ public void onCreate(Bundle savedInstanceState) {
if(mDebugNTP != null) {
mDebugNTP.setOnPreferenceChangeListener(this);
}

mDbUtil = BraveDbUtil.getInstance();

mImportRewardsDb = findPreference(QA_IMPORT_REWARDS_DB);
mExportRewardsDb = findPreference(QA_EXPORT_REWARDS_DB);
setRewardsDbClickListeners();
checkQACode();
}

private void setRewardsDbClickListeners() {
if (mImportRewardsDb != null) {
mImportRewardsDb.setOnPreferenceClickListener( preference -> {
Intent intent = new Intent()
.setType("*/*")
.setAction(Intent.ACTION_GET_CONTENT);

startActivityForResult(Intent.createChooser(intent, "Select a file"), CHOOSE_FILE_FOR_IMPORT_REQUEST_CODE);
return true;
});
}

if (mExportRewardsDb != null) {
mExportRewardsDb.setOnPreferenceClickListener( preference -> {
if (isStoragePermissionGranted(true)) {
requestRestart(false);
}
return true;
});
}
}

@Override
public void onStart() {
BraveRewardsNativeWorker.getInstance().AddObserver(this);
checkQACode();
super.onStart();
}

Expand Down Expand Up @@ -176,49 +217,6 @@ private void enableMaximumAdsNumber(boolean enable) {
BraveRewardsNativeWorker.getInstance().SetAdsPerHour(adsPerHour);
}

@Override
public void OnWalletInitialized(int error_code) {}

@Override
public void OnWalletProperties(int error_code) {}

@Override
public void OnPublisherInfo(int tabId) {}

@Override
public void OnGetCurrentBalanceReport(double[] report) {}

@Override
public void OnNotificationAdded(String id, int type, long timestamp, String[] args) {}

@Override
public void OnNotificationsCount(int count) {}

@Override
public void OnGetLatestNotification(String id, int type, long timestamp, String[] args) {}

@Override
public void OnNotificationDeleted(String id) {}

@Override
public void OnIsWalletCreated(boolean created) {}

@Override
public void OnGetPendingContributionsTotal(double amount) {}

@Override
public void OnGetRewardsMainEnabled(boolean enabled) {
}

@Override
public void OnGetAutoContributeProps() {}

@Override
public void OnGetReconcileStamp(long timestamp) {}

@Override
public void OnRecurringDonationUpdated() {}

@Override
public void OnResetTheWholeState(boolean success) {
if (success) {
Expand All @@ -235,11 +233,56 @@ public void OnResetTheWholeState(boolean success) {
}

@Override
public void OnRewardsMainEnabled(boolean enabled) {}
public void onCreatePreferences(Bundle bundle, String s) {}

@Override
public void OnFetchPromotions() {}
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
if (STORAGE_PERMISSION_EXPORT_REQUEST_CODE == requestCode) {
requestRestart(false);
} else if (STORAGE_PERMISSION_IMPORT_REQUEST_CODE == requestCode) {
requestRestart(true);
}
}
}

@Override
public void onCreatePreferences(Bundle bundle, String s) {}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CHOOSE_FILE_FOR_IMPORT_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
mFileToImport = data.getData().getPath();
String pathParts[] = mFileToImport.split(":");
if (pathParts.length == 2) {
mFileToImport = pathParts[1];
}
if (isStoragePermissionGranted(false)) {
requestRestart(true);
}
}
}

private void requestRestart(boolean isImport) {
DialogInterface.OnClickListener onClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int button) {
if (button == AlertDialog.BUTTON_POSITIVE) {
if (isImport) {
mDbUtil.setPerformDbImportOnStart(true);
mDbUtil.setDbImportFile(mFileToImport);
} else {
mDbUtil.setPerformDbExportOnStart(true);
}
BraveRelaunchUtils.restart();
}
}
};
AlertDialog.Builder alertDialog = new AlertDialog.Builder(getActivity(), R.style.Theme_Chromium_AlertDialog)
.setMessage(
"This operation requires restart. Would you like to restart application and start operation?")
.setPositiveButton(R.string.ok, onClickListener).setNegativeButton(R.string.cancel, onClickListener);
Dialog dialog = alertDialog.create();
dialog.setCanceledOnTouchOutside(false);
dialog.show();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
/* Copyright (c) 2020 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */

package org.chromium.chrome.browser.settings.developer;

import android.app.Dialog;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.preference.Preference;

import org.chromium.chrome.R;
import org.chromium.chrome.browser.BraveRelaunchUtils;
import org.chromium.chrome.browser.settings.BravePreferenceFragment;
import org.chromium.chrome.browser.settings.SettingsUtils;
import org.chromium.chrome.browser.util.BraveDbUtil;

/**
* Settings fragment containing preferences for QA team.
*/
public class BraveRewardsDebugPreferences extends BravePreferenceFragment {
private static final String QA_EXPORT_REWARDS_DB = "export_rewards_db";

private Preference mExportRewardsDb;
private BraveDbUtil mDbUtil;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SettingsUtils.addPreferencesFromResource(this, R.xml.brave_rewards_debug_preferences);

mDbUtil = BraveDbUtil.getInstance();
mExportRewardsDb = findPreference(QA_EXPORT_REWARDS_DB);
setRewardsDbClickListeners();
}

private void setRewardsDbClickListeners() {
if (mExportRewardsDb != null) {
mExportRewardsDb.setOnPreferenceClickListener(preference -> {
if (isStoragePermissionGranted(true)) {
requestRestart();
}
return true;
});
}
}

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
if (STORAGE_PERMISSION_EXPORT_REQUEST_CODE == requestCode) {
requestRestart();
}
}
}

private void requestRestart() {
DialogInterface.OnClickListener onClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int button) {
if (button == AlertDialog.BUTTON_POSITIVE) {
mDbUtil.setPerformDbExportOnStart(true);
BraveRelaunchUtils.restart();
}
}
};
AlertDialog.Builder alertDialog = new AlertDialog.Builder(getActivity(), R.style.Theme_Chromium_AlertDialog)
.setMessage(
"This operation requires restart. Would you like to restart application and start operation?")
.setPositiveButton(R.string.ok, onClickListener).setNegativeButton(R.string.cancel, onClickListener);
Dialog dialog = alertDialog.create();
dialog.setCanceledOnTouchOutside(false);
dialog.show();
}
}
Loading

0 comments on commit 4a6925d

Please sign in to comment.