Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package com.saholic.profittill.main;import android.app.Activity;import android.app.AlertDialog;import android.app.ProgressDialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.content.SharedPreferences;import android.graphics.Bitmap;import android.net.ConnectivityManager;import android.net.Uri;import android.os.AsyncTask;import android.os.Bundle;import android.app.Fragment;import android.util.Log;import android.view.KeyEvent;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.webkit.HttpAuthHandler;import android.webkit.JavascriptInterface;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.TextView;import android.widget.Toast;import com.google.android.gms.analytics.HitBuilders;import com.google.android.gms.analytics.Tracker;import com.mixpanel.android.mpmetrics.MixpanelAPI;import com.saholic.profittill.Constants.ProfitTillConstants;import com.saholic.profittill.R;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpPost;import org.apache.http.entity.StringEntity;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.StringTokenizer;public class AboutUsFragment extends Fragment {WebView aboutUsWebView;SharedPreferences userData;SharedPreferences apiData;SharedPreferences.Editor userDataEditor;SharedPreferences.Editor apiSettingsEditor;TextView howItWorksLink;public AboutUsFragment() {}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// Inflate the layout for this fragmentView rootView = inflater.inflate(R.layout.fragment_about_us, container, false);userData = getActivity().getSharedPreferences("User_Data", Context.MODE_PRIVATE);apiData = getActivity().getSharedPreferences("API_Data", Context.MODE_PRIVATE);userDataEditor = userData.edit();apiSettingsEditor = apiData.edit();String url = apiData.getString("aboutus.url",null);String id = userData.getString("id",null);String landingUrl=url + "?user_id=" + id;Tracker t = ((GoogleAnalyticsTracker) getActivity().getApplicationContext()).getTracker(GoogleAnalyticsTracker.TrackerName.APP_TRACKER);t.setScreenName("About us Screen");t.send(new HitBuilders.ScreenViewBuilder().build());if(isInternetOn()) {WebClientClass webViewClient = new WebClientClass();aboutUsWebView = (WebView) rootView.findViewById(R.id.aboutUsWebView);aboutUsWebView.setClickable(true);aboutUsWebView.setFocusableInTouchMode(true);aboutUsWebView.getSettings().setJavaScriptEnabled(true);aboutUsWebView.loadUrl(landingUrl);aboutUsWebView.setWebViewClient(webViewClient);}else{SearchFragment nextFrag= new SearchFragment();Bundle args = new Bundle();args.putString("finishingurl", landingUrl);args.putString("fragmentNumber", "16");nextFrag.setArguments(args);getActivity().getFragmentManager().beginTransaction().replace(R.id.frame_container, nextFrag).addToBackStack(null).commit();}return rootView;}@Overridepublic void onResume() {super.onResume();getView().setFocusableInTouchMode(true);getView().requestFocus();getView().setOnKeyListener(new View.OnKeyListener() {@Overridepublic boolean onKey(View v, int keyCode, KeyEvent event) {if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK){Intent i = new Intent(getActivity(), MainActivity.class);i.putExtra("displayView", "0");startActivity(i);return true;}return false;}});}@Overridepublic void onViewCreated(View view, Bundle savedInstanceState) {super.onViewCreated(view, savedInstanceState);}JSONObject obj;public class WebClientClass extends WebViewClient {/* ProgressDialog pd = null;*/@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {/* pd = new ProgressDialog(getActivity());pd.setTitle("Please wait");pd.setMessage("Page is loading..");pd.show();*/super.onPageStarted(view, url, favicon);obj = new JSONObject();try {JSONObject j = new JSONObject();JSONArray jsArray = new JSONArray();j.put("url",url);j.put("user_id",userData.getString("id",null));j.put("time", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));jsArray.put(j);obj.put("pushdata",jsArray);} catch (JSONException e) {e.printStackTrace();}new pushData().execute();}@Overridepublic void onReceivedHttpAuthRequest(WebView view,HttpAuthHandler handler, String host, String realm) {handler.proceed("dtr", "dtr18Feb2015");}@Overridepublic void onPageFinished(WebView view, String url) {super.onPageFinished(view, url);/* pd.dismiss();*//* view.setOnKeyListener(new View.OnKeyListener(){@Overridepublic boolean onKey(View v, int keyCode, KeyEvent event){if(event.getAction() == KeyEvent.ACTION_DOWN){WebView webView = (WebView) v;switch(keyCode){case KeyEvent.KEYCODE_BACK:if(webView.canGoBack() && !webView.getUrl().contains(apiData.getString("mobile.website.url",null))){webView.goBack();return true;}else{new AlertDialog.Builder(getActivity()).setIcon(R.drawable.pmnavigation).setTitle("Exit!").setMessage("Are you sure you want to close?").setPositiveButton("Yes", new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {Intent startMain = new Intent(Intent.ACTION_MAIN);startMain.addCategory(Intent.CATEGORY_HOME);startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(startMain);}}).setNegativeButton("No", null).show();DealsHomeFragment nextFrag= new DealsHomeFragment();getActivity().getFragmentManager().beginTransaction().replace(R.id.frame_container, nextFrag,"Mike").addToBackStack(null).commit();startActivity(new Intent(getActivity(),MainActivity.class));}break;}}return false;}});*/}}class pushData extends AsyncTask<String, Integer, String> {@Overrideprotected void onPreExecute() {super.onPreExecute();Log.e("Push Service", "Pre execute");}@Overrideprotected String doInBackground(String... arg0) {HttpClient httpclient = new DefaultHttpClient();try {ArrayList<NameValuePair> nameValuePairs = new ArrayList<>();nameValuePairs.add(new BasicNameValuePair("pushdata",obj.toString()));HttpPost httppost = new HttpPost(apiData.getString("url.push.api",null));httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));System.out.println(obj.toString());StringEntity se = new StringEntity(obj.toString());HttpResponse response = httpclient.execute(httppost);int status = response.getStatusLine().getStatusCode();if(status == 200){System.out.println("ResponseCode of record: "+ status + " is " + status);return "success";} else {Log.d("ResponseCode",status+"");System.out.println(" NOT Transfered");return "failure";}} catch (ClientProtocolException e) {return "failure";} catch (IOException e) {return "failure";}}@Overrideprotected void onPostExecute(String result) {super.onPostExecute(result);}}public final boolean isInternetOn() {ConnectivityManager connec =(ConnectivityManager)getActivity().getSystemService(getActivity().getBaseContext().CONNECTIVITY_SERVICE);if ( connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTED ||connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTING ||connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTING ||connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTED ) {return true;} else if (connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.DISCONNECTED ||connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.DISCONNECTED ) {return false;}return false;}}