Subversion Repositories SmartDukaan

Rev

Rev 14792 | Rev 16278 | Go to most recent revision | Details | Compare with Previous | 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.graphics.Paint;
12
import android.net.Uri;
13
import android.os.AsyncTask;
14
import android.os.Bundle;
15
import android.app.Fragment;
16
import android.text.TextUtils;
17
import android.util.Base64;
18
import android.util.Log;
19
import android.view.KeyEvent;
20
import android.view.LayoutInflater;
21
import android.view.View;
22
import android.view.ViewGroup;
23
import android.webkit.JavascriptInterface;
24
import android.webkit.WebView;
25
import android.webkit.WebViewClient;
26
import android.widget.AdapterView;
27
import android.widget.ArrayAdapter;
28
import android.widget.Button;
29
import android.widget.EditText;
30
import android.widget.LinearLayout;
31
import android.widget.Spinner;
32
import android.widget.TextView;
33
import android.widget.Toast;
34
 
35
import com.saholic.profittill.Constants.ProfitTillConstants;
36
import com.saholic.profittill.R;
37
import com.testin.agent.TestinAgent;
38
 
39
import org.apache.http.HttpEntity;
40
import org.apache.http.HttpResponse;
41
import org.apache.http.NameValuePair;
42
import org.apache.http.client.ClientProtocolException;
43
import org.apache.http.client.HttpClient;
44
import org.apache.http.client.entity.UrlEncodedFormEntity;
45
import org.apache.http.client.methods.HttpPost;
46
import org.apache.http.entity.StringEntity;
47
import org.apache.http.impl.client.DefaultHttpClient;
48
import org.apache.http.message.BasicNameValuePair;
49
import org.json.JSONArray;
50
import org.json.JSONException;
51
import org.json.JSONObject;
52
 
53
import java.io.BufferedReader;
54
import java.io.IOException;
55
import java.io.InputStream;
56
import java.io.InputStreamReader;
57
import java.text.SimpleDateFormat;
58
import java.util.ArrayList;
59
import java.util.Calendar;
60
import java.util.Date;
61
import java.util.StringTokenizer;
62
import java.util.regex.Matcher;
63
import java.util.regex.Pattern;
64
 
65
public class ContactUsFragment extends Fragment {
66
    ArrayList<NameValuePair> contactusNameValuePair;
67
    SharedPreferences userData;
68
    SharedPreferences apiData;
69
    SharedPreferences.Editor userDataEditor;
70
    SharedPreferences.Editor apiSettingsEditor;
71
    EditText emailId,content;
72
    Button submit;
73
    TextView contactUsNumber,tapToCall;
74
    String subject="";
75
    EditText otherContent;
76
    @Override
77
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
78
                             Bundle savedInstanceState) {
79
 
80
        View rootView = inflater.inflate(R.layout.fragment_contact_us, container, false);
81
        TestinAgent.init(getActivity());
82
        userData = getActivity().getSharedPreferences("User_Data", Context.MODE_PRIVATE);
83
        apiData = getActivity().getSharedPreferences("API_Data", Context.MODE_PRIVATE);
84
        userDataEditor = userData.edit();
85
        apiSettingsEditor = apiData.edit();
86
        TestinAgent.setUserInfo(userData.getString("id",""));
87
        otherContent=(EditText) rootView.findViewById(R.id.otherSubjectContent);
88
        emailId =(EditText) rootView.findViewById(R.id.contactUsEmailId);
89
        emailId.setText(userData.getString("email","Email"));
90
        emailId.setKeyListener(null);
91
        final ArrayList<String> issueList = new ArrayList<String>();
92
        String issues =apiData.getString("contactus.issues","");
93
        StringTokenizer st2 = new StringTokenizer(issues, "|");
94
        issueList.add("---Select Issue---");
95
        while (st2.hasMoreElements()) {
96
            issueList.add(st2.nextToken());
97
        }
98
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
99
                android.R.layout.simple_spinner_item, issueList);
100
 
101
        final Spinner spinYear = (Spinner)rootView.findViewById(R.id.contactUsSubject);
102
        adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
103
        spinYear.setAdapter(adapter);
104
        content =(EditText) rootView.findViewById(R.id.contactUsContent);
105
        submit = (Button) rootView.findViewById(R.id.contactUsButton);
106
        contactUsNumber = (TextView) rootView.findViewById(R.id.contactUsNumber);
107
        contactUsNumber.setText("Call Us at " +apiData.getString("contactus.number","") + "   >");
108
        contactUsNumber.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG);
109
 
110
        spinYear.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
111
            @Override
112
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
113
                    subject=spinYear.getSelectedItem().toString();
114
 
115
                    if(position==(issueList.size()-1)){
116
                        otherContent.setVisibility(View.VISIBLE);
117
 
118
                    }
119
                    else{
120
                        otherContent.setVisibility(View.GONE);
121
                    }
122
 
123
            }
124
 
125
            @Override
126
            public void onNothingSelected(AdapterView<?> parent) {
127
 
128
            }
129
        });
130
        contactUsNumber.setOnClickListener(new View.OnClickListener() {
131
            @Override
132
            public void onClick(View v) {
133
                Calendar cal = Calendar.getInstance();
134
                cal.getTime();
135
                SimpleDateFormat sdf = new SimpleDateFormat("HH");
136
                int currentHour = Integer.parseInt(sdf.format(cal.getTime()));
137
                int timeFrom = Integer.parseInt(apiData.getString("contactus.time.from", "").split(" ")[0]);
138
                int timeTo = Integer.parseInt(apiData.getString("contactus.time.to", "").split(" ")[0]);
139
                if (currentHour > timeTo || currentHour < timeFrom) {
140
                    Toast.makeText(getActivity(),"Sorry not the correct time to contact us. Please contact us between "+apiData.getString("contactus.time.from", "") + " to "+ apiData.getString("contactus.time.to", "") ,Toast.LENGTH_SHORT).show();
141
                } else {
142
                    new AlertDialog.Builder(getActivity())
143
                            .setTitle("Call us")
144
                            .setMessage("Our customer care people are available from " + apiData.getString("contactus.time.from","") + " to " + apiData.getString("contactus.time.to",""))
145
                            .setPositiveButton("Call", new DialogInterface.OnClickListener() {
146
                                @Override
147
                                public void onClick(DialogInterface dialog, int which) {
148
                                    Intent callIntent = new Intent(Intent.ACTION_CALL);
149
                                    callIntent.setData(Uri.parse("tel:0" + apiData.getString("contactus.number", "")));
150
                                    startActivity(callIntent);
151
                                }
152
 
153
                            })
154
                            .setNegativeButton("Cancel", null)
155
                            .show();
156
                }
157
            }
158
        });
159
        submit.setOnClickListener(new View.OnClickListener() {
160
            @Override
161
            public void onClick(View v) {
162
                if(subject.contains("Other")) {
163
                    subject = otherContent.getText().toString();
164
                }
165
                if(TextUtils.isEmpty(emailId.getText().toString())){
166
                    Toast.makeText(getActivity(),"Please enter a email id.",Toast.LENGTH_SHORT).show();
167
                }
168
                else if(TextUtils.isEmpty(subject) || subject.contains("Select")){
169
                    Toast.makeText(getActivity(),"Please enter a subject.",Toast.LENGTH_SHORT).show();
170
                }
171
                else if(TextUtils.isEmpty(content.getText().toString())){
172
                    Toast.makeText(getActivity(),"Please enter the message details.",Toast.LENGTH_SHORT).show();
173
                }
174
                else{
175
                    Pattern pattern;
176
                    Matcher matcher;
177
                    pattern = Pattern.compile(ProfitTillConstants.EMAIL_PATTERN);
178
                    matcher = pattern.matcher(emailId.getText().toString());
179
                    if( matcher.matches()){
14991 manas 180
                        showProgressDialog();
14792 manas 181
                        contactusNameValuePair = new ArrayList<NameValuePair>();
182
                        contactusNameValuePair.add(new BasicNameValuePair("user_id",userData.getString("id","")));
183
                        contactusNameValuePair.add(new BasicNameValuePair("email",emailId.getText().toString()));
184
                        contactusNameValuePair.add(new BasicNameValuePair("subject",subject));
185
                        contactusNameValuePair.add(new BasicNameValuePair("message",content.getText().toString()));
186
                        new loadData().execute();
187
                    }
188
                    else{
189
                        Toast.makeText(getActivity(),"Please enter a valid email id",Toast.LENGTH_SHORT).show();
190
                    }
191
                }
192
            }
193
        });
194
        /*getView().setOnKeyListener(new View.OnKeyListener() {
195
            @Override
196
            public boolean onKey(View v, int keyCode, KeyEvent event) {
197
                if (event.getAction() == KeyEvent.ACTION_DOWN) {
198
                    switch (keyCode) {
199
                        case KeyEvent.KEYCODE_BACK:
200
                            break;
201
                    }
202
                }
203
 
204
                return false;
205
            }
206
        });*/
207
        return rootView;
208
    }
209
 
210
    @Override
211
    public void onResume() {
212
        super.onResume();
213
        getView().setFocusableInTouchMode(true);
214
        getView().requestFocus();
215
        getView().setOnKeyListener(new View.OnKeyListener() {
216
            @Override
217
            public boolean onKey(View v, int keyCode, KeyEvent event) {
218
 
219
                if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK){
220
                    Intent i = new Intent(getActivity(), MainActivity.class);
221
                    i.putExtra("displayView", "0");
222
                    startActivity(i);
223
                    return true;
224
                }
225
                return false;
226
            }
227
        });
228
    }
229
 
230
    @Override
231
    public void onViewCreated(View view, Bundle savedInstanceState) {
232
 
233
        super.onViewCreated(view, savedInstanceState);
234
    }
14991 manas 235
    ProgressDialog pDlg;
14792 manas 236
    class loadData extends AsyncTask<String, Integer, String> {
237
        private StringBuilder sb;
238
 
239
        private HttpResponse req;
240
        private InputStream is;
241
 
242
        @Override
243
        protected void onPreExecute() {
244
            super.onPreExecute();
245
            Log.e("Pre execute", "Pre execute");
246
        }
247
 
248
        @Override
249
        protected String doInBackground(String... arg0) {
250
            try {
251
                HttpClient httpclient = new DefaultHttpClient();
252
                HttpPost httppost = new HttpPost(apiData.getString("feedback.push.api",null));
253
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
254
                httppost.setEntity(new UrlEncodedFormEntity(contactusNameValuePair));
255
                HttpResponse response = httpclient.execute(httppost);
256
                HttpEntity entity = response.getEntity();
257
                is = entity.getContent();
258
                InputStreamReader ireader = new InputStreamReader(is);
259
                BufferedReader bf = new BufferedReader(ireader);
260
                sb = new StringBuilder();
261
                String line = null;
262
                while ((line = bf.readLine()) != null) {
263
                    sb.append(line);
264
                }
265
            } catch (Exception e) {
266
            }
267
            return "success";
268
        }
269
 
270
        @Override
271
        protected void onPostExecute(String result) {
272
            super.onPostExecute(result);
14991 manas 273
            if(pDlg!=null){
274
                pDlg.dismiss();
275
            }
14792 manas 276
            Intent i = new Intent(getActivity(),MainActivity.class);
277
            i.putExtra("displayView","0");
278
            startActivity(i);
279
 
280
        }
281
    }
14991 manas 282
    private void showProgressDialog()
283
    {
284
        pDlg = new ProgressDialog(getActivity());
285
        pDlg.setMessage("Submitting your feedback");
286
        pDlg.setProgressStyle(ProgressDialog.STYLE_SPINNER);
287
        pDlg.setCancelable(false);
288
        pDlg.show();
14792 manas 289
 
14991 manas 290
    }
14792 manas 291
}