diff options
Diffstat (limited to 'app/src/fil/libre/repwifiapp/activities/LongTaskActivity.java')
-rw-r--r-- | app/src/fil/libre/repwifiapp/activities/LongTaskActivity.java | 240 |
1 files changed, 124 insertions, 116 deletions
diff --git a/app/src/fil/libre/repwifiapp/activities/LongTaskActivity.java b/app/src/fil/libre/repwifiapp/activities/LongTaskActivity.java index 63063d8..e0b4184 100644 --- a/app/src/fil/libre/repwifiapp/activities/LongTaskActivity.java +++ b/app/src/fil/libre/repwifiapp/activities/LongTaskActivity.java @@ -1,176 +1,184 @@ package fil.libre.repwifiapp.activities; - +import fil.libre.repwifiapp.ActivityLauncher; import fil.libre.repwifiapp.Commons; import fil.libre.repwifiapp.R; import fil.libre.repwifiapp.helpers.AccessPointInfo; import fil.libre.repwifiapp.helpers.ConnectionStatus; import fil.libre.repwifiapp.helpers.Utils; - import android.os.AsyncTask; import android.os.Bundle; import android.view.Menu; +import android.view.View; +import android.widget.ProgressBar; import android.widget.TextView; import android.app.Activity; import android.content.Intent; public class LongTaskActivity extends Activity { + private class Task extends AsyncTask<Object, Object, Object> { + + private int REQ_CODE; + + public Task(int reqCode, Object input) { + this.REQ_CODE = reqCode; + } + + @Override + protected Object doInBackground(Object... params) { + + Object ret = null; + + switch (this.REQ_CODE) { + + case ActivityLauncher.RequestCode.CONNECT: + + ret = Commons.connectionEngine.connect((AccessPointInfo) params[0]); + break; + + case ActivityLauncher.RequestCode.NETWORKS_GET: + + ret = Commons.connectionEngine.getAvailableNetworks(); + break; + + case ActivityLauncher.RequestCode.STATUS_GET: + + ret = Commons.connectionEngine.getConnectionStatus(); + break; + + default: - private class Task extends AsyncTask<Object, Object, Object>{ + break; - private int REQ_CODE; + } - public Task(int reqCode, Object input){ - this.REQ_CODE = reqCode; - } + return ret; - @Override - protected Object doInBackground(Object... params) { + } - Object ret = null; + @Override + protected void onPostExecute(Object result) { + taskCompleted(result, this.REQ_CODE); + } - switch (this.REQ_CODE){ + } - case Commons.RequestCode.CONNECT: + private AccessPointInfo currentNetwork = null; - ret = Commons.connectionEngine.connect((AccessPointInfo)params[0]); - break; + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_long_task); - case Commons.RequestCode.NETWORKS_GET: + toggleProgbar(Commons.isProgbarEnabled()); + startTask(); - ret = Commons.connectionEngine.getAvailableNetworks(); - break; + } - case Commons.RequestCode.STATUS_GET: + @Override + public boolean onCreateOptionsMenu(Menu menu) { + return true; + } - ret = Commons.connectionEngine.getConnectionStatus(); - break; + private void startTask() { - default: + // retrieve the request code: + Intent intent = getIntent(); + if (!intent.hasExtra(ActivityLauncher.EXTRA_REQCODE)) { + this.setResult(RESULT_CANCELED); + finish(); + } - break; + Object input = null; + int reqCode = intent.getExtras().getInt(ActivityLauncher.EXTRA_REQCODE); - } + switch (reqCode) { - return ret; + case ActivityLauncher.RequestCode.CONNECT: + // Extract AccessPointInfo + input = intent.getExtras().getSerializable(ActivityLauncher.EXTRA_APINFO); + currentNetwork = (AccessPointInfo) input; + setTitle("Connecting to " + currentNetwork.getSsid() + "..."); + setMessage("Connecting to " + currentNetwork.getSsid() + "..."); + break; - } + case ActivityLauncher.RequestCode.NETWORKS_GET: + setTitle("Scanning..."); + setMessage("Scanning for Networks..."); - @Override - protected void onPostExecute(Object result) { - taskCompleted(result, this.REQ_CODE); - } + case ActivityLauncher.RequestCode.STATUS_GET: + setTitle("Checking status..."); + setMessage("Checking status..."); - } + default: + setTitle("Please wait..."); + setMessage("Please wait..."); + break; + } - private AccessPointInfo currentNetwork = null; - - @Override - public void onCreate(Bundle savedInstanceState){ - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_long_task); - - startTask(); + Task task = new Task(reqCode, input); + task.execute(input); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu){ - return true; - } + } - private void startTask() { + private void taskCompleted(Object result, int reqCode) { - //retrieve the request code: - Intent intent = getIntent(); - if (! intent.hasExtra(Commons.EXTRA_REQCODE)){ - this.setResult(RESULT_CANCELED); - finish(); - } + Utils.logDebug("Finished long task reqCode: " + reqCode, 1); - Object input = null; - int reqCode = intent.getExtras().getInt(Commons.EXTRA_REQCODE); - - switch (reqCode) { - - case Commons.RequestCode.CONNECT: - setTitle("Connecting..."); - setMessage("Connecting..."); - - //Extract AccessPointInfo - input = intent.getExtras().getSerializable(Commons.EXTRA_APINFO); - currentNetwork = (AccessPointInfo)input; - break; - - case Commons.RequestCode.NETWORKS_GET: - setTitle("Scanning..."); - setMessage("Scanning for Networks..."); - - case Commons.RequestCode.STATUS_GET: - setTitle("Checking status..."); - setMessage("Checking status..."); + // Return to caller: + Intent intent = this.getIntent(); - default: - setTitle("Please wait..."); - setMessage("Please wait..."); - break; - } - - Task task = new Task(reqCode, input); - task.execute(input); + switch (reqCode) { - } + case ActivityLauncher.RequestCode.CONNECT: - private void taskCompleted(Object result, int reqCode){ + intent.putExtra(ActivityLauncher.EXTRA_BOOLEAN, (Boolean) result); + intent.putExtra(ActivityLauncher.EXTRA_APINFO, this.currentNetwork); + break; - Utils.logDebug("Finished long task reqCode: "+ reqCode,1); - - //Return to caller: - Intent intent = this.getIntent(); + case ActivityLauncher.RequestCode.NETWORKS_GET: + intent.putExtra(ActivityLauncher.EXTRA_APINFO_ARR, (AccessPointInfo[]) result); + break; - switch (reqCode){ + case ActivityLauncher.RequestCode.STATUS_GET: - case Commons.RequestCode.CONNECT: + intent.putExtra(ActivityLauncher.EXTRA_CONSTATUS, (ConnectionStatus) result); + break; - intent.putExtra(Commons.EXTRA_BOOLEAN, (Boolean)result); - intent.putExtra(Commons.EXTRA_APINFO, this.currentNetwork); - break; + default: - case Commons.RequestCode.NETWORKS_GET: + Utils.logDebug("Task terminating in null: ", 1); + break; - intent.putExtra(Commons.EXTRA_APINFO_ARR, (AccessPointInfo[])result); - break; + } - case Commons.RequestCode.STATUS_GET: + this.setResult(RESULT_OK, intent); + finish(); - intent.putExtra(Commons.EXTRA_CONSTATUS, (ConnectionStatus)result); - break; + } - default: + private void setMessage(String msg) { + TextView txt = (TextView) findViewById(R.id.txt_msg); + txt.setText(msg); + } - Utils.logDebug("Task terminating in null: ",1); - break; + private void toggleProgbar(boolean enable) { - } + ProgressBar pb = (ProgressBar) findViewById(R.id.progbar); - this.setResult(RESULT_OK, intent); - finish(); - - } - - - private void setMessage(String msg) { - TextView txt = (TextView)findViewById(R.id.txt_msg); - txt.setText(msg); - } - - @Override - public void onBackPressed() { - //suppress back button - } + if (enable) { + pb.setVisibility(View.VISIBLE); + } else { + pb.setVisibility(View.INVISIBLE); + } + } + @Override + public void onBackPressed() { + // suppress back button + } } |