Subversion Repositories SmartDukaan

Rev

Rev 14991 | Go to most recent revision | 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.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()){
180
                        contactusNameValuePair = new ArrayList<NameValuePair>();
181
                        contactusNameValuePair.add(new BasicNameValuePair("user_id",userData.getString("id","")));
182
                        contactusNameValuePair.add(new BasicNameValuePair("email",emailId.getText().toString()));
183
                        contactusNameValuePair.add(new BasicNameValuePair("subject",subject));
184
                        contactusNameValuePair.add(new BasicNameValuePair("message",content.getText().toString()));
185
                        new loadData().execute();
186
                    }
187
                    else{
188
                        Toast.makeText(getActivity(),"Please enter a valid email id",Toast.LENGTH_SHORT).show();
189
                    }
190
                }
191
            }
192
        });
193
        /*getView().setOnKeyListener(new View.OnKeyListener() {
194
            @Override
195
            public boolean onKey(View v, int keyCode, KeyEvent event) {
196
                if (event.getAction() == KeyEvent.ACTION_DOWN) {
197
                    switch (keyCode) {
198
                        case KeyEvent.KEYCODE_BACK:
199
                            break;
200
                    }
201
                }
202
 
203
                return false;
204
            }
205
        });*/
206
        return rootView;
207
    }
208
 
209
    @Override
210
    public void onResume() {
211
        super.onResume();
212
        getView().setFocusableInTouchMode(true);
213
        getView().requestFocus();
214
        getView().setOnKeyListener(new View.OnKeyListener() {
215
            @Override
216
            public boolean onKey(View v, int keyCode, KeyEvent event) {
217
 
218
                if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK){
219
                    Intent i = new Intent(getActivity(), MainActivity.class);
220
                    i.putExtra("displayView", "0");
221
                    startActivity(i);
222
                    return true;
223
                }
224
                return false;
225
            }
226
        });
227
    }
228
 
229
    @Override
230
    public void onViewCreated(View view, Bundle savedInstanceState) {
231
 
232
        super.onViewCreated(view, savedInstanceState);
233
    }
234
 
235
    class loadData extends AsyncTask<String, Integer, String> {
236
        private StringBuilder sb;
237
 
238
        private HttpResponse req;
239
        private InputStream is;
240
 
241
        @Override
242
        protected void onPreExecute() {
243
            super.onPreExecute();
244
            Log.e("Pre execute", "Pre execute");
245
        }
246
 
247
        @Override
248
        protected String doInBackground(String... arg0) {
249
            try {
250
                HttpClient httpclient = new DefaultHttpClient();
251
                HttpPost httppost = new HttpPost(apiData.getString("feedback.push.api",null));
252
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
253
                httppost.setEntity(new UrlEncodedFormEntity(contactusNameValuePair));
254
                HttpResponse response = httpclient.execute(httppost);
255
                HttpEntity entity = response.getEntity();
256
                is = entity.getContent();
257
                InputStreamReader ireader = new InputStreamReader(is);
258
                BufferedReader bf = new BufferedReader(ireader);
259
                sb = new StringBuilder();
260
                String line = null;
261
                while ((line = bf.readLine()) != null) {
262
                    sb.append(line);
263
                }
264
            } catch (Exception e) {
265
            }
266
            return "success";
267
        }
268
 
269
        @Override
270
        protected void onPostExecute(String result) {
271
            super.onPostExecute(result);
272
            Intent i = new Intent(getActivity(),MainActivity.class);
273
            i.putExtra("displayView","0");
274
            startActivity(i);
275
 
276
        }
277
    }
278
 
279
}