Skip to content

Commit

Permalink
Merge pull request #8938 from brave/bsc-temp-revert-8505-sharing
Browse files Browse the repository at this point in the history
Revert "Merge pull request #8508 from brave/stats-social-sharing"
  • Loading branch information
kjozwiak authored May 27, 2021
2 parents b271437 + 6fbfb98 commit 1dde435
Show file tree
Hide file tree
Showing 21 changed files with 41 additions and 607 deletions.
8 changes: 0 additions & 8 deletions android/brave_java_resources.gni
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,6 @@ brave_java_resources = [
"java/res/drawable-hdpi/search_engine_startpage.png",
"java/res/drawable-hdpi/settings_desktop_mode.png",
"java/res/drawable-hdpi/settings_play_yt_video_in_browser.png",
"java/res/drawable-hdpi/share_activity_background.png",
"java/res/drawable-hdpi/share_icon.png",
"java/res/drawable-hdpi/shortcut_incognito.png",
"java/res/drawable-hdpi/slide_down.png",
Expand Down Expand Up @@ -183,7 +182,6 @@ brave_java_resources = [
"java/res/drawable-mdpi/search_engine_startpage.png",
"java/res/drawable-mdpi/settings_desktop_mode.png",
"java/res/drawable-mdpi/settings_play_yt_video_in_browser.png",
"java/res/drawable-mdpi/share_activity_background.png",
"java/res/drawable-mdpi/share_icon.png",
"java/res/drawable-mdpi/shortcut_incognito.png",
"java/res/drawable-mdpi/slide_down.png",
Expand Down Expand Up @@ -327,7 +325,6 @@ brave_java_resources = [
"java/res/drawable-xhdpi/search_engine_startpage.png",
"java/res/drawable-xhdpi/settings_desktop_mode.png",
"java/res/drawable-xhdpi/settings_play_yt_video_in_browser.png",
"java/res/drawable-xhdpi/share_activity_background.png",
"java/res/drawable-xhdpi/share_icon.png",
"java/res/drawable-xhdpi/shortcut_incognito.png",
"java/res/drawable-xhdpi/slide_down.png",
Expand Down Expand Up @@ -421,7 +418,6 @@ brave_java_resources = [
"java/res/drawable-xxhdpi/search_engine_startpage.png",
"java/res/drawable-xxhdpi/settings_desktop_mode.png",
"java/res/drawable-xxhdpi/settings_play_yt_video_in_browser.png",
"java/res/drawable-xxhdpi/share_activity_background.png",
"java/res/drawable-xxhdpi/share_icon.png",
"java/res/drawable-xxhdpi/shortcut_incognito.png",
"java/res/drawable-xxhdpi/slide_down.png",
Expand Down Expand Up @@ -509,7 +505,6 @@ brave_java_resources = [
"java/res/drawable-xxxhdpi/search_engine_startpage.png",
"java/res/drawable-xxxhdpi/settings_desktop_mode.png",
"java/res/drawable-xxxhdpi/settings_play_yt_video_in_browser.png",
"java/res/drawable-xxxhdpi/share_activity_background.png",
"java/res/drawable-xxxhdpi/share_icon.png",
"java/res/drawable-xxxhdpi/shortcut_incognito.png",
"java/res/drawable-xxxhdpi/slide_down.png",
Expand Down Expand Up @@ -602,8 +597,6 @@ brave_java_resources = [
"java/res/drawable/ic_phone.xml",
"java/res/drawable/ic_setbraveasdefault.xml",
"java/res/drawable/ic_setbraveasdefault_dark.xml",
"java/res/drawable/ic_share.xml",
"java/res/drawable/ic_share_white.xml",
"java/res/drawable/ic_shield_done_filled.xml",
"java/res/drawable/ic_shield_done_filled_20dp.xml",
"java/res/drawable/ic_sort.xml",
Expand Down Expand Up @@ -702,7 +695,6 @@ brave_java_resources = [
"java/res/layout/brave_stats_bottom_sheet.xml",
"java/res/layout/brave_stats_layout.xml",
"java/res/layout/brave_stats_pager_layout.xml",
"java/res/layout/brave_stats_share_layout.xml",
"java/res/layout/brave_sync_add_laptop.xml",
"java/res/layout/brave_sync_add_mobile.xml",
"java/res/layout/brave_sync_device.xml",
Expand Down
12 changes: 0 additions & 12 deletions android/java/org/chromium/chrome/browser/app/BraveActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;

Expand Down Expand Up @@ -821,17 +820,6 @@ public void onActivityResult (int requestCode, int resultCode,
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.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,49 +5,24 @@

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;
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;
import org.chromium.base.ThreadUtils;
import org.chromium.base.task.AsyncTask;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.app.BraveActivity;
import org.chromium.chrome.browser.brave_stats.BraveStatsBottomSheetDialogFragment;
import org.chromium.chrome.browser.local_database.DatabaseHelper;
import org.chromium.chrome.browser.preferences.BravePref;
import org.chromium.chrome.browser.preferences.BravePrefServiceBridge;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.shields.BraveShieldsUtils;

import java.io.ByteArrayOutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
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
*/
Expand Down Expand Up @@ -120,6 +95,7 @@ public static String getCalculatedDate(String dateFormat, int days) {
}

public static void updateBraveStatsLayout(View view) {
Profile mProfile = Profile.getLastUsedRegularProfile();
TextView mAdsBlockedCountTextView =
(TextView) view.findViewById(R.id.brave_stats_text_ads_count);
TextView mDataSavedValueTextView =
Expand All @@ -133,127 +109,24 @@ public static void updateBraveStatsLayout(View view) {
TextView mEstTimeSavedCountTextTextView =
(TextView) view.findViewById(R.id.brave_stats_text_time_count_text);

List<Pair<String, String>> statsPairs = getStatsPairs();

mAdsBlockedCountTextView.setText(statsPairs.get(0).first);
mDataSavedValueTextView.setText(statsPairs.get(1).first);
mEstTimeSavedCountTextView.setText(statsPairs.get(2).first);
mAdsBlockedCountTextTextView.setText(statsPairs.get(0).second);
mDataSavedValueTextTextView.setText(statsPairs.get(1).second);
mEstTimeSavedCountTextTextView.setText(statsPairs.get(2).second);
}

public static void updateBraveShareStatsLayoutAndShare(View view) {
TextView mAdsBlockedCountTextView = (TextView) view.findViewById(R.id.stats_trackers_no);
TextView mDataSavedValueTextView = (TextView) view.findViewById(R.id.stats_saved_data_no);
TextView mEstTimeSavedCountTextView = (TextView) view.findViewById(R.id.stats_timed_no);

List<Pair<String, String>> statsPairs = getStatsPairs();
String trackersString =
String.format("%s %s", statsPairs.get(0).first, statsPairs.get(0).second);
String dataSavedString =
String.format("%s %s", statsPairs.get(1).first, statsPairs.get(1).second);
String timeSavedString =
String.format("%s %s", statsPairs.get(2).first, statsPairs.get(2).second);

mAdsBlockedCountTextView.setText(trackersString);
mDataSavedValueTextView.setText(dataSavedString);
mEstTimeSavedCountTextView.setText(timeSavedString);
shareStatsAction(view);
}

public static void shareStatsAction(View view) {
Context context = ContextUtils.getApplicationContext();
Bitmap bmp = convertToBitmap(view);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
String path = MediaStore.Images.Media.insertImage(
context.getContentResolver(), bmp, "tempimage", null);
Uri uri = Uri.parse(path);

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT,
context.getResources().getString(R.string.brave_stats_share_text));
sendIntent.putExtra(Intent.EXTRA_STREAM, uri);
sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
sendIntent.setType("image/text");

Intent shareIntent = Intent.createChooser(sendIntent, " ");
shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(shareIntent);
}

public static View getLayout(int layoutId) {
Context context = ContextUtils.getApplicationContext();
LayoutInflater inflater =
(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(layoutId, null);

return layout;
}

private static Bitmap convertToBitmap(View view) {
view.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
int totalHeight = view.getMeasuredHeight();
int totalWidth = view.getMeasuredWidth();

Bitmap canvasBitmap = Bitmap.createBitmap(totalWidth, totalHeight, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(canvasBitmap);
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
view.draw(canvas);

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();
long trackersBlockedCount =
BravePrefServiceBridge.getInstance().getTrackersBlockedCount(mProfile);
long adsBlockedCount = BravePrefServiceBridge.getInstance().getAdsBlockedCount(mProfile);
long adsTrackersBlockedCount = trackersBlockedCount + adsBlockedCount;
long dataSaved = BravePrefServiceBridge.getInstance().getDataSaved(mProfile);
long estimatedMillisecondsSaved =
(trackersBlockedCount + adsBlockedCount) * MILLISECONDS_PER_ITEM;

Pair<String, String> adsTrackersPair =
getBraveStatsStringFormNumberPair(adsTrackersBlockedCount, false);
getBraveStatsStringFormNumberPair(adsBlockedCount, false);
Pair<String, String> dataSavedPair = getBraveStatsStringFormNumberPair(dataSaved, true);
Pair<String, String> timeSavedPair =
getBraveStatsStringFromTime(estimatedMillisecondsSaved / 1000);
statsPair.add(adsTrackersPair);
statsPair.add(dataSavedPair);
statsPair.add(timeSavedPair);

return statsPair;
}

public static Pair<String, String> getAdsTrackersBlocked() {
Profile mProfile = Profile.getLastUsedRegularProfile();
long trackersBlockedCount =
BravePrefServiceBridge.getInstance().getTrackersBlockedCount(mProfile);
long adsBlockedCount = BravePrefServiceBridge.getInstance().getAdsBlockedCount(mProfile);
long adsTrackersBlockedCount = trackersBlockedCount + adsBlockedCount;

return getBraveStatsStringFormNumberPair(adsTrackersBlockedCount, false);
mAdsBlockedCountTextView.setText(adsTrackersPair.first);
mDataSavedValueTextView.setText(dataSavedPair.first);
mEstTimeSavedCountTextView.setText(timeSavedPair.first);
mAdsBlockedCountTextTextView.setText(adsTrackersPair.second);
mDataSavedValueTextTextView.setText(dataSavedPair.second);
mEstTimeSavedCountTextTextView.setText(timeSavedPair.second);
}
}
}
Loading

0 comments on commit 1dde435

Please sign in to comment.