Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
21480 rajender 1
package com.saholic.profittill.main;
2
 
3
import android.app.Fragment;
4
import android.content.Context;
5
import android.content.Intent;
6
import android.content.SharedPreferences;
7
import android.graphics.Bitmap;
8
import android.net.ConnectivityManager;
9
import android.os.AsyncTask;
10
import android.os.Bundle;
11
import android.util.Log;
12
import android.view.KeyEvent;
13
import android.view.LayoutInflater;
14
import android.view.View;
15
import android.view.ViewGroup;
16
import android.webkit.HttpAuthHandler;
17
import android.webkit.WebView;
18
import android.webkit.WebViewClient;
19
import android.widget.TextView;
20
 
21
import com.google.android.gms.analytics.HitBuilders;
22
import com.google.android.gms.analytics.Tracker;
23
import com.saholic.profittill.Constants.ProfitTillConstants;
24
import com.saholic.profittill.R;
25
import com.saholic.profittill.Utils.AnalyticsUtility;
26
import com.saholic.profittill.Volley.Analytics;
27
import com.saholic.profittill.Volley.AnalyticsErrorResponse;
28
import com.saholic.profittill.Volley.AnalyticsJsonResponse;
29
 
30
import org.apache.http.HttpResponse;
31
import org.apache.http.NameValuePair;
32
import org.apache.http.client.ClientProtocolException;
33
import org.apache.http.client.HttpClient;
34
import org.apache.http.client.entity.UrlEncodedFormEntity;
35
import org.apache.http.client.methods.HttpPost;
36
import org.apache.http.entity.StringEntity;
37
import org.apache.http.impl.client.DefaultHttpClient;
38
import org.apache.http.message.BasicNameValuePair;
39
import org.json.JSONArray;
40
import org.json.JSONException;
41
import org.json.JSONObject;
42
 
43
import java.io.IOException;
44
import java.text.SimpleDateFormat;
45
import java.util.ArrayList;
46
import java.util.Date;
47
 
48
public class AboutUsFragment extends Fragment {
49
    WebView aboutUsWebView;
50
    SharedPreferences userData;
51
    SharedPreferences apiData;
52
    SharedPreferences.Editor userDataEditor;
53
    SharedPreferences.Editor apiSettingsEditor;
54
    TextView howItWorksLink;
55
    public AboutUsFragment() {
56
 
57
    }
58
 
59
 
60
    @Override
61
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
62
                             Bundle savedInstanceState) {
63
        View rootView = inflater.inflate(R.layout.fragment_about_us, container, false);
64
 
65
        userData = getActivity().getSharedPreferences("User_Data", Context.MODE_PRIVATE);
66
        apiData = getActivity().getSharedPreferences("API_Data", Context.MODE_PRIVATE);
67
        userDataEditor = userData.edit();
68
        apiSettingsEditor = apiData.edit();
69
 
70
        String url = apiData.getString("aboutus.url",null);
71
        String id = userData.getString("id",null);
72
        String landingUrl=url + "?user_id=" + id;
73
        Tracker t = ((GoogleAnalyticsTracker) getActivity().getApplicationContext()).getTracker(
74
                GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
75
        t.setScreenName("About us Screen");
76
        t.send(new HitBuilders.ScreenViewBuilder().build());
77
 
78
        if(isInternetOn()) {
79
            WebClientClass webViewClient = new WebClientClass();
80
            aboutUsWebView = (WebView) rootView.findViewById(R.id.aboutUsWebView);
81
            aboutUsWebView.setClickable(true);
82
            aboutUsWebView.setFocusableInTouchMode(true);
83
            aboutUsWebView.getSettings().setJavaScriptEnabled(true);
84
            aboutUsWebView.loadUrl(landingUrl);
85
            aboutUsWebView.setWebViewClient(webViewClient);
86
            if(!(userData.getString("id", "").isEmpty())) {
87
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
88
                        AnalyticsUtility.getAnalyticsRequest(getActivity(), userData.getString("id", ""), "Screen", "About Us", "About Us Screen"),
89
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
90
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(getActivity());
91
            }
92
        }else{
93
            SearchFragment nextFrag= new SearchFragment();
94
            Bundle args = new Bundle();
95
            args.putString("finishingurl", landingUrl);
96
            args.putString("fragmentNumber", "16");
97
            nextFrag.setArguments(args);
98
            getActivity().getFragmentManager().beginTransaction()
99
                    .replace(R.id.frame_container, nextFrag)
100
                    .addToBackStack(null)
101
                    .commit();
102
        }
103
        return rootView;
104
 
105
    }
106
    @Override
107
    public void onResume() {
108
        super.onResume();
109
        getView().setFocusableInTouchMode(true);
110
        getView().requestFocus();
111
        getView().setOnKeyListener(new View.OnKeyListener() {
112
            @Override
113
            public boolean onKey(View v, int keyCode, KeyEvent event) {
114
 
115
                if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK){
116
                    Intent i = new Intent(getActivity(), MainActivity.class);
117
                    i.putExtra("displayView", "0");
118
                    startActivity(i);
119
                    return true;
120
                }
121
                return false;
122
            }
123
        });
124
    }
125
    @Override
126
    public void onViewCreated(View view, Bundle savedInstanceState) {
127
        super.onViewCreated(view, savedInstanceState);
128
    }
129
 
130
    JSONObject obj;
131
    public class WebClientClass extends WebViewClient {
132
        @Override
133
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
134
            super.onPageStarted(view, url, favicon);
135
            obj = new JSONObject();
136
 
137
            try {
138
                JSONObject j = new JSONObject();
139
                JSONArray jsArray = new JSONArray();
140
                j.put("url",url);
141
                j.put("user_id",userData.getString("id",null));
142
                j.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
143
                jsArray.put(j);
144
                obj.put("pushdata",jsArray);
145
            } catch (JSONException e) {
146
                e.printStackTrace();
147
            }
148
            new pushData().execute();
149
 
150
        }
151
        @Override
152
        public void onReceivedHttpAuthRequest(WebView view,
153
                                              HttpAuthHandler handler, String host, String realm) {
154
 
155
            handler.proceed("dtr", "dtr18Feb2015");
156
 
157
        }
158
        @Override
159
        public void onPageFinished(WebView view, String url) {
160
            super.onPageFinished(view, url);
161
        }
162
    }
163
 
164
    class pushData extends AsyncTask<String, Integer, String> {
165
 
166
        @Override
167
        protected void onPreExecute() {
168
            super.onPreExecute();
169
            Log.e("Push Service", "Pre execute");
170
        }
171
 
172
        @Override
173
        protected String doInBackground(String... arg0) {
174
            HttpClient httpclient = new DefaultHttpClient();
175
            try {
176
 
177
                ArrayList<NameValuePair> nameValuePairs = new ArrayList<>();
178
                nameValuePairs.add(new BasicNameValuePair("pushdata",obj.toString()));
179
                HttpPost httppost = new HttpPost(apiData.getString("url.push.api",null));
180
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
181
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
182
                System.out.println(obj.toString());
183
                StringEntity se = new StringEntity(obj.toString());
184
                HttpResponse response = httpclient.execute(httppost);
185
                int status = response.getStatusLine().getStatusCode();
186
 
187
                if(status == 200){
188
                    System.out.println("ResponseCode of record: "+ status + " is " + status);
189
                    return "success";
190
                } else {
191
                    Log.d("ResponseCode",status+"");
192
                    System.out.println(" NOT Transfered");
193
                    return "failure";
194
                }
195
 
196
            } catch (ClientProtocolException e) {
197
                return "failure";
198
            } catch (IOException e) {
199
                return "failure";
200
            }
201
        }
202
 
203
        @Override
204
        protected void onPostExecute(String result) {
205
            super.onPostExecute(result);
206
 
207
        }
208
    }
209
 
210
    public final boolean isInternetOn() {
211
 
212
        ConnectivityManager connec =
213
                (ConnectivityManager)getActivity().getSystemService(getActivity().getBaseContext().CONNECTIVITY_SERVICE);
214
 
215
        if ( connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTED ||
216
                connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTING ||
217
                connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTING ||
218
                connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTED ) {
219
 
220
            return true;
221
 
222
        } else if (
223
                connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.DISCONNECTED ||
224
                        connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.DISCONNECTED  ) {
225
            return false;
226
        }
227
        return false;
228
    }
229
}