From a2af7f5c226db54442220779cef575d82d215485 Mon Sep 17 00:00:00 2001 From: cyBerta Date: Sat, 25 Jul 2020 11:19:23 +0200 Subject: get rid of ProviderAPIResultReceiver, rely completely on BroadcastReceivers --- .../bitmaskclient/ProviderSetupBaseActivity.java | 23 ++++++---------------- 1 file changed, 6 insertions(+), 17 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/ProviderSetupBaseActivity.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/ProviderSetupBaseActivity.java b/app/src/main/java/se/leap/bitmaskclient/ProviderSetupBaseActivity.java index 396b8b26..89944364 100644 --- a/app/src/main/java/se/leap/bitmaskclient/ProviderSetupBaseActivity.java +++ b/app/src/main/java/se/leap/bitmaskclient/ProviderSetupBaseActivity.java @@ -19,12 +19,12 @@ package se.leap.bitmaskclient; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; -import android.os.Handler; +import android.util.Log; + import androidx.annotation.Nullable; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.FragmentTransaction; import androidx.localbroadcastmanager.content.LocalBroadcastManager; -import android.util.Log; import org.jetbrains.annotations.NotNull; import org.json.JSONException; @@ -35,7 +35,6 @@ import static se.leap.bitmaskclient.Constants.PROVIDER_KEY; import static se.leap.bitmaskclient.Constants.REQUEST_CODE_CONFIGURE_LEAP; import static se.leap.bitmaskclient.ProviderAPI.DOWNLOAD_VPN_CERTIFICATE; import static se.leap.bitmaskclient.ProviderAPI.ERRORS; -import static se.leap.bitmaskclient.ProviderAPI.PROVIDER_SET_UP; import static se.leap.bitmaskclient.ProviderAPI.UPDATE_PROVIDER_DETAILS; import static se.leap.bitmaskclient.ProviderSetupInterface.ProviderConfigState.PENDING_SHOW_FAILED_DIALOG; import static se.leap.bitmaskclient.ProviderSetupInterface.ProviderConfigState.PROVIDER_NOT_SET; @@ -47,7 +46,7 @@ import static se.leap.bitmaskclient.ProviderSetupInterface.ProviderConfigState.S * Created by cyberta on 19.08.18. */ -public abstract class ProviderSetupBaseActivity extends ConfigWizardBaseActivity implements ProviderAPIResultReceiver.Receiver, ProviderSetupInterface, ProviderSetupFailedDialog.DownloadFailedDialogInterface { +public abstract class ProviderSetupBaseActivity extends ConfigWizardBaseActivity implements ProviderSetupInterface, ProviderSetupFailedDialog.DownloadFailedDialogInterface { final public static String TAG = "PoviderSetupActivity"; final private static String ACTIVITY_STATE = "ACTIVITY STATE"; final private static String REASON_TO_FAIL = "REASON TO FAIL"; @@ -60,7 +59,6 @@ public abstract class ProviderSetupBaseActivity extends ConfigWizardBaseActivity protected boolean testNewURL; private ProviderApiSetupBroadcastReceiver providerAPIBroadcastReceiver; - private ProviderAPIResultReceiver providerAPIResultReceiver; @Override public void onCreate(@Nullable Bundle savedInstanceState) { @@ -97,7 +95,6 @@ public abstract class ProviderSetupBaseActivity extends ConfigWizardBaseActivity @Override protected void onDestroy() { super.onDestroy(); - providerAPIResultReceiver = null; } @@ -163,15 +160,6 @@ public abstract class ProviderSetupBaseActivity extends ConfigWizardBaseActivity ProviderAPICommand.execute(this, UPDATE_PROVIDER_DETAILS, provider); } - // -------- ProviderAPIResultReceiver.Receiver ---v - @Override - public void onReceiveResult(int resultCode, Bundle resultData) { - if (resultCode == ProviderAPI.PROVIDER_OK) { - Provider provider = resultData.getParcelable(PROVIDER_KEY); - handleProviderSetUp(provider); - } - } - protected void restoreState(Bundle savedInstanceState) { super.restoreState(savedInstanceState); if (savedInstanceState == null) { @@ -184,7 +172,6 @@ public abstract class ProviderSetupBaseActivity extends ConfigWizardBaseActivity } private void setUpProviderAPIResultReceiver() { - providerAPIResultReceiver = new ProviderAPIResultReceiver(new Handler(), this); providerAPIBroadcastReceiver = new ProviderApiSetupBroadcastReceiver(this); IntentFilter updateIntentFilter = new IntentFilter(BROADCAST_PROVIDER_API_EVENT); @@ -203,7 +190,9 @@ public abstract class ProviderSetupBaseActivity extends ConfigWizardBaseActivity * */ public void checkProviderSetUp() { - ProviderAPICommand.execute(this, PROVIDER_SET_UP, provider, providerAPIResultReceiver); + if (provider.isConfigured()) { + handleProviderSetUp(provider); + } } /** -- cgit v1.2.3 From 324775ffad121f708e8f1d707c317db34f209c78 Mon Sep 17 00:00:00 2001 From: cyBerta Date: Sat, 25 Jul 2020 11:21:02 +0200 Subject: register and unregister providerAPIBroadcastReceiver in onCreate/onDestroy in order to fix #8990 --- .../se/leap/bitmaskclient/ProviderSetupBaseActivity.java | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/ProviderSetupBaseActivity.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/ProviderSetupBaseActivity.java b/app/src/main/java/se/leap/bitmaskclient/ProviderSetupBaseActivity.java index 89944364..9c28800a 100644 --- a/app/src/main/java/se/leap/bitmaskclient/ProviderSetupBaseActivity.java +++ b/app/src/main/java/se/leap/bitmaskclient/ProviderSetupBaseActivity.java @@ -65,13 +65,13 @@ public abstract class ProviderSetupBaseActivity extends ConfigWizardBaseActivity super.onCreate(savedInstanceState); fragmentManager = new FragmentManagerEnhanced(getSupportFragmentManager()); providerManager = ProviderManager.getInstance(getAssets(), getExternalFilesDir(null)); + setUpProviderAPIResultReceiver(); } @Override protected void onResume() { super.onResume(); Log.d(TAG, "resuming with ConfigState: " + providerConfigState.toString()); - setUpProviderAPIResultReceiver(); if (SETTING_UP_PROVIDER == providerConfigState) { showProgressBar(); checkProviderSetUp(); @@ -85,16 +85,13 @@ public abstract class ProviderSetupBaseActivity extends ConfigWizardBaseActivity } } - @Override - protected void onPause() { - super.onPause(); - if (providerAPIBroadcastReceiver != null) - LocalBroadcastManager.getInstance(this).unregisterReceiver(providerAPIBroadcastReceiver); - } - @Override protected void onDestroy() { super.onDestroy(); + if (providerAPIBroadcastReceiver != null) { + LocalBroadcastManager.getInstance(this).unregisterReceiver(providerAPIBroadcastReceiver); + } + providerAPIBroadcastReceiver = null; } -- cgit v1.2.3 From 82c0590775493e983239be49e8dc27eb94b835e2 Mon Sep 17 00:00:00 2001 From: cyBerta Date: Sat, 25 Jul 2020 13:22:21 +0200 Subject: fix provider setup after refactorings --- .../se/leap/bitmaskclient/ProviderSetupBaseActivity.java | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/ProviderSetupBaseActivity.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/ProviderSetupBaseActivity.java b/app/src/main/java/se/leap/bitmaskclient/ProviderSetupBaseActivity.java index 9c28800a..3bcc6feb 100644 --- a/app/src/main/java/se/leap/bitmaskclient/ProviderSetupBaseActivity.java +++ b/app/src/main/java/se/leap/bitmaskclient/ProviderSetupBaseActivity.java @@ -37,6 +37,7 @@ import static se.leap.bitmaskclient.ProviderAPI.DOWNLOAD_VPN_CERTIFICATE; import static se.leap.bitmaskclient.ProviderAPI.ERRORS; import static se.leap.bitmaskclient.ProviderAPI.UPDATE_PROVIDER_DETAILS; import static se.leap.bitmaskclient.ProviderSetupInterface.ProviderConfigState.PENDING_SHOW_FAILED_DIALOG; +import static se.leap.bitmaskclient.ProviderSetupInterface.ProviderConfigState.PENDING_SHOW_PROVIDER_DETAILS; import static se.leap.bitmaskclient.ProviderSetupInterface.ProviderConfigState.PROVIDER_NOT_SET; import static se.leap.bitmaskclient.ProviderSetupInterface.ProviderConfigState.SETTING_UP_PROVIDER; import static se.leap.bitmaskclient.ProviderSetupInterface.ProviderConfigState.SHOWING_PROVIDER_DETAILS; @@ -74,7 +75,6 @@ public abstract class ProviderSetupBaseActivity extends ConfigWizardBaseActivity Log.d(TAG, "resuming with ConfigState: " + providerConfigState.toString()); if (SETTING_UP_PROVIDER == providerConfigState) { showProgressBar(); - checkProviderSetUp(); } else if (PENDING_SHOW_FAILED_DIALOG == providerConfigState) { showProgressBar(); showDownloadFailedDialog(); @@ -82,6 +82,8 @@ public abstract class ProviderSetupBaseActivity extends ConfigWizardBaseActivity showProgressBar(); } else if (SHOWING_PROVIDER_DETAILS == providerConfigState) { cancelSettingUpProvider(); + } else if (PENDING_SHOW_PROVIDER_DETAILS == providerConfigState) { + showProviderDetails(); } } @@ -183,15 +185,6 @@ public abstract class ProviderSetupBaseActivity extends ConfigWizardBaseActivity ProviderAPICommand.execute(this, DOWNLOAD_VPN_CERTIFICATE, provider); } - /* - * - */ - public void checkProviderSetUp() { - if (provider.isConfigured()) { - handleProviderSetUp(provider); - } - } - /** * Once selected a provider, this fragment offers the user to log in, * use it anonymously (if possible) @@ -206,6 +199,8 @@ public abstract class ProviderSetupBaseActivity extends ConfigWizardBaseActivity intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); intent.putExtra(PROVIDER_KEY, provider); startActivityForResult(intent, REQUEST_CODE_CONFIGURE_LEAP); + } else { + providerConfigState = PENDING_SHOW_PROVIDER_DETAILS; } } -- cgit v1.2.3