Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

package com.saholic.profittill.Utils;

import android.content.Intent;
import android.content.SharedPreferences;
import android.net.ConnectivityManager;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Base64;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.saholic.profittill.Constants.ProfitTillConstants;
import com.saholic.profittill.R;
import com.saholic.profittill.main.LoginActivity;
import com.saholic.profittill.main.MainActivity;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONObject;

public class SplashInternetNotWorking extends ActionBarActivity {
Button checkInternet;
    SharedPreferences apiData, userData;
    SharedPreferences.Editor apiEditor,userEditor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash_internet_not_working);
        getSupportActionBar().hide();
        userData = getApplicationContext().getSharedPreferences("User_Data", MODE_PRIVATE);
        apiData = getApplicationContext().getSharedPreferences("API_Data", MODE_PRIVATE);
        userEditor = userData.edit();
        apiEditor = apiData.edit();
        checkInternet = (Button)findViewById(R.id.checkSplashInternet);
        checkInternet.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final String apiCheck = apiData.getString("user.registration.api",null);
                if(apiCheck==null){
                    if(isInternetOn()){
                        new fetchAPISettings().execute();
                    }
                    else{
                        Toast.makeText(getApplicationContext()," Not Connected ", Toast.LENGTH_LONG).show();
                    }
                }
                else{
                    apiEditor.clear().commit();
                    String apiCheck1 = apiData.getString("user.registration.api"," ");
                    Log.e("Delete","Deleting file" + apiCheck1 + "Done");
                    if(isInternetOn()){
                        new fetchAPISettings().execute();
                    }
                    else{
                        Toast.makeText(getApplicationContext(), " Not Connected ", Toast.LENGTH_LONG).show();
                    }

                }
            }
        });
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_splash_internet_not_working, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
    public final boolean isInternetOn() {

        ConnectivityManager connec =
                (ConnectivityManager)getSystemService(this.getBaseContext().CONNECTIVITY_SERVICE);

        if ( connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTED ||
                connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTING ||
                connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTING ||
                connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTED ) {

            Toast.makeText(this, " Connected ", Toast.LENGTH_LONG).show();
            return true;

        } else if (
                connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.DISCONNECTED ||
                        connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.DISCONNECTED  ) {

            Toast.makeText(this, " Not Connected ", Toast.LENGTH_LONG).show();
            return false;
        }
        return false;
    }

    class fetchAPISettings extends AsyncTask<String, Integer, String> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            Log.e("Pre execute", "Pre execute for Getting App settings");

        }

        @Override
        protected String doInBackground(String... arg0) {
            try {
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(ProfitTillConstants.MOBILE_API);
                final String basicAuth = "Basic " + Base64.encodeToString("dtr:dtr18Feb2015".getBytes(), Base64.NO_WRAP);
                httppost.setHeader("Authorization", basicAuth);
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();

                int status = response.getStatusLine().getStatusCode();

                if(status == 200){
                    System.out.println("ResponseCode of record: "+ status + " is " + status);

                } else {
                    Log.d("ResponseCode",status+"");
                    System.out.println(" NOT Transfered");

                }

                JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));
                System.out.println(jObjGmail.toString());
                JSONArray objects =jObjGmail.getJSONArray("settings");
                System.out.println(objects.length());
                for (int i = 0; i < objects.length(); i++) {
                    JSONObject jsonObject = objects.getJSONObject(i);
                    JSONObject j = jsonObject.getJSONObject("Mobileappsetting");
                    apiEditor.putString(j.getString("setting"),j.getString("value"));
                    System.out.println(j.getString("setting") + j.getString("value"));

                }

            } catch (Exception e) {
                Log.e("Fail 1", e.toString());

            }
            return ProfitTillConstants.SUCCESS;
        }
        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            apiEditor.commit();
            final String idCheck = userData.getString("id",null);
            if(idCheck!=null){
                startActivity(new Intent(SplashInternetNotWorking.this,MainActivity.class));
            }
            else {
                startActivity(new Intent(SplashInternetNotWorking.this, LoginActivity.class));
            }
            //Log.e("Post execute", "Post execute for Getting App settings");
        }
    }
}