From 7cd685e486e735c3994d59c01df98ac2f82dc0b2 Mon Sep 17 00:00:00 2001 From: Fup Duck Date: Tue, 19 Dec 2017 15:09:40 +0100 Subject: refactor dashboard --- app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java index 21520dc4..52c8f8e5 100644 --- a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java +++ b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java @@ -301,7 +301,7 @@ public abstract class BaseConfigurationWizard extends Activity private void askDashboardToQuitApp() { Intent ask_quit = new Intent(); - ask_quit.putExtra(Dashboard.ACTION_QUIT, Dashboard.ACTION_QUIT); + ask_quit.putExtra(Constants.APP_ACTION_QUIT, Constants.APP_ACTION_QUIT); setResult(RESULT_CANCELED, ask_quit); } -- cgit v1.2.3 From 4f7200c55032d17c9bdbdb30cfd83dc757c63fe7 Mon Sep 17 00:00:00 2001 From: Fup Duck Date: Tue, 19 Dec 2017 17:37:57 +0100 Subject: adjust Fragments --- .../java/se/leap/bitmaskclient/BaseConfigurationWizard.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java index 52c8f8e5..75a653c0 100644 --- a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java +++ b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java @@ -17,9 +17,6 @@ package se.leap.bitmaskclient; -import android.app.Activity; -import android.app.DialogFragment; -import android.app.FragmentTransaction; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -27,6 +24,9 @@ import android.content.IntentFilter; import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; +import android.support.v4.app.DialogFragment; +import android.support.v4.app.FragmentTransaction; +import android.support.v7.app.AppCompatActivity; import android.view.Display; import android.view.Menu; import android.view.MenuItem; @@ -68,7 +68,7 @@ import static android.view.View.VISIBLE; * @author cyberta */ -public abstract class BaseConfigurationWizard extends Activity +public abstract class BaseConfigurationWizard extends AppCompatActivity implements NewProviderDialog.NewProviderDialogInterface, ProviderDetailFragment.ProviderDetailFragmentInterface, DownloadFailedDialog.DownloadFailedDialogInterface, ProviderAPIResultReceiver.Receiver { @InjectView(R.id.progressbar_configuration_wizard) protected ProgressBar mProgressBar; @@ -134,7 +134,7 @@ public abstract class BaseConfigurationWizard extends Activity protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); preferences = getSharedPreferences(Constants.SHARED_PREFERENCES, MODE_PRIVATE); - fragment_manager = new FragmentManagerEnhanced(getFragmentManager()); + fragment_manager = new FragmentManagerEnhanced(getSupportFragmentManager()); provider_manager = ProviderManager.getInstance(getAssets(), getExternalFilesDir(null)); setUpInitialUI(); -- cgit v1.2.3 From 245982bdb6fda879827ab3c89617b8dd591fb7f4 Mon Sep 17 00:00:00 2001 From: Fup Duck Date: Mon, 8 Jan 2018 16:11:23 +0100 Subject: AboutActivity to AboutFragment --- app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java index 75a653c0..9f12ed9a 100644 --- a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java +++ b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java @@ -51,6 +51,7 @@ import javax.inject.Inject; import butterknife.ButterKnife; import butterknife.InjectView; import butterknife.OnItemClick; +import se.leap.bitmaskclient.fragments.AboutFragment; import se.leap.bitmaskclient.userstatus.SessionDialog; import static android.view.View.GONE; @@ -246,7 +247,7 @@ public abstract class BaseConfigurationWizard extends AppCompatActivity mConfigState.setAction(PROVIDER_NOT_SET); hideProgressBar(); setResult(RESULT_CANCELED, mConfigState); - } else if (resultCode == AboutActivity.VIEWED) { + } else 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. } @@ -417,7 +418,7 @@ public abstract class BaseConfigurationWizard extends AppCompatActivity public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.about_leap: - startActivityForResult(new Intent(this, AboutActivity.class), 0); + startActivityForResult(new Intent(this, AboutFragment.class), 0); return true; case R.id.new_provider: addAndSelectNewProvider(); -- cgit v1.2.3 From 3addd20598f7fee2d41a24d64b375a2f63874457 Mon Sep 17 00:00:00 2001 From: Fup Duck Date: Tue, 9 Jan 2018 14:02:57 +0100 Subject: create ProviderDetail Activity --- .../bitmaskclient/BaseConfigurationWizard.java | 45 +++------------------- 1 file changed, 5 insertions(+), 40 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java index 9f12ed9a..601615b6 100644 --- a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java +++ b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java @@ -70,7 +70,7 @@ import static android.view.View.VISIBLE; */ public abstract class BaseConfigurationWizard extends AppCompatActivity - implements NewProviderDialog.NewProviderDialogInterface, ProviderDetailFragment.ProviderDetailFragmentInterface, DownloadFailedDialog.DownloadFailedDialogInterface, ProviderAPIResultReceiver.Receiver { + implements NewProviderDialog.NewProviderDialogInterface, DownloadFailedDialog.DownloadFailedDialogInterface, ProviderAPIResultReceiver.Receiver { @InjectView(R.id.progressbar_configuration_wizard) protected ProgressBar mProgressBar; @InjectView(R.id.progressbar_description) @@ -150,22 +150,13 @@ public abstract class BaseConfigurationWizard extends AppCompatActivity private void restoreState(Bundle savedInstanceState) { progressbar_text = savedInstanceState.getString(PROGRESSBAR_TEXT, ""); selected_provider = savedInstanceState.getParcelable(Provider.KEY); - - if (fragment_manager.findFragmentByTag(ProviderDetailFragment.TAG) == null && - (SETTING_UP_PROVIDER.equals(mConfigState.getAction()) || - PENDING_SHOW_PROVIDER_DETAILS.equals(mConfigState.getAction()) || - PENDING_SHOW_FAILED_DIALOG.equals(mConfigState.getAction()) - )) { - onItemSelectedUi(); - } } @Override protected void onResume() { super.onResume(); if (SETTING_UP_PROVIDER.equals(mConfigState.getAction())) { - showProgressBar(); - adapter.hideAllBut(adapter.indexOf(selected_provider)); + cancelAndShowAllProviders(); } else if (PENDING_SHOW_PROVIDER_DETAILS.equals(mConfigState.getAction())) { showProviderDetails(); } else if (PENDING_SHOW_FAILED_DIALOG.equals(mConfigState.getAction())) { @@ -396,15 +387,9 @@ public abstract class BaseConfigurationWizard extends AppCompatActivity * */ public void showProviderDetails() { - try { - FragmentTransaction fragment_transaction = fragment_manager.removePreviousFragment(ProviderDetailFragment.TAG); - - DialogFragment newFragment = ProviderDetailFragment.newInstance(); - newFragment.show(fragment_transaction, ProviderDetailFragment.TAG); - } catch (IllegalStateException e) { - e.printStackTrace(); - mConfigState.setAction(PENDING_SHOW_PROVIDER_DETAILS); - } + Intent intent = new Intent(this, ProviderDetailActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); + startActivity(intent); } @@ -428,32 +413,12 @@ public abstract class BaseConfigurationWizard extends AppCompatActivity } } - @Override public void cancelAndShowAllProviders() { mConfigState.setAction(PROVIDER_NOT_SET); selected_provider = null; adapter.showAllProviders(); } - @Override - public void login() { - mConfigState.setAction(PROVIDER_SET); - Intent ask_login = new Intent(); - ask_login.putExtra(Provider.KEY, selected_provider); - ask_login.putExtra(SessionDialog.TAG, SessionDialog.TAG); - setResult(RESULT_OK, ask_login); - finish(); - } - - @Override - public void use_anonymously() { - mConfigState.setAction(PROVIDER_SET); - Intent pass_provider = new Intent(); - pass_provider.putExtra(Provider.KEY, selected_provider); - setResult(RESULT_OK, pass_provider); - finish(); - } - public class ProviderAPIBroadcastReceiver_Update extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { -- cgit v1.2.3 From 8806e6ae477e0b20806851f5f8f3c0141a63ad9d Mon Sep 17 00:00:00 2001 From: Fup Duck Date: Tue, 9 Jan 2018 19:54:57 +0100 Subject: create LoginActivity and SignUpActivity --- app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java index 601615b6..9253cfe6 100644 --- a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java +++ b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java @@ -69,7 +69,7 @@ import static android.view.View.VISIBLE; * @author cyberta */ -public abstract class BaseConfigurationWizard extends AppCompatActivity +public abstract class BaseConfigurationWizard extends ButterKnifeActivity implements NewProviderDialog.NewProviderDialogInterface, DownloadFailedDialog.DownloadFailedDialogInterface, ProviderAPIResultReceiver.Receiver { @InjectView(R.id.progressbar_configuration_wizard) protected ProgressBar mProgressBar; @@ -166,7 +166,6 @@ public abstract class BaseConfigurationWizard extends AppCompatActivity private void setUpInitialUI() { setContentView(R.layout.configuration_wizard_activity); - ButterKnife.inject(this); hideProgressBar(); } -- cgit v1.2.3 From 5d5d6ae8aeafbba407b9a4cf5985a1cdc1cf2904 Mon Sep 17 00:00:00 2001 From: Fup Duck Date: Thu, 11 Jan 2018 19:41:28 +0100 Subject: rename variables to CamelCase --- .../bitmaskclient/BaseConfigurationWizard.java | 115 ++++++++++----------- 1 file changed, 56 insertions(+), 59 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java index 0b51af27..915e948a 100644 --- a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java +++ b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java @@ -26,7 +26,6 @@ import android.os.Bundle; import android.os.Handler; import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentTransaction; -import android.support.v7.app.AppCompatActivity; import android.view.Display; import android.view.Menu; import android.view.MenuItem; @@ -48,11 +47,9 @@ import java.util.List; import javax.inject.Inject; -import butterknife.ButterKnife; import butterknife.InjectView; import butterknife.OnItemClick; import se.leap.bitmaskclient.fragments.AboutFragment; -import se.leap.bitmaskclient.userstatus.SessionDialog; import static android.view.View.GONE; import static android.view.View.INVISIBLE; @@ -75,16 +72,16 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity @InjectView(R.id.progressbar_configuration_wizard) protected ProgressBar mProgressBar; @InjectView(R.id.progressbar_description) - protected TextView progressbar_description; + protected TextView progressbarDescription; @InjectView(R.id.provider_list) - protected ListView provider_list_view; + protected ListView providerListView; @Inject protected ProviderListAdapter adapter; - private ProviderManager provider_manager; + private ProviderManager providerManager; protected Intent mConfigState = new Intent(PROVIDER_NOT_SET); - protected Provider selected_provider; + protected Provider selectedProvider; final public static String TAG = ConfigurationWizard.class.getSimpleName(); @@ -99,13 +96,13 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity final private static String PROGRESSBAR_TEXT = TAG + "PROGRESSBAR_TEXT"; final private static String PROGRESSBAR_NUMBER = TAG + "PROGRESSBAR_NUMBER"; - public ProviderAPIResultReceiver providerAPI_result_receiver; - private ProviderAPIBroadcastReceiver_Update providerAPI_broadcast_receiver_update; + public ProviderAPIResultReceiver providerAPIResultReceiver; + private BaseConfigurationWizard.providerAPIBroadcastReceiverUpdate providerAPIBroadcastReceiverUpdate; protected static SharedPreferences preferences; - FragmentManagerEnhanced fragment_manager; - //TODO: add some states (values for progressbar_text) about ongoing setup or remove that field - private String progressbar_text = ""; + FragmentManagerEnhanced fragmentManager; + //TODO: add some states (values for progressbarText) about ongoing setup or remove that field + private String progressbarText = ""; @@ -118,17 +115,17 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity List> prototypes = new ArrayList<>(); prototypes.add(new ProviderRenderer(this)); ProviderRendererBuilder providerRendererBuilder = new ProviderRendererBuilder(prototypes); - adapter = new ProviderListAdapter(getLayoutInflater(), providerRendererBuilder, provider_manager); - provider_list_view.setAdapter(adapter); + adapter = new ProviderListAdapter(getLayoutInflater(), providerRendererBuilder, providerManager); + providerListView.setAdapter(adapter); } @Override protected void onSaveInstanceState(@NotNull Bundle outState) { if (mProgressBar != null) outState.putInt(PROGRESSBAR_NUMBER, mProgressBar.getProgress()); - if (progressbar_description != null) - outState.putString(PROGRESSBAR_TEXT, progressbar_description.getText().toString()); - outState.putParcelable(Provider.KEY, selected_provider); + if (progressbarDescription != null) + outState.putString(PROGRESSBAR_TEXT, progressbarDescription.getText().toString()); + outState.putParcelable(Provider.KEY, selectedProvider); super.onSaveInstanceState(outState); } @@ -136,8 +133,8 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); preferences = getSharedPreferences(Constants.SHARED_PREFERENCES, MODE_PRIVATE); - fragment_manager = new FragmentManagerEnhanced(getSupportFragmentManager()); - provider_manager = ProviderManager.getInstance(getAssets(), getExternalFilesDir(null)); + fragmentManager = new FragmentManagerEnhanced(getSupportFragmentManager()); + providerManager = ProviderManager.getInstance(getAssets(), getExternalFilesDir(null)); setUpInitialUI(); @@ -149,8 +146,8 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity } private void restoreState(Bundle savedInstanceState) { - progressbar_text = savedInstanceState.getString(PROGRESSBAR_TEXT, ""); - selected_provider = savedInstanceState.getParcelable(Provider.KEY); + progressbarText = savedInstanceState.getString(PROGRESSBAR_TEXT, ""); + selectedProvider = savedInstanceState.getParcelable(Provider.KEY); } @Override @@ -172,43 +169,43 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity } private void hideProgressBar() { - //needs to be "INVISIBLE" instead of GONE b/c the progressbar_description gets translated + //needs to be "INVISIBLE" instead of GONE b/c the progressbarDescription gets translated // by the height of mProgressbar (and the height of the first list item) mProgressBar.setVisibility(INVISIBLE); - progressbar_description.setVisibility(INVISIBLE); + progressbarDescription.setVisibility(INVISIBLE); mProgressBar.setProgress(0); } protected void showProgressBar() { mProgressBar.setVisibility(VISIBLE); - progressbar_description.setVisibility(VISIBLE); + progressbarDescription.setVisibility(VISIBLE); } @Override protected void onDestroy() { super.onDestroy(); - if (providerAPI_broadcast_receiver_update != null) - unregisterReceiver(providerAPI_broadcast_receiver_update); + if (providerAPIBroadcastReceiverUpdate != null) + unregisterReceiver(providerAPIBroadcastReceiverUpdate); } private void setUpProviderAPIResultReceiver() { - providerAPI_result_receiver = new ProviderAPIResultReceiver(new Handler(), this); - providerAPI_broadcast_receiver_update = new ProviderAPIBroadcastReceiver_Update(); + providerAPIResultReceiver = new ProviderAPIResultReceiver(new Handler(), this); + providerAPIBroadcastReceiverUpdate = new providerAPIBroadcastReceiverUpdate(); IntentFilter update_intent_filter = new IntentFilter(ProviderAPI.UPDATE_PROGRESSBAR); update_intent_filter.addCategory(Intent.CATEGORY_DEFAULT); - registerReceiver(providerAPI_broadcast_receiver_update, update_intent_filter); + registerReceiver(providerAPIBroadcastReceiverUpdate, update_intent_filter); } @Override public void onReceiveResult(int resultCode, Bundle resultData) { if (resultCode == ProviderAPI.PROVIDER_OK) { try { - String provider_json_string = preferences.getString(Provider.KEY, ""); - if (!provider_json_string.isEmpty()) - selected_provider.define(new JSONObject(provider_json_string)); + String providerJsonString = preferences.getString(Provider.KEY, ""); + if (!providerJsonString.isEmpty()) + selectedProvider.define(new JSONObject(providerJsonString)); String caCert = preferences.getString(Provider.CA_CERT, ""); - selected_provider.setCACert(caCert); + selectedProvider.setCACert(caCert); } catch (JSONException e) { e.printStackTrace(); } @@ -255,13 +252,13 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity //TODO Code 2 pane view mConfigState.setAction(SETTING_UP_PROVIDER); - selected_provider = adapter.getItem(position); + selectedProvider = adapter.getItem(position); onItemSelectedUi(); onItemSelectedLogic(); } protected void onItemSelectedUi() { - adapter.hideAllBut(adapter.indexOf(selected_provider)); + adapter.hideAllBut(adapter.indexOf(selectedProvider)); startProgressBar(); } @@ -281,7 +278,7 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity ProviderAPI.stop(); mProgressBar.setVisibility(GONE); mProgressBar.setProgress(0); - progressbar_description.setVisibility(GONE); + progressbarDescription.setVisibility(GONE); cancelSettingUpProvider(); } @@ -297,21 +294,21 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity @Override public void updateProviderDetails() { mConfigState.setAction(SETTING_UP_PROVIDER); - Intent provider_API_command = new Intent(this, ProviderAPI.class); + Intent providerAPICommand = new Intent(this, ProviderAPI.class); - provider_API_command.setAction(ProviderAPI.UPDATE_PROVIDER_DETAILS); - provider_API_command.putExtra(ProviderAPI.RECEIVER_KEY, providerAPI_result_receiver); + providerAPICommand.setAction(ProviderAPI.UPDATE_PROVIDER_DETAILS); + providerAPICommand.putExtra(ProviderAPI.RECEIVER_KEY, providerAPIResultReceiver); Bundle parameters = new Bundle(); - parameters.putString(Provider.MAIN_URL, selected_provider.getMainUrl().toString()); - provider_API_command.putExtra(ProviderAPI.PARAMETERS, parameters); + parameters.putString(Provider.MAIN_URL, selectedProvider.getMainUrl().toString()); + providerAPICommand.putExtra(ProviderAPI.PARAMETERS, parameters); - startService(provider_API_command); + startService(providerAPICommand); } private void askDashboardToQuitApp() { - Intent ask_quit = new Intent(); - ask_quit.putExtra(Constants.APP_ACTION_QUIT, Constants.APP_ACTION_QUIT); - setResult(RESULT_CANCELED, ask_quit); + Intent askQuit = new Intent(); + askQuit.putExtra(Constants.APP_ACTION_QUIT, Constants.APP_ACTION_QUIT); + setResult(RESULT_CANCELED, askQuit); } private void startProgressBar() { @@ -321,11 +318,11 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity int measured_height = listItemHeight(); mProgressBar.setTranslationY(measured_height); - progressbar_description.setTranslationY(measured_height + mProgressBar.getHeight()); + progressbarDescription.setTranslationY(measured_height + mProgressBar.getHeight()); } private int listItemHeight() { - View listItem = adapter.getView(0, null, provider_list_view); + View listItem = adapter.getView(0, null, providerListView); listItem.setLayoutParams(new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT)); @@ -346,33 +343,33 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity * Asks ProviderApiService to download an anonymous (anon) VPN certificate. */ private void downloadVpnCertificate() { - Intent provider_API_command = new Intent(this, ProviderAPI.class); + Intent providerAPICommand = new Intent(this, ProviderAPI.class); - provider_API_command.setAction(ProviderAPI.DOWNLOAD_CERTIFICATE); - provider_API_command.putExtra(ProviderAPI.RECEIVER_KEY, providerAPI_result_receiver); + providerAPICommand.setAction(ProviderAPI.DOWNLOAD_CERTIFICATE); + providerAPICommand.putExtra(ProviderAPI.RECEIVER_KEY, providerAPIResultReceiver); - startService(provider_API_command); + startService(providerAPICommand); } /** * Open the new provider dialog */ public void addAndSelectNewProvider() { - FragmentTransaction fragment_transaction = fragment_manager.removePreviousFragment(NewProviderDialog.TAG); - new NewProviderDialog().show(fragment_transaction, NewProviderDialog.TAG); + FragmentTransaction fragmentTransaction = fragmentManager.removePreviousFragment(NewProviderDialog.TAG); + new NewProviderDialog().show(fragmentTransaction, NewProviderDialog.TAG); } /** * Open the new provider dialog with data */ public void addAndSelectNewProvider(String main_url) { - FragmentTransaction fragment_transaction = fragment_manager.removePreviousFragment(NewProviderDialog.TAG); + FragmentTransaction fragmentTransaction = fragmentManager.removePreviousFragment(NewProviderDialog.TAG); DialogFragment newFragment = new NewProviderDialog(); Bundle data = new Bundle(); data.putString(Provider.MAIN_URL, main_url); newFragment.setArguments(data); - newFragment.show(fragment_transaction, NewProviderDialog.TAG); + newFragment.show(fragmentTransaction, NewProviderDialog.TAG); } /** @@ -382,7 +379,7 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity */ public void showDownloadFailedDialog(String reasonToFail) { try { - FragmentTransaction fragment_transaction = fragment_manager.removePreviousFragment(DownloadFailedDialog.TAG); + FragmentTransaction fragmentTransaction = fragmentManager.removePreviousFragment(DownloadFailedDialog.TAG); DialogFragment newFragment; try { JSONObject errorJson = new JSONObject(reasonToFail); @@ -391,7 +388,7 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity e.printStackTrace(); newFragment = DownloadFailedDialog.newInstance(reasonToFail); } - newFragment.show(fragment_transaction, DownloadFailedDialog.TAG); + newFragment.show(fragmentTransaction, DownloadFailedDialog.TAG); } catch (IllegalStateException e) { e.printStackTrace(); mConfigState.setAction(PENDING_SHOW_FAILED_DIALOG); @@ -435,11 +432,11 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity public void cancelAndShowAllProviders() { mConfigState.setAction(PROVIDER_NOT_SET); - selected_provider = null; + selectedProvider = null; adapter.showAllProviders(); } - public class ProviderAPIBroadcastReceiver_Update extends BroadcastReceiver { + public class providerAPIBroadcastReceiverUpdate extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { int update = intent.getIntExtra(ProviderAPI.CURRENT_PROGRESS, 0); -- cgit v1.2.3 From 1690dec51d78a27a6a1f7c83d30b28d1ab432f93 Mon Sep 17 00:00:00 2001 From: Fup Duck Date: Sat, 13 Jan 2018 16:53:54 +0100 Subject: static constant imports --- .../java/se/leap/bitmaskclient/BaseConfigurationWizard.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java index 915e948a..1c29a10a 100644 --- a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java +++ b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java @@ -54,6 +54,10 @@ import se.leap.bitmaskclient.fragments.AboutFragment; import static android.view.View.GONE; import static android.view.View.INVISIBLE; import static android.view.View.VISIBLE; +import static se.leap.bitmaskclient.Constants.APP_ACTION_QUIT; +import static se.leap.bitmaskclient.Constants.PROVIDER_ALLOW_ANONYMOUS; +import static se.leap.bitmaskclient.Constants.PROVIDER_KEY; +import static se.leap.bitmaskclient.Constants.SHARED_PREFERENCES; import static se.leap.bitmaskclient.ProviderAPI.ERRORS; /** @@ -132,7 +136,7 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - preferences = getSharedPreferences(Constants.SHARED_PREFERENCES, MODE_PRIVATE); + preferences = getSharedPreferences(SHARED_PREFERENCES, MODE_PRIVATE); fragmentManager = new FragmentManagerEnhanced(getSupportFragmentManager()); providerManager = ProviderManager.getInstance(getAssets(), getExternalFilesDir(null)); @@ -210,7 +214,7 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity e.printStackTrace(); } - if (preferences.getBoolean(Constants.PROVIDER_ALLOW_ANONYMOUS, false)) { + if (preferences.getBoolean(PROVIDER_ALLOW_ANONYMOUS, false)) { mConfigState.putExtra(SERVICES_RETRIEVED, true); downloadVpnCertificate(); @@ -288,7 +292,7 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity hideProgressBar(); mConfigState.setAction(PROVIDER_NOT_SET); adapter.showAllProviders(); - preferences.edit().remove(Provider.KEY).remove(Constants.PROVIDER_ALLOW_ANONYMOUS).remove(Constants.PROVIDER_KEY).apply(); + preferences.edit().remove(Provider.KEY).remove(PROVIDER_ALLOW_ANONYMOUS).remove(PROVIDER_KEY).apply(); } @Override @@ -307,7 +311,7 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity private void askDashboardToQuitApp() { Intent askQuit = new Intent(); - askQuit.putExtra(Constants.APP_ACTION_QUIT, Constants.APP_ACTION_QUIT); + askQuit.putExtra(APP_ACTION_QUIT, APP_ACTION_QUIT); setResult(RESULT_CANCELED, askQuit); } -- cgit v1.2.3 From cbb8250b4e8464a0d66e17a5c695d0e44fc26c6c Mon Sep 17 00:00:00 2001 From: Fup Duck Date: Sat, 13 Jan 2018 23:37:31 +0100 Subject: allow rotation of ConfigWizard --- .../bitmaskclient/BaseConfigurationWizard.java | 57 ++++++++++++++++------ 1 file changed, 41 insertions(+), 16 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java index 1c29a10a..35cc23fd 100644 --- a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java +++ b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java @@ -59,6 +59,8 @@ import static se.leap.bitmaskclient.Constants.PROVIDER_ALLOW_ANONYMOUS; import static se.leap.bitmaskclient.Constants.PROVIDER_KEY; import static se.leap.bitmaskclient.Constants.SHARED_PREFERENCES; import static se.leap.bitmaskclient.ProviderAPI.ERRORS; +import static se.leap.bitmaskclient.ProviderAPI.SET_UP_PROVIDER; +import static se.leap.bitmaskclient.ProviderAPI.UPDATE_PROGRESSBAR; /** * abstract base Activity that builds and shows the list of known available providers. @@ -91,7 +93,8 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity final protected static String PROVIDER_NOT_SET = "PROVIDER NOT SET"; final protected static String SETTING_UP_PROVIDER = "PROVIDER GETS SET"; - final private static String PENDING_SHOW_PROVIDER_DETAILS = "PROVIDER DETAILS SHOWN"; + final private static String PENDING_SHOW_PROVIDER_DETAILS = "PENDING PROVIDER DETAILS"; + final private static String SHOWING_PROVIDER_DETAILS = "SHOWING PROVIDER DETAILS SHOWN"; final private static String PENDING_SHOW_FAILED_DIALOG = "SHOW FAILED DIALOG"; final private static String REASON_TO_FAIL = "REASON TO FAIL"; final protected static String PROVIDER_SET = "PROVIDER SET"; @@ -99,16 +102,17 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity final private static String PROGRESSBAR_TEXT = TAG + "PROGRESSBAR_TEXT"; final private static String PROGRESSBAR_NUMBER = TAG + "PROGRESSBAR_NUMBER"; + final private static String ACTIVITY_STATE = "ACTIVITY STATE"; public ProviderAPIResultReceiver providerAPIResultReceiver; - private BaseConfigurationWizard.providerAPIBroadcastReceiverUpdate providerAPIBroadcastReceiverUpdate; + private ProviderAPIBroadcastReceiver providerAPIBroadcastReceiver; protected static SharedPreferences preferences; FragmentManagerEnhanced fragmentManager; //TODO: add some states (values for progressbarText) about ongoing setup or remove that field private String progressbarText = ""; - + private boolean isActivityShowing; public abstract void retrySetUpProvider(); @@ -129,6 +133,7 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity outState.putInt(PROGRESSBAR_NUMBER, mProgressBar.getProgress()); if (progressbarDescription != null) outState.putString(PROGRESSBAR_TEXT, progressbarDescription.getText().toString()); + outState.putString(ACTIVITY_STATE, mConfigState.getAction()); outState.putParcelable(Provider.KEY, selectedProvider); super.onSaveInstanceState(outState); } @@ -152,23 +157,30 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity private void restoreState(Bundle savedInstanceState) { progressbarText = savedInstanceState.getString(PROGRESSBAR_TEXT, ""); selectedProvider = savedInstanceState.getParcelable(Provider.KEY); + mConfigState.setAction(savedInstanceState.getString(ACTIVITY_STATE, PROVIDER_NOT_SET)); } @Override protected void onResume() { super.onResume(); + hideProgressBar(); + isActivityShowing = true; if (SETTING_UP_PROVIDER.equals(mConfigState.getAction())) { - cancelAndShowAllProviders(); + showProgressBar(); + adapter.hideAllBut(adapter.indexOf(selectedProvider)); + // TODO find a better replacement! This can lead to loops + onItemSelectedLogic(); } else if (PENDING_SHOW_PROVIDER_DETAILS.equals(mConfigState.getAction())) { showProviderDetails(); } else if (PENDING_SHOW_FAILED_DIALOG.equals(mConfigState.getAction())) { showDownloadFailedDialog(mConfigState.getStringExtra(REASON_TO_FAIL)); + } else if (SHOWING_PROVIDER_DETAILS.equals(mConfigState.getAction())) { + cancelAndShowAllProviders(); } } private void setUpInitialUI() { setContentView(R.layout.configuration_wizard_activity); - hideProgressBar(); } @@ -185,20 +197,27 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity progressbarDescription.setVisibility(VISIBLE); } + @Override + protected void onPause() { + super.onPause(); + isActivityShowing = false; + } + @Override protected void onDestroy() { super.onDestroy(); - if (providerAPIBroadcastReceiverUpdate != null) - unregisterReceiver(providerAPIBroadcastReceiverUpdate); + if (providerAPIBroadcastReceiver != null) + unregisterReceiver(providerAPIBroadcastReceiver); } private void setUpProviderAPIResultReceiver() { providerAPIResultReceiver = new ProviderAPIResultReceiver(new Handler(), this); - providerAPIBroadcastReceiverUpdate = new providerAPIBroadcastReceiverUpdate(); + providerAPIBroadcastReceiver = new ProviderAPIBroadcastReceiver(); - IntentFilter update_intent_filter = new IntentFilter(ProviderAPI.UPDATE_PROGRESSBAR); - update_intent_filter.addCategory(Intent.CATEGORY_DEFAULT); - registerReceiver(providerAPIBroadcastReceiverUpdate, update_intent_filter); + IntentFilter updateIntentFilter = new IntentFilter(UPDATE_PROGRESSBAR); + updateIntentFilter.addAction(SET_UP_PROVIDER); + updateIntentFilter.addCategory(Intent.CATEGORY_DEFAULT); + registerReceiver(providerAPIBroadcastReceiver, updateIntentFilter); } @Override @@ -222,7 +241,6 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity mProgressBar.incrementProgressBy(1); hideProgressBar(); - showProviderDetails(); } } else if (resultCode == ProviderAPI.PROVIDER_NOK) { mConfigState.setAction(PROVIDER_NOT_SET); @@ -409,9 +427,16 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity * */ public void showProviderDetails() { - Intent intent = new Intent(this, ProviderDetailActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); - startActivity(intent); + // show only if current activity is shown + if (isActivityShowing) { + mConfigState.setAction(SHOWING_PROVIDER_DETAILS); + Intent intent = new Intent(this, ProviderDetailActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); + startActivity(intent); + } else { + // may be called AFTER onSaveInstanceState (!) + mConfigState.setAction(PENDING_SHOW_PROVIDER_DETAILS); + } } @Override @@ -440,7 +465,7 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity adapter.showAllProviders(); } - public class providerAPIBroadcastReceiverUpdate extends BroadcastReceiver { + public class ProviderAPIBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { int update = intent.getIntExtra(ProviderAPI.CURRENT_PROGRESS, 0); -- cgit v1.2.3 From deb8f0c1192a36c9aa66ab16bfd5e26357096821 Mon Sep 17 00:00:00 2001 From: Fup Duck Date: Sun, 14 Jan 2018 00:03:09 +0100 Subject: update insecure configuration wizard as well --- .../main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java index 35cc23fd..f30c962c 100644 --- a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java +++ b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java @@ -158,6 +158,13 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity progressbarText = savedInstanceState.getString(PROGRESSBAR_TEXT, ""); selectedProvider = savedInstanceState.getParcelable(Provider.KEY); mConfigState.setAction(savedInstanceState.getString(ACTIVITY_STATE, PROVIDER_NOT_SET)); + + if (SETTING_UP_PROVIDER.equals(mConfigState.getAction()) || + PENDING_SHOW_PROVIDER_DETAILS.equals(mConfigState.getAction()) || + PENDING_SHOW_FAILED_DIALOG.equals(mConfigState.getAction()) + ) { + onItemSelectedUi(); + } } @Override -- cgit v1.2.3 From 4f536f457da8bb7ab0316f6de7703437ad0ce58f Mon Sep 17 00:00:00 2001 From: Fup Duck Date: Tue, 16 Jan 2018 17:41:47 +0100 Subject: resolve commented issues * recreate activity correctly after changing orientation * replace getApplicationActivity --- .../bitmaskclient/BaseConfigurationWizard.java | 154 +++++++++++++-------- 1 file changed, 96 insertions(+), 58 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java index f30c962c..64ea4779 100644 --- a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java +++ b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java @@ -26,6 +26,7 @@ import android.os.Bundle; import android.os.Handler; import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentTransaction; +import android.util.Log; import android.view.Display; import android.view.Menu; import android.view.MenuItem; @@ -58,8 +59,15 @@ import static se.leap.bitmaskclient.Constants.APP_ACTION_QUIT; import static se.leap.bitmaskclient.Constants.PROVIDER_ALLOW_ANONYMOUS; import static se.leap.bitmaskclient.Constants.PROVIDER_KEY; import static se.leap.bitmaskclient.Constants.SHARED_PREFERENCES; +import static se.leap.bitmaskclient.ProviderAPI.CORRECTLY_DOWNLOADED_CERTIFICATE; import static se.leap.bitmaskclient.ProviderAPI.ERRORS; -import static se.leap.bitmaskclient.ProviderAPI.SET_UP_PROVIDER; +import static se.leap.bitmaskclient.ProviderAPI.INCORRECTLY_DOWNLOADED_CERTIFICATE; +import static se.leap.bitmaskclient.ProviderAPI.PROVIDER_API_EVENT; +import static se.leap.bitmaskclient.ProviderAPI.PROVIDER_NOK; +import static se.leap.bitmaskclient.ProviderAPI.PROVIDER_OK; +import static se.leap.bitmaskclient.ProviderAPI.PROVIDER_SET_UP; +import static se.leap.bitmaskclient.ProviderAPI.RESULT_CODE; +import static se.leap.bitmaskclient.ProviderAPI.RESULT_KEY; import static se.leap.bitmaskclient.ProviderAPI.UPDATE_PROGRESSBAR; /** @@ -93,11 +101,9 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity final protected static String PROVIDER_NOT_SET = "PROVIDER NOT SET"; final protected static String SETTING_UP_PROVIDER = "PROVIDER GETS SET"; - final private static String PENDING_SHOW_PROVIDER_DETAILS = "PENDING PROVIDER DETAILS"; - final private static String SHOWING_PROVIDER_DETAILS = "SHOWING PROVIDER DETAILS SHOWN"; + final private static String SHOWING_PROVIDER_DETAILS = "SHOWING PROVIDER DETAILS"; final private static String PENDING_SHOW_FAILED_DIALOG = "SHOW FAILED DIALOG"; final private static String REASON_TO_FAIL = "REASON TO FAIL"; - final protected static String PROVIDER_SET = "PROVIDER SET"; final protected static String SERVICES_RETRIEVED = "SERVICES RETRIEVED"; final private static String PROGRESSBAR_TEXT = TAG + "PROGRESSBAR_TEXT"; @@ -110,7 +116,6 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity protected static SharedPreferences preferences; FragmentManagerEnhanced fragmentManager; //TODO: add some states (values for progressbarText) about ongoing setup or remove that field - private String progressbarText = ""; private boolean isActivityShowing; @@ -155,12 +160,10 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity } private void restoreState(Bundle savedInstanceState) { - progressbarText = savedInstanceState.getString(PROGRESSBAR_TEXT, ""); selectedProvider = savedInstanceState.getParcelable(Provider.KEY); mConfigState.setAction(savedInstanceState.getString(ACTIVITY_STATE, PROVIDER_NOT_SET)); if (SETTING_UP_PROVIDER.equals(mConfigState.getAction()) || - PENDING_SHOW_PROVIDER_DETAILS.equals(mConfigState.getAction()) || PENDING_SHOW_FAILED_DIALOG.equals(mConfigState.getAction()) ) { onItemSelectedUi(); @@ -169,16 +172,15 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity @Override protected void onResume() { + Log.d(TAG, "resuming with ConfigState: " + mConfigState.getAction()); super.onResume(); hideProgressBar(); isActivityShowing = true; if (SETTING_UP_PROVIDER.equals(mConfigState.getAction())) { showProgressBar(); adapter.hideAllBut(adapter.indexOf(selectedProvider)); - // TODO find a better replacement! This can lead to loops - onItemSelectedLogic(); - } else if (PENDING_SHOW_PROVIDER_DETAILS.equals(mConfigState.getAction())) { - showProviderDetails(); + checkProviderSetUp(); + showDownloadFailedDialog(null); } else if (PENDING_SHOW_FAILED_DIALOG.equals(mConfigState.getAction())) { showDownloadFailedDialog(mConfigState.getStringExtra(REASON_TO_FAIL)); } else if (SHOWING_PROVIDER_DETAILS.equals(mConfigState.getAction())) { @@ -215,6 +217,7 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity super.onDestroy(); if (providerAPIBroadcastReceiver != null) unregisterReceiver(providerAPIBroadcastReceiver); + providerAPIResultReceiver = null; } private void setUpProviderAPIResultReceiver() { @@ -222,49 +225,60 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity providerAPIBroadcastReceiver = new ProviderAPIBroadcastReceiver(); IntentFilter updateIntentFilter = new IntentFilter(UPDATE_PROGRESSBAR); - updateIntentFilter.addAction(SET_UP_PROVIDER); + updateIntentFilter.addAction(PROVIDER_API_EVENT); updateIntentFilter.addCategory(Intent.CATEGORY_DEFAULT); registerReceiver(providerAPIBroadcastReceiver, updateIntentFilter); } - @Override - public void onReceiveResult(int resultCode, Bundle resultData) { - if (resultCode == ProviderAPI.PROVIDER_OK) { - try { - String providerJsonString = preferences.getString(Provider.KEY, ""); - if (!providerJsonString.isEmpty()) - selectedProvider.define(new JSONObject(providerJsonString)); - String caCert = preferences.getString(Provider.CA_CERT, ""); - selectedProvider.setCACert(caCert); - } catch (JSONException e) { - e.printStackTrace(); - } - - if (preferences.getBoolean(PROVIDER_ALLOW_ANONYMOUS, false)) { - mConfigState.putExtra(SERVICES_RETRIEVED, true); - - downloadVpnCertificate(); - } else { - mProgressBar.incrementProgressBy(1); - hideProgressBar(); - - } - } else if (resultCode == ProviderAPI.PROVIDER_NOK) { - mConfigState.setAction(PROVIDER_NOT_SET); - preferences.edit().remove(Provider.KEY).apply(); + void handleProviderSetUp() { + try { + String providerJsonString = preferences.getString(Provider.KEY, ""); + if (!providerJsonString.isEmpty()) + selectedProvider.define(new JSONObject(providerJsonString)); + String caCert = preferences.getString(Provider.CA_CERT, ""); + selectedProvider.setCACert(caCert); + } catch (JSONException e) { + e.printStackTrace(); + } - setResult(RESULT_CANCELED, mConfigState); + if (preferences.getBoolean(PROVIDER_ALLOW_ANONYMOUS, false)) { + mConfigState.putExtra(SERVICES_RETRIEVED, true); - String reason_to_fail = resultData.getString(ERRORS); - showDownloadFailedDialog(reason_to_fail); - } else if (resultCode == ProviderAPI.CORRECTLY_DOWNLOADED_CERTIFICATE) { + downloadVpnCertificate(); + } else { mProgressBar.incrementProgressBy(1); hideProgressBar(); + showProviderDetails(); - } else if (resultCode == ProviderAPI.INCORRECTLY_DOWNLOADED_CERTIFICATE) { - mConfigState.setAction(PROVIDER_NOT_SET); - hideProgressBar(); - setResult(RESULT_CANCELED, mConfigState); + } + } + + void handleProviderSetupFailed(Bundle resultData) { + mConfigState.setAction(PROVIDER_NOT_SET); + preferences.edit().remove(Provider.KEY).apply(); + + setResult(RESULT_CANCELED, mConfigState); + + String reasonToFail = resultData.getString(ERRORS); + showDownloadFailedDialog(reasonToFail); + } + + void handleCorrectlyDownloadedCertificate() { + mProgressBar.incrementProgressBy(1); + hideProgressBar(); + showProviderDetails(); + } + + void handleIncorrectlyDownloadedCertificate() { + mConfigState.setAction(PROVIDER_NOT_SET); + hideProgressBar(); + setResult(RESULT_CANCELED, mConfigState); + } + + @Override + public void onReceiveResult(int resultCode, Bundle resultData) { + if (resultCode == ProviderAPI.PROVIDER_OK) { + handleProviderSetUp(); } else 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. @@ -274,7 +288,6 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity @OnItemClick(R.id.provider_list) void onItemSelected(int position) { if (SETTING_UP_PROVIDER.equals(mConfigState.getAction()) || - PENDING_SHOW_PROVIDER_DETAILS.equals(mConfigState.getAction()) || PENDING_SHOW_FAILED_DIALOG.equals(mConfigState.getAction())) { return; } @@ -294,7 +307,6 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity @Override public void onBackPressed() { if (SETTING_UP_PROVIDER.equals(mConfigState.getAction()) || - PENDING_SHOW_PROVIDER_DETAILS.equals(mConfigState.getAction()) || PENDING_SHOW_FAILED_DIALOG.equals(mConfigState.getAction())) { stopSettingUpProvider(); } else { @@ -326,7 +338,6 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity Intent providerAPICommand = new Intent(this, ProviderAPI.class); providerAPICommand.setAction(ProviderAPI.UPDATE_PROVIDER_DETAILS); - providerAPICommand.putExtra(ProviderAPI.RECEIVER_KEY, providerAPIResultReceiver); Bundle parameters = new Bundle(); parameters.putString(Provider.MAIN_URL, selectedProvider.getMainUrl().toString()); providerAPICommand.putExtra(ProviderAPI.PARAMETERS, parameters); @@ -334,6 +345,13 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity startService(providerAPICommand); } + public void checkProviderSetUp() { + Intent providerAPICommand = new Intent(this, ProviderAPI.class); + providerAPICommand.setAction(PROVIDER_SET_UP); + providerAPICommand.putExtra(ProviderAPI.RECEIVER_KEY, providerAPIResultReceiver); + startService(providerAPICommand); + } + private void askDashboardToQuitApp() { Intent askQuit = new Intent(); askQuit.putExtra(APP_ACTION_QUIT, APP_ACTION_QUIT); @@ -373,10 +391,7 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity */ private void downloadVpnCertificate() { Intent providerAPICommand = new Intent(this, ProviderAPI.class); - providerAPICommand.setAction(ProviderAPI.DOWNLOAD_CERTIFICATE); - providerAPICommand.putExtra(ProviderAPI.RECEIVER_KEY, providerAPIResultReceiver); - startService(providerAPICommand); } @@ -404,7 +419,7 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity /** * Shows an error dialog, if configuring of a provider failed. * - * @param reasonToFail + * @param reasonToFail - the reason it has failed */ public void showDownloadFailedDialog(String reasonToFail) { try { @@ -435,14 +450,11 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity */ public void showProviderDetails() { // show only if current activity is shown - if (isActivityShowing) { + if (isActivityShowing && !mConfigState.getAction().equalsIgnoreCase(SHOWING_PROVIDER_DETAILS)) { mConfigState.setAction(SHOWING_PROVIDER_DETAILS); Intent intent = new Intent(this, ProviderDetailActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(intent); - } else { - // may be called AFTER onSaveInstanceState (!) - mConfigState.setAction(PENDING_SHOW_PROVIDER_DETAILS); } } @@ -475,8 +487,34 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity public class ProviderAPIBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { - int update = intent.getIntExtra(ProviderAPI.CURRENT_PROGRESS, 0); - mProgressBar.setProgress(update); + String action = intent.getAction(); + + if (action == null) { + return; + } + + if (action.equalsIgnoreCase(UPDATE_PROGRESSBAR)) { + int update = intent.getIntExtra(ProviderAPI.CURRENT_PROGRESS, 0); + mProgressBar.setProgress(update); + } else if (action.equalsIgnoreCase(PROVIDER_API_EVENT)) { + int resultCode = intent.getIntExtra(RESULT_CODE, -1); + + switch (resultCode) { + case PROVIDER_OK: + handleProviderSetUp(); + break; + case PROVIDER_NOK: + handleProviderSetupFailed((Bundle) intent.getParcelableExtra(RESULT_KEY)); + break; + case CORRECTLY_DOWNLOADED_CERTIFICATE: + handleCorrectlyDownloadedCertificate(); + break; + case INCORRECTLY_DOWNLOADED_CERTIFICATE: + handleIncorrectlyDownloadedCertificate(); + break; + + } + } } } } -- cgit v1.2.3 From df1e68c672de71633e99234360ea92d77e67a86d Mon Sep 17 00:00:00 2001 From: Fup Duck Date: Tue, 16 Jan 2018 18:31:37 +0100 Subject: corretly handle dialog on orientation change --- .../bitmaskclient/BaseConfigurationWizard.java | 25 ++++++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java index 64ea4779..d0868437 100644 --- a/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java +++ b/app/src/main/java/se/leap/bitmaskclient/BaseConfigurationWizard.java @@ -118,6 +118,7 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity //TODO: add some states (values for progressbarText) about ongoing setup or remove that field private boolean isActivityShowing; + private String reasonToFail; public abstract void retrySetUpProvider(); @@ -140,6 +141,13 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity outState.putString(PROGRESSBAR_TEXT, progressbarDescription.getText().toString()); outState.putString(ACTIVITY_STATE, mConfigState.getAction()); outState.putParcelable(Provider.KEY, selectedProvider); + + DialogFragment dialogFragment = (DialogFragment) fragmentManager.findFragmentByTag(DownloadFailedDialog.TAG); + if (dialogFragment != null) { + outState.putString(REASON_TO_FAIL, reasonToFail); + dialogFragment.dismiss(); + } + super.onSaveInstanceState(outState); } @@ -160,9 +168,15 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity } private void restoreState(Bundle savedInstanceState) { + selectedProvider = savedInstanceState.getParcelable(Provider.KEY); mConfigState.setAction(savedInstanceState.getString(ACTIVITY_STATE, PROVIDER_NOT_SET)); + reasonToFail = savedInstanceState.getString(REASON_TO_FAIL); + if(reasonToFail != null) { + showDownloadFailedDialog(); + } + if (SETTING_UP_PROVIDER.equals(mConfigState.getAction()) || PENDING_SHOW_FAILED_DIALOG.equals(mConfigState.getAction()) ) { @@ -180,9 +194,8 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity showProgressBar(); adapter.hideAllBut(adapter.indexOf(selectedProvider)); checkProviderSetUp(); - showDownloadFailedDialog(null); } else if (PENDING_SHOW_FAILED_DIALOG.equals(mConfigState.getAction())) { - showDownloadFailedDialog(mConfigState.getStringExtra(REASON_TO_FAIL)); + showDownloadFailedDialog(); } else if (SHOWING_PROVIDER_DETAILS.equals(mConfigState.getAction())) { cancelAndShowAllProviders(); } @@ -259,8 +272,8 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity setResult(RESULT_CANCELED, mConfigState); - String reasonToFail = resultData.getString(ERRORS); - showDownloadFailedDialog(reasonToFail); + reasonToFail = resultData.getString(ERRORS); + showDownloadFailedDialog(); } void handleCorrectlyDownloadedCertificate() { @@ -418,10 +431,8 @@ public abstract class BaseConfigurationWizard extends ButterKnifeActivity /** * Shows an error dialog, if configuring of a provider failed. - * - * @param reasonToFail - the reason it has failed */ - public void showDownloadFailedDialog(String reasonToFail) { + public void showDownloadFailedDialog() { try { FragmentTransaction fragmentTransaction = fragmentManager.removePreviousFragment(DownloadFailedDialog.TAG); DialogFragment newFragment; -- cgit v1.2.3