Add monthly contribution

This commit is contained in:
Deep
2021-12-13 20:15:59 -05:00
parent 2200d0a0d3
commit 2f0bc1e73d
7 changed files with 75 additions and 4 deletions
@@ -465,6 +465,13 @@ public class BraveRewardsNativeWorker {
}
}
public void getAutoContributionAmount() {
synchronized (lock) {
BraveRewardsNativeWorkerJni.get().getAutoContributionAmount(
mNativeBraveRewardsNativeWorker);
}
}
public void StartProcess() {
synchronized (lock) {
BraveRewardsNativeWorkerJni.get().startProcess(mNativeBraveRewardsNativeWorker);
@@ -564,6 +571,13 @@ public class BraveRewardsNativeWorker {
}
}
@CalledByNative
public void OnGetAutoContributionAmount(double amount) {
for (BraveRewardsObserver observer : mObservers) {
observer.onGetAutoContributionAmount(amount);
}
}
@CalledByNative
public void OnGetReconcileStamp(long timestamp) {
for (BraveRewardsObserver observer : mObservers) {
@@ -689,6 +703,7 @@ public class BraveRewardsNativeWorker {
void setAutoContributeEnabled(
long nativeBraveRewardsNativeWorker, boolean isSetAutoContributeEnabled);
void setAutoContributionAmount(long nativeBraveRewardsNativeWorker, double amount);
void getAutoContributionAmount(long nativeBraveRewardsNativeWorker);
void startProcess(long nativeBraveRewardsNativeWorker);
void getAdsAccountStatement(long nativeBraveRewardsNativeWorker);
}
@@ -16,6 +16,7 @@ public interface BraveRewardsObserver {
default public void OnNotificationDeleted(String id) {};
default public void OnGetPendingContributionsTotal(double amount) {};
default public void OnGetAutoContributeProperties() {};
default public void onGetAutoContributionAmount(double amount){};
default public void OnGetReconcileStamp(long timestamp) {};
default public void OnRecurringDonationUpdated() {};
default public void OnResetTheWholeState(boolean success) {};
@@ -46,10 +46,12 @@ public class BraveRewardsSiteBannerActivity extends Activity implements
private final int FADE_OUT_DURATION = 500;
private final float LANDSCAPE_HEADER_WEIGHT = 2.0f;
public static final String TAB_ID_EXTRA = "currentTabId";
public static final String IS_MONTHLY_CONTRIBUTION = "is_monthly_contribution";
public static final String TIP_AMOUNT_EXTRA="tipAmount";
public static final String TIP_MONTHLY_EXTRA="tipMonthly";
private int currentTabId_ = -1;
private boolean mIsMonthlyContribution;
private BraveRewardsNativeWorker mBraveRewardsNativeWorker;
private final int PUBLISHER_ICON_SIDE_LEN= 70; //dp
private final int TOUCH_PADDING_MONTHLY= 32; //dp
@@ -121,6 +123,8 @@ public class BraveRewardsSiteBannerActivity extends Activity implements
}
currentTabId_ = IntentUtils.safeGetIntExtra(getIntent(), TAB_ID_EXTRA, -1);
mIsMonthlyContribution =
IntentUtils.safeGetBooleanExtra(getIntent(), IS_MONTHLY_CONTRIBUTION, false);
mBraveRewardsNativeWorker = BraveRewardsNativeWorker.getInstance();
mBraveRewardsNativeWorker.AddObserver(this);
@@ -160,6 +164,11 @@ public class BraveRewardsSiteBannerActivity extends Activity implements
//set tip button onClick
CheckBox monthly = (CheckBox) findViewById(R.id.make_monthly_checkbox);
if (mIsMonthlyContribution) {
monthly.setChecked(true);
TextView send_btn = (TextView) findViewById(R.id.send_donation_text);
send_btn.setText(getResources().getString(R.string.brave_ui_do_monthly));
}
View.OnClickListener send_tip_clicker = new View.OnClickListener() {
@Override
public void onClick(View view) {
@@ -186,6 +195,11 @@ public class BraveRewardsSiteBannerActivity extends Activity implements
}
boolean enough_funds = ((balance - amount) >= 0);
if (mIsMonthlyContribution) {
mBraveRewardsNativeWorker.SetAutoContributionAmount(amount);
finish();
}
//proceed to tipping
if (true == enough_funds) {
if (mTippingInProgress){
@@ -224,8 +224,7 @@ public class BraveRewardsPanel
Intent intent = new Intent(
ContextUtils.getApplicationContext(), BraveRewardsSiteBannerActivity.class);
intent.putExtra(BraveRewardsSiteBannerActivity.TAB_ID_EXTRA, mCurrentTabId);
mActivity.startActivity(intent);
// mActivity.startActivityForResult(intent, BraveActivity.SITE_BANNER_REQUEST_CODE);
mActivity.startActivityForResult(intent, BraveActivity.SITE_BANNER_REQUEST_CODE);
// BraveRewardsPanelPopup is not an Activity and onActivityResult is not available
// to dismiss mTippingInProgress. Post a delayed task to flip a mTippingInProgress flag.
@@ -660,6 +659,25 @@ public class BraveRewardsPanel
mPopupView.findViewById(R.id.auto_contribution_layout).setVisibility(View.VISIBLE);
}
mBraveRewardsNativeWorker.GetRecurringDonations();
mBraveRewardsNativeWorker.getAutoContributionAmount();
}
@Override
public void onGetAutoContributionAmount(double amount) {
Log.e(TAG, "Auto contribution amount : " + amount);
TextView monthlyContributionText =
mPopupView.findViewById(R.id.monthly_contribution_set_text);
monthlyContributionText.setText(String.format(
mPopupView.getResources().getString(R.string.brave_rewards_bat_value_text),
(int) amount));
monthlyContributionText.setOnClickListener(view -> {
Intent intent = new Intent(
ContextUtils.getApplicationContext(), BraveRewardsSiteBannerActivity.class);
intent.putExtra(BraveRewardsSiteBannerActivity.TAB_ID_EXTRA, mCurrentTabId);
intent.putExtra(BraveRewardsSiteBannerActivity.IS_MONTHLY_CONTRIBUTION, true);
dismiss();
mActivity.startActivityForResult(intent, BraveActivity.SITE_BANNER_REQUEST_CODE);
});
}
@Override
@@ -636,6 +636,22 @@ void BraveRewardsNativeWorker::SetAutoContributionAmount(JNIEnv* env,
}
}
void BraveRewardsNativeWorker::GetAutoContributionAmount(JNIEnv* env) {
if (brave_rewards_service_) {
brave_rewards_service_->GetAutoContributionAmount(
base::BindOnce(&BraveRewardsNativeWorker::OnGetAutoContributionAmount,
weak_factory_.GetWeakPtr()));
}
}
void BraveRewardsNativeWorker::OnGetAutoContributionAmount(
double auto_contribution_amount) {
JNIEnv* env = base::android::AttachCurrentThread();
Java_BraveRewardsNativeWorker_OnGetAutoContributionAmount(
env, weak_java_brave_rewards_native_worker_.get(env),
auto_contribution_amount);
}
bool BraveRewardsNativeWorker::IsRewardsEnabled(JNIEnv* env) {
if (brave_rewards_service_) {
return brave_rewards_service_->IsRewardsEnabled();
@@ -125,6 +125,8 @@ class BraveRewardsNativeWorker : public brave_rewards::RewardsServiceObserver,
void SetAutoContributionAmount(JNIEnv* env, jdouble value);
void GetAutoContributionAmount(JNIEnv* env);
void GetExternalWallet(JNIEnv* env);
void DisconnectWallet(JNIEnv* env);
@@ -147,6 +149,8 @@ class BraveRewardsNativeWorker : public brave_rewards::RewardsServiceObserver,
void OnGetAutoContributeProperties(
ledger::type::AutoContributePropertiesPtr properties);
void OnGetAutoContributionAmount(double auto_contribution_amount);
void OnGetPendingContributionsTotal(double amount);
void OnPanelPublisherInfo(
@@ -558,10 +558,10 @@ This file contains all "about" strings. It is set to NOT be translated, in tran
Settings
</message>
<message name="IDS_BRAVE_UI_VERIFIED_PUBLISHER" desc="A message that a particular publisher is verified">
Brave Verified Publisher
Verified Creator
</message>
<message name="IDS_BRAVE_UI_NOT_VERIFIED_PUBLISHER" desc="A message that a particular publisher is not verified">
Not yet verified
Unverified Creator
</message>
<message name="IDS_BRAVE_UI_NOT_VERIFIED_PUBLISHER_DESCRIPTION" desc="A message that appear when a particular publisher is not verified">
This Brave Verified Creator has not yet configured their account to receive contributions from Brave Users.
@@ -2778,6 +2778,9 @@ If you don't accept this request, VPN will not reconnect and your internet conne
<message name="IDS_BRAVE_ADS_STATEMENT_USD" desc="USD value of tokens">
≈ <ph name="VALUE">%1$s<ex>0.0</ex></ph> USD
</message>
<message name="IDS_BRAVE_REWARDS_BAT_VALUE_TEXT" desc="BAT value text">
<ph name="VALUE">%1$s<ex>0</ex></ph> BAT
</message>
</messages>
</release>
</grit>