Subversion Repositories SmartDukaan

Rev

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