summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/ProviderListBaseActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/ProviderListBaseActivity.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/ProviderListBaseActivity.java199
1 files changed, 16 insertions, 183 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/ProviderListBaseActivity.java b/app/src/main/java/se/leap/bitmaskclient/ProviderListBaseActivity.java
index c786a6fa..a29d4b61 100644
--- a/app/src/main/java/se/leap/bitmaskclient/ProviderListBaseActivity.java
+++ b/app/src/main/java/se/leap/bitmaskclient/ProviderListBaseActivity.java
@@ -49,7 +49,6 @@ import static se.leap.bitmaskclient.Constants.BROADCAST_PROVIDER_API_EVENT;
import static se.leap.bitmaskclient.Constants.PROVIDER_KEY;
import static se.leap.bitmaskclient.Constants.REQUEST_CODE_ADD_PROVIDER;
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;
@@ -70,32 +69,24 @@ import static se.leap.bitmaskclient.ProviderSetupInterface.ProviderConfigState.S
* @author cyberta
*/
-public abstract class ProviderListBaseActivity extends ConfigWizardBaseActivity
- implements ProviderSetupInterface, ProviderSetupFailedDialog.DownloadFailedDialogInterface, ProviderAPIResultReceiver.Receiver {
+public abstract class ProviderListBaseActivity extends ProviderSetupBaseActivity {
@InjectView(R.id.provider_list)
protected ListView providerListView;
@Inject
protected ProviderListAdapter adapter;
- private ProviderManager providerManager;
-
final public static String TAG = ProviderListActivity.class.getSimpleName();
-
- final private static String ACTIVITY_STATE = "ACTIVITY STATE";
-
- protected ProviderConfigState providerConfigState = PROVIDER_NOT_SET;
- final private static String REASON_TO_FAIL = "REASON TO FAIL";
final protected static String EXTRAS_KEY_INVALID_URL = "INVALID_URL";
- public ProviderAPIResultReceiver providerAPIResultReceiver;
- private ProviderApiSetupBroadcastReceiver providerAPIBroadcastReceiver;
- private FragmentManagerEnhanced fragmentManager;
-
- private boolean isActivityShowing;
- private String reasonToFail;
- private boolean testNewURL;
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setUpInitialUI();
+ initProviderList();
+ restoreState(savedInstanceState);
+ }
public abstract void retrySetUpProvider(@NonNull Provider provider);
@@ -105,60 +96,10 @@ public abstract class ProviderListBaseActivity extends ConfigWizardBaseActivity
List<Renderer<Provider>> prototypes = new ArrayList<>();
prototypes.add(new ProviderRenderer(this));
ProviderRendererBuilder providerRendererBuilder = new ProviderRendererBuilder(prototypes);
- adapter = new ProviderListAdapter(getLayoutInflater(), providerRendererBuilder, providerManager);
+ adapter = new ProviderListAdapter(getLayoutInflater(), providerRendererBuilder, getProviderManager());
providerListView.setAdapter(adapter);
}
- @Override
- public void onSaveInstanceState(@NotNull Bundle outState) {
- outState.putString(ACTIVITY_STATE, providerConfigState.toString());
- outState.putString(REASON_TO_FAIL, reasonToFail);
-
- super.onSaveInstanceState(outState);
- }
-
- protected void restoreState(Bundle savedInstanceState) {
- super.restoreState(savedInstanceState);
- if (savedInstanceState == null) {
- return;
- }
- this.providerConfigState = ProviderConfigState.valueOf(savedInstanceState.getString(ACTIVITY_STATE, PROVIDER_NOT_SET.toString()));
- if (savedInstanceState.containsKey(REASON_TO_FAIL)) {
- reasonToFail = savedInstanceState.getString(REASON_TO_FAIL);
- }
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- fragmentManager = new FragmentManagerEnhanced(getSupportFragmentManager());
- providerManager = ProviderManager.getInstance(getAssets(), getExternalFilesDir(null));
-
- setUpInitialUI();
- initProviderList();
- restoreState(savedInstanceState);
- }
-
- @Override
- protected void onResume() {
- Log.d(TAG, "resuming with ConfigState: " + providerConfigState.toString());
- super.onResume();
- setUpProviderAPIResultReceiver();
- isActivityShowing = true;
- if (SETTING_UP_PROVIDER == providerConfigState) {
- showProgressBar();
- checkProviderSetUp();
- } else if (PENDING_SHOW_FAILED_DIALOG == providerConfigState) {
- showProgressBar();
- showDownloadFailedDialog();
- } else if (SHOW_FAILED_DIALOG == providerConfigState) {
- showProgressBar();
- } else if (SHOWING_PROVIDER_DETAILS == providerConfigState) {
- cancelSettingUpProvider();
- }
- }
-
private void setUpInitialUI() {
setContentView(R.layout.a_provider_list);
setProviderHeaderText(R.string.setup_provider);
@@ -166,20 +107,6 @@ public abstract class ProviderListBaseActivity extends ConfigWizardBaseActivity
}
@Override
- protected void onPause() {
- super.onPause();
- isActivityShowing = false;
- if (providerAPIBroadcastReceiver != null)
- LocalBroadcastManager.getInstance(this).unregisterReceiver(providerAPIBroadcastReceiver);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- providerAPIResultReceiver = null;
- }
-
- @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_CONFIGURE_LEAP) {
if (resultCode == RESULT_OK) {
@@ -212,16 +139,7 @@ public abstract class ProviderListBaseActivity extends ConfigWizardBaseActivity
showProgressBar();
}
-
- private void setUpProviderAPIResultReceiver() {
- providerAPIResultReceiver = new ProviderAPIResultReceiver(new Handler(), this);
- providerAPIBroadcastReceiver = new ProviderApiSetupBroadcastReceiver(this);
-
- IntentFilter updateIntentFilter = new IntentFilter(BROADCAST_PROVIDER_API_EVENT);
- updateIntentFilter.addCategory(Intent.CATEGORY_DEFAULT);
- LocalBroadcastManager.getInstance(this).registerReceiver(providerAPIBroadcastReceiver, updateIntentFilter);
- }
-
+ // ------- ProviderSetupInterface ---v
@Override
public void handleProviderSetUp(Provider handledProvider) {
this.provider = handledProvider;
@@ -236,39 +154,20 @@ public abstract class ProviderListBaseActivity extends ConfigWizardBaseActivity
}
@Override
- public void handleProviderSetupFailed(Bundle resultData) {
- reasonToFail = resultData.getString(ERRORS);
- showDownloadFailedDialog();
- }
-
- @Override
public void handleCorrectlyDownloadedCertificate(Provider handledProvider) {
this.provider = handledProvider;
showProviderDetails();
}
+ // -----------------------------------------
- @Override
- public void handleIncorrectlyDownloadedCertificate() {
- cancelSettingUpProvider();
- setResult(RESULT_CANCELED, new Intent(getConfigState().toString()));
- }
-
- public Provider getProvider() {
- return provider;
- }
-
- public ProviderConfigState getConfigState() {
- return providerConfigState;
- }
-
+ //TODO: only keep empty method for testing purposes
@Override
public void onReceiveResult(int resultCode, Bundle resultData) {
- if (resultCode == ProviderAPI.PROVIDER_OK) {
- Provider provider = resultData.getParcelable(PROVIDER_KEY);
- handleProviderSetUp(provider);
- } else if (resultCode == AboutFragment.VIEWED) {
+ super.onReceiveResult(resultCode, resultData);
+ if (resultCode == AboutFragment.VIEWED) {
// Do nothing, right now
// I need this for CW to wait for the About activity to end before going back to Dashboard.
+ //FIXME: WEEEIRD!
}
}
@@ -301,31 +200,6 @@ public abstract class ProviderListBaseActivity extends ConfigWizardBaseActivity
}
}
- @Override
- public void cancelSettingUpProvider() {
- providerConfigState = PROVIDER_NOT_SET;
- provider = null;
- hideProgressBar();
- }
-
- @Override
- public void updateProviderDetails() {
- providerConfigState = SETTING_UP_PROVIDER;
- ProviderAPICommand.execute(this, UPDATE_PROVIDER_DETAILS, provider);
- }
-
- public void checkProviderSetUp() {
- ProviderAPICommand.execute(this, PROVIDER_SET_UP, provider, providerAPIResultReceiver);
- }
-
- /**
- * Asks ProviderApiService to download an anonymous (anon) VPN certificate.
- */
- private void downloadVpnCertificate() {
- ProviderAPICommand.execute(this, DOWNLOAD_VPN_CERTIFICATE, provider);
- }
-
-
/**
* Open the new provider dialog
*/
@@ -344,46 +218,5 @@ public abstract class ProviderListBaseActivity extends ConfigWizardBaseActivity
intent.putExtra(EXTRAS_KEY_INVALID_URL, url);
startActivityForResult(intent, REQUEST_CODE_ADD_PROVIDER);
}
-
- /**
- * Shows an error dialog, if configuring of a provider failed.
- */
- public void showDownloadFailedDialog() {
- try {
- providerConfigState = SHOW_FAILED_DIALOG;
- FragmentTransaction fragmentTransaction = fragmentManager.removePreviousFragment(ProviderSetupFailedDialog.TAG);
- DialogFragment newFragment;
- try {
- JSONObject errorJson = new JSONObject(reasonToFail);
- newFragment = ProviderSetupFailedDialog.newInstance(provider, errorJson, testNewURL);
- } catch (JSONException e) {
- e.printStackTrace();
- newFragment = ProviderSetupFailedDialog.newInstance(provider, reasonToFail);
- } catch (NullPointerException e) {
- //reasonToFail was null
- return;
- }
- newFragment.show(fragmentTransaction, ProviderSetupFailedDialog.TAG);
- } catch (IllegalStateException e) {
- e.printStackTrace();
- providerConfigState = PENDING_SHOW_FAILED_DIALOG;
- }
- }
-
- /**
- * Once selected a provider, this fragment offers the user to log in,
- * use it anonymously (if possible)
- * or cancel his/her election pressing the back button.
- */
- public void showProviderDetails() {
- // show only if current activity is shown
- if (isActivityShowing &&
- providerConfigState != SHOWING_PROVIDER_DETAILS) {
- providerConfigState = SHOWING_PROVIDER_DETAILS;
- Intent intent = new Intent(this, ProviderDetailActivity.class);
- intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
- intent.putExtra(PROVIDER_KEY, provider);
- startActivityForResult(intent, REQUEST_CODE_CONFIGURE_LEAP);
- }
- }
+
}