Add cross promo dialog

Update code for dialog
This commit is contained in:
Deep
2020-07-22 13:18:19 -04:00
parent ffaad27c2e
commit 78dd1deabc
5 changed files with 127 additions and 4 deletions
+2 -1
View File
@@ -141,7 +141,8 @@ brave_java_sources = [
"../../brave/android/java/org/chromium/chrome/browser/rate/RateFeedbackUtils.java",
"../../brave/android/java/org/chromium/chrome/browser/shields/BraveShieldsMenuObserver.java",
"../../brave/android/java/org/chromium/chrome/browser/shields/BraveShieldsHandler.java",
"../../brave/android/java/org/chromium/chrome/browser/shields/BraveShieldsUtils.java"
"../../brave/android/java/org/chromium/chrome/browser/shields/BraveShieldsUtils.java",
"../../brave/android/java/org/chromium/chrome/browser/CrossPromotionalModalDialogFragment.java"
]
if (brave_rewards_enabled || enable_brave_referrals) {
@@ -66,6 +66,7 @@ import org.chromium.ui.widget.Toast;
import org.chromium.chrome.browser.util.PackageUtils;
import org.chromium.chrome.browser.onboarding.OnboardingPrefManager;
import org.chromium.chrome.browser.onboarding.OnboardingActivity;
import org.chromium.chrome.browser.CrossPromotionalModalDialogFragment;
import java.util.Calendar;
import java.util.Date;
@@ -219,6 +220,8 @@ public abstract class BraveActivity<C extends ChromeActivityComponent> extends C
if (RateUtils.getInstance(this).shouldShowRateDialog())
showBraveRateDialog();
showCrossPromotionalDialog();
if (PackageUtils.isFirstInstall(this)
&& SharedPreferencesManager.getInstance().readInt(BravePreferenceKeys.BRAVE_APP_OPEN_COUNT) == 1) {
Calendar calender = Calendar.getInstance();
@@ -396,6 +399,12 @@ public abstract class BraveActivity<C extends ChromeActivityComponent> extends C
mRateDialogFragment.show(getSupportFragmentManager(), "RateDialogFragment");
}
private void showCrossPromotionalDialog() {
CrossPromotionalModalDialogFragment mCrossPromotionalModalDialogFragment = new CrossPromotionalModalDialogFragment();
mCrossPromotionalModalDialogFragment.setCancelable(false);
mCrossPromotionalModalDialogFragment.show(getSupportFragmentManager(), "CrossPromotionalModalDialogFragment");
}
private native void nativeRestartStatsUpdater();
static public ChromeTabbedActivity getChromeTabbedActivity() {
@@ -0,0 +1,109 @@
/**
* Copyright (c) 2020 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.content.DialogInterface;
import android.content.res.Configuration;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
import android.widget.LinearLayout;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import androidx.fragment.app.DialogFragment;
import org.chromium.chrome.R;
import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.chrome.browser.util.ConfigurationUtils;
import org.chromium.chrome.browser.BraveRewardsHelper;
public class CrossPromotionalModalDialogFragment extends DialogFragment implements View.OnClickListener {
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setDialogParams();
}
@Override
public void onResume() {
super.onResume();
getDialog().setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(android.content.DialogInterface dialog,
int keyCode, android.view.KeyEvent event) {
if ((keyCode == android.view.KeyEvent.KEYCODE_BACK)) {
dismiss();
return true;
} else return false;
}
});
setDialogParams();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_cross_promotional_modal_dialog, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
Button mDoneButton = view.findViewById(R.id.btn_done);
mDoneButton.setOnClickListener(this);
String mPromoText = getResources().getString(R.string.download_brave);
int indexOfSpan = mPromoText.indexOf(getResources().getString(R.string.brave_url));
TextView mCrossPromoText = view.findViewById(R.id.cross_modal_text);
Spanned textToSpan = BraveRewardsHelper.spannedFromHtmlString(mPromoText);
SpannableString ss = new SpannableString(textToSpan.toString());
ForegroundColorSpan foregroundSpan =
new ForegroundColorSpan(getResources().getColor(R.color.shield_back_button_tint));
ss.setSpan(foregroundSpan, indexOfSpan,
(indexOfSpan + getResources().getString(R.string.brave_url).length()), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mCrossPromoText.setText(ss);
}
@Override
public void onClick(View view) {
dismiss();
}
private void setDialogParams() {
DisplayMetrics displayMetrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int mDeviceHeight = displayMetrics.heightPixels;
int mDeviceWidth = displayMetrics.widthPixels;
WindowManager.LayoutParams params = getDialog().getWindow().getAttributes();
boolean isTablet = DeviceFormFactor.isNonMultiDisplayContextOnTablet(getActivity());
boolean isLandscape = ConfigurationUtils.isLandscape(getActivity());
if (isTablet) {
params.width = (int) (0.5 * mDeviceWidth);
} else {
if (isLandscape) {
params.width = (int) (0.5 * mDeviceWidth);
} else {
params.width = (int) (0.9 * mDeviceWidth);
}
}
params.height = LinearLayout.LayoutParams.WRAP_CONTENT;
getDialog().getWindow().setAttributes(params);
}
}
@@ -8,7 +8,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="32dp"
android:padding="32dp"
android:orientation="vertical">
<TextView
@@ -18,7 +18,7 @@
android:text="@string/brave_works_everywhere"
android:textSize="20sp"
android:layout_marginBottom="24dp"
android:textColor="@color/default_icon_color_tint_list"
android:textColor="@color/shield_text_color"
android:textStyle="bold" />
<ImageView
@@ -34,8 +34,9 @@
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textSize="16sp"
android:text="@string/download_brave"
android:layout_marginBottom="32dp"
android:textColor="@color/default_icon_color_tint_list"/>
android:textColor="@color/shield_text_color"/>
<Button
android:id="@+id/btn_done"
@@ -1172,6 +1172,9 @@ until they verify, or until 90 days have passed.
<message name="IDS_DOWNLOAD_BRAVE" desc="Cross promotional modal text">
Download Brave at brave.com on your laptop ot tablet for a faster and more private web
</message>
<message name="IDS_BRAVE_URL" desc="Brave url">
brave.com
</message>
</messages>
</release>
</grit>