Skip to content

Commit

Permalink
Add set default browser modal
Browse files Browse the repository at this point in the history
Update behaviour for p3a modal
  • Loading branch information
deeppandya committed Jan 29, 2021
1 parent bd73798 commit 78dae07
Show file tree
Hide file tree
Showing 12 changed files with 828 additions and 4 deletions.
3 changes: 3 additions & 0 deletions android/brave_java_resources.gni
Original file line number Diff line number Diff line change
Expand Up @@ -674,6 +674,8 @@ brave_java_resources = [
"java/res/drawable/ic_onboarding_graphic_tipping.xml",
"java/res/drawable/ic_phone.xml",
"java/res/drawable/ic_polygon_1.xml",
"java/res/drawable/ic_setbraveasdefault.xml",
"java/res/drawable/ic_setbraveasdefault_dark.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 @@ -728,6 +730,7 @@ brave_java_resources = [
"java/res/layout/activity_ntp_widget_stack.xml",
"java/res/layout/activity_onboarding.xml",
"java/res/layout/activity_p3a_onboarding.xml",
"java/res/layout/activity_set_default_browser.xml",
"java/res/layout/binance_deposit_item.xml",
"java/res/layout/binance_deposit_layout.xml",
"java/res/layout/binance_spinner_dropdown_item.xml",
Expand Down
1 change: 1 addition & 0 deletions android/brave_java_sources.gni
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ brave_java_sources = [
"../../brave/android/java/org/chromium/chrome/browser/CrossPromotionalModalDialogFragment.java",
"../../brave/android/java/org/chromium/chrome/browser/InternetConnection.java",
"../../brave/android/java/org/chromium/chrome/browser/QRCodeShareDialogFragment.java",
"../../brave/android/java/org/chromium/chrome/browser/SetDefaultBrowserActivity.java",
"../../brave/android/java/org/chromium/chrome/browser/app/BraveActivity.java",
"../../brave/android/java/org/chromium/chrome/browser/appmenu/BraveTabbedAppMenuPropertiesDelegate.java",
"../../brave/android/java/org/chromium/chrome/browser/bookmarks/BraveBookmarkUtils.java",
Expand Down
5 changes: 5 additions & 0 deletions android/java/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,11 @@
android:theme="@style/Theme.Chromium.Activity.Fullscreen"
android:screenOrientation="sensorPortrait"/>

<activity
android:name="org.chromium.chrome.browser.SetDefaultBrowserActivity"
android:theme="@style/Theme.Chromium.Activity.Fullscreen"
android:screenOrientation="sensorPortrait"/>

<activity
android:name="org.chromium.chrome.browser.ntp.widget.NTPWidgetStackActivity"
android:theme="@style/Theme.Chromium.Activity"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
/**
* Copyright (c) 2021 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;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.LinearLayout;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import org.chromium.chrome.R;
import org.chromium.chrome.browser.night_mode.GlobalNightModeStateProviderHolder;
import org.chromium.chrome.browser.app.BraveActivity;

import static org.chromium.ui.base.ViewUtils.dpToPx;

public class SetDefaultBrowserActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_set_default_browser);

boolean isNightMode = GlobalNightModeStateProviderHolder.getInstance().isInNightMode();

ImageView setDefaultBrowserImg = findViewById(R.id.set_default_browser_img);
setDefaultBrowserImg.setImageResource(isNightMode
? R.drawable.ic_setbraveasdefault_dark
: R.drawable.ic_setbraveasdefault);
if (isNightMode) {
LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) setDefaultBrowserImg.getLayoutParams();
lp.setMargins(0, dpToPx(this, 16), 0, dpToPx(this, 16));
setDefaultBrowserImg.setLayoutParams(lp);
}

Button btnSetDefaultBrowser = findViewById(R.id.btn_set_default_browser);
btnSetDefaultBrowser.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (BraveActivity.getBraveActivity() != null) {
BraveActivity.getBraveActivity().handleBraveSetDefaultBrowserDialog();
}
finish();
}
});

Button btnNotNow = findViewById(R.id.btn_not_now);
btnNotNow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}

@Override
public void onBackPressed() {}
}
36 changes: 35 additions & 1 deletion android/java/org/chromium/chrome/browser/app/BraveActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
import org.chromium.chrome.browser.ChromeTabbedActivity;
import org.chromium.chrome.browser.CrossPromotionalModalDialogFragment;
import org.chromium.chrome.browser.LaunchIntentDispatcher;
import org.chromium.chrome.browser.SetDefaultBrowserActivity;
import org.chromium.chrome.browser.bookmarks.BookmarkBridge;
import org.chromium.chrome.browser.bookmarks.BookmarkModel;
import org.chromium.chrome.browser.brave_stats.BraveStatsUtil;
Expand Down Expand Up @@ -120,6 +121,7 @@ public abstract class BraveActivity<C extends ChromeActivityComponent> extends C
public static final String OPEN_URL = "open_url";

private static final int DAYS_4 = 4;
private static final int DAYS_5 = 5;
private static final int DAYS_12 = 12;

/**
Expand Down Expand Up @@ -354,6 +356,38 @@ public void finishNativeInitialization() {
openRewardsPanel();
BraveRewardsHelper.setRewardsOnboardingModalShown(true);
}

if (SharedPreferencesManager.getInstance().readInt(BravePreferenceKeys.BRAVE_APP_OPEN_COUNT)
== 1) {
Calendar calender = Calendar.getInstance();
calender.setTime(new Date());
calender.add(Calendar.DATE, DAYS_5);
OnboardingPrefManager.getInstance().setNextSetDefaultBrowserModalDate(
calender.getTimeInMillis());
}
checkSetDefaultBrowserModal();
}

private void checkSetDefaultBrowserModal() {
boolean shouldShowDefaultBrowserModal =
(OnboardingPrefManager.getInstance().getNextSetDefaultBrowserModalDate() > 0
&& System.currentTimeMillis()
> OnboardingPrefManager.getInstance()
.getNextSetDefaultBrowserModalDate());
boolean shouldShowDefaultBrowserModalAfterP3A =
OnboardingPrefManager.getInstance().shouldShowDefaultBrowserModalAfterP3A();
if (!BraveSetDefaultBrowserNotificationService.isBraveSetAsDefaultBrowser(this)
&& (shouldShowDefaultBrowserModalAfterP3A || shouldShowDefaultBrowserModal)) {
Intent setDefaultBrowserIntent = new Intent(this, SetDefaultBrowserActivity.class);
setDefaultBrowserIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(setDefaultBrowserIntent);
if (shouldShowDefaultBrowserModal) {
OnboardingPrefManager.getInstance().setNextSetDefaultBrowserModalDate(0);
}
if (shouldShowDefaultBrowserModalAfterP3A) {
OnboardingPrefManager.getInstance().setShowDefaultBrowserModalAfterP3A(false);
}
}
}

private void checkForYandexSE() {
Expand Down Expand Up @@ -477,7 +511,7 @@ private boolean isNoRestoreState() {
return ContextUtils.getAppSharedPreferences().getBoolean(PREF_CLOSE_TABS_ON_EXIT, false);
}

private void handleBraveSetDefaultBrowserDialog() {
public void handleBraveSetDefaultBrowserDialog() {
/* (Albert Wang): Default app settings didn't get added until API 24
* https://developer.android.com/reference/android/provider/Settings#ACTION_MANAGE_DEFAULT_APPS_SETTINGS
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,13 @@ public class OnboardingPrefManager {
private static final String PREF_ONBOARDING_V2 = "onboarding_v2";
private static final String PREF_NEXT_ONBOARDING_DATE = "next_onboarding_date";
private static final String PREF_NEXT_CROSS_PROMO_MODAL_DATE = "next_cross_promo_modal_date";
private static final String PREF_NEXT_SET_DEFAULT_BROWSER_MODAL_DATE =
"next_set_default_browser_modal_date";
private static final String PREF_ONBOARDING_FOR_SKIP = "onboarding_for_skip";
private static final String PREF_ONBOARDING_SKIP_COUNT = "onboarding_skip_count";
private static final String PREF_SEARCH_ENGINE_ONBOARDING = "search_engine_onboarding";
private static final String PREF_SHOW_DEFAULT_BROWSER_MODAL_AFTER_P3A =
"show_default_browser_modal_after_p3a";
public static final String PREF_BRAVE_STATS = "brave_stats";
public static final String PREF_BRAVE_STATS_NOTIFICATION = "brave_stats_notification";
public static final String ONBOARDING_TYPE = "onboarding_type";
Expand Down Expand Up @@ -231,6 +235,26 @@ public void setNextCrossPromoModalDate(long nextDate) {
sharedPreferencesEditor.apply();
}

public long getNextSetDefaultBrowserModalDate() {
return mSharedPreferences.getLong(PREF_NEXT_SET_DEFAULT_BROWSER_MODAL_DATE, 0);
}

public void setNextSetDefaultBrowserModalDate(long nextDate) {
SharedPreferences.Editor sharedPreferencesEditor = mSharedPreferences.edit();
sharedPreferencesEditor.putLong(PREF_NEXT_SET_DEFAULT_BROWSER_MODAL_DATE, nextDate);
sharedPreferencesEditor.apply();
}

public boolean shouldShowDefaultBrowserModalAfterP3A() {
return mSharedPreferences.getBoolean(PREF_SHOW_DEFAULT_BROWSER_MODAL_AFTER_P3A, false);
}

public void setShowDefaultBrowserModalAfterP3A(boolean shouldShow) {
SharedPreferences.Editor sharedPreferencesEditor = mSharedPreferences.edit();
sharedPreferencesEditor.putBoolean(PREF_SHOW_DEFAULT_BROWSER_MODAL_AFTER_P3A, shouldShow);
sharedPreferencesEditor.apply();
};

public void setCrossPromoModalShown(boolean isShown) {
SharedPreferences.Editor sharedPreferencesEditor = mSharedPreferences.edit();
sharedPreferencesEditor.putBoolean(PREF_CROSS_PROMO_MODAL, isShown);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ public class P3aOnboardingActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_p3a_onboarding);
OnboardingPrefManager.getInstance().setP3aOnboardingShown(true);

boolean isFirstInstall = PackageUtils.isFirstInstall(this);

Expand Down Expand Up @@ -72,6 +71,8 @@ public void onClick(View view) {
&& BraveActivity.getBraveActivity() != null) {
BraveActivity.getBraveActivity().showOnboardingV2(false);
}
OnboardingPrefManager.getInstance().setP3aOnboardingShown(true);
OnboardingPrefManager.getInstance().setShowDefaultBrowserModalAfterP3A(true);
finish();
}
});
Expand Down
Loading

0 comments on commit 78dae07

Please sign in to comment.