Subversion Repositories SmartDukaan

Rev

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