Subversion Repositories SmartDukaan

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14792 manas 1
package com.saholic.profittill.main;
2
 
3
import android.app.Activity;
4
import android.app.AlertDialog;
5
import android.app.ProgressDialog;
6
import android.content.Context;
7
import android.content.DialogInterface;
8
import android.content.Intent;
9
import android.content.SharedPreferences;
10
import android.graphics.Bitmap;
11
import android.net.ConnectivityManager;
12
import android.net.Uri;
13
import android.os.AsyncTask;
14
import android.os.Bundle;
15
import android.app.Fragment;
16
import android.util.Log;
17
import android.view.KeyEvent;
18
import android.view.LayoutInflater;
19
import android.view.View;
20
import android.view.ViewGroup;
21
import android.webkit.HttpAuthHandler;
22
import android.webkit.JavascriptInterface;
23
import android.webkit.WebView;
24
import android.webkit.WebViewClient;
25
import android.widget.TextView;
26
import android.widget.Toast;
27
 
28
import com.google.android.gms.analytics.HitBuilders;
29
import com.google.android.gms.analytics.Tracker;
30
import com.mixpanel.android.mpmetrics.MixpanelAPI;
31
import com.saholic.profittill.Constants.ProfitTillConstants;
32
import com.saholic.profittill.R;
33
 
34
import org.apache.http.HttpEntity;
35
import org.apache.http.HttpResponse;
36
import org.apache.http.NameValuePair;
37
import org.apache.http.client.ClientProtocolException;
38
import org.apache.http.client.HttpClient;
39
import org.apache.http.client.entity.UrlEncodedFormEntity;
40
import org.apache.http.client.methods.HttpPost;
41
import org.apache.http.entity.StringEntity;
42
import org.apache.http.impl.client.DefaultHttpClient;
43
import org.apache.http.message.BasicNameValuePair;
44
import org.json.JSONArray;
45
import org.json.JSONException;
46
import org.json.JSONObject;
47
 
48
import java.io.BufferedReader;
49
import java.io.IOException;
50
import java.io.InputStream;
51
import java.io.InputStreamReader;
52
import java.text.SimpleDateFormat;
53
import java.util.ArrayList;
54
import java.util.Date;
55
import java.util.StringTokenizer;
56
 
57
public class AboutUsFragment extends Fragment {
58
    WebView aboutUsWebView;
59
    SharedPreferences userData;
60
    SharedPreferences apiData;
61
    SharedPreferences.Editor userDataEditor;
62
    SharedPreferences.Editor apiSettingsEditor;
63
    TextView howItWorksLink;
64
    public AboutUsFragment() {
65
 
66
    }
67
 
68
 
69
    @Override
70
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
71
                             Bundle savedInstanceState) {
72
        // Inflate the layout for this fragment
73
        View rootView = inflater.inflate(R.layout.fragment_about_us, container, false);
74
 
75
        userData = getActivity().getSharedPreferences("User_Data", Context.MODE_PRIVATE);
76
        apiData = getActivity().getSharedPreferences("API_Data", Context.MODE_PRIVATE);
77
        userDataEditor = userData.edit();
78
        apiSettingsEditor = apiData.edit();
79
 
80
        String url = apiData.getString("aboutus.url",null);
81
        String id = userData.getString("id",null);
82
        String landingUrl=url + "?user_id=" + id;
83
        Tracker t = ((GoogleAnalyticsTracker) getActivity().getApplicationContext()).getTracker(
84
                GoogleAnalyticsTracker.TrackerName.APP_TRACKER);
85
        t.setScreenName("About us Screen");
86
        t.send(new HitBuilders.ScreenViewBuilder().build());
87
        if(isInternetOn()) {
88
            WebClientClass webViewClient = new WebClientClass();
89
            aboutUsWebView = (WebView) rootView.findViewById(R.id.aboutUsWebView);
90
            aboutUsWebView.setClickable(true);
91
            aboutUsWebView.setFocusableInTouchMode(true);
92
            aboutUsWebView.getSettings().setJavaScriptEnabled(true);
93
            aboutUsWebView.loadUrl(landingUrl);
94
            aboutUsWebView.setWebViewClient(webViewClient);
95
        }else{
96
            SearchFragment nextFrag= new SearchFragment();
97
            Bundle args = new Bundle();
98
            args.putString("finishingurl", landingUrl);
99
            args.putString("fragmentNumber", "16");
100
            nextFrag.setArguments(args);
101
            getActivity().getFragmentManager().beginTransaction()
102
                    .replace(R.id.frame_container, nextFrag)
103
                    .addToBackStack(null)
104
                    .commit();
105
        }
106
        return rootView;
107
 
108
    }
109
    @Override
110
    public void onResume() {
111
        super.onResume();
112
        getView().setFocusableInTouchMode(true);
113
        getView().requestFocus();
114
        getView().setOnKeyListener(new View.OnKeyListener() {
115
            @Override
116
            public boolean onKey(View v, int keyCode, KeyEvent event) {
117
 
118
                if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK){
119
                    Intent i = new Intent(getActivity(), MainActivity.class);
120
                    i.putExtra("displayView", "0");
121
                    startActivity(i);
122
                    return true;
123
                }
124
                return false;
125
            }
126
        });
127
    }
128
    @Override
129
    public void onViewCreated(View view, Bundle savedInstanceState) {
130
        super.onViewCreated(view, savedInstanceState);
131
    }
132
 
133
    JSONObject obj;
134
    public class WebClientClass extends WebViewClient {
135
       /* ProgressDialog pd = null;*/
136
 
137
        @Override
138
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
139
           /* pd = new ProgressDialog(getActivity());
140
            pd.setTitle("Please wait");
141
            pd.setMessage("Page is loading..");
142
            pd.show();*/
143
            super.onPageStarted(view, url, favicon);
144
            obj = new JSONObject();
145
 
146
            try {
147
                JSONObject j = new JSONObject();
148
                JSONArray jsArray = new JSONArray();
149
                j.put("url",url);
150
                j.put("user_id",userData.getString("id",null));
151
                j.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
152
                jsArray.put(j);
153
                obj.put("pushdata",jsArray);
154
            } catch (JSONException e) {
155
                e.printStackTrace();
156
            }
157
            new pushData().execute();
158
 
159
        }
160
        @Override
161
        public void onReceivedHttpAuthRequest(WebView view,
162
                                              HttpAuthHandler handler, String host, String realm) {
163
 
164
            handler.proceed("dtr", "dtr18Feb2015");
165
 
166
        }
167
        @Override
168
        public void onPageFinished(WebView view, String url) {
169
            super.onPageFinished(view, url);
170
          /*  pd.dismiss();*/
171
 
172
          /*  view.setOnKeyListener(new View.OnKeyListener()
173
            {
174
                @Override
175
                public boolean onKey(View v, int keyCode, KeyEvent event)
176
                {
177
                    if(event.getAction() == KeyEvent.ACTION_DOWN)
178
                    {
179
                        WebView webView = (WebView) v;
180
 
181
                        switch(keyCode)
182
                        {
183
                            case KeyEvent.KEYCODE_BACK:
184
                                if(webView.canGoBack() && !webView.getUrl().contains(apiData.getString("mobile.website.url",null)))
185
                                {
186
                                    webView.goBack();
187
                                    return true;
188
                                }
189
                                else{
190
                                    new AlertDialog.Builder(getActivity())
191
                                            .setIcon(R.drawable.pmnavigation)
192
                                            .setTitle("Exit!")
193
                                            .setMessage("Are you sure you want to close?")
194
                                            .setPositiveButton("Yes", new DialogInterface.OnClickListener()
195
                                            {
196
                                                @Override
197
                                                public void onClick(DialogInterface dialog, int which) {
198
                                                    Intent startMain = new Intent(Intent.ACTION_MAIN);
199
                                                    startMain.addCategory(Intent.CATEGORY_HOME);
200
                                                    startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
201
                                                    startActivity(startMain);
202
                                                }
203
 
204
                                            })
205
                                            .setNegativeButton("No", null)
206
                                            .show();
207
                                    DealsHomeFragment nextFrag= new DealsHomeFragment();
208
                                    getActivity().getFragmentManager().beginTransaction()
209
                                            .replace(R.id.frame_container, nextFrag,"Mike")
210
                                            .addToBackStack(null)
211
                                            .commit();
212
                                    startActivity(new Intent(getActivity(),MainActivity.class));
213
                                }
214
                                break;
215
                        }
216
                    }
217
 
218
                    return false;
219
                }
220
            });
221
*/
222
        }
223
    }
224
 
225
    class pushData extends AsyncTask<String, Integer, String> {
226
 
227
        @Override
228
        protected void onPreExecute() {
229
            super.onPreExecute();
230
            Log.e("Push Service", "Pre execute");
231
        }
232
 
233
        @Override
234
        protected String doInBackground(String... arg0) {
235
            HttpClient httpclient = new DefaultHttpClient();
236
            try {
237
 
238
                ArrayList<NameValuePair> nameValuePairs = new ArrayList<>();
239
                nameValuePairs.add(new BasicNameValuePair("pushdata",obj.toString()));
240
                HttpPost httppost = new HttpPost(apiData.getString("url.push.api",null));
241
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
242
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
243
                System.out.println(obj.toString());
244
                StringEntity se = new StringEntity(obj.toString());
245
                HttpResponse response = httpclient.execute(httppost);
246
                int status = response.getStatusLine().getStatusCode();
247
 
248
                if(status == 200){
249
                    System.out.println("ResponseCode of record: "+ status + " is " + status);
250
                    return "success";
251
                } else {
252
                    Log.d("ResponseCode",status+"");
253
                    System.out.println(" NOT Transfered");
254
                    return "failure";
255
                }
256
 
257
            } catch (ClientProtocolException e) {
258
                return "failure";
259
            } catch (IOException e) {
260
                return "failure";
261
            }
262
        }
263
 
264
        @Override
265
        protected void onPostExecute(String result) {
266
            super.onPostExecute(result);
267
 
268
        }
269
    }
270
 
271
    public final boolean isInternetOn() {
272
 
273
        ConnectivityManager connec =
274
                (ConnectivityManager)getActivity().getSystemService(getActivity().getBaseContext().CONNECTIVITY_SERVICE);
275
 
276
        if ( connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTED ||
277
                connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTING ||
278
                connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTING ||
279
                connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTED ) {
280
 
281
            return true;
282
 
283
        } else if (
284
                connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.DISCONNECTED ||
285
                        connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.DISCONNECTED  ) {
286
            return false;
287
        }
288
        return false;
289
    }
290
}