]> iEval git - fonbot.git/blobdiff - src/ro/ieval/fonbot/PollServerAsyncTask.java
Remove the global FonBotApplication instance.
[fonbot.git] / src / ro / ieval / fonbot / PollServerAsyncTask.java
index 7e95303090df4f2a6cfc5d58006d211cd0d222c9..1be09c36a1730857fc4c1749daf2127090ae5f51 100644 (file)
@@ -15,9 +15,14 @@ import org.json.JSONException;
 import org.json.JSONObject;
 
 import ro.ieval.fonbot.Address.Protocol;
+import android.content.Context;
 import android.os.AsyncTask;
+import android.preference.PreferenceManager;
+import android.util.Base64;
 import android.util.Log;
 
+import com.google.android.gcm.GCMRegistrar;
+
 /*
  * Copyright © 2013 Marius Gavrilescu
  * 
@@ -76,14 +81,33 @@ public final class PollServerAsyncTask extends AsyncTask<Void, Void, List<PollSe
                }
        }
 
+       /** Context instance */
+       private final Context context;
+
+       /**
+        * Constructs a PollServerAsyncTask.
+        *
+        * @param context Context instance
+        */
+       public PollServerAsyncTask(final Context context) {
+               this.context=context;
+       }
+
        @Override
        protected List<Command> doInBackground(final @Nullable Void... params) {
                Log.d(getClass().getName(), "Polling server");
                final List<Command> commands=new ArrayList<Command>(10);
                try {
-                       final URL url=new URL("http://ieval.ro:7777/get");
+                       final URL url=Utils.getServerURL(toNonNull(context),"/get");
                        final HttpURLConnection conn=(HttpURLConnection) url.openConnection();
-                       conn.setRequestProperty("X-ID", FonBotApplication.instance.regID);
+                       conn.setRequestProperty("X-ID", GCMRegistrar.getRegistrationId(context));
+                       final String user=PreferenceManager.getDefaultSharedPreferences(context).getString("username", null);
+                       final String password=PreferenceManager.getDefaultSharedPreferences(context).getString("password", null);
+                       if(user == null || password == null)
+                               return commands;
+
+                       conn.setRequestProperty("Authorization", "Basic "+Base64.encodeToString(
+                                       (user+':'+password).getBytes(), Base64.NO_WRAP));
                        conn.connect();
                        final byte[] buf=new byte[4096*1024];
                        Log.d(getClass().getName(), "Server poll got response code "+conn.getResponseCode()+" and message "+conn.getResponseMessage());
@@ -124,7 +148,7 @@ public final class PollServerAsyncTask extends AsyncTask<Void, Void, List<PollSe
                        Log.d(getClass().getName(), "Poll got command "+command.command+" with "+((command.args.length==0)?"no args":"args "+Utils.join(
                                        " ",toNonNull(command.args))));
                        Utils.processCommand(
-                                       toNonNull(FonBotApplication.instance),
+                                       toNonNull(context),
                                        toNonNull(command.command),
                                        toNonNull(command.args),
                                        new Address(toNonNull(Protocol.HTTP), command.replyto));//NOPMD address depends on command
This page took 0.028122 seconds and 4 git commands to generate.