|
|
@@ -1,1726 +0,0 @@
|
|
|
-package com.usai.apex;
|
|
|
-
|
|
|
-import android.animation.Animator;
|
|
|
-import android.animation.AnimatorListenerAdapter;
|
|
|
-import android.app.AlertDialog;
|
|
|
-import android.app.ProgressDialog;
|
|
|
-import android.content.ClipboardManager;
|
|
|
-import android.content.Context;
|
|
|
-import android.content.DialogInterface;
|
|
|
-import android.content.Intent;
|
|
|
-import android.database.Cursor;
|
|
|
-import android.graphics.Bitmap;
|
|
|
-import android.graphics.Color;
|
|
|
-import android.net.Uri;
|
|
|
-import android.os.AsyncTask;
|
|
|
-import android.os.Build;
|
|
|
-import android.os.Bundle;
|
|
|
-import android.provider.ContactsContract;
|
|
|
-import android.support.constraint.ConstraintLayout;
|
|
|
-import android.support.v4.app.Fragment;
|
|
|
-import android.text.Editable;
|
|
|
-import android.text.Html;
|
|
|
-import android.text.TextWatcher;
|
|
|
-import android.util.Log;
|
|
|
-import android.util.SparseIntArray;
|
|
|
-import android.view.GestureDetector;
|
|
|
-import android.view.Gravity;
|
|
|
-import android.view.LayoutInflater;
|
|
|
-import android.view.MotionEvent;
|
|
|
-import android.view.View;
|
|
|
-import android.view.View.OnClickListener;
|
|
|
-import android.view.ViewGroup;
|
|
|
-import android.webkit.WebResourceRequest;
|
|
|
-import android.webkit.WebResourceResponse;
|
|
|
-import android.webkit.WebView;
|
|
|
-import android.webkit.WebViewClient;
|
|
|
-import android.widget.Button;
|
|
|
-import android.widget.EditText;
|
|
|
-import android.widget.ImageButton;
|
|
|
-import android.widget.ImageView;
|
|
|
-import android.widget.LinearLayout;
|
|
|
-import android.widget.RelativeLayout;
|
|
|
-import android.widget.ScrollView;
|
|
|
-import android.widget.TextView;
|
|
|
-import android.widget.Toast;
|
|
|
-
|
|
|
-import com.usai.apex.ShipMap.ShipMap;
|
|
|
-import com.usai.apex.mainframe.NewDetailActivity;
|
|
|
-import com.usai.apex.pdf.PDFPreviewActivity;
|
|
|
-import com.usai.util.Network;
|
|
|
-import com.usai.util.RAUtil;
|
|
|
-import com.usai.util.commonUtil;
|
|
|
-
|
|
|
-import org.apache.http.util.EncodingUtils;
|
|
|
-import org.json.JSONException;
|
|
|
-import org.json.JSONObject;
|
|
|
-
|
|
|
-import java.io.ByteArrayInputStream;
|
|
|
-import java.io.File;
|
|
|
-import java.io.InputStream;
|
|
|
-import java.util.regex.Pattern;
|
|
|
-
|
|
|
-public class DetailFragment extends Fragment implements OnClickListener, ShipMap.ShipMapListener /*
|
|
|
- * ,
|
|
|
- * OnGestureListener
|
|
|
- */
|
|
|
-{
|
|
|
-
|
|
|
- private static final int People_Pick_Code = 1357;
|
|
|
-
|
|
|
- private String copiedKey;
|
|
|
- private String copiedVal;
|
|
|
- private View touchedView;
|
|
|
-
|
|
|
- @Override
|
|
|
- public void shipMapTryToZoomIn(ShipMap shipMap, boolean zoomIn) {
|
|
|
-
|
|
|
- if (zoomIn) {
|
|
|
-
|
|
|
- LinearLayout.LayoutParams lfLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 0);
|
|
|
- mDetailContainer.setLayoutParams(lfLayoutParams);
|
|
|
-
|
|
|
- } else {
|
|
|
-
|
|
|
- LinearLayout.LayoutParams lfLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 0,2.0f);
|
|
|
- mDetailContainer.setLayoutParams(lfLayoutParams);
|
|
|
- }
|
|
|
-
|
|
|
- mMapZoomIn = zoomIn;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- private class GestureListener extends GestureDetector.SimpleOnGestureListener {
|
|
|
-
|
|
|
- @Override
|
|
|
- public boolean onDoubleTapEvent(MotionEvent e) {
|
|
|
-
|
|
|
-
|
|
|
- if (e.getAction() == MotionEvent.ACTION_UP) {
|
|
|
-
|
|
|
- if (touchedView == null) {
|
|
|
-
|
|
|
- ClipboardManager cm = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
|
|
|
- cm.setText(copiedVal);
|
|
|
-
|
|
|
- Toast.makeText(mContext, "Copied " + copiedKey, Toast.LENGTH_LONG).show();
|
|
|
- } else {
|
|
|
-
|
|
|
- String type = (String) touchedView.getTag();
|
|
|
- if (type.equals("tracking")) {
|
|
|
-
|
|
|
- TextView tvgroup = (TextView) touchedView.findViewById(R.id.tv_group);
|
|
|
-
|
|
|
- if (tvgroup != null) {
|
|
|
-
|
|
|
- String val = tvgroup.getText().toString();
|
|
|
- ClipboardManager cm = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
|
|
|
- cm.setText(val);
|
|
|
-
|
|
|
- Toast.makeText(mContext, "Copied " + val, Toast.LENGTH_LONG).show();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- copiedKey = null;
|
|
|
- copiedVal = null;
|
|
|
- touchedView = null;
|
|
|
-
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public boolean onSingleTapConfirmed(MotionEvent e) {
|
|
|
-
|
|
|
- if (touchedView != null) {
|
|
|
- onClick(touchedView);
|
|
|
- }
|
|
|
- touchedView = null;
|
|
|
-
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private static final int REQUEST_LOGINACTIVITY = 1;
|
|
|
-
|
|
|
- // DataFragment mdataFragment;
|
|
|
-
|
|
|
- Context mContext;
|
|
|
- ProgressDialog progressDialog;
|
|
|
- private GestureDetector detector;
|
|
|
-
|
|
|
- protected void showProgressDialog(final String title, final String msg) {
|
|
|
-
|
|
|
- getActivity().runOnUiThread(new Runnable() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
- try {
|
|
|
- progressDialog.setTitle(title);
|
|
|
- progressDialog.setMessage(msg);
|
|
|
- progressDialog.show();
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- /* private GestureDetector mGestureDetector; */
|
|
|
- @Override
|
|
|
- public void onCreate(Bundle savedInstanceState)
|
|
|
- {
|
|
|
- // TODO Auto-generated method stub
|
|
|
- super.onCreate(savedInstanceState);
|
|
|
-
|
|
|
- if (progressDialog == null) {
|
|
|
- progressDialog = new ProgressDialog(mContext);
|
|
|
- progressDialog.setCancelable(false);
|
|
|
- }
|
|
|
-
|
|
|
- if (detector == null) {
|
|
|
- detector = new GestureDetector(mContext, new GestureListener());
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-// @Override
|
|
|
-// public void onActivityCreated(@Nullable Bundle savedInstanceState) {
|
|
|
-// super.onActivityCreated(savedInstanceState);
|
|
|
-//
|
|
|
-// progressDialog = new ProgressDialog(mContext);
|
|
|
-// progressDialog.setCancelable(false);
|
|
|
-// }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onAttach(Context context) {
|
|
|
- super.onAttach(context);
|
|
|
- mContext = context;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onDestroyView()
|
|
|
- {
|
|
|
- Log.d("DetailFragment", "onDestroyView()");
|
|
|
- super.onDestroyView();
|
|
|
- }
|
|
|
-
|
|
|
- // public String get_content()
|
|
|
- // {
|
|
|
- // return fragment_content;
|
|
|
- // }
|
|
|
-
|
|
|
- LinearLayout ll_root;
|
|
|
- ScrollView sl_root;
|
|
|
- String mimeType = "text/html";
|
|
|
- private SearchTask m_task = null;
|
|
|
- SparseIntArray control = new SparseIntArray();
|
|
|
- // private TextView mStatusMessageView;
|
|
|
- private View mStatusView;
|
|
|
-
|
|
|
- String fragment_content = null;
|
|
|
-
|
|
|
- public void requestdata()
|
|
|
- {
|
|
|
-
|
|
|
- if (m_task != null)
|
|
|
- {
|
|
|
- return;
|
|
|
- }
|
|
|
- if (fragment_content != null)
|
|
|
- {
|
|
|
- LayoutInflater inflater = (LayoutInflater) ApexTrackingApplication
|
|
|
- .get_instance().getSystemService(
|
|
|
- Context.LAYOUT_INFLATER_SERVICE);
|
|
|
- init(fragment_content, inflater);
|
|
|
- return;
|
|
|
- }
|
|
|
- // if (mdataFragment.get_result() != null) {
|
|
|
- // LayoutInflater inflater = (LayoutInflater) ApexTrackingApplication
|
|
|
- // .get_instance().getSystemService(
|
|
|
- // Context.LAYOUT_INFLATER_SERVICE);
|
|
|
- // init(mdataFragment.get_result(), inflater);
|
|
|
- // }
|
|
|
- // if (fragment_content != null)
|
|
|
- // return;
|
|
|
- // mStatusMessageView.setText("Loading");
|
|
|
- showProgress(true);
|
|
|
- m_task = new SearchTask();
|
|
|
- m_task.execute();
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- public void set_content(String content)
|
|
|
- {
|
|
|
- fragment_content = content;
|
|
|
- }
|
|
|
-
|
|
|
- private void showProgress(final boolean show)
|
|
|
- {
|
|
|
- // On Honeycomb MR2 we have the ViewPropertyAnimator APIs, which allow
|
|
|
- // for very easy animations. If available, use these APIs to fade-in
|
|
|
- // the progress spinner.
|
|
|
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2)
|
|
|
- {
|
|
|
- int shortAnimTime = ApexTrackingApplication.get_instance()
|
|
|
- .getResources()
|
|
|
- .getInteger(android.R.integer.config_shortAnimTime);
|
|
|
-
|
|
|
- mStatusView.setVisibility(View.VISIBLE);
|
|
|
- mStatusView.animate().setDuration(shortAnimTime)
|
|
|
- .alpha(show ? 1 : 0)
|
|
|
- .setListener(new AnimatorListenerAdapter()
|
|
|
- {
|
|
|
- @Override
|
|
|
- public void onAnimationEnd(Animator animation)
|
|
|
- {
|
|
|
- mStatusView.setVisibility(show ? View.VISIBLE
|
|
|
- : View.INVISIBLE);
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- ll_root.setVisibility(View.VISIBLE);
|
|
|
- ll_root.animate().setDuration(shortAnimTime).alpha(show ? 0 : 1)
|
|
|
- .setListener(new AnimatorListenerAdapter()
|
|
|
- {
|
|
|
- @Override
|
|
|
- public void onAnimationEnd(Animator animation)
|
|
|
- {
|
|
|
- ll_root.setVisibility(show ? View.INVISIBLE
|
|
|
- : View.VISIBLE);
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- // The ViewPropertyAnimator APIs are not available, so simply show
|
|
|
- // and hide the relevant UI components.
|
|
|
- mStatusView.setVisibility(show ? View.VISIBLE : View.INVISIBLE);
|
|
|
- ll_root.setVisibility(show ? View.INVISIBLE : View.VISIBLE);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // @Override
|
|
|
- // public void onActivityCreated(Bundle savedInstanceState)
|
|
|
- // {
|
|
|
- // FragmentManager fm = getFragmentManager();
|
|
|
- //
|
|
|
- // // Check to see if we have retained the worker fragment.
|
|
|
- // mdataFragment = (DataFragment)fm.findFragmentByTag("work");
|
|
|
- //
|
|
|
- // // If not retained (or first time running), we need to create it.
|
|
|
- // if (mdataFragment == null) {
|
|
|
- // mdataFragment = new DataFragment();
|
|
|
- // // Tell it who it is working with.
|
|
|
- // mdataFragment.setTargetFragment(this, 0);
|
|
|
- // fm.beginTransaction().add(mdataFragment, "work").commit();
|
|
|
- // }
|
|
|
- // super.onActivityCreated(savedInstanceState);
|
|
|
- // }
|
|
|
-
|
|
|
- private ShipMap mTrackingMap;
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onSaveInstanceState(Bundle outState) {
|
|
|
- super.onSaveInstanceState(outState);
|
|
|
-
|
|
|
- if (mContent != null) {
|
|
|
- outState.putString("content",mContent.toString());
|
|
|
- }
|
|
|
- outState.putInt("selectContactPosition",mSelectContactPosition);
|
|
|
- outState.putInt("selectTrackingPosition",mSelectTrackingPosition);
|
|
|
- outState.putInt("selectTrackingChild",mSelectTrackingChild);
|
|
|
- outState.putBoolean("mapZoomIn",mMapZoomIn);
|
|
|
- }
|
|
|
-
|
|
|
- private void configureMap(ShipMap map) {
|
|
|
- if (map == null) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- map.setShowCurrent(true);
|
|
|
- map.setShowDestination(true);
|
|
|
- map.setShowOrigin(true);
|
|
|
- map.setShowPor(true);
|
|
|
- map.setShowPoe(true);
|
|
|
- map.setShowPod(true);
|
|
|
- map.setShowPol(true);
|
|
|
-
|
|
|
- map.setShipMapListener(this);
|
|
|
- }
|
|
|
-
|
|
|
- private RelativeLayout mDetailContainer;
|
|
|
- private boolean mMapZoomIn = false;
|
|
|
-
|
|
|
- @Override
|
|
|
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
|
|
- Bundle savedInstanceState)
|
|
|
- {
|
|
|
-
|
|
|
-
|
|
|
- final Context context = getContext();
|
|
|
- /* mGestureDetector = new GestureDetector(this); */
|
|
|
-
|
|
|
- View view = null;
|
|
|
-
|
|
|
- if(this.getArguments().getString("action_type").equals("Tracing")||this.getArguments().getString("action_type").equals("Tracking")) {
|
|
|
- view = inflater.inflate(R.layout.detail_fragment_withmap, null);
|
|
|
- mTrackingMap = view.findViewById(R.id.tracking_map);
|
|
|
- configureMap(mTrackingMap);
|
|
|
- mDetailContainer = view.findViewById(R.id.detail_list_container);
|
|
|
- } else {
|
|
|
- view = inflater.inflate(R.layout.detail_fragment, null);
|
|
|
- mTrackingMap = null;
|
|
|
- }
|
|
|
-
|
|
|
- if (savedInstanceState != null) {
|
|
|
- fragment_content = savedInstanceState.getString("content");
|
|
|
- mSelectContactPosition = savedInstanceState.getInt("selectContactPosition");
|
|
|
- mSelectTrackingPosition = savedInstanceState.getInt("selectTrackingPosition");
|
|
|
- mSelectTrackingChild = savedInstanceState.getInt("selectTrackingChild");
|
|
|
- mMapZoomIn = savedInstanceState.getBoolean("mapZoomIn");
|
|
|
- }
|
|
|
-
|
|
|
- if (mTrackingMap != null) {
|
|
|
- mTrackingMap.setZoomIn(mMapZoomIn);
|
|
|
- }
|
|
|
-
|
|
|
-// if(this.getArguments().getString("action_type").equals("Tracing"))
|
|
|
-// {
|
|
|
-// LinearLayout ll1 = view.findViewById(R.id.detail_linear);
|
|
|
-//
|
|
|
-// ShipMap shipMap = new ShipMap(context);
|
|
|
-//// mShipMap = shipMap;
|
|
|
-//
|
|
|
-//
|
|
|
-// LinearLayout.LayoutParams mapLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 0,1.0f);
|
|
|
-// mapLayoutParams.setMargins(commonUtil.dp2px(context,5),commonUtil.dp2px(context,2),commonUtil.dp2px(context,5),commonUtil.dp2px(context,2));
|
|
|
-//
|
|
|
-// ll1.addView(shipMap,mapLayoutParams);
|
|
|
-//
|
|
|
-// }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- sl_root = (ScrollView) view.findViewById(R.id.sl_root);
|
|
|
- /*
|
|
|
- * sl_root.setOnTouchListener(new View.OnTouchListener() {
|
|
|
- *
|
|
|
- * @Override public boolean onTouch(View v, MotionEvent event) { return
|
|
|
- * mGestureDetector.onTouchEvent(event); } });
|
|
|
- */
|
|
|
- ll_root = (LinearLayout) view.findViewById(R.id.ll_root);
|
|
|
- mStatusView = view.findViewById(R.id.status);
|
|
|
- LinearLayout ll = (LinearLayout) view.findViewById(R.id.ll_refresh);
|
|
|
- Button btn_refresh = (Button) ll.findViewById(R.id.btn_refresh);
|
|
|
- btn_refresh.setOnClickListener(new View.OnClickListener()
|
|
|
- {
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onClick(View v)
|
|
|
- {
|
|
|
- LinearLayout ll = (LinearLayout) ll_root
|
|
|
- .findViewById(R.id.ll_refresh);
|
|
|
- ll.setVisibility(View.GONE);
|
|
|
-
|
|
|
- requestdata();
|
|
|
-
|
|
|
- }
|
|
|
- });
|
|
|
- // FragmentManager fm = getFragmentManager();
|
|
|
- // List<Fragment> fragments = fm.getFragments();
|
|
|
- // if (fragments != null) {
|
|
|
- // Log.e("DetailFragment", "fragments count=" + fragments.size());
|
|
|
- // // for (int i = 0; i < fragments.size(); i++)
|
|
|
- // // Log.e("DetailFragment", "fragments name=" + fragments.size());
|
|
|
- //
|
|
|
- // }
|
|
|
- // // this.getFragmentManager();
|
|
|
- // String tag = getArguments().getString("module_name");
|
|
|
- // // Check to see if we have retained the worker fragment.
|
|
|
- // mdataFragment = (DataFragment) fm.findFragmentById(12345);
|
|
|
- //
|
|
|
- // // If not retained (or first time running), we need to create it.
|
|
|
- // if (mdataFragment == null) {
|
|
|
- // Log.e("dataFragment creaded ", "tag=data_" + tag);
|
|
|
- // mdataFragment = new DataFragment();
|
|
|
- // // Tell it who it is working with.
|
|
|
- // mdataFragment.setTargetFragment(this, 0);
|
|
|
- // fm.beginTransaction().add(12345,mdataFragment, "data+" +
|
|
|
- // tag).commit();
|
|
|
- // }
|
|
|
- requestdata();
|
|
|
- return view;
|
|
|
- }
|
|
|
-
|
|
|
- protected JSONObject loadfakecontent(int rawid)
|
|
|
- {
|
|
|
-
|
|
|
- String jstring = "";
|
|
|
- try
|
|
|
- {
|
|
|
- InputStream in = getResources().openRawResource(rawid);
|
|
|
- // 获取文件的字节数
|
|
|
- int lenght = in.available();
|
|
|
- // 创建byte数组
|
|
|
- byte[] buffer = new byte[lenght];
|
|
|
- // 将文件中的数据读到byte数组中
|
|
|
- in.read(buffer);
|
|
|
- jstring = EncodingUtils.getString(buffer, "UTF-8");
|
|
|
- JSONObject jsobj = new JSONObject(jstring);
|
|
|
- return jsobj;
|
|
|
-// JSONObject objrecords = jsobj.getJSONObject("records");
|
|
|
- }
|
|
|
- catch (Exception e)
|
|
|
- {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- return null;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- public JSONObject mContent;
|
|
|
-
|
|
|
- private int mSelectContactPosition = -1;
|
|
|
- private int mSelectTrackingPosition = -1;
|
|
|
- private int mSelectTrackingChild = -1;
|
|
|
- private View mSelectedTrackingCell = null;
|
|
|
-
|
|
|
- private void selectLocation(View view,int group,int child,JSONObject location) {
|
|
|
-
|
|
|
- if (mSelectedTrackingCell != null) {
|
|
|
- mSelectedTrackingCell.setBackgroundColor(Color.WHITE);
|
|
|
- }
|
|
|
-
|
|
|
- mSelectTrackingPosition = group;
|
|
|
- mSelectTrackingChild = child;
|
|
|
- mSelectedTrackingCell = view;
|
|
|
-
|
|
|
- if (mSelectedTrackingCell != null) {
|
|
|
- mSelectedTrackingCell.setBackgroundColor(Color.LTGRAY);
|
|
|
- }
|
|
|
-
|
|
|
- if (mTrackingMap != null && location != null) {
|
|
|
- mTrackingMap.showShipAnnotation(location);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- void init(String jstr, LayoutInflater inflater)
|
|
|
- {
|
|
|
-// LayoutInflater inflater = (LayoutInflater) ApexTrackingApplication
|
|
|
-// .get_instance().getSystemService(
|
|
|
-// Context.LAYOUT_INFLATER_SERVICE);
|
|
|
-
|
|
|
- inflater=getActivity().getLayoutInflater();
|
|
|
-
|
|
|
-
|
|
|
- String TAG = "init@DetailFragment";
|
|
|
- Log.d(TAG, jstr);
|
|
|
- try
|
|
|
- {
|
|
|
- JSONObject jsonObj = new JSONObject(jstr);
|
|
|
-
|
|
|
- int group_count = jsonObj.getInt("count");
|
|
|
-
|
|
|
-// if (getArguments().getString("action_type").equals("Detail")) {
|
|
|
-// JSONObject commObj = loadfakecontent(R.raw.fake_comm);
|
|
|
-// jsonObj.put("group" + group_count++,commObj);
|
|
|
-// jsonObj.put("count",group_count);
|
|
|
-// }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- mContent = jsonObj;
|
|
|
-
|
|
|
- if (group_count == 0)
|
|
|
- {
|
|
|
-
|
|
|
- TextView tv_empty = (TextView) ll_root
|
|
|
- .findViewById(R.id.tv_empty);
|
|
|
- tv_empty.setVisibility(View.VISIBLE);
|
|
|
-
|
|
|
-
|
|
|
- NewDetailActivity activity = (NewDetailActivity) getActivity();
|
|
|
- int tabCount = activity.getTabCount();
|
|
|
-
|
|
|
- if(tabCount==1)
|
|
|
- {
|
|
|
- new AlertDialog.Builder(getContext())
|
|
|
- .setTitle("Warning")
|
|
|
- .setCancelable(false)
|
|
|
- .setMessage("No Search Result.")
|
|
|
- .setPositiveButton("Back", new DialogInterface.OnClickListener() {
|
|
|
- @Override
|
|
|
- public void onClick(DialogInterface dialog, int which) {
|
|
|
- getActivity().finish();
|
|
|
-// checkAllPermission();
|
|
|
-// if (finalRequest)
|
|
|
-// checkAllPermission();
|
|
|
-// else
|
|
|
-// finish();
|
|
|
- }
|
|
|
- })
|
|
|
-// .setNegativeButton("No", new DialogInterface.OnClickListener() {
|
|
|
-// @Override
|
|
|
-// public void onClick(DialogInterface dialog, int which) {
|
|
|
-// finish();
|
|
|
-// }
|
|
|
-// })
|
|
|
- .show();
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- for (int i = 0; i < group_count; i++)
|
|
|
- {
|
|
|
- // String key = (String) it.next();
|
|
|
- // if (key.equals("result"))
|
|
|
- // continue;
|
|
|
- final JSONObject groupobj = jsonObj.getJSONObject("group" + i);
|
|
|
- View v = inflater.inflate(R.layout.group_tag, null);
|
|
|
-// v.setOnClickListener(this);
|
|
|
-
|
|
|
-
|
|
|
- TextView tvgroup = (TextView) v.findViewById(R.id.tv_group);
|
|
|
- String group_name = groupobj.getString("_name");
|
|
|
- tvgroup.setText(group_name);
|
|
|
- v.setId(commonUtil.generateViewId());
|
|
|
- ll_root.addView(v);
|
|
|
- String grouptype = groupobj.getString("_type");
|
|
|
-
|
|
|
- v.setTag(grouptype);
|
|
|
- v.setOnTouchListener(new View.OnTouchListener() {
|
|
|
- @Override
|
|
|
- public boolean onTouch(View view, MotionEvent motionEvent) {
|
|
|
-
|
|
|
- touchedView = view;
|
|
|
- detector.onTouchEvent(motionEvent);
|
|
|
-
|
|
|
- return true;
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
-
|
|
|
- // groupobj.remove("_type");
|
|
|
- if (grouptype.equals("mapping"))
|
|
|
- {
|
|
|
- LinearLayout mappingview = (LinearLayout) inflater.inflate(
|
|
|
- R.layout.key_mapping, null);
|
|
|
- mappingview.setId(commonUtil.generateViewId());
|
|
|
- control.put(v.getId(), mappingview.getId());
|
|
|
- ll_root.addView(mappingview);
|
|
|
-
|
|
|
- int map_count = groupobj.getInt("count");
|
|
|
- for (int j = 0; j < map_count; j++)
|
|
|
- {
|
|
|
- // String keygroup = (String) itgroup.next();
|
|
|
- JSONObject itemobj = groupobj.getJSONObject("item" + j);
|
|
|
- final String key = (String) itemobj.keys().next();
|
|
|
- final String val = itemobj.getString(key);
|
|
|
- LinearLayout mappingitem = (LinearLayout) inflater
|
|
|
- .inflate(R.layout.keymapping_item, null);
|
|
|
- TextView tvkey = (TextView) mappingitem
|
|
|
- .findViewById(R.id.tv_key);
|
|
|
- tvkey.setText(key);
|
|
|
- // tvkey.setBackgroundResource(R.drawable.detail_item);
|
|
|
- TextView tvval = (TextView) mappingitem
|
|
|
- .findViewById(R.id.tv_value);
|
|
|
- tvval.setText(Html.fromHtml(val));
|
|
|
- // tvval.setBackgroundResource(R.drawable.detail_item);
|
|
|
-
|
|
|
- tvval.setOnTouchListener(new View.OnTouchListener() {
|
|
|
- @Override
|
|
|
- public boolean onTouch(View view, MotionEvent motionEvent) {
|
|
|
-
|
|
|
- copiedKey = key;
|
|
|
- copiedVal = val;
|
|
|
- detector.onTouchEvent(motionEvent);
|
|
|
-
|
|
|
- return true;
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- mappingview.addView(mappingitem);
|
|
|
- }
|
|
|
- // Iterator itgroup = groupobj.keys();
|
|
|
- // while (itgroup.hasNext())
|
|
|
- // {
|
|
|
- //
|
|
|
- //
|
|
|
- // }
|
|
|
- }
|
|
|
- else if (grouptype.equals("table"))
|
|
|
- {
|
|
|
- String content = groupobj.getString("content");
|
|
|
- WebView wv;
|
|
|
-
|
|
|
- wv = (WebView) inflater.inflate(R.layout.web_content, null);
|
|
|
-
|
|
|
- wv.getSettings().setDefaultTextEncodingName("UTF-8");
|
|
|
- wv.setId(commonUtil.generateViewId());
|
|
|
- wv.setWebViewClient(new MyWebViewClient());
|
|
|
-// wv.setDownloadListener(new DownloadListener()
|
|
|
-// {
|
|
|
-//
|
|
|
-// @Override
|
|
|
-// public void onDownloadStart(String url,
|
|
|
-// String userAgent, String contentDisposition,
|
|
|
-// String mimetype, long contentLength)
|
|
|
-// {
|
|
|
-// if(!commonUtil.localdirExist())
|
|
|
-// {
|
|
|
-//
|
|
|
-// new AlertDialog.Builder(getActivity())
|
|
|
-// .setIconAttribute(android.R.attr.alertDialogIcon)
|
|
|
-// .setTitle(R.string.str_localdir_error)
|
|
|
-// .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
|
|
-// public void onClick(DialogInterface dialog, int whichButton) {
|
|
|
-//
|
|
|
-// /* User clicked OK so do some stuff */
|
|
|
-// }
|
|
|
-// })
|
|
|
-// .create().show();
|
|
|
-// return;
|
|
|
-// }
|
|
|
-//// String filename = contentDisposition.replace("attachment;filename=\"", "");
|
|
|
-//// filename = filename.replace("\"", "");
|
|
|
-////
|
|
|
-//// Log.d("WebView", "Download Action");
|
|
|
-//// Log.d("tag", "url=" + url);
|
|
|
-//// // Log.i("tag", "userAgent="+userAgent);
|
|
|
-//// // Log.i("tag",
|
|
|
-//// // "contentDisposition="+contentDisposition);
|
|
|
-//// // Log.i("tag", "mimetype="+mimetype);
|
|
|
-//// // Log.i("tag", "contentLength="+contentLength);
|
|
|
-//// // Uri uri = Uri.parse(url);
|
|
|
-//// // Intent intent = new Intent(Intent.ACTION_VIEW,
|
|
|
-//// // uri);
|
|
|
-//// // startActivity(intent);
|
|
|
-////
|
|
|
-//// final DownloadManager downloadManager = (DownloadManager) ApexTrackingApplication
|
|
|
-//// .get_instance().getSystemService(
|
|
|
-//// Context.DOWNLOAD_SERVICE);
|
|
|
-////
|
|
|
-//// Uri uri = Uri.parse(url);
|
|
|
-//// final Request request = new Request(uri);
|
|
|
-////
|
|
|
-//// // 设置允许使用的网络类型,这里是移动网络和wifi都可以
|
|
|
-//// request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE
|
|
|
-//// | DownloadManager.Request.NETWORK_WIFI);
|
|
|
-////
|
|
|
-////
|
|
|
-////
|
|
|
-//// request.setDestinationInExternalPublicDir("Apex Mobile",filename);
|
|
|
-////
|
|
|
-//// // 禁止发出通知,既后台下载,如果要使用这一句必须声明一个权限:android.permission.DOWNLOAD_WITHOUT_NOTIFICATION
|
|
|
-//// // request.setShowRunningNotification(false);
|
|
|
-////
|
|
|
-//// // 不显示下载界面
|
|
|
-//// request.setVisibleInDownloadsUi(false);
|
|
|
-//// request.setNotificationVisibility(Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
|
|
|
-////
|
|
|
-//// /*
|
|
|
-//// * 设置下载后文件存放的位置,如果sdcard不可用,那么设置这个将报错,
|
|
|
-//// * 因此最好不设置如果sdcard可用,下载后的文件 在/mnt/sdcard/Android/
|
|
|
-//// * data/packageName/files目录下面
|
|
|
-//// * ,如果sdcard不可用,设置了下面这个将报错,不设置,下载后的文件在/cache这个 目录下面
|
|
|
-//// */
|
|
|
-//// // request.setDestinationInExternalFilesDir(this,
|
|
|
-//// // null, "tar.apk");
|
|
|
-////
|
|
|
-////// getActivity();
|
|
|
-//// AlertDialog.Builder builder = new Builder(
|
|
|
-//// getActivity());
|
|
|
-//// builder.setMessage(getString(R.string.str_downloadmessage));
|
|
|
-////
|
|
|
-//// builder.setTitle(getString(R.string.str_confirmdownload));
|
|
|
-////
|
|
|
-//// builder.setPositiveButton(
|
|
|
-//// getString(R.string.str_download),
|
|
|
-//// new Dialog.OnClickListener()
|
|
|
-//// {
|
|
|
-////
|
|
|
-//// @Override
|
|
|
-//// public void onClick(
|
|
|
-//// DialogInterface dialog,
|
|
|
-//// int which)
|
|
|
-//// {
|
|
|
-//// downloadManager.enqueue(request);
|
|
|
-//// dialog.dismiss();
|
|
|
-////
|
|
|
-//// }
|
|
|
-//// });
|
|
|
-////
|
|
|
-//// builder.setNegativeButton(
|
|
|
-//// getString(R.string.str_cancel),
|
|
|
-//// new Dialog.OnClickListener()
|
|
|
-//// {
|
|
|
-////
|
|
|
-//// @Override
|
|
|
-//// public void onClick(
|
|
|
-//// DialogInterface dialog,
|
|
|
-//// int which)
|
|
|
-//// {
|
|
|
-//// dialog.dismiss();
|
|
|
-//// }
|
|
|
-//// });
|
|
|
-////
|
|
|
-//// builder.create().show();
|
|
|
-//
|
|
|
-// }
|
|
|
-//
|
|
|
-// });
|
|
|
- wv.setTag(i);
|
|
|
- control.put(v.getId(), wv.getId());
|
|
|
- wv.loadData(content, mimeType, null);
|
|
|
-
|
|
|
- // wv.setOnTouchListener(new OnTouchListener()
|
|
|
- // {
|
|
|
- // @Override
|
|
|
- // public boolean onTouch(View v, MotionEvent event)
|
|
|
- // {
|
|
|
- //
|
|
|
- // if (event.getAction() == MotionEvent.ACTION_UP)
|
|
|
- // sl_root.requestDisallowInterceptTouchEvent(false);
|
|
|
- // else
|
|
|
- // sl_root.requestDisallowInterceptTouchEvent(true);
|
|
|
- //
|
|
|
- // return false;
|
|
|
- // }
|
|
|
- // });
|
|
|
- ll_root.addView(wv);
|
|
|
- Log.d("table content", content);
|
|
|
-
|
|
|
- }
|
|
|
- if (grouptype.equals("tracking"))
|
|
|
- {
|
|
|
- LinearLayout listview = (LinearLayout) inflater.inflate(
|
|
|
- R.layout.list_content, null);
|
|
|
-
|
|
|
- listview.setId(commonUtil.generateViewId());
|
|
|
-
|
|
|
-
|
|
|
- ViewGroup.LayoutParams lp=listview.getLayoutParams();
|
|
|
- control.put(v.getId(), listview.getId());
|
|
|
- ll_root.addView(listview);
|
|
|
- long list_count = groupobj.getInt("count");
|
|
|
- for (int j = 0; j < list_count; j++)
|
|
|
- {
|
|
|
- final JSONObject itemobj = groupobj.getJSONObject("item" + j);
|
|
|
-
|
|
|
- ConstraintLayout listitem = (ConstraintLayout) inflater
|
|
|
- .inflate(R.layout.detail_tracking_cell, null);
|
|
|
-
|
|
|
-
|
|
|
- ImageView icon = (ImageView) listitem
|
|
|
- .findViewById(R.id.iv_thumb);
|
|
|
-
|
|
|
- String iconname = itemobj.getString("icon");
|
|
|
- int rid = commonUtil.iconName2Rid(getActivity(),iconname);
|
|
|
- icon.setImageResource(rid);
|
|
|
- if(j!=0)
|
|
|
- {
|
|
|
- icon.setColorFilter(Color.GRAY);
|
|
|
-// ColorMatrix matrix = new ColorMatrix();
|
|
|
-// matrix.setSaturation(0);
|
|
|
-// ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
|
|
|
-// icon..image.setColorFilter(filter);
|
|
|
- }
|
|
|
-
|
|
|
- TextView tvitem = (TextView) listitem
|
|
|
- .findViewById(R.id.tv_title);
|
|
|
- String val = itemobj.getString("msg");
|
|
|
- tvitem.setText(val);
|
|
|
-
|
|
|
- // tvitem.setBackgroundResource(R.drawable.detail_item);
|
|
|
- // listitem.removeView(tvitem);
|
|
|
-
|
|
|
- int px=commonUtil.dp2px(getActivity(),56);
|
|
|
- listitem.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, px, 1));
|
|
|
- listview.addView(listitem);
|
|
|
-// ViewGroup.LayoutParams lp1=listitem.getLayoutParams();
|
|
|
-
|
|
|
- final int selectIndex = i;
|
|
|
- final int child = j;
|
|
|
- final JSONObject location = groupobj.optJSONObject("location");
|
|
|
-
|
|
|
- listitem.setOnClickListener(new OnClickListener() {
|
|
|
- @Override
|
|
|
- public void onClick(View v) {
|
|
|
-
|
|
|
-// if (mTrackingMap != null) {
|
|
|
-// JSONObject location = groupobj.optJSONObject("location");
|
|
|
-// if (location != null) {
|
|
|
-// mTrackingMap.showShipAnnotation(location);
|
|
|
-// }
|
|
|
-// mSelectTrackingPosition = selectIndex;
|
|
|
-// }
|
|
|
-
|
|
|
- selectLocation(v,selectIndex,child,location);
|
|
|
-
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- if (mSelectTrackingPosition == -1) {
|
|
|
- mSelectTrackingPosition = selectIndex;
|
|
|
- }
|
|
|
- if (mSelectTrackingChild == -1) {
|
|
|
- mSelectTrackingChild = 0;
|
|
|
- }
|
|
|
-
|
|
|
- if (mSelectTrackingPosition == selectIndex && mSelectTrackingChild == child) {
|
|
|
-
|
|
|
-// if (mTrackingMap != null) {
|
|
|
-// JSONObject location = groupobj.optJSONObject("location");
|
|
|
-// if (location != null) {
|
|
|
-// mTrackingMap.showShipAnnotation(location);
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
- selectLocation(listitem,selectIndex,child,location);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- if (grouptype.equals("list"))
|
|
|
- {
|
|
|
- LinearLayout listview = (LinearLayout) inflater.inflate(
|
|
|
- R.layout.list_content, null);
|
|
|
- listview.setId(commonUtil.generateViewId());
|
|
|
- control.put(v.getId(), listview.getId());
|
|
|
- ll_root.addView(listview);
|
|
|
- long list_count = groupobj.getInt("count");
|
|
|
- for (int j = 0; j < list_count; j++)
|
|
|
- {
|
|
|
- RelativeLayout listitem = (RelativeLayout) inflater
|
|
|
- .inflate(R.layout.list_item, null);
|
|
|
-
|
|
|
- TextView tvitem = (TextView) listitem
|
|
|
- .findViewById(R.id.tv_item);
|
|
|
- String val = groupobj.getString("line" + j);
|
|
|
- tvitem.setText(val);
|
|
|
- // tvitem.setBackgroundResource(R.drawable.detail_item);
|
|
|
- listitem.removeView(tvitem);
|
|
|
-
|
|
|
- listview.addView(tvitem);
|
|
|
- }
|
|
|
- // Iterator itgroup = groupobj.keys();
|
|
|
- // while (itgroup.hasNext())
|
|
|
- // {
|
|
|
- // String keygroup = (String) itgroup.next();
|
|
|
- //
|
|
|
- // }
|
|
|
- }
|
|
|
- if (grouptype.equals("communication"))
|
|
|
- {
|
|
|
- LinearLayout listview = (LinearLayout) inflater.inflate(
|
|
|
- R.layout.list_content, null);
|
|
|
- listview.setId(commonUtil.generateViewId());
|
|
|
- control.put(v.getId(), listview.getId());
|
|
|
- ll_root.addView(listview);
|
|
|
-
|
|
|
- // 添加收件人和cc
|
|
|
- ConstraintLayout commu_header = (ConstraintLayout) inflater
|
|
|
- .inflate(R.layout.commu_item_header, null);
|
|
|
-
|
|
|
- TextView toTv = commu_header.findViewById(R.id.comm_to_tv);
|
|
|
- EditText ccTv = commu_header.findViewById(R.id.comm_cc_tv);
|
|
|
- ImageButton contactBtn = commu_header.findViewById(R.id.comm_contact_btn);
|
|
|
-
|
|
|
- ccTv.setTag("group_" + i + "_cc");
|
|
|
-
|
|
|
- String to = groupobj.optString("receipt");
|
|
|
- String cc = groupobj.optString("cc");
|
|
|
-
|
|
|
- toTv.setText(to);
|
|
|
- ccTv.setText(cc);
|
|
|
-
|
|
|
- TextFieldTextWatcher ccWatcher = new TextFieldTextWatcher(getContext(),ccTv,i,0);
|
|
|
- ccTv.addTextChangedListener(ccWatcher);
|
|
|
-
|
|
|
- final int selectIndex = i;
|
|
|
- contactBtn.setOnClickListener(new OnClickListener() {
|
|
|
- @Override
|
|
|
- public void onClick(View v) {
|
|
|
-
|
|
|
- mSelectContactPosition = selectIndex;
|
|
|
- Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
|
|
|
- startActivityForResult(intent, People_Pick_Code);
|
|
|
-
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- listview.addView(commu_header);
|
|
|
-
|
|
|
-
|
|
|
- long list_count = groupobj.getInt("count");
|
|
|
- for (int j = 0; j < list_count; j++)
|
|
|
- {
|
|
|
- ConstraintLayout msgitem = (ConstraintLayout) inflater
|
|
|
- .inflate(R.layout.commu_item_msg, null);
|
|
|
-
|
|
|
- JSONObject msgObj = groupobj.getJSONObject("item" + j);
|
|
|
-
|
|
|
- String sender = msgObj.optString("Sender");
|
|
|
-
|
|
|
- String msg = msgObj.optString("msg");
|
|
|
- String time = msgObj.optString("mst_time");
|
|
|
- final String email_url = msgObj.optString("email_url");
|
|
|
-
|
|
|
- TextView senderTv = msgitem.findViewById(R.id.comm_sender_tv);
|
|
|
- TextView msgTv = msgitem.findViewById(R.id.comm_msg_tv);
|
|
|
- TextView timeTv = msgitem.findViewById(R.id.comm_time_tv);
|
|
|
- Button sendBtn = msgitem.findViewById(R.id.comm_send_msg_btn);
|
|
|
-
|
|
|
- senderTv.setText(sender);
|
|
|
-// msgTv.setText(msg);
|
|
|
- msgTv.setText(Html.fromHtml(msg));
|
|
|
- timeTv.setText(time);
|
|
|
- sendBtn.setOnClickListener(new OnClickListener() {
|
|
|
- @Override
|
|
|
- public void onClick(View v) {
|
|
|
-
|
|
|
-
|
|
|
- Uri content_url = Uri.parse(email_url);
|
|
|
-
|
|
|
- Intent intent = new Intent(Intent.ACTION_VIEW,content_url);
|
|
|
-
|
|
|
-// Intent intent = new Intent();
|
|
|
-// intent.setAction("android.intent.action.VIEW");
|
|
|
-// intent.setData(content_url);
|
|
|
-
|
|
|
- startActivity(intent);
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- if (email_url == null || email_url.length() == 0) {
|
|
|
- sendBtn.setVisibility(View.INVISIBLE);
|
|
|
- }
|
|
|
-
|
|
|
- listview.addView(msgitem);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- //添加 消息输入和发送
|
|
|
- ConstraintLayout commu_footer = (ConstraintLayout) inflater
|
|
|
- .inflate(R.layout.commu_item_footer, null);
|
|
|
-
|
|
|
- EditText editTv = commu_footer.findViewById(R.id.comm_edit_tv);
|
|
|
- Button sendEmailBtn = commu_footer.findViewById(R.id.comm_send_email_btn);
|
|
|
-
|
|
|
- TextFieldTextWatcher editWatcher = new TextFieldTextWatcher(getContext(),editTv,i,1);
|
|
|
- editTv.addTextChangedListener(editWatcher);
|
|
|
-
|
|
|
- String edit_content = groupobj.optString("edit_content");
|
|
|
-
|
|
|
- editTv.setText(edit_content);
|
|
|
-
|
|
|
- final int groupIndex = i;
|
|
|
- sendEmailBtn.setOnClickListener(new OnClickListener() {
|
|
|
- @Override
|
|
|
- public void onClick(View v) {
|
|
|
-
|
|
|
- JSONObject commGroup = getGroup(groupIndex);
|
|
|
- final String cc = commGroup.optString("cc");
|
|
|
- final String content = commGroup.optString("edit_content");
|
|
|
-
|
|
|
- if (content == null || content.length() == 0) {
|
|
|
-
|
|
|
- new AlertDialog.Builder(mContext)
|
|
|
- .setTitle("Warning")
|
|
|
- .setMessage("The communication message that will be sent is blank")
|
|
|
- .setPositiveButton("Ok",null)
|
|
|
- .show();
|
|
|
-
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- if (cc != null && cc.length() > 0) {
|
|
|
-
|
|
|
- // 校验邮箱地址
|
|
|
- String[] ccArr = cc.split(";");
|
|
|
- for (int k = 0; k < ccArr.length; k++) {
|
|
|
- String ccStr = ccArr[k];
|
|
|
- if (ccStr.length() > 0) {
|
|
|
- boolean isEmail = validateEmail(ccStr);
|
|
|
- if (!isEmail) {
|
|
|
-
|
|
|
- new AlertDialog.Builder(mContext)
|
|
|
- .setTitle("Warning")
|
|
|
- .setMessage("The communication cc is not right")
|
|
|
- .setPositiveButton("Ok",null)
|
|
|
- .show();
|
|
|
-
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- // send
|
|
|
- final ProgressDialog pd = new ProgressDialog(mContext);
|
|
|
- pd.setTitle(null);
|
|
|
- pd.setMessage("send email");
|
|
|
- pd.setCancelable(false);
|
|
|
- pd.show();
|
|
|
-
|
|
|
- final String serialNo = commGroup.optString("serial_no");
|
|
|
-
|
|
|
- new Thread(new Runnable() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
-
|
|
|
- final JSONObject response = Network.sendEmail(content,cc,serialNo);
|
|
|
-
|
|
|
- getActivity().runOnUiThread(new Runnable() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
- pd.dismiss();
|
|
|
-
|
|
|
- boolean showAlert = false;
|
|
|
- String msg = null;
|
|
|
- if (response != null) {
|
|
|
- int result = response.optInt("result",Network.RESULT_FALSE);
|
|
|
- if (result != Network.RESULT_TRUE) {
|
|
|
- showAlert = true;
|
|
|
- msg = response.optString("err_msg");
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- } else {
|
|
|
- showAlert = true;
|
|
|
- }
|
|
|
-
|
|
|
- if (msg == null) {
|
|
|
- msg = "Sorry,something wrong";
|
|
|
- }
|
|
|
-
|
|
|
- if (showAlert) {
|
|
|
- new AlertDialog.Builder(mContext)
|
|
|
- .setTitle(null)
|
|
|
- .setMessage(msg)
|
|
|
- .setPositiveButton("Ok",null)
|
|
|
- .show();
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
- }).start();
|
|
|
-
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- listview.addView(commu_footer);
|
|
|
-
|
|
|
- listview.forceLayout();
|
|
|
- }
|
|
|
- // String value = obj.getString(key);
|
|
|
- // JSONArray array = obj.getJSONArray(key);
|
|
|
- // for(int i=0;i<array.length();i++){
|
|
|
- // JSONObject jsonobject = array.getJSONObject(i);
|
|
|
- // jsonobject.put("name", key);
|
|
|
- // jsonobject.put("exp", key+"="+jsonobject.getString("value"));
|
|
|
- // newArray.put(jsonobject);
|
|
|
-
|
|
|
- }
|
|
|
- // Iterator it = jsonObj.keys();
|
|
|
- // while (it.hasNext())
|
|
|
- // {
|
|
|
- //
|
|
|
- // }
|
|
|
- }
|
|
|
- catch (JSONException e)
|
|
|
- {
|
|
|
- // TODO Auto-generated catch block
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private JSONObject getGroup(int group) {
|
|
|
- if (mContent != null) {
|
|
|
- JSONObject groupobj = mContent.optJSONObject("group" + group);
|
|
|
- return groupobj;
|
|
|
- }
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- private boolean validateEmail(String email) {
|
|
|
-
|
|
|
- String emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
|
|
|
-
|
|
|
- return Pattern.matches(emailRegex,email);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onClick(View v)
|
|
|
- {
|
|
|
- View view = ll_root.findViewById(control.get(v.getId()));
|
|
|
- ImageView expand_iv = v.findViewById(R.id.group_expand_indicator);
|
|
|
- if (view.getVisibility() == View.VISIBLE) {
|
|
|
- expand_iv.setImageResource(R.drawable.ic_expand_less);
|
|
|
- view.setVisibility(View.GONE);
|
|
|
- }
|
|
|
- else {
|
|
|
- expand_iv.setImageResource(R.drawable.ic_expand_more);
|
|
|
- view.setVisibility(View.VISIBLE);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onDestroy()
|
|
|
- {
|
|
|
- if (m_task != null)
|
|
|
- m_task.cancel(true);
|
|
|
- super.onDestroy();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onActivityResult(int requestCode, int resultCode, Intent data)
|
|
|
- {
|
|
|
-// ((NewDetailActivity) getActivity()).showlogin = false;
|
|
|
- super.onActivityResult(requestCode, resultCode, data);
|
|
|
-
|
|
|
- if (requestCode == People_Pick_Code && data != null) {
|
|
|
- Uri contactData = data.getData();
|
|
|
- if (contactData == null) {
|
|
|
- return;
|
|
|
- }
|
|
|
- Cursor c = mContext.getContentResolver().query(contactData, null, null, null, null);
|
|
|
-
|
|
|
-
|
|
|
- if (c.moveToFirst()) {
|
|
|
- String contactId = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
|
|
|
-
|
|
|
- Cursor cursor = mContext.getContentResolver().query(
|
|
|
- ContactsContract.CommonDataKinds.Email.CONTENT_URI,
|
|
|
- new String[]{ContactsContract.CommonDataKinds.Email.DATA, ContactsContract.CommonDataKinds.Email.TYPE}, ContactsContract.Data.CONTACT_ID + "='" + contactId + "'", null, null);
|
|
|
-
|
|
|
- while(cursor.moveToNext()) {
|
|
|
- String email = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
|
|
|
- String emailType = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
|
|
|
-
|
|
|
- email = email.replace("\r\n",";");
|
|
|
- email = email.replace("\r",";");
|
|
|
- email = email.replace("\n",";");
|
|
|
-
|
|
|
- String[] emailArr = email.split(";");
|
|
|
- for (int i = 0; i < emailArr.length; i++) {
|
|
|
- email = emailArr[i];
|
|
|
- if (email.length() > 0) {
|
|
|
- if (emailType != null && Integer.valueOf(emailType) == ContactsContract.CommonDataKinds.Email.TYPE_WORK) {
|
|
|
- appendContactEmail(email,mSelectContactPosition);
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- mSelectContactPosition = -1;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onDetach()
|
|
|
- {
|
|
|
- if (m_task != null)
|
|
|
- m_task.cancel(false);
|
|
|
- super.onDetach();
|
|
|
- }
|
|
|
-
|
|
|
- class SearchTask extends AsyncTask<Void, Void, Boolean>
|
|
|
- {
|
|
|
- int errorcode;
|
|
|
-
|
|
|
- @Override
|
|
|
- protected Boolean doInBackground(Void... params)
|
|
|
- {
|
|
|
- Log.d("SearchTask", "doInBackground");
|
|
|
- if (!Network.NetworkIsAvailable())
|
|
|
-
|
|
|
- {
|
|
|
- errorcode = Network.RESULT_NET_NOTAVAILABLE;
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- String jstr = Network.get_detail(getArguments());
|
|
|
- if (jstr == null || jstr.length() <= 0)
|
|
|
- {
|
|
|
- // Log.d(TAG, "json is wrong");
|
|
|
-
|
|
|
- errorcode = Network.RESULT_NET_ERROR;
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- // mdataFragment.put_result(jstr);
|
|
|
- fragment_content = jstr;
|
|
|
- NewDetailActivity activity = (NewDetailActivity) getActivity();
|
|
|
- activity.save_content(getArguments().getString("action_type"), jstr);
|
|
|
-
|
|
|
- errorcode = Network.RESULT_TRUE;
|
|
|
-
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- protected void onPostExecute(Boolean success)
|
|
|
- {
|
|
|
- Log.i("onPostExecute", "entry");
|
|
|
- m_task = null;
|
|
|
- showProgress(false);
|
|
|
-
|
|
|
-// if (ApexTrackingApplication.get_authorization() == false)
|
|
|
-// {
|
|
|
-// if(((DetailActivity) getActivity()).showlogin == true)
|
|
|
-// return;
|
|
|
-// ((DetailActivity) getActivity()).showlogin = true;
|
|
|
-// LinearLayout ll = (LinearLayout) ll_root
|
|
|
-// .findViewById(R.id.ll_refresh);
|
|
|
-// ll.setVisibility(View.VISIBLE);
|
|
|
-// Toast toast = Toast.makeText(
|
|
|
-// ApexTrackingApplication.get_instance(),
|
|
|
-// getText(R.string.msg_net_passwordchangedremote) , Toast.LENGTH_LONG);
|
|
|
-// toast.setGravity(Gravity.CENTER, 0, 0);
|
|
|
-// toast.show();
|
|
|
-// Intent i = new Intent();
|
|
|
-// i.setClass(getActivity(), ApexActivity.class);
|
|
|
-// startActivityForResult(i, REQUEST_LOGINACTIVITY);
|
|
|
-// return;
|
|
|
-// }
|
|
|
-
|
|
|
- switch (errorcode)
|
|
|
- {
|
|
|
- case Network.RESULT_NET_NOTAVAILABLE:
|
|
|
- {
|
|
|
- Toast toast = Toast.makeText(
|
|
|
- ApexTrackingApplication.get_instance(),
|
|
|
- getText(R.string.msg_connection_none),
|
|
|
- Toast.LENGTH_LONG);
|
|
|
- toast.setGravity(Gravity.CENTER, 0, 0);
|
|
|
- toast.show();
|
|
|
- break;
|
|
|
- }
|
|
|
- case Network.RESULT_NET_ERROR:
|
|
|
- {
|
|
|
- Toast toast = Toast.makeText(
|
|
|
- ApexTrackingApplication.get_instance(),
|
|
|
- getText(R.string.msg_net_error), Toast.LENGTH_LONG);
|
|
|
- toast.setGravity(Gravity.CENTER, 0, 0);
|
|
|
- toast.show();
|
|
|
- break;
|
|
|
- }
|
|
|
- case Network.RESULT_ERROR:
|
|
|
- // case Network.RESULT_RESPONSE_NULL:
|
|
|
- {
|
|
|
-
|
|
|
- Toast toast = Toast.makeText(
|
|
|
- ApexTrackingApplication.get_instance(),
|
|
|
- getText(R.string.msg_net_resulterror) + ":"
|
|
|
- + errorcode, Toast.LENGTH_LONG);
|
|
|
- toast.setGravity(Gravity.CENTER, 0, 0);
|
|
|
- toast.show();
|
|
|
-
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- if (success)
|
|
|
- {
|
|
|
- LayoutInflater inflater = (LayoutInflater) ApexTrackingApplication
|
|
|
- .get_instance().getSystemService(
|
|
|
- Context.LAYOUT_INFLATER_SERVICE);
|
|
|
-
|
|
|
- init(fragment_content, inflater/*
|
|
|
- * getActivity().
|
|
|
- * getLayoutInflater()
|
|
|
- */);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- LinearLayout ll = (LinearLayout) ll_root
|
|
|
- .findViewById(R.id.ll_refresh);
|
|
|
- ll.setVisibility(View.VISIBLE);
|
|
|
- }
|
|
|
- super.onPostExecute(success);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- protected void onCancelled()
|
|
|
- {
|
|
|
- m_task = null;
|
|
|
- showProgress(false);
|
|
|
- }
|
|
|
- }
|
|
|
- private void showQuickLook(final String url) {
|
|
|
-
|
|
|
- showProgressDialog("Please wait","Downloading...");
|
|
|
- new Thread(new Runnable() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
-
|
|
|
- String cacheDir = ApexTrackingApplication.getInstance().getExternalCacheDir().getAbsolutePath();//ApexTrackingApplication.getInstance().getDocumentDir();
|
|
|
-
|
|
|
- final Bundle param = new Bundle();
|
|
|
- // 下载文件
|
|
|
- final File downloadFile = Network.downloadFile(param,url,cacheDir);
|
|
|
-
|
|
|
- getActivity().runOnUiThread(new Runnable() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
- progressDialog.dismiss();
|
|
|
- if (downloadFile != null && downloadFile.exists()) {
|
|
|
- String email = null,email_subject = null,email_content = null;
|
|
|
- //此处需要新增保存文档的本地表
|
|
|
-
|
|
|
-
|
|
|
- try {
|
|
|
- email = mContent.getString("email");
|
|
|
- email_subject = mContent.getString("email_subject");
|
|
|
- email_content = mContent.getString("email_content");
|
|
|
-
|
|
|
- } catch (JSONException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
-// email=param.getString("email");
|
|
|
-// email_subject=param.getString("email_subject");
|
|
|
-// email_content=param.getString("email_content");
|
|
|
-
|
|
|
- previewPDF(downloadFile.getAbsolutePath(),email,email_subject,email_content);
|
|
|
- } else {
|
|
|
- showAlert("Sorry,there is a wrong.");
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- }
|
|
|
- }).start();
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- // public class DataFragment extends Fragment {
|
|
|
- //
|
|
|
- // String result = null;
|
|
|
- //
|
|
|
- // @Override
|
|
|
- // public void onCreate(Bundle savedInstanceState) {
|
|
|
- // setRetainInstance(true);
|
|
|
- // super.onCreate(savedInstanceState);
|
|
|
- // }
|
|
|
- //
|
|
|
- // public String get_result() {
|
|
|
- // return result;
|
|
|
- //
|
|
|
- // }
|
|
|
- //
|
|
|
- // public void put_result(String s) {
|
|
|
- // result = s;
|
|
|
- // }
|
|
|
- //
|
|
|
- // }
|
|
|
- public void showAlert(String msg) {
|
|
|
- if (msg == null || msg.isEmpty()) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- new android.support.v7.app.AlertDialog.Builder(mContext)
|
|
|
- .setMessage(msg)
|
|
|
- .show();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- protected void previewPDF(String file,String email,String subject,String content) {
|
|
|
- Intent myIntent = new Intent();
|
|
|
- myIntent = new Intent(getActivity(), PDFPreviewActivity.class);
|
|
|
-
|
|
|
- myIntent.putExtra("file",file);
|
|
|
- myIntent.putExtra("iscache",true);
|
|
|
-
|
|
|
- try {
|
|
|
- JSONObject json = new JSONObject();
|
|
|
-// email = "66666@qq.com";
|
|
|
-// subject = "test subject";
|
|
|
-// content = "test body";
|
|
|
- if (email != null) {
|
|
|
- json.put("email",email);
|
|
|
- }
|
|
|
- if (subject != null) {
|
|
|
- json.put("subject",subject);
|
|
|
- }
|
|
|
- if (content != null) {
|
|
|
- json.put("content",content);
|
|
|
- }
|
|
|
- myIntent.putExtra("email",json.toString());
|
|
|
- } catch (JSONException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- startActivity(myIntent);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public void download(String url) {
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- final String download_url = url;
|
|
|
-
|
|
|
- showQuickLook(url);
|
|
|
- if(true)
|
|
|
- return;
|
|
|
-
|
|
|
- showProgressDialog("Please wait","Downloading...");
|
|
|
- new Thread(new Runnable() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
-
|
|
|
-// String cacheDir = ApexTrackingApplication.getInstance().getDocumentDir();
|
|
|
- // 下载文件
|
|
|
- final File downloadFile = Network.downloadFile(null,download_url,null);
|
|
|
-
|
|
|
- getActivity().runOnUiThread(new Runnable() {
|
|
|
- @Override
|
|
|
- public void run() {
|
|
|
- progressDialog.dismiss();
|
|
|
- RAUtil.openFile(getActivity(),downloadFile);
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- }
|
|
|
- }).start();
|
|
|
- }
|
|
|
-
|
|
|
- public class MyWebViewClient extends WebViewClient
|
|
|
- {
|
|
|
- // 如果页面中链接,如果希望点击链接继续在当前browser中响应,
|
|
|
- // 而不是新开Android的系统browser中响应该链接,必须覆盖 webview的WebViewClient对象。
|
|
|
- public boolean shouldOverviewUrlLoading(WebView view, String url)
|
|
|
- {
|
|
|
- Log.d("Web Client", "shouldOverviewUrlLoading: " + url);
|
|
|
- // L.i("shouldOverviewUrlLoading");
|
|
|
- view.loadUrl(url);
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
|
|
|
- Log.d("Web Client", "shouldOverrideUrlLoading: " + request);
|
|
|
- return super.shouldOverrideUrlLoading(view, request);
|
|
|
- }
|
|
|
-
|
|
|
- public void onPageStarted(WebView view, String url, Bitmap favicon)
|
|
|
- {
|
|
|
- // L.i("onPageStarted");
|
|
|
- // showProgress();
|
|
|
- Log.d("Web Client", "onPageStarted: ");
|
|
|
- }
|
|
|
-
|
|
|
- public void onPageFinished(WebView view, String url)
|
|
|
- {
|
|
|
- // L.i("onPageFinished");
|
|
|
- // closeProgress();
|
|
|
- Log.d("Web Client", "onPageFinished: ");
|
|
|
- }
|
|
|
-
|
|
|
- public void onReceivedError(WebView view, int errorCode,
|
|
|
- String description, String failingUrl)
|
|
|
- {
|
|
|
- // L.i("onReceivedError");
|
|
|
- // closeProgress();
|
|
|
- Log.d("Web Client", "onReceivedError: ");
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- @Override
|
|
|
- public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
|
|
|
-
|
|
|
- Log.d("Web Client", "shouldInterceptRequest: " + url);
|
|
|
- if (url.startsWith("http") && url.contains("action_type=download_doc")) {
|
|
|
- download(url);
|
|
|
-
|
|
|
- String content = contentOfWebView(view);
|
|
|
- WebResourceResponse response = new WebResourceResponse("text/html",
|
|
|
- "utf-8",
|
|
|
- new ByteArrayInputStream(content.getBytes()));
|
|
|
- return response;
|
|
|
-
|
|
|
- } else {
|
|
|
- return super.shouldInterceptRequest(view,url);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- String contentOfWebView(WebView webView) {
|
|
|
-
|
|
|
- int i = (int)webView.getTag();
|
|
|
- try {
|
|
|
-
|
|
|
- JSONObject groupobj = mContent.getJSONObject("group" + i);
|
|
|
- String content = groupobj.getString("content");
|
|
|
- return content;
|
|
|
- } catch (JSONException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
-// @Override
|
|
|
-// public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
|
|
|
-// Log.d("Web Client", "shouldInterceptRequest: " + request);
|
|
|
-//
|
|
|
-// if (request.getUrl().toString().contains("action_type=download_doc")) {
|
|
|
-// return null;
|
|
|
-// } else {
|
|
|
-// return super.shouldInterceptRequest(view,request);
|
|
|
-// }
|
|
|
-//
|
|
|
-//
|
|
|
-// }
|
|
|
- }
|
|
|
-
|
|
|
- private void appendContactEmail(String email,int group) {
|
|
|
-
|
|
|
- try {
|
|
|
-
|
|
|
- String groupKey = "group" + group;
|
|
|
-
|
|
|
- JSONObject groupObj = mContent.getJSONObject(groupKey);
|
|
|
- String groupType = groupObj.getString("_type");
|
|
|
-
|
|
|
- if (groupType.equals("communication")) {
|
|
|
-
|
|
|
- String oldCC = groupObj.optString("cc");
|
|
|
- if (oldCC == null || oldCC.length() == 0) {
|
|
|
- oldCC = email + ";";
|
|
|
- } else {
|
|
|
- if (oldCC.substring(oldCC.length() - 1).equals(";")) {
|
|
|
- oldCC = oldCC + email + ";";
|
|
|
- } else {
|
|
|
- oldCC = oldCC + ";" + email + ";";
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- commContentChange(oldCC,group,0);
|
|
|
-
|
|
|
- EditText ccTv = ll_root.findViewWithTag("group_" + group + "_cc");
|
|
|
- if (ccTv != null) {
|
|
|
- ccTv.setText(oldCC);
|
|
|
- ccTv.requestFocus();
|
|
|
- ccTv.setSelection(oldCC.length());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- } catch (JSONException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- private void commContentChange(String content,int group,int child) {
|
|
|
-
|
|
|
- try {
|
|
|
-
|
|
|
- String groupKey = "group" + group;
|
|
|
-
|
|
|
- JSONObject groupObj = mContent.getJSONObject(groupKey);
|
|
|
- String groupType = groupObj.getString("_type");
|
|
|
-
|
|
|
- if (groupType.equals("communication")) {
|
|
|
-
|
|
|
- if (child == 0) {
|
|
|
- groupObj.put("cc",content);
|
|
|
- } else if (child == 1) {
|
|
|
- groupObj.put("edit_content",content);
|
|
|
- }
|
|
|
- mContent.put(groupKey,groupObj);
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- } catch (JSONException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public class TextFieldTextWatcher implements TextWatcher {
|
|
|
-
|
|
|
- Context mCtx;
|
|
|
- int group;
|
|
|
- int child;
|
|
|
- EditText textView;
|
|
|
-
|
|
|
- public TextFieldTextWatcher(Context ctx,EditText textView,int group,int child) {
|
|
|
- this.mCtx = ctx;
|
|
|
- this.textView = textView;
|
|
|
- this.group = group;
|
|
|
- this.child = child;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- String origin_text;
|
|
|
- String string;
|
|
|
- int start_position;
|
|
|
- int change_length; // 修改原文长度
|
|
|
- int new_string_length;
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * s 改变前的内容
|
|
|
- * start 增加内容前光标位置,删除内容后光标位置 (起始位置)
|
|
|
- * count 选中s中的内容长度(发生改变的原内容长度),未选中为0
|
|
|
- * after 新添加的内容长度,删除为0
|
|
|
- * */
|
|
|
- @Override
|
|
|
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
|
|
-// Log.d("TextChange", "before Text Changed: " + s + " Start: " + start + " Count: " + count + " After: " + after);
|
|
|
-
|
|
|
- origin_text = s.toString();
|
|
|
- start_position = start;
|
|
|
- change_length = count;
|
|
|
- new_string_length = after;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * s 改变后的内容
|
|
|
- * start 增加内容前光标位置,删除内容后光标位置 (起始位置)
|
|
|
- * before 选中s中的内容长度(发生改变的原内容长度),未选中为0
|
|
|
- * count 增加内容长度,删除内容为0
|
|
|
- * */
|
|
|
- @Override
|
|
|
- public void onTextChanged(CharSequence s, int start, int before, int count) {
|
|
|
-// Log.d("TextChange", "on Text Changed: " + s + " Start: " + start + " Before: " + before + " Count: " + count);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void afterTextChanged(Editable s) {
|
|
|
-
|
|
|
- commContentChange(s.toString(),group,child);
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-}
|