From a708f27f90b04305ea35ab50dd8e59a1c9b3ed06 Mon Sep 17 00:00:00 2001 From: Alex C Date: Wed, 26 May 2021 15:44:53 -0400 Subject: [PATCH 1/6] [Android] fixes share stats crash --- .../browser/toolbar/top/BraveToolbarLayout.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java b/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java index a30307c49f2..ae17a92b4d0 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java +++ b/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java @@ -129,7 +129,6 @@ public abstract class BraveToolbarLayout extends ToolbarLayout BraveRewardsNativeWorker.PublisherObserver { public static final String PREF_HIDE_BRAVE_REWARDS_ICON = "hide_brave_rewards_icon"; private static final String JAPAN_COUNTRY_CODE = "JP"; - private static final long MB_10 = 10000000; private static final long MINUTES_10 = 10 * 60 * 1000; @@ -459,11 +458,22 @@ public abstract class BraveToolbarLayout extends ToolbarLayout private void chooseStatsShareTier(Tab tab, int trackersPlusAdsBlocked) { String countryCode = Locale.getDefault().getCountry(); + // the tooltip for stats sharing is shown only for Japan if (!countryCode.equals(JAPAN_COUNTRY_CODE)) { return; } - int totalBlocked = Integer.parseInt(BraveStatsUtil.getAdsTrackersBlocked().first); + + // double check if the shields button is shown to prevent situations like showing the + // tooltip on new tabs + if (mBraveShieldsButton == null && !mBraveShieldsButton.isShown() + && UrlUtilities.isNTPUrl( + BraveActivity.getBraveActivity().getActivityTab().getUrlString())) { + return; + } + + int totalBlocked = + Math.round(Float.parseFloat(BraveStatsUtil.getAdsTrackersBlocked().first.trim())); // show after BraveShieldsUtils.BRAVE_BLOCKED_SHOW_DIFF (20) blocked stuff above the TIER // threshold From bb4a68eeb785079ae57d678a5bc5b303035aafd0 Mon Sep 17 00:00:00 2001 From: Alex C Date: Thu, 27 May 2021 10:36:37 -0400 Subject: [PATCH 2/6] [Android] fix for share stats crash and showing on NTP --- .../chromium/base/BraveReflectionUtil.java | 4 +- .../browser/shields/BraveShieldsUtils.java | 37 ++++++++++++++----- .../toolbar/top/BraveToolbarLayout.java | 10 ++--- 3 files changed, 35 insertions(+), 16 deletions(-) diff --git a/android/java/org/chromium/base/BraveReflectionUtil.java b/android/java/org/chromium/base/BraveReflectionUtil.java index 3dd813da17b..e85a5ed8dcb 100644 --- a/android/java/org/chromium/base/BraveReflectionUtil.java +++ b/android/java/org/chromium/base/BraveReflectionUtil.java @@ -43,7 +43,9 @@ public class BraveReflectionUtil { Log.e(TAG, "Illegal access for method: " + e); assert (false); } catch (InvocationTargetException e) { - Log.e(TAG, "Method invocation error: " + e); + Log.e(TAG, "Method invocation error e: " + e); + Log.e(TAG, "Method invocation error e.getMessage: " + e.getMessage()); + Log.e(TAG, "Method invocation error e.getCause(): " + e.getCause()); assert (false); } } catch (NoSuchMethodException e) { diff --git a/android/java/org/chromium/chrome/browser/shields/BraveShieldsUtils.java b/android/java/org/chromium/chrome/browser/shields/BraveShieldsUtils.java index a1673a2d928..f6456068d2a 100644 --- a/android/java/org/chromium/chrome/browser/shields/BraveShieldsUtils.java +++ b/android/java/org/chromium/chrome/browser/shields/BraveShieldsUtils.java @@ -59,17 +59,28 @@ public class BraveShieldsUtils { public static final List videoSitesListJp = Arrays.asList("nicovideo.jp", "tiktok.com", "instagram.com"); - public static final int BRAVE_BLOCKED_TIER1 = 1000; - public static final int BRAVE_BLOCKED_TIER2 = 5000; - public static final int BRAVE_BLOCKED_TIER3 = 10000; - public static final int BRAVE_BLOCKED_TIER4 = 25000; - public static final int BRAVE_BLOCKED_TIER5 = 75000; - public static final int BRAVE_BLOCKED_TIER6 = 100000; - public static final int BRAVE_BLOCKED_TIER7 = 250000; - public static final int BRAVE_BLOCKED_TIER8 = 500000; - public static final int BRAVE_BLOCKED_TIER9 = 1000000; + // public static final int BRAVE_BLOCKED_TIER1 = 1000; + // public static final int BRAVE_BLOCKED_TIER2 = 5000; + // public static final int BRAVE_BLOCKED_TIER3 = 10000; + // public static final int BRAVE_BLOCKED_TIER4 = 25000; + // public static final int BRAVE_BLOCKED_TIER5 = 75000; + // public static final int BRAVE_BLOCKED_TIER6 = 100000; + // public static final int BRAVE_BLOCKED_TIER7 = 250000; + // public static final int BRAVE_BLOCKED_TIER8 = 500000; + // public static final int BRAVE_BLOCKED_TIER9 = 1000000; - public static final int BRAVE_BLOCKED_SHOW_DIFF = 20; + // public static final int BRAVE_BLOCKED_SHOW_DIFF = 20; + + public static final int BRAVE_BLOCKED_TIER1 = 30; + public static final int BRAVE_BLOCKED_TIER2 = 60; + public static final int BRAVE_BLOCKED_TIER3 = 90; + public static final int BRAVE_BLOCKED_TIER4 = 110; + public static final int BRAVE_BLOCKED_TIER5 = 130; + public static final int BRAVE_BLOCKED_TIER6 = 160; + public static final int BRAVE_BLOCKED_TIER7 = 190; + public static final int BRAVE_BLOCKED_TIER8 = 220; + public static final int BRAVE_BLOCKED_TIER9 = 250; + public static final int BRAVE_BLOCKED_SHOW_DIFF = 5; public static boolean isTooltipShown; @@ -79,6 +90,12 @@ public class BraveShieldsUtils { public static boolean hasShieldsTooltipShown(String tooltipType) { SharedPreferences mSharedPreferences = ContextUtils.getAppSharedPreferences(); + Log.d(TAG, "hasShieldsTooltipShown tooltipType:"+tooltipType); + setShieldsTooltipShown(PREF_SHARE_SHIELDS_TOOLTIP_TIER1, false); + setShieldsTooltipShown(PREF_SHARE_SHIELDS_TOOLTIP_TIER2, false); + setShieldsTooltipShown(PREF_SHARE_SHIELDS_TOOLTIP_TIER3, false); + setShieldsTooltipShown(PREF_SHARE_SHIELDS_TOOLTIP_TIER4, false); + Log.d(TAG, "hasShieldsTooltipShown tooltipType shown:"+mSharedPreferences.getBoolean(tooltipType, false)); return mSharedPreferences.getBoolean(tooltipType, false); } diff --git a/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java b/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java index ae17a92b4d0..a4550b23206 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java +++ b/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java @@ -131,7 +131,7 @@ public abstract class BraveToolbarLayout extends ToolbarLayout private static final String JAPAN_COUNTRY_CODE = "JP"; private static final long MB_10 = 10000000; private static final long MINUTES_10 = 10 * 60 * 1000; - +private static final String TAG = "Shields"; private static final int URL_FOCUS_TOOLBAR_BUTTONS_TRANSLATION_X_DP = 10; private DatabaseHelper mDatabaseHelper = DatabaseHelper.getInstance(); @@ -466,15 +466,15 @@ public abstract class BraveToolbarLayout extends ToolbarLayout // double check if the shields button is shown to prevent situations like showing the // tooltip on new tabs - if (mBraveShieldsButton == null && !mBraveShieldsButton.isShown() - && UrlUtilities.isNTPUrl( + if ((mBraveShieldsButton == null && !mBraveShieldsButton.isShown()) + || UrlUtilities.isNTPUrl( BraveActivity.getBraveActivity().getActivityTab().getUrlString())) { return; } - +// int totalBlocked = 36; int totalBlocked = Math.round(Float.parseFloat(BraveStatsUtil.getAdsTrackersBlocked().first.trim())); - +Log.d(TAG, "chooseStatsShareTier totalBlocked:"+totalBlocked); // show after BraveShieldsUtils.BRAVE_BLOCKED_SHOW_DIFF (20) blocked stuff above the TIER // threshold if (!BraveShieldsUtils.hasShieldsTooltipShown( From 37198b061a9d9f58f5a61ddbcb2cf709efd95a3a Mon Sep 17 00:00:00 2001 From: Alex C Date: Tue, 1 Jun 2021 12:10:02 -0400 Subject: [PATCH 3/6] [Android] share stats fix --- .../browser/shields/BraveShieldsUtils.java | 37 +++++-------------- .../toolbar/top/BraveToolbarLayout.java | 3 +- 2 files changed, 11 insertions(+), 29 deletions(-) diff --git a/android/java/org/chromium/chrome/browser/shields/BraveShieldsUtils.java b/android/java/org/chromium/chrome/browser/shields/BraveShieldsUtils.java index f6456068d2a..a1673a2d928 100644 --- a/android/java/org/chromium/chrome/browser/shields/BraveShieldsUtils.java +++ b/android/java/org/chromium/chrome/browser/shields/BraveShieldsUtils.java @@ -59,28 +59,17 @@ public class BraveShieldsUtils { public static final List videoSitesListJp = Arrays.asList("nicovideo.jp", "tiktok.com", "instagram.com"); - // public static final int BRAVE_BLOCKED_TIER1 = 1000; - // public static final int BRAVE_BLOCKED_TIER2 = 5000; - // public static final int BRAVE_BLOCKED_TIER3 = 10000; - // public static final int BRAVE_BLOCKED_TIER4 = 25000; - // public static final int BRAVE_BLOCKED_TIER5 = 75000; - // public static final int BRAVE_BLOCKED_TIER6 = 100000; - // public static final int BRAVE_BLOCKED_TIER7 = 250000; - // public static final int BRAVE_BLOCKED_TIER8 = 500000; - // public static final int BRAVE_BLOCKED_TIER9 = 1000000; + public static final int BRAVE_BLOCKED_TIER1 = 1000; + public static final int BRAVE_BLOCKED_TIER2 = 5000; + public static final int BRAVE_BLOCKED_TIER3 = 10000; + public static final int BRAVE_BLOCKED_TIER4 = 25000; + public static final int BRAVE_BLOCKED_TIER5 = 75000; + public static final int BRAVE_BLOCKED_TIER6 = 100000; + public static final int BRAVE_BLOCKED_TIER7 = 250000; + public static final int BRAVE_BLOCKED_TIER8 = 500000; + public static final int BRAVE_BLOCKED_TIER9 = 1000000; - // public static final int BRAVE_BLOCKED_SHOW_DIFF = 20; - - public static final int BRAVE_BLOCKED_TIER1 = 30; - public static final int BRAVE_BLOCKED_TIER2 = 60; - public static final int BRAVE_BLOCKED_TIER3 = 90; - public static final int BRAVE_BLOCKED_TIER4 = 110; - public static final int BRAVE_BLOCKED_TIER5 = 130; - public static final int BRAVE_BLOCKED_TIER6 = 160; - public static final int BRAVE_BLOCKED_TIER7 = 190; - public static final int BRAVE_BLOCKED_TIER8 = 220; - public static final int BRAVE_BLOCKED_TIER9 = 250; - public static final int BRAVE_BLOCKED_SHOW_DIFF = 5; + public static final int BRAVE_BLOCKED_SHOW_DIFF = 20; public static boolean isTooltipShown; @@ -90,12 +79,6 @@ public class BraveShieldsUtils { public static boolean hasShieldsTooltipShown(String tooltipType) { SharedPreferences mSharedPreferences = ContextUtils.getAppSharedPreferences(); - Log.d(TAG, "hasShieldsTooltipShown tooltipType:"+tooltipType); - setShieldsTooltipShown(PREF_SHARE_SHIELDS_TOOLTIP_TIER1, false); - setShieldsTooltipShown(PREF_SHARE_SHIELDS_TOOLTIP_TIER2, false); - setShieldsTooltipShown(PREF_SHARE_SHIELDS_TOOLTIP_TIER3, false); - setShieldsTooltipShown(PREF_SHARE_SHIELDS_TOOLTIP_TIER4, false); - Log.d(TAG, "hasShieldsTooltipShown tooltipType shown:"+mSharedPreferences.getBoolean(tooltipType, false)); return mSharedPreferences.getBoolean(tooltipType, false); } diff --git a/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java b/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java index a4550b23206..ff9ced371dd 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java +++ b/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java @@ -471,10 +471,9 @@ private static final String TAG = "Shields"; BraveActivity.getBraveActivity().getActivityTab().getUrlString())) { return; } -// int totalBlocked = 36; + int totalBlocked = Math.round(Float.parseFloat(BraveStatsUtil.getAdsTrackersBlocked().first.trim())); -Log.d(TAG, "chooseStatsShareTier totalBlocked:"+totalBlocked); // show after BraveShieldsUtils.BRAVE_BLOCKED_SHOW_DIFF (20) blocked stuff above the TIER // threshold if (!BraveShieldsUtils.hasShieldsTooltipShown( From 417b187aefc13b571df1762665a485a71144a350 Mon Sep 17 00:00:00 2001 From: Alex C Date: Tue, 1 Jun 2021 12:38:07 -0400 Subject: [PATCH 4/6] [Android] lint fixes --- .../browser/toolbar/top/BraveToolbarLayout.java | 1 - .../browser/dialogs/BraveAdsNotificationDialog.java | 11 +++++------ components/brave_referrals/browser/BUILD.gn | 8 ++------ 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java b/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java index ff9ced371dd..a414cf212b9 100644 --- a/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java +++ b/android/java/org/chromium/chrome/browser/toolbar/top/BraveToolbarLayout.java @@ -131,7 +131,6 @@ public abstract class BraveToolbarLayout extends ToolbarLayout private static final String JAPAN_COUNTRY_CODE = "JP"; private static final long MB_10 = 10000000; private static final long MINUTES_10 = 10 * 60 * 1000; -private static final String TAG = "Shields"; private static final int URL_FOCUS_TOOLBAR_BUTTONS_TRANSLATION_X_DP = 10; private DatabaseHelper mDatabaseHelper = DatabaseHelper.getInstance(); diff --git a/browser/brave_ads/android/java/org/chromium/chrome/browser/dialogs/BraveAdsNotificationDialog.java b/browser/brave_ads/android/java/org/chromium/chrome/browser/dialogs/BraveAdsNotificationDialog.java index 02cf0944ab1..a57430772b6 100644 --- a/browser/brave_ads/android/java/org/chromium/chrome/browser/dialogs/BraveAdsNotificationDialog.java +++ b/browser/brave_ads/android/java/org/chromium/chrome/browser/dialogs/BraveAdsNotificationDialog.java @@ -150,19 +150,18 @@ public class BraveAdsNotificationDialog { } @CalledByNative - public static void showAdNotification(final String notificationId, - final String origin, final String title, final String body) { + public static void showAdNotification(final String notificationId, final String origin, + final String title, final String body) { Activity activity = ApplicationStatus.getLastTrackedFocusedActivity(); assert activity != null; // We want to show ads only when activity is in started or resumed // state int state = ApplicationStatus.getStateForActivity(activity); - if (activity == null || (state != ActivityState.STARTED && - state != ActivityState.RESUMED)) + if (activity == null || (state != ActivityState.STARTED && state != ActivityState.RESUMED)) return; - BraveAdsNotificationDialog.showAdNotification(activity, notificationId, - origin, title, body); + BraveAdsNotificationDialog.showAdNotification( + activity, notificationId, origin, title, body); } @CalledByNative diff --git a/components/brave_referrals/browser/BUILD.gn b/components/brave_referrals/browser/BUILD.gn index c303f683c80..da72c66cd59 100644 --- a/components/brave_referrals/browser/BUILD.gn +++ b/components/brave_referrals/browser/BUILD.gn @@ -6,9 +6,7 @@ if (is_android) { source_set("browser") { # Remove when https://github.com/brave/brave-browser/issues/10646 is resolved check_includes = false - public_deps = [ - "//brave/components/brave_referrals/buildflags", - ] + public_deps = [ "//brave/components/brave_referrals/buildflags" ] if (enable_brave_referrals) { sources = [ @@ -45,8 +43,6 @@ source_set("browser") { if (is_android) { generate_jni("jni_headers") { - sources = [ - "//brave/android/java/org/chromium/chrome/browser/util/BraveReferrer.java", - ] + sources = [ "//brave/android/java/org/chromium/chrome/browser/util/BraveReferrer.java" ] } } From 825840f7c9e29c7962152b09e62d8aafcf52eec8 Mon Sep 17 00:00:00 2001 From: Alex C Date: Fri, 4 Jun 2021 14:15:20 -0400 Subject: [PATCH 5/6] [Android] deletes share stats image after sharing --- .../chrome/browser/app/BraveActivity.java | 2 ++ .../browser/brave_stats/BraveStatsUtil.java | 33 +++++++++++++++---- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/android/java/org/chromium/chrome/browser/app/BraveActivity.java b/android/java/org/chromium/chrome/browser/app/BraveActivity.java index b91b030b2d7..7d6a66f486f 100644 --- a/android/java/org/chromium/chrome/browser/app/BraveActivity.java +++ b/android/java/org/chromium/chrome/browser/app/BraveActivity.java @@ -731,6 +731,8 @@ public abstract class BraveActivity if (! TextUtils.isEmpty(open_url)) { openNewOrSelectExistingTab(open_url); } + } else if (resultCode == RESULT_OK && requestCode == BraveStatsUtil.SHARE_STATS_REQUEST_CODE){ + BraveStatsUtil.removeShareStatsFile(); } super.onActivityResult(requestCode, resultCode, data); } diff --git a/android/java/org/chromium/chrome/browser/brave_stats/BraveStatsUtil.java b/android/java/org/chromium/chrome/browser/brave_stats/BraveStatsUtil.java index 52c62ad54c4..29dddc2f64d 100644 --- a/android/java/org/chromium/chrome/browser/brave_stats/BraveStatsUtil.java +++ b/android/java/org/chromium/chrome/browser/brave_stats/BraveStatsUtil.java @@ -50,10 +50,14 @@ import java.util.Date; import java.util.List; import java.util.Locale; +import android.content.ContentResolver; + public class BraveStatsUtil { public static final short MILLISECONDS_PER_ITEM = 50; public static final int SHARE_STATS_WRITE_EXTERNAL_STORAGE_PERM = 3867; + public static final int SHARE_STATS_REQUEST_CODE = 4367; public static final String TAG = "BraveStatsUtil"; + private static String shareStatsFile = ""; /* * Gets string view of specific time in seconds for Brave stats */ @@ -168,20 +172,21 @@ public class BraveStatsUtil { shareStatsAction(view); } + public static void shareStatsAction(View view) { try { Context context = ContextUtils.getApplicationContext(); Bitmap bmp = convertToBitmap(view); - String path = ""; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - path = MediaStore.Images.Media.insertImage( + shareStatsFile = MediaStore.Images.Media.insertImage( context.getContentResolver(), bmp, "tempimage", null); } else { storeImage(bmp); - path = getOutputMediaFile().getAbsolutePath(); + shareStatsFile = getOutputMediaFile().getAbsolutePath(); } - Uri uri = Uri.parse(path); + Uri uri = Uri.parse(shareStatsFile); Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); @@ -193,9 +198,25 @@ public class BraveStatsUtil { Intent shareIntent = Intent.createChooser(sendIntent, " "); shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(shareIntent); + + if (BraveActivity.getBraveActivity() != null){ + BraveActivity.getBraveActivity().startActivityForResult(shareIntent, SHARE_STATS_REQUEST_CODE); + } } catch (Exception e) { - Log.e(TAG, "exception :" + e); + e.printStackTrace(); + } + } + + public static void removeShareStatsFile() { + Context context = ContextUtils.getApplicationContext(); + if (shareStatsFile.startsWith("content://")) { + ContentResolver contentResolver = context.getContentResolver(); + contentResolver.delete(Uri.parse(shareStatsFile), null, null); + } else { + File file = new File(shareStatsFile); + if (file.exists()) { + file.delete(); + } } } From dbbd659a2d7496713dec1a6184e0acab295f2b78 Mon Sep 17 00:00:00 2001 From: Alex C Date: Fri, 4 Jun 2021 16:20:11 -0400 Subject: [PATCH 6/6] [Android] rebased and lint --- .../java/org/chromium/base/BraveReflectionUtil.java | 2 -- .../chromium/chrome/browser/app/BraveActivity.java | 3 ++- .../chrome/browser/brave_stats/BraveStatsUtil.java | 11 +++++------ 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/android/java/org/chromium/base/BraveReflectionUtil.java b/android/java/org/chromium/base/BraveReflectionUtil.java index e85a5ed8dcb..4aa98fe721f 100644 --- a/android/java/org/chromium/base/BraveReflectionUtil.java +++ b/android/java/org/chromium/base/BraveReflectionUtil.java @@ -44,8 +44,6 @@ public class BraveReflectionUtil { assert (false); } catch (InvocationTargetException e) { Log.e(TAG, "Method invocation error e: " + e); - Log.e(TAG, "Method invocation error e.getMessage: " + e.getMessage()); - Log.e(TAG, "Method invocation error e.getCause(): " + e.getCause()); assert (false); } } catch (NoSuchMethodException e) { diff --git a/android/java/org/chromium/chrome/browser/app/BraveActivity.java b/android/java/org/chromium/chrome/browser/app/BraveActivity.java index 7d6a66f486f..c8739195282 100644 --- a/android/java/org/chromium/chrome/browser/app/BraveActivity.java +++ b/android/java/org/chromium/chrome/browser/app/BraveActivity.java @@ -731,7 +731,8 @@ public abstract class BraveActivity if (! TextUtils.isEmpty(open_url)) { openNewOrSelectExistingTab(open_url); } - } else if (resultCode == RESULT_OK && requestCode == BraveStatsUtil.SHARE_STATS_REQUEST_CODE){ + } else if (resultCode == RESULT_OK + && requestCode == BraveStatsUtil.SHARE_STATS_REQUEST_CODE) { BraveStatsUtil.removeShareStatsFile(); } super.onActivityResult(requestCode, resultCode, data); diff --git a/android/java/org/chromium/chrome/browser/brave_stats/BraveStatsUtil.java b/android/java/org/chromium/chrome/browser/brave_stats/BraveStatsUtil.java index 29dddc2f64d..5e757bdc3a9 100644 --- a/android/java/org/chromium/chrome/browser/brave_stats/BraveStatsUtil.java +++ b/android/java/org/chromium/chrome/browser/brave_stats/BraveStatsUtil.java @@ -7,6 +7,7 @@ package org.chromium.chrome.browser.brave_stats; import android.Manifest; import android.app.Activity; +import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; @@ -50,8 +51,6 @@ import java.util.Date; import java.util.List; import java.util.Locale; -import android.content.ContentResolver; - public class BraveStatsUtil { public static final short MILLISECONDS_PER_ITEM = 50; public static final int SHARE_STATS_WRITE_EXTERNAL_STORAGE_PERM = 3867; @@ -172,12 +171,11 @@ public class BraveStatsUtil { shareStatsAction(view); } - public static void shareStatsAction(View view) { try { Context context = ContextUtils.getApplicationContext(); Bitmap bmp = convertToBitmap(view); - + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { shareStatsFile = MediaStore.Images.Media.insertImage( context.getContentResolver(), bmp, "tempimage", null); @@ -199,8 +197,9 @@ public class BraveStatsUtil { Intent shareIntent = Intent.createChooser(sendIntent, " "); shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - if (BraveActivity.getBraveActivity() != null){ - BraveActivity.getBraveActivity().startActivityForResult(shareIntent, SHARE_STATS_REQUEST_CODE); + if (BraveActivity.getBraveActivity() != null) { + BraveActivity.getBraveActivity().startActivityForResult( + shareIntent, SHARE_STATS_REQUEST_CODE); } } catch (Exception e) { e.printStackTrace();