aboutsummaryrefslogtreecommitdiffstats
path: root/project/src/fil/libre/repwifiapp/activities/LongTaskActivity.java
diff options
context:
space:
mode:
authorFil <fil.bergamo@riseup.net>2017-03-06 22:37:59 +0100
committerFil <fil.bergamo@riseup.net>2017-03-06 22:37:59 +0100
commit8b111e0799432fc5a6ead191e1029cc1446a8c91 (patch)
tree09fe0af45024e7a0b74af9c35472d685032e8684 /project/src/fil/libre/repwifiapp/activities/LongTaskActivity.java
parent04b918b3a14a04fb851b39c8582bdf07e5f0fd2b (diff)
downloadpackages_apps_repwifi-8b111e0799432fc5a6ead191e1029cc1446a8c91.zip
packages_apps_repwifi-8b111e0799432fc5a6ead191e1029cc1446a8c91.tar.gz
packages_apps_repwifi-8b111e0799432fc5a6ead191e1029cc1446a8c91.tar.bz2
Commit initial project
Diffstat (limited to 'project/src/fil/libre/repwifiapp/activities/LongTaskActivity.java')
-rw-r--r--project/src/fil/libre/repwifiapp/activities/LongTaskActivity.java174
1 files changed, 174 insertions, 0 deletions
diff --git a/project/src/fil/libre/repwifiapp/activities/LongTaskActivity.java b/project/src/fil/libre/repwifiapp/activities/LongTaskActivity.java
new file mode 100644
index 0000000..a9f010a
--- /dev/null
+++ b/project/src/fil/libre/repwifiapp/activities/LongTaskActivity.java
@@ -0,0 +1,174 @@
+package fil.libre.repwifiapp.activities;
+
+
+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.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 Commons.RequestCode.CONNECT:
+
+ ret = Commons.connectionEngine.connect((AccessPointInfo)params[0]);
+ break;
+
+ case Commons.RequestCode.NETWORKS_GET:
+
+ ret = Commons.connectionEngine.getAvailableNetworks();
+ break;
+
+ case Commons.RequestCode.STATUS_GET:
+
+ ret = Commons.connectionEngine.getConnectionStatus();
+ break;
+
+ default:
+
+ break;
+
+ }
+
+ return ret;
+
+ }
+
+ protected void onPostExecute(Object result) {
+ taskCompleted(result, this.REQ_CODE);
+ }
+
+ }
+
+ private AccessPointInfo currentNetwork = null;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState){
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_long_task);
+
+ startTask();
+
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu){
+ return true;
+ }
+
+ private void startTask() {
+
+ //retrieve the request code:
+ Intent intent = getIntent();
+ if (! intent.hasExtra(Commons.EXTRA_REQCODE)){
+ this.setResult(RESULT_CANCELED);
+ finish();
+ }
+
+ 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...");
+
+ default:
+ setTitle("Please wait...");
+ setMessage("Please wait...");
+ break;
+ }
+
+ Task task = new Task(reqCode, input);
+ task.execute(input);
+
+ }
+
+ private void taskCompleted(Object result, int reqCode){
+
+ Utils.logDebug("Finished long task reqCode: "+ reqCode,1);
+
+ //Return to caller:
+ Intent intent = this.getIntent();
+
+
+ switch (reqCode){
+
+ case Commons.RequestCode.CONNECT:
+
+ intent.putExtra(Commons.EXTRA_BOOLEAN, (Boolean)result);
+ intent.putExtra(Commons.EXTRA_APINFO, this.currentNetwork);
+ break;
+
+ case Commons.RequestCode.NETWORKS_GET:
+
+ intent.putExtra(Commons.EXTRA_APINFO_ARR, (AccessPointInfo[])result);
+ break;
+
+ case Commons.RequestCode.STATUS_GET:
+
+ intent.putExtra(Commons.EXTRA_CONSTATUS, (ConnectionStatus)result);
+ break;
+
+ default:
+
+ Utils.logDebug("Task terminating in null: ",1);
+ break;
+
+ }
+
+ 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
+ }
+
+
+
+}