package com.icareyou.food; import java.io.IOException; import java.io.InputStream; import java.text.ParseException; import java.text.SimpleDateFormat; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.Request.Method; import com.android.volley.toolbox.JsonArrayRequest; import com.android.volley.toolbox.JsonObjectRequest; import com.icareyou.food.DaoMaster.DevOpenHelper; import com.openfooddata.app.misc.MyVolley; import android.app.Activity; import android.app.AlertDialog; import android.content.Intent; import android.database.sqlite.SQLiteDatabase; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; // THis activity is the entrance point to the APP // It quickly load Core and see its setup, // start the correspond Activity as a decision maker // then pass the core to the next Activity public class SplashActivity extends Activity { String TAG = "nevin"; // Private member for DB operation private SQLiteDatabase db; private DaoMaster mDaoMaster; private DaoSession mDaoSession; private ReportsDao mReportsDao; // Private member final SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd'T'hh:mm:ss.SSS'Z'"); // example: 2013-11-08T17:05:08.654Z @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.welcome); // Setup DB operation DevOpenHelper helper = new DaoMaster.DevOpenHelper(SplashActivity.this, "foodabc-db", null); db = helper.getWritableDatabase(); mDaoMaster = new DaoMaster(db); mDaoSession = mDaoMaster.newSession(); mReportsDao = mDaoSession.getReportsDao(); // empty self first Log.d(TAG,"updatTable!!!aa" ); // mReportsDao.deleteAll(); // Download Data from server new Task().execute(1); } class Task extends AsyncTask<Integer, Void, Void> { @Override protected Void doInBackground(Integer... params) { if (mReportsDao.count()==0) updatTable(); return null; } protected void onPostExecute(Void s) { closeSelf(); } } private void updatTable() { Log.d(TAG,"updatTable!!!" ); String json = null; try { InputStream is = getAssets().open("report.json"); int size = is.available(); byte[] buffer = new byte[size]; is.read(buffer); is.close(); json = new String(buffer, "UTF-8"); JSONArray entries = new JSONArray(json); for (int i = 0; i < entries.length(); i++) { JSONObject entry = entries.getJSONObject(i); Reports obj = new Reports(); // obj.setBatchno(entry.getString("batchno")); // obj.setCompanycountry(entry.getString("companycountry")); obj.setCompanyname(entry.getString("companyname")); obj.setCreated_at(sdf.parse(entry.getString("createdat"))); // obj.setGuarantee(entry.getString("guarantee")); // obj.setImportexport(entry.getString("importexport")); obj.setProductname(entry.getString("productname")); obj.setReportcat(entry.getString("reportcat")); obj.setReportid(entry.getInt("reportid")+""); Log.d(TAG,"REPORT ID " +entry.getInt("reportid")+"" ); obj.setResult(entry.getString("result")); obj.setUdpated_at(sdf.parse(entry.getString("udpatedat"))); obj.setWatched(false); mReportsDao.insertOrReplace(obj); // Log.d(TAG, "Inserted new Reports : " + obj.getReportid() + "/: " +obj.getResult() ); } } catch (JSONException e) { Log.v(TAG,e.toString()); } catch (NumberFormatException e) { Log.v(TAG,e.toString()); } catch (ParseException e) { Log.v(TAG,e.toString()); } catch (IOException e) { Log.v(TAG,e.toString()); } } private void showErrorDialog(Exception e) { AlertDialog.Builder b = new AlertDialog.Builder(SplashActivity.this); b.setMessage("Error! " + e.toString()); b.show(); } private void closeSelf() { // Start Product View Intent intent = new Intent(SplashActivity.this, MainActivity.class); startActivity(intent); SplashActivity.this.finish(); } }