Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

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