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