Starts MiscAndroidMetrics mojo remote from a SequencedTaskRunner
This commit is contained in:
@@ -1152,9 +1152,6 @@ public abstract class BraveActivity extends ChromeActivity
|
||||
ChromeSharedPreferences.getInstance()
|
||||
.writeBoolean(BravePrivacySettings.PREF_APP_LINKS_RESET, false);
|
||||
}
|
||||
|
||||
mUsageMonitor = new UsageMonitor(mMiscAndroidMetrics);
|
||||
mUsageMonitor.start();
|
||||
}
|
||||
|
||||
private void handleDeepLinkVpn() {
|
||||
@@ -2041,10 +2038,16 @@ public abstract class BraveActivity extends ChromeActivity
|
||||
new MiscAndroidMetricsConnectionErrorHandler(this);
|
||||
}
|
||||
|
||||
mMiscAndroidMetrics = MiscAndroidMetricsFactory.getInstance().getMetricsService(
|
||||
mMiscAndroidMetricsConnectionErrorHandler);
|
||||
mMiscAndroidMetrics.recordPrivacyHubEnabledStatus(
|
||||
OnboardingPrefManager.getInstance().isBraveStatsEnabled());
|
||||
MiscAndroidMetricsFactory.getInstance()
|
||||
.getMetricsService(mMiscAndroidMetricsConnectionErrorHandler)
|
||||
.then(
|
||||
miscAndroidMetrics -> {
|
||||
mMiscAndroidMetrics = miscAndroidMetrics;
|
||||
mMiscAndroidMetrics.recordPrivacyHubEnabledStatus(
|
||||
OnboardingPrefManager.getInstance().isBraveStatsEnabled());
|
||||
mUsageMonitor = new UsageMonitor(mMiscAndroidMetrics);
|
||||
mUsageMonitor.start();
|
||||
});
|
||||
}
|
||||
|
||||
private void initSwapService() {
|
||||
|
||||
@@ -28,6 +28,7 @@ import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.app.BraveActivity;
|
||||
import org.chromium.chrome.browser.preferences.BravePrefServiceBridge;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.misc_metrics.mojom.MiscAndroidMetrics;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
@@ -46,7 +47,8 @@ public class BraveStatsUtil {
|
||||
public static final int SHARE_STATS_REQUEST_CODE = 4367;
|
||||
private static final String TAG = "BraveStatsUtil";
|
||||
public static final String STATS_FRAGMENT_TAG = "brave_stats_bottom_sheet_dialog_fragment";
|
||||
private static String shareStatsFile = "";
|
||||
private static String sShareStatsFile = "";
|
||||
|
||||
/*
|
||||
* Gets string view of specific time in seconds for Brave stats
|
||||
*/
|
||||
@@ -108,8 +110,9 @@ public class BraveStatsUtil {
|
||||
BraveStatsBottomSheetDialogFragment.newInstance();
|
||||
braveStatsBottomSheetDialogFragment.show(
|
||||
activity.getSupportFragmentManager(), STATS_FRAGMENT_TAG);
|
||||
if (activity.getMiscAndroidMetrics() != null) {
|
||||
activity.getMiscAndroidMetrics().recordPrivacyHubView();
|
||||
MiscAndroidMetrics miscAndroidMetrics = activity.getMiscAndroidMetrics();
|
||||
if (miscAndroidMetrics != null) {
|
||||
miscAndroidMetrics.recordPrivacyHubView();
|
||||
}
|
||||
} catch (BraveActivity.BraveActivityNotFoundException e) {
|
||||
Log.e(TAG, "showBraveStats " + e);
|
||||
@@ -172,14 +175,15 @@ public class BraveStatsUtil {
|
||||
Bitmap bmp = convertToBitmap(view);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
shareStatsFile = MediaStore.Images.Media.insertImage(
|
||||
context.getContentResolver(), bmp, "tempimage", null);
|
||||
sShareStatsFile =
|
||||
MediaStore.Images.Media.insertImage(
|
||||
context.getContentResolver(), bmp, "tempimage", null);
|
||||
} else {
|
||||
storeImage(bmp);
|
||||
shareStatsFile = getOutputMediaFile().getAbsolutePath();
|
||||
sShareStatsFile = getOutputMediaFile().getAbsolutePath();
|
||||
}
|
||||
|
||||
Uri uri = Uri.parse(shareStatsFile);
|
||||
Uri uri = Uri.parse(sShareStatsFile);
|
||||
|
||||
Intent sendIntent = new Intent();
|
||||
sendIntent.setAction(Intent.ACTION_SEND);
|
||||
@@ -201,11 +205,11 @@ public class BraveStatsUtil {
|
||||
public static void removeShareStatsFile() {
|
||||
Context context = ContextUtils.getApplicationContext();
|
||||
try {
|
||||
if (shareStatsFile.startsWith("content://")) {
|
||||
if (sShareStatsFile.startsWith("content://")) {
|
||||
ContentResolver contentResolver = context.getContentResolver();
|
||||
contentResolver.delete(Uri.parse(shareStatsFile), null, null);
|
||||
contentResolver.delete(Uri.parse(sShareStatsFile), null, null);
|
||||
} else {
|
||||
File file = new File(shareStatsFile);
|
||||
File file = new File(sShareStatsFile);
|
||||
if (file.exists()) {
|
||||
file.delete();
|
||||
}
|
||||
|
||||
+33
-16
@@ -8,6 +8,10 @@ package org.chromium.chrome.browser.misc_metrics;
|
||||
import org.jni_zero.JNINamespace;
|
||||
import org.jni_zero.NativeMethods;
|
||||
|
||||
import org.chromium.base.Promise;
|
||||
import org.chromium.base.task.PostTask;
|
||||
import org.chromium.base.task.TaskRunner;
|
||||
import org.chromium.base.task.TaskTraits;
|
||||
import org.chromium.chrome.browser.crypto_wallet.util.Utils;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.misc_metrics.mojom.MiscAndroidMetrics;
|
||||
@@ -19,30 +23,43 @@ import org.chromium.mojo.system.impl.CoreImpl;
|
||||
|
||||
@JNINamespace("chrome::android")
|
||||
public class MiscAndroidMetricsFactory {
|
||||
private static final Object lock = new Object();
|
||||
private static MiscAndroidMetricsFactory instance;
|
||||
private static final Object sLock = new Object();
|
||||
private static MiscAndroidMetricsFactory sInstance;
|
||||
private final TaskRunner mTaskRunner;
|
||||
|
||||
public static MiscAndroidMetricsFactory getInstance() {
|
||||
synchronized (lock) {
|
||||
if (instance == null) {
|
||||
instance = new MiscAndroidMetricsFactory();
|
||||
synchronized (sLock) {
|
||||
if (sInstance == null) {
|
||||
sInstance = new MiscAndroidMetricsFactory();
|
||||
}
|
||||
}
|
||||
return instance;
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
private MiscAndroidMetricsFactory() {}
|
||||
private MiscAndroidMetricsFactory() {
|
||||
mTaskRunner = PostTask.createSequencedTaskRunner(TaskTraits.UI_DEFAULT);
|
||||
}
|
||||
|
||||
public MiscAndroidMetrics getMetricsService(ConnectionErrorHandler connectionErrorHandler) {
|
||||
Profile profile = Utils.getProfile(false); // always use regular profile
|
||||
long nativeHandle =
|
||||
MiscAndroidMetricsFactoryJni.get().getInterfaceToMiscAndroidMetrics(profile);
|
||||
MessagePipeHandle handle = wrapNativeHandle(nativeHandle);
|
||||
MiscAndroidMetrics metricsService = MiscAndroidMetrics.MANAGER.attachProxy(handle, 0);
|
||||
Handler handler = ((Interface.Proxy) metricsService).getProxyHandler();
|
||||
handler.setErrorHandler(connectionErrorHandler);
|
||||
public Promise<MiscAndroidMetrics> getMetricsService(
|
||||
ConnectionErrorHandler connectionErrorHandler) {
|
||||
final Promise<MiscAndroidMetrics> promise = new Promise<>();
|
||||
|
||||
return metricsService;
|
||||
mTaskRunner.postTask(
|
||||
() -> {
|
||||
Profile profile = Utils.getProfile(false); // always use regular profile
|
||||
long nativeHandle =
|
||||
MiscAndroidMetricsFactoryJni.get()
|
||||
.getInterfaceToMiscAndroidMetrics(profile);
|
||||
MessagePipeHandle handle = wrapNativeHandle(nativeHandle);
|
||||
MiscAndroidMetrics metricsService =
|
||||
MiscAndroidMetrics.MANAGER.attachProxy(handle, 0);
|
||||
Handler handler = ((Interface.Proxy) metricsService).getProxyHandler();
|
||||
handler.setErrorHandler(connectionErrorHandler);
|
||||
|
||||
promise.fulfill(metricsService);
|
||||
});
|
||||
|
||||
return promise;
|
||||
}
|
||||
|
||||
private MessagePipeHandle wrapNativeHandle(long nativeHandle) {
|
||||
|
||||
@@ -19,6 +19,7 @@ import org.chromium.chrome.browser.app.BraveActivity.BraveActivityNotFoundExcept
|
||||
import org.chromium.chrome.browser.notifications.BraveOnboardingNotification;
|
||||
import org.chromium.chrome.browser.notifications.retention.RetentionNotificationUtil;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.misc_metrics.mojom.MiscAndroidMetrics;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
@@ -175,7 +176,10 @@ public class OnboardingPrefManager {
|
||||
sharedPreferencesEditor.apply();
|
||||
try {
|
||||
BraveActivity activity = BraveActivity.getBraveActivity();
|
||||
activity.getMiscAndroidMetrics().recordPrivacyHubEnabledStatus(enabled);
|
||||
MiscAndroidMetrics miscAndroidMetrics = activity.getMiscAndroidMetrics();
|
||||
if (miscAndroidMetrics != null) {
|
||||
miscAndroidMetrics.recordPrivacyHubEnabledStatus(enabled);
|
||||
}
|
||||
} catch (BraveActivityNotFoundException e) {
|
||||
Log.e(TAG, "Could not report privacy hub enabled change to P3A: " + e);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user