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.Uri;
12
import android.os.AsyncTask;
13
import android.os.Bundle;
14
import android.app.Fragment;
15
import android.util.Log;
16
import android.view.KeyEvent;
17
import android.view.LayoutInflater;
18
import android.view.View;
19
import android.view.ViewGroup;
20
import android.webkit.HttpAuthHandler;
21
import android.webkit.WebView;
22
import android.webkit.WebViewClient;
23
 
24
import com.saholic.profittill.R;
25
 
26
import org.apache.http.HttpResponse;
27
import org.apache.http.NameValuePair;
28
import org.apache.http.client.ClientProtocolException;
29
import org.apache.http.client.HttpClient;
30
import org.apache.http.client.entity.UrlEncodedFormEntity;
31
import org.apache.http.client.methods.HttpPost;
32
import org.apache.http.entity.StringEntity;
33
import org.apache.http.impl.client.DefaultHttpClient;
34
import org.apache.http.message.BasicNameValuePair;
35
import org.json.JSONArray;
36
import org.json.JSONException;
37
import org.json.JSONObject;
38
 
39
import java.io.IOException;
40
import java.text.SimpleDateFormat;
41
import java.util.ArrayList;
42
import java.util.Date;
43
 
44
 
45
public class MyFavorites extends Fragment {
46
    WebView myFavoritesWebView;
47
    SharedPreferences userData;
48
    SharedPreferences apiData;
49
    SharedPreferences.Editor userDataEditor;
50
    SharedPreferences.Editor apiSettingsEditor;
51
 
52
    public MyFavorites() {
53
 
54
    }
55
 
56
 
57
    @Override
58
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
59
                             Bundle savedInstanceState) {
60
        // Inflate the layout for this fragment
61
        View rootView = inflater.inflate(R.layout.fragment_my_favorites, container, false);
62
 
63
        userData = getActivity().getSharedPreferences("User_Data", Context.MODE_PRIVATE);
64
        apiData = getActivity().getSharedPreferences("API_Data", Context.MODE_PRIVATE);
65
        userDataEditor = userData.edit();
66
        apiSettingsEditor = apiData.edit();
67
 
68
        String url = apiData.getString("myfavourite.url",null);
69
        String id = userData.getString("id",null);
70
 
71
        WebClientClass webViewClient = new WebClientClass();
72
        myFavoritesWebView  = (WebView)rootView.findViewById(R.id.myFavoritesWebView);
73
        myFavoritesWebView.setClickable(true);
74
        myFavoritesWebView.setFocusableInTouchMode(true);
75
        myFavoritesWebView.getSettings().setJavaScriptEnabled(true);
76
        myFavoritesWebView.loadUrl(url+"?user_id="+id);
77
        myFavoritesWebView.setWebViewClient(webViewClient);
78
        return rootView;
79
 
80
    }
81
 
82
    @Override
83
    public void onViewCreated(View view, Bundle savedInstanceState) {
84
        super.onViewCreated(view, savedInstanceState);
85
    }
86
 
87
    JSONObject obj;
88
    public class WebClientClass extends WebViewClient {
89
        ProgressDialog pd = null;
90
 
91
        @Override
92
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
93
            pd = new ProgressDialog(getActivity());
94
            pd.setTitle("Please wait");
95
            pd.setMessage("Page is loading..");
96
            pd.show();
97
            super.onPageStarted(view, url, favicon);
98
            obj = new JSONObject();
99
 
100
            try {
101
                JSONObject j = new JSONObject();
102
                JSONArray jsArray = new JSONArray();
103
                j.put("url",url);
104
                j.put("user_id",userData.getString("id",null));
105
                j.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
106
                jsArray.put(j);
107
                obj.put("pushdata",jsArray);
108
            } catch (JSONException e) {
109
                e.printStackTrace();
110
            }
111
            new pushData().execute();
112
 
113
        }
114
        @Override
115
        public void onPageFinished(WebView view, String url) {
116
            pd.dismiss();
117
 
118
            view.setOnKeyListener(new View.OnKeyListener()
119
            {
120
                @Override
121
                public boolean onKey(View v, int keyCode, KeyEvent event)
122
                {
123
                    if(event.getAction() == KeyEvent.ACTION_DOWN)
124
                    {
125
                        WebView webView = (WebView) v;
126
 
127
                        switch(keyCode)
128
                        {
129
                            case KeyEvent.KEYCODE_BACK:
130
                                if(webView.canGoBack() && !webView.getUrl().contains(apiData.getString("mobile.website.url",null)))
131
                                {
132
                                    webView.goBack();
133
                                    return true;
134
                                }
135
                                else{
136
                                    Intent i = new Intent(getActivity(),MainActivity.class);
137
                                    i.putExtra("displayView","0");
138
                                    startActivity(i);
139
                                }
140
                                break;
141
                        }
142
                    }
143
 
144
                    return false;
145
                }
146
            });
147
            super.onPageFinished(view, url);
148
        }
149
        @Override
150
        public void onReceivedHttpAuthRequest(WebView view,
151
                                              HttpAuthHandler handler, String host, String realm) {
152
 
153
            handler.proceed("dtr", "dtr18Feb2015");
154
 
155
        }
156
    }
157
 
158
    @Override
159
    public void onResume() {
160
        super.onResume();
161
        getView().setFocusableInTouchMode(true);
162
        getView().requestFocus();
163
        getView().setOnKeyListener(new View.OnKeyListener() {
164
            @Override
165
            public boolean onKey(View v, int keyCode, KeyEvent event) {
166
 
167
                if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK){
168
                    Intent i = new Intent(getActivity(), MainActivity.class);
169
                    i.putExtra("displayView", "0");
170
                    startActivity(i);
171
                    return true;
172
 
173
                }
174
                return false;
175
            }
176
        });
177
    }
178
    class pushData extends AsyncTask<String, Integer, String> {
179
 
180
        @Override
181
        protected void onPreExecute() {
182
            super.onPreExecute();
183
            Log.e("Push Service", "Pre execute");
184
        }
185
 
186
        @Override
187
        protected String doInBackground(String... arg0) {
188
            HttpClient httpclient = new DefaultHttpClient();
189
            try {
190
 
191
                ArrayList<NameValuePair> nameValuePairs = new ArrayList<>();
192
                nameValuePairs.add(new BasicNameValuePair("pushdata",obj.toString()));
193
                HttpPost httppost = new HttpPost(apiData.getString("url.push.api",null));
194
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
195
                System.out.println(obj.toString());
196
                StringEntity se = new StringEntity(obj.toString());
197
                HttpResponse response = httpclient.execute(httppost);
198
                int status = response.getStatusLine().getStatusCode();
199
 
200
                if(status == 200){
201
                    System.out.println("ResponseCode of record: "+ status + " is " + status);
202
                    return "success";
203
                } else {
204
                    Log.d("ResponseCode",status+"");
205
                    System.out.println(" NOT Transfered");
206
                    return "failure";
207
                }
208
 
209
            } catch (ClientProtocolException e) {
210
                return "failure";
211
            } catch (IOException e) {
212
                return "failure";
213
            }
214
        }
215
 
216
        @Override
217
        protected void onPostExecute(String result) {
218
            super.onPostExecute(result);
219
 
220
        }
221
    }
222
 
223
}