package jaangari.opensoft.iitkgp.jaankari;
import android.app.Service;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.media.ThumbnailUtils;
import android.nfc.Tag;
import android.os.AsyncTask;
import android.os.Environment;
import android.os.IBinder;
import android.provider.MediaStore;
import android.util.Log;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import jaangari.opensoft.iitkgp.jaangari.R;
import jaangari.opensoft.iitkgp.jaankari.util.SystemUiHider;
import jaangari.opensoft.iitkgp.jaankari.util.Videos;
public class DownloadRecommendationsService extends Service {
private DatabaseHandler db;
private String email;
private String TAG = "DownloadRecommendationService";
// protected void updateToDownload(){
// try {
// Thread t = new Thread(new Runnable() {
// public void run() {
//
// }
// });
// t.start();
// System.out.println("Hello");
// }catch(Exception e){
// e.printStackTrace();
// }
// }
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(TAG,"starting AsyncTask");
SharedPreferences sp1 = this.getSharedPreferences("Login", 0);
email = sp1.getString("emailId", null);
DownloadRecommendations recommendations = new DownloadRecommendations();
try {
recommendations.execute((Void) null);
while (!recommendations.get()) {
recommendations.execute((Void)null);
}
}catch (Exception e){
e.printStackTrace();
}
Intent intent1 = new Intent(this,DownloadRecommendedFilesService.class);
startService(intent1);
return 0;
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
private class DownloadRecommendations extends AsyncTask<Void,Void,Boolean>{
@Override
protected Boolean doInBackground(Void... params) {
try {
String url = "http://" + getString(R.string.ip_address) + "toDownload.php";
HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(1);
nameValuePair.add(new BasicNameValuePair("email",email));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
HttpResponse response = httpclient.execute(httpPost);
HttpEntity entity = response.getEntity();
String json_string = EntityUtils.toString(entity);
JSONArray jsonArray = new JSONArray(json_string);
db = new DatabaseHandler(getApplicationContext());
for(int i=0;i<jsonArray.length();i++){
JSONObject root = jsonArray.getJSONObject(i);
Log.d(TAG,root.toString());
db.addDownload(root.getInt("id"),root.getString("category"));
}
db.closeDB();
}catch(Exception e){
e.printStackTrace();
return false;
}
return true;
}
}
}