Add staging environment toggle
This commit is contained in:
parent
2dae00800e
commit
c94e1f939a
4 changed files with 32 additions and 4 deletions
|
@ -13,7 +13,7 @@ android {
|
|||
applicationId "org.joinmastodon.android"
|
||||
minSdk 23
|
||||
targetSdk 33
|
||||
versionCode 97
|
||||
versionCode 98
|
||||
versionName "2.5.0"
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ import org.joinmastodon.android.model.donations.DonationCampaign;
|
|||
|
||||
public class GetDonationCampaigns extends MastodonAPIRequest<DonationCampaign>{
|
||||
private final String locale, seed;
|
||||
private boolean staging;
|
||||
|
||||
public GetDonationCampaigns(String locale, String seed){
|
||||
super(HttpMethod.GET, null, DonationCampaign.class);
|
||||
|
@ -15,6 +16,10 @@ public class GetDonationCampaigns extends MastodonAPIRequest<DonationCampaign>{
|
|||
setCacheable();
|
||||
}
|
||||
|
||||
public void setStaging(boolean staging){
|
||||
this.staging=staging;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Uri getURL(){
|
||||
Uri.Builder builder=new Uri.Builder()
|
||||
|
@ -24,6 +29,8 @@ public class GetDonationCampaigns extends MastodonAPIRequest<DonationCampaign>{
|
|||
.appendQueryParameter("platform", "android")
|
||||
.appendQueryParameter("locale", locale)
|
||||
.appendQueryParameter("seed", seed);
|
||||
if(staging)
|
||||
builder.appendQueryParameter("environment", "staging");
|
||||
return builder.build();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import android.animation.AnimatorListenerAdapter;
|
|||
import android.animation.AnimatorSet;
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableStringBuilder;
|
||||
|
@ -32,6 +33,7 @@ import android.widget.Toolbar;
|
|||
|
||||
import com.squareup.otto.Subscribe;
|
||||
|
||||
import org.joinmastodon.android.BuildConfig;
|
||||
import org.joinmastodon.android.E;
|
||||
import org.joinmastodon.android.R;
|
||||
import org.joinmastodon.android.api.MastodonAPIRequest;
|
||||
|
@ -110,8 +112,11 @@ public class HomeTimelineFragment extends StatusListFragment implements ToolbarD
|
|||
|
||||
// TODO how often do we do this request? Maybe cache something somewhere?
|
||||
if(AccountSessionManager.get(accountID).isEligibleForDonations()){
|
||||
new GetDonationCampaigns(Locale.getDefault().toLanguageTag().replace('-', '_'), String.valueOf(AccountSessionManager.get(accountID).getDonationSeed()))
|
||||
.setCallback(new Callback<>(){
|
||||
GetDonationCampaigns req=new GetDonationCampaigns(Locale.getDefault().toLanguageTag().replace('-', '_'), String.valueOf(AccountSessionManager.get(accountID).getDonationSeed()));
|
||||
if(BuildConfig.DEBUG && getActivity().getSharedPreferences("debug", Context.MODE_PRIVATE).getBoolean("donationsStaging", false)){
|
||||
req.setStaging(true);
|
||||
}
|
||||
req.setCallback(new Callback<>(){
|
||||
@Override
|
||||
public void onSuccess(DonationCampaign result){
|
||||
if(result==null)
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package org.joinmastodon.android.fragments.settings;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.widget.Toast;
|
||||
|
||||
|
@ -9,6 +11,7 @@ import org.joinmastodon.android.api.session.AccountSession;
|
|||
import org.joinmastodon.android.api.session.AccountSessionManager;
|
||||
import org.joinmastodon.android.fragments.HomeFragment;
|
||||
import org.joinmastodon.android.fragments.onboarding.AccountActivationFragment;
|
||||
import org.joinmastodon.android.model.viewmodel.CheckableListItem;
|
||||
import org.joinmastodon.android.model.viewmodel.ListItem;
|
||||
import org.joinmastodon.android.ui.utils.DiscoverInfoBannerHelper;
|
||||
import org.joinmastodon.android.updater.GithubSelfUpdater;
|
||||
|
@ -18,6 +21,8 @@ import java.util.List;
|
|||
import me.grishka.appkit.Nav;
|
||||
|
||||
public class SettingsDebugFragment extends BaseSettingsFragment<Void>{
|
||||
private CheckableListItem<Void> donationsStagingItem;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState){
|
||||
super.onCreate(savedInstanceState);
|
||||
|
@ -29,7 +34,8 @@ public class SettingsDebugFragment extends BaseSettingsFragment<Void>{
|
|||
resetUpdateItem=new ListItem<>("Reset self-updater", null, this::onResetUpdaterClick),
|
||||
new ListItem<>("Reset search info banners", null, this::onResetDiscoverBannersClick),
|
||||
new ListItem<>("Reset pre-reply sheets", null, this::onResetPreReplySheetsClick),
|
||||
new ListItem<>("Clear dismissed donation campaigns", null, this::onClearDismissedCampaignsClick)
|
||||
new ListItem<>("Clear dismissed donation campaigns", null, this::onClearDismissedCampaignsClick),
|
||||
donationsStagingItem=new CheckableListItem<>("Use staging environment for donations", null, CheckableListItem.Style.SWITCH, getPrefs().getBoolean("donationsStaging", false), this::toggleCheckableItem)
|
||||
));
|
||||
if(!GithubSelfUpdater.needSelfUpdating()){
|
||||
resetUpdateItem.isEnabled=selfUpdateItem.isEnabled=false;
|
||||
|
@ -40,6 +46,12 @@ public class SettingsDebugFragment extends BaseSettingsFragment<Void>{
|
|||
@Override
|
||||
protected void doLoadData(int offset, int count){}
|
||||
|
||||
@Override
|
||||
public void onStop(){
|
||||
super.onStop();
|
||||
getPrefs().edit().putBoolean("donationsStaging", donationsStagingItem.checked).apply();
|
||||
}
|
||||
|
||||
private void onTestEmailConfirmClick(ListItem<?> item){
|
||||
AccountSession sess=AccountSessionManager.getInstance().getAccount(accountID);
|
||||
sess.activated=false;
|
||||
|
@ -81,4 +93,8 @@ public class SettingsDebugFragment extends BaseSettingsFragment<Void>{
|
|||
args.putString("account", accountID);
|
||||
Nav.goClearingStack(getActivity(), HomeFragment.class, args);
|
||||
}
|
||||
|
||||
private SharedPreferences getPrefs(){
|
||||
return getActivity().getSharedPreferences("debug", Context.MODE_PRIVATE);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue