Merge pull request #8557 from brave/write-permission-share-stats
Write permission share stats
This commit is contained in:
@@ -24,6 +24,7 @@ import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
@@ -811,6 +812,17 @@ public abstract class BraveActivity<C extends ChromeActivityComponent>
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(
|
||||
int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
if (requestCode == BraveStatsUtil.SHARE_STATS_WRITE_EXTERNAL_STORAGE_PERM
|
||||
&& grantResults.length != 0
|
||||
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
BraveStatsUtil.shareStats(R.layout.brave_stats_share_layout);
|
||||
}
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
}
|
||||
|
||||
/**
|
||||
* Disable background ads on Android. Issue #8641.
|
||||
*/
|
||||
|
||||
@@ -5,12 +5,16 @@
|
||||
|
||||
package org.chromium.chrome.browser.brave_stats;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.provider.MediaStore;
|
||||
import android.util.Pair;
|
||||
import android.view.LayoutInflater;
|
||||
@@ -18,6 +22,7 @@ import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Log;
|
||||
@@ -42,6 +47,7 @@ import java.util.Locale;
|
||||
|
||||
public class BraveStatsUtil {
|
||||
public static final short MILLISECONDS_PER_ITEM = 50;
|
||||
public static final int SHARE_STATS_WRITE_EXTERNAL_STORAGE_PERM = 3867;
|
||||
/*
|
||||
* Gets string view of specific time in seconds for Brave stats
|
||||
*/
|
||||
@@ -200,6 +206,24 @@ public class BraveStatsUtil {
|
||||
return canvasBitmap;
|
||||
}
|
||||
|
||||
public static boolean hasWritePermission(Activity activity) {
|
||||
if (ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
||||
== PackageManager.PERMISSION_GRANTED) {
|
||||
return true;
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
activity.requestPermissions(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE},
|
||||
SHARE_STATS_WRITE_EXTERNAL_STORAGE_PERM);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void shareStats(int layout) {
|
||||
View shareStatsLayout = getLayout(layout);
|
||||
updateBraveShareStatsLayoutAndShare(shareStatsLayout);
|
||||
}
|
||||
|
||||
private static List<Pair<String, String>> getStatsPairs() {
|
||||
List<Pair<String, String>> statsPair = new ArrayList<>();
|
||||
Profile mProfile = Profile.getLastUsedRegularProfile();
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.chromium.chrome.browser.shields;
|
||||
|
||||
import android.Manifest;
|
||||
import android.animation.Animator;
|
||||
import android.animation.Animator.AnimatorListener;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
@@ -12,6 +13,7 @@ import android.animation.AnimatorSet;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.ContextWrapper;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
@@ -55,6 +57,8 @@ import android.widget.RadioGroup;
|
||||
import android.widget.Switch;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.widget.TextViewCompat;
|
||||
|
||||
import org.chromium.base.Log;
|
||||
@@ -63,6 +67,7 @@ import org.chromium.base.task.AsyncTask;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.BraveRewardsHelper;
|
||||
import org.chromium.chrome.browser.BraveRewardsNativeWorker;
|
||||
import org.chromium.chrome.browser.app.BraveActivity;
|
||||
import org.chromium.chrome.browser.brave_stats.BraveStatsUtil;
|
||||
import org.chromium.chrome.browser.night_mode.GlobalNightModeStateProviderHolder;
|
||||
import org.chromium.chrome.browser.onboarding.OnboardingPrefManager;
|
||||
@@ -421,8 +426,9 @@ public class BraveShieldsHandler implements BraveRewardsHelper.LargeIconReadyCal
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mMainLayout.setVisibility(View.GONE);
|
||||
View shareStatsLayout = BraveStatsUtil.getLayout(R.layout.brave_stats_share_layout);
|
||||
BraveStatsUtil.updateBraveShareStatsLayoutAndShare(shareStatsLayout);
|
||||
if (BraveStatsUtil.hasWritePermission(BraveActivity.getBraveActivity())) {
|
||||
BraveStatsUtil.shareStats(R.layout.brave_stats_share_layout);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -458,6 +464,11 @@ public class BraveShieldsHandler implements BraveRewardsHelper.LargeIconReadyCal
|
||||
setupMainSwitchClick(mShieldMainSwitch);
|
||||
}
|
||||
|
||||
private void shareStats() {
|
||||
View shareStatsLayout = BraveStatsUtil.getLayout(R.layout.brave_stats_share_layout);
|
||||
BraveStatsUtil.updateBraveShareStatsLayoutAndShare(shareStatsLayout);
|
||||
}
|
||||
|
||||
private void setToggleView(boolean shouldShow) {
|
||||
if (shouldShow) {
|
||||
mSecondaryLayout.setVisibility(View.VISIBLE);
|
||||
|
||||
@@ -69,6 +69,8 @@ public class BraveShieldsUtils {
|
||||
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 boolean isTooltipShown;
|
||||
|
||||
public interface BraveShieldsCallback {
|
||||
|
||||
@@ -466,62 +466,71 @@ public abstract class BraveToolbarLayout extends ToolbarLayout
|
||||
return;
|
||||
}
|
||||
int totalBlocked = Integer.parseInt(BraveStatsUtil.getAdsTrackersBlocked().first);
|
||||
// show after 20 blockers in the current session
|
||||
if (trackersPlusAdsBlocked > 20) {
|
||||
if (!BraveShieldsUtils.hasShieldsTooltipShown(
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER1)
|
||||
&& (totalBlocked >= BraveShieldsUtils.BRAVE_BLOCKED_TIER1
|
||||
&& totalBlocked < BraveShieldsUtils.BRAVE_BLOCKED_TIER2)) {
|
||||
showTooltip(ShieldsTooltipEnum.BRAVE_SHARE_STATS_TIER1_TOOLTIP,
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER1);
|
||||
} else if (!BraveShieldsUtils.hasShieldsTooltipShown(
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER2)
|
||||
&& (totalBlocked >= BraveShieldsUtils.BRAVE_BLOCKED_TIER2
|
||||
&& totalBlocked < BraveShieldsUtils.BRAVE_BLOCKED_TIER3)) {
|
||||
showTooltip(ShieldsTooltipEnum.BRAVE_SHARE_STATS_TIER2_TOOLTIP,
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER2);
|
||||
} else if (!BraveShieldsUtils.hasShieldsTooltipShown(
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER3)
|
||||
&& (totalBlocked >= BraveShieldsUtils.BRAVE_BLOCKED_TIER3
|
||||
&& totalBlocked < BraveShieldsUtils.BRAVE_BLOCKED_TIER4)) {
|
||||
showTooltip(ShieldsTooltipEnum.BRAVE_SHARE_STATS_TIER3_TOOLTIP,
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER3);
|
||||
} else if (!BraveShieldsUtils.hasShieldsTooltipShown(
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER4)
|
||||
&& (totalBlocked >= BraveShieldsUtils.BRAVE_BLOCKED_TIER4
|
||||
&& totalBlocked < BraveShieldsUtils.BRAVE_BLOCKED_TIER5)) {
|
||||
showTooltip(ShieldsTooltipEnum.BRAVE_SHARE_STATS_TIER4_TOOLTIP,
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER4);
|
||||
} else if (!BraveShieldsUtils.hasShieldsTooltipShown(
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER5)
|
||||
&& (totalBlocked >= BraveShieldsUtils.BRAVE_BLOCKED_TIER5
|
||||
&& totalBlocked < BraveShieldsUtils.BRAVE_BLOCKED_TIER6)) {
|
||||
showTooltip(ShieldsTooltipEnum.BRAVE_SHARE_STATS_TIER5_TOOLTIP,
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER5);
|
||||
} else if (!BraveShieldsUtils.hasShieldsTooltipShown(
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER6)
|
||||
&& (totalBlocked >= BraveShieldsUtils.BRAVE_BLOCKED_TIER6
|
||||
&& totalBlocked < BraveShieldsUtils.BRAVE_BLOCKED_TIER7)) {
|
||||
showTooltip(ShieldsTooltipEnum.BRAVE_SHARE_STATS_TIER6_TOOLTIP,
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER6);
|
||||
} else if (!BraveShieldsUtils.hasShieldsTooltipShown(
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER7)
|
||||
&& (totalBlocked >= BraveShieldsUtils.BRAVE_BLOCKED_TIER7
|
||||
&& totalBlocked < BraveShieldsUtils.BRAVE_BLOCKED_TIER8)) {
|
||||
showTooltip(ShieldsTooltipEnum.BRAVE_SHARE_STATS_TIER7_TOOLTIP,
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER7);
|
||||
} else if (!BraveShieldsUtils.hasShieldsTooltipShown(
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER8)
|
||||
&& (totalBlocked >= BraveShieldsUtils.BRAVE_BLOCKED_TIER8
|
||||
&& totalBlocked < BraveShieldsUtils.BRAVE_BLOCKED_TIER9)) {
|
||||
showTooltip(ShieldsTooltipEnum.BRAVE_SHARE_STATS_TIER8_TOOLTIP,
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER8);
|
||||
} else if (!BraveShieldsUtils.hasShieldsTooltipShown(
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER9)
|
||||
&& (totalBlocked >= BraveShieldsUtils.BRAVE_BLOCKED_TIER9)) {
|
||||
showTooltip(ShieldsTooltipEnum.BRAVE_SHARE_STATS_TIER9_TOOLTIP,
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER9);
|
||||
}
|
||||
|
||||
// show after BraveShieldsUtils.BRAVE_BLOCKED_SHOW_DIFF (20) blocked stuff above the TIER
|
||||
// threshold
|
||||
if (!BraveShieldsUtils.hasShieldsTooltipShown(
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER1)
|
||||
&& (totalBlocked >= BraveShieldsUtils.BRAVE_BLOCKED_TIER1
|
||||
+ BraveShieldsUtils.BRAVE_BLOCKED_SHOW_DIFF
|
||||
&& totalBlocked < BraveShieldsUtils.BRAVE_BLOCKED_TIER2)) {
|
||||
showTooltip(ShieldsTooltipEnum.BRAVE_SHARE_STATS_TIER1_TOOLTIP,
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER1);
|
||||
} else if (!BraveShieldsUtils.hasShieldsTooltipShown(
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER2)
|
||||
&& (totalBlocked >= BraveShieldsUtils.BRAVE_BLOCKED_TIER2
|
||||
+ BraveShieldsUtils.BRAVE_BLOCKED_SHOW_DIFF
|
||||
&& totalBlocked < BraveShieldsUtils.BRAVE_BLOCKED_TIER3)) {
|
||||
showTooltip(ShieldsTooltipEnum.BRAVE_SHARE_STATS_TIER2_TOOLTIP,
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER2);
|
||||
} else if (!BraveShieldsUtils.hasShieldsTooltipShown(
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER3)
|
||||
&& (totalBlocked >= BraveShieldsUtils.BRAVE_BLOCKED_TIER3
|
||||
+ BraveShieldsUtils.BRAVE_BLOCKED_SHOW_DIFF
|
||||
&& totalBlocked < BraveShieldsUtils.BRAVE_BLOCKED_TIER4)) {
|
||||
showTooltip(ShieldsTooltipEnum.BRAVE_SHARE_STATS_TIER3_TOOLTIP,
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER3);
|
||||
} else if (!BraveShieldsUtils.hasShieldsTooltipShown(
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER4)
|
||||
&& (totalBlocked >= BraveShieldsUtils.BRAVE_BLOCKED_TIER4
|
||||
+ BraveShieldsUtils.BRAVE_BLOCKED_SHOW_DIFF
|
||||
&& totalBlocked < BraveShieldsUtils.BRAVE_BLOCKED_TIER5)) {
|
||||
showTooltip(ShieldsTooltipEnum.BRAVE_SHARE_STATS_TIER4_TOOLTIP,
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER4);
|
||||
} else if (!BraveShieldsUtils.hasShieldsTooltipShown(
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER5)
|
||||
&& (totalBlocked >= BraveShieldsUtils.BRAVE_BLOCKED_TIER5
|
||||
+ BraveShieldsUtils.BRAVE_BLOCKED_SHOW_DIFF
|
||||
&& totalBlocked < BraveShieldsUtils.BRAVE_BLOCKED_TIER6)) {
|
||||
showTooltip(ShieldsTooltipEnum.BRAVE_SHARE_STATS_TIER5_TOOLTIP,
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER5);
|
||||
} else if (!BraveShieldsUtils.hasShieldsTooltipShown(
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER6)
|
||||
&& (totalBlocked >= BraveShieldsUtils.BRAVE_BLOCKED_TIER6
|
||||
+ BraveShieldsUtils.BRAVE_BLOCKED_SHOW_DIFF
|
||||
&& totalBlocked < BraveShieldsUtils.BRAVE_BLOCKED_TIER7)) {
|
||||
showTooltip(ShieldsTooltipEnum.BRAVE_SHARE_STATS_TIER6_TOOLTIP,
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER6);
|
||||
} else if (!BraveShieldsUtils.hasShieldsTooltipShown(
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER7)
|
||||
&& (totalBlocked >= BraveShieldsUtils.BRAVE_BLOCKED_TIER7
|
||||
+ BraveShieldsUtils.BRAVE_BLOCKED_SHOW_DIFF
|
||||
&& totalBlocked < BraveShieldsUtils.BRAVE_BLOCKED_TIER8)) {
|
||||
showTooltip(ShieldsTooltipEnum.BRAVE_SHARE_STATS_TIER7_TOOLTIP,
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER7);
|
||||
} else if (!BraveShieldsUtils.hasShieldsTooltipShown(
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER8)
|
||||
&& (totalBlocked >= BraveShieldsUtils.BRAVE_BLOCKED_TIER8
|
||||
+ BraveShieldsUtils.BRAVE_BLOCKED_SHOW_DIFF
|
||||
&& totalBlocked < BraveShieldsUtils.BRAVE_BLOCKED_TIER9)) {
|
||||
showTooltip(ShieldsTooltipEnum.BRAVE_SHARE_STATS_TIER8_TOOLTIP,
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER8);
|
||||
} else if (!BraveShieldsUtils.hasShieldsTooltipShown(
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER9)
|
||||
&& (totalBlocked >= BraveShieldsUtils.BRAVE_BLOCKED_TIER9
|
||||
+ BraveShieldsUtils.BRAVE_BLOCKED_SHOW_DIFF)) {
|
||||
showTooltip(ShieldsTooltipEnum.BRAVE_SHARE_STATS_TIER9_TOOLTIP,
|
||||
BraveShieldsUtils.PREF_SHARE_SHIELDS_TOOLTIP_TIER9);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -603,9 +612,9 @@ public abstract class BraveToolbarLayout extends ToolbarLayout
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
dismissShieldsTooltip();
|
||||
View shareStatsLayout =
|
||||
BraveStatsUtil.getLayout(R.layout.brave_stats_share_layout);
|
||||
BraveStatsUtil.updateBraveShareStatsLayoutAndShare(shareStatsLayout);
|
||||
if (BraveStatsUtil.hasWritePermission(BraveActivity.getBraveActivity())) {
|
||||
BraveStatsUtil.shareStats(R.layout.brave_stats_share_layout);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user