Bladeren bron

App crash whenclick retrieve password on login window-- 登录界面点找回密码闪退(resolve: #14432)
Retrieve the password and return failed -- 找回密码返回失败(resolve: #14434)
Failed to retrieve the password, the returned message is not displayed correctly -- 找回密码失败,没有正确显示返回的消息(resolve: #14435)
Organize and modify the display of error messages -- 整理和修改出错信息的显示(resolve: #14439)
After the user logs out, the global variables are not reset -- 用户登出后,全局变量没有复位(resolve: #14440)

Ray Zhang 4 jaren geleden
bovenliggende
commit
8ebd9acafd

+ 7 - 0
ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/utils/Network.java

@@ -211,6 +211,10 @@ public class Network {
                 }
                 ret= sb.toString();
 
+                JSONObject json = new JSONObject(ret);
+                String msg = json.optString("message");
+                json.put("err_msg",msg);
+                ret = json.toString();
             }
 
         } catch (UnsupportedEncodingException e) {
@@ -233,6 +237,9 @@ public class Network {
 
             Log.e(TAG, e.toString());
 
+        } catch (JSONException e)
+        {
+            e.printStackTrace();
         } finally {
 
             if(connection!=null){

+ 38 - 0
ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/utils/RAUtil.java

@@ -40,6 +40,8 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.UnsupportedEncodingException;
 import java.lang.reflect.Array;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
@@ -54,6 +56,42 @@ import java.util.concurrent.atomic.AtomicInteger;
 import java.util.regex.Pattern;
 
 public class RAUtil {
+
+
+    public static Activity getCurrentActivity () {
+        try {
+            Class activityThreadClass = Class.forName("android.app.ActivityThread");
+            Object activityThread = activityThreadClass.getMethod("currentActivityThread").invoke(
+                    null);
+            Field activitiesField = activityThreadClass.getDeclaredField("mActivities");
+            activitiesField.setAccessible(true);
+            Map activities = (Map) activitiesField.get(activityThread);
+            for (Object activityRecord : activities.values()) {
+                Class activityRecordClass = activityRecord.getClass();
+                Field pausedField = activityRecordClass.getDeclaredField("paused");
+                pausedField.setAccessible(true);
+                if (!pausedField.getBoolean(activityRecord)) {
+                    Field activityField = activityRecordClass.getDeclaredField("activity");
+                    activityField.setAccessible(true);
+                    Activity activity = (Activity) activityField.get(activityRecord);
+                    return activity;
+                }
+            }
+        } catch (ClassNotFoundException e) {
+            e.printStackTrace();
+        } catch (InvocationTargetException e) {
+            e.printStackTrace();
+        } catch (NoSuchMethodException e) {
+            e.printStackTrace();
+        } catch (NoSuchFieldException e) {
+            e.printStackTrace();
+        } catch (IllegalAccessException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
     // 读取json文件的方法,也可写成工具类方便使用
     public static JSONObject getJsonFromAsset(Context context, String fileName) {
 

+ 1 - 1
ApexDrivers/ratradefiling/src/main/AndroidManifest.xml

@@ -69,7 +69,7 @@
         <activity android:name=".detail.NewDetailActivity" />
         <activity android:name=".my.CheckSavedActivity"/>
         <activity android:name=".my.ChangePasswordActivity"/>
-
+        <activity android:name=".login.RetrievePasswordActivity"/>
     </application>
 
 </manifest>

+ 8 - 0
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/RootActivity.java

@@ -193,6 +193,14 @@ public class RootActivity extends BasicActivity {
                     login=blogin;
 
                     setupViewPager(viewPager);
+
+
+//                    Intent aintent = new Intent();
+//
+//                    aintent.setClass(RootActivity.this, RootActivity.class);
+//                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+//                    aintent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+//                    startActivity(aintent);
                 }
 
 

+ 326 - 269
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/dataprovider/OnlineDataProvider.java

@@ -1,6 +1,10 @@
 package com.usai.ratradefiling.dataprovider;
 
+import android.app.Activity;
+import android.app.AlertDialog;
 import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
 import android.content.SharedPreferences.Editor;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
@@ -9,11 +13,17 @@ import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteStatement;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
 import android.text.TextUtils;
 import android.util.Log;
 
 //import com.usai.apex.TradeFilingApplication;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+
+import com.usai.ratradefiling.RootActivity;
 import com.usai.ratradefiling.TradeFilingApplication;
+import com.usai.ratradefiling.my.CheckSavedActivity;
 import com.usai.redant.rautils.utils.FileManager;
 import com.usai.redant.rautils.utils.RAUtil;
 
@@ -57,13 +67,17 @@ public class OnlineDataProvider extends com.usai.redant.rautils.utils.Network
 																													// out
 																													// 20
 																													// secs;
-	public static int			AP_USER_AUTH					= 1;
-	public static int			AP_USER_NOT_AUTH				= 2;
-	public static int			AP_USER_NOT_EXIST				= 3;
-	public static int			AP_SESSION_EXPIRED				= 4;
 
-	public static int			AP_MESSAGE_NEW					= 5;
-	public static int			AP_MESSAGE_NONE					= 6;
+	public static final int		RESULT_LOGIN_ON_OTHER_DEVICE					= -1;
+
+	public static final int		RESULT_ERROR					= 1;
+//	public static int			AP_USER_AUTH					= 1;
+//	public static int			AP_USER_NOT_AUTH				= 2;
+//	public static int			AP_USER_NOT_EXIST				= 3;
+//	public static int			AP_SESSION_EXPIRED				= 4;
+//
+//	public static int			AP_MESSAGE_NEW					= 5;
+//	public static int			AP_MESSAGE_NONE					= 6;
 
 
 
@@ -307,10 +321,52 @@ public class OnlineDataProvider extends com.usai.redant.rautils.utils.Network
 		try {
 			JSONObject json = new JSONObject(jsonStr);
 			String msg = json.optString("msg");
-			if (msg != null) {
+			if (!TextUtils.isEmpty(msg)) {
+				json.put("err_msg",msg);
+			}
+			msg = json.optString("message");
+			if (!TextUtils.isEmpty(msg)) {
 				json.put("err_msg",msg);
 			}
 
+			int result = json.optInt("result");
+			if(result==RESULT_LOGIN_ON_OTHER_DEVICE)
+			{
+
+
+				Handler handler = new Handler(Looper.getMainLooper());
+				final String finalMsg = msg;
+				final Activity activity = RAUtil.getCurrentActivity();
+				handler.post(new Runnable() {
+					@Override
+					public void run() {
+						AlertDialog.Builder builder = new AlertDialog.Builder(activity);
+						builder.setTitle("Warning");
+						builder.setMessage(finalMsg);
+						builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
+									@Override
+									public void onClick(DialogInterface dialog, int which) {
+										TradeFilingApplication.logout();
+
+										dialog.dismiss();
+										activity.finish();
+//										RAUtil.getCurrentActivity().finish();
+
+
+
+										Intent bintent = new Intent("Login");
+										bintent.putExtra("state", false);
+										LocalBroadcastManager.getInstance(TradeFilingApplication.get_instance())
+												.sendBroadcast(bintent);
+									}
+								});
+						builder.show();
+
+					}
+				});
+
+
+			}
 			return json;
 		} catch (JSONException e) {
 			e.printStackTrace();
@@ -415,6 +471,7 @@ public class OnlineDataProvider extends com.usai.redant.rautils.utils.Network
 			params = new Bundle();
 		}
 
+		params.putString("os","Android");
 		String password = params.getString("password");
 
 		String user = params.getString("user");
@@ -438,7 +495,7 @@ public class OnlineDataProvider extends com.usai.redant.rautils.utils.Network
 			params.putString("language",languageCode);
 		}
 
-		params.putString("os","android");
+
 
 
 		params.putString("app_ver",SHORT_VER);
@@ -501,277 +558,277 @@ public class OnlineDataProvider extends com.usai.redant.rautils.utils.Network
 //		return parse_authinfo(jstr, name, password, parms);
 //	}
 
-	private static int parse_authinfo(String json, String user, String pass, Bundle parms)
-	{
-		if(true)
-			throw new AssertionError("OnlineDataProvider::parse_authinfo not impl");
-		String TAG = "net_dbg@parse_authinfo";
-		Log.d(TAG, json);
-		// JSONArray array;
-		JSONObject jsobj;
-		SQLiteDatabase db = null;
-		try
-
-		{
-
-			// array = new JSONArray(json);
-			jsobj = new JSONObject(json);
-			if (jsobj.length() > 0)
-			{
-				// JSONObject objresult = jsobj.get.getJSONObject(0);// result
-				// the
-				// server result
-				// ;
-				if (jsobj.getInt("result") != OnlineDataProvider.AP_USER_AUTH)
-				{
-					TradeFilingApplication.logout();
-					// user not authorized return
-					Log.d(TAG,
-							"USER NOT AUTHORIZED CODE="
-									+ jsobj.getInt("result"));
-					return RESULT_FALSE;
-				}
-
-				JSONObject objheader = jsobj.getJSONObject("header");
-				String required_ver = objheader.getString("client_ver");
-				//String ver = objheader.getString("ver");
-				String current_ver = TradeFilingApplication.get_instance()
-						.getPackageManager().getPackageInfo("com.usai.apex", 0).versionName;
-				if (current_ver.compareTo(required_ver) < 0)
-					return RESULT_VER_LOW;
-				// JSONObject objsessionid = jsobj.getJSONObject(1); // session
-				// id
-				// on
-				// server;
-				// ApexTrackingApplication.put_sessionid(objheader
-				// .getString("sessionid"));
-				// ApexTrackingApplication.put_user(user);
-				// ApexTrackingApplication.put_password(pass);
-				// ApexTrackingApplication.put_authorization(true);
-//				TradeFilingApplication.login(
-//						user, pass,jsobj);
-//				Log.d(TAG, "sessionid=" + objheader.getString("sessionid"));
-				// JSONObject objupdate = array.getJSONObject(3); // whether
-				// need
-				// update ;
-				if (objheader.getBoolean("update") == false)
-				{
-					// no update on the server;
-					return RESULT_TRUE;
-				}
-				// JSONObject objver = array.getJSONObject(4); // new version
-				// get
-				// from server;
-
-				Editor editor = TradeFilingApplication
-						.get_instance()
-						.getSharedPreferences(user + "_Apex_auth",
-								Context.MODE_PRIVATE).edit();
-
-				editor.putInt("AuthInfoVer", objheader.getInt("ver"));
-				JSONObject objfuncs = jsobj.getJSONObject("functions");
-				Iterator<?> it = objfuncs.keys();
-//				db = dbUtil.OpenDB(TradeFilingApplication.get_instance(),
-//						null, true);
-//				String sql = "insert into fields_info(name,aname,field_type,function_name,behavior,priority,show,user) values(?,?,?,?,?,?,?,?)";
-//				String sql1 = "insert into actions_info(name,function_name,user,priority) values(?,?,?,?)";
+//	private static int parse_authinfo(String json, String user, String pass, Bundle parms)
+//	{
+//		if(true)
+//			throw new AssertionError("OnlineDataProvider::parse_authinfo not impl");
+//		String TAG = "net_dbg@parse_authinfo";
+//		Log.d(TAG, json);
+//		// JSONArray array;
+//		JSONObject jsobj;
+//		SQLiteDatabase db = null;
+//		try
 //
-//				SQLiteStatement stat = db.compileStatement(sql);
-//				SQLiteStatement stat1 = db.compileStatement(sql1);
+//		{
 //
-//				db.beginTransaction();
-//				db.execSQL("update fields_info set abandon = 1 where user ='"
-//						+ user + "'");
-//				db.execSQL("update actions_info set abandon = 1 where user ='"
-//						+ user + "'");
+//			// array = new JSONArray(json);
+//			jsobj = new JSONObject(json);
+//			if (jsobj.length() > 0)
+//			{
+//				// JSONObject objresult = jsobj.get.getJSONObject(0);// result
+//				// the
+//				// server result
+//				// ;
+//				if (jsobj.getInt("result") != OnlineDataProvider.AP_USER_AUTH)
+//				{
+//					TradeFilingApplication.logout();
+//					// user not authorized return
+//					Log.d(TAG,
+//							"USER NOT AUTHORIZED CODE="
+//									+ jsobj.getInt("result"));
+//					return RESULT_FALSE;
+//				}
 //
-//				String field_name, field_type, alias_name;
-//				while (it.hasNext()) // loop for each function
+//				JSONObject objheader = jsobj.getJSONObject("header");
+//				String required_ver = objheader.getString("client_ver");
+//				//String ver = objheader.getString("ver");
+//				String current_ver = TradeFilingApplication.get_instance()
+//						.getPackageManager().getPackageInfo("com.usai.apex", 0).versionName;
+//				if (current_ver.compareTo(required_ver) < 0)
+//					return RESULT_VER_LOW;
+//				// JSONObject objsessionid = jsobj.getJSONObject(1); // session
+//				// id
+//				// on
+//				// server;
+//				// ApexTrackingApplication.put_sessionid(objheader
+//				// .getString("sessionid"));
+//				// ApexTrackingApplication.put_user(user);
+//				// ApexTrackingApplication.put_password(pass);
+//				// ApexTrackingApplication.put_authorization(true);
+////				TradeFilingApplication.login(
+////						user, pass,jsobj);
+////				Log.d(TAG, "sessionid=" + objheader.getString("sessionid"));
+//				// JSONObject objupdate = array.getJSONObject(3); // whether
+//				// need
+//				// update ;
+//				if (objheader.getBoolean("update") == false)
 //				{
-//					String func_name = (String) it.next();
+//					// no update on the server;
+//					return RESULT_TRUE;
+//				}
+//				// JSONObject objver = array.getJSONObject(4); // new version
+//				// get
+//				// from server;
 //
-//					// Set<String> funset = new HashSet<String>();
-//					JSONObject objfun = objfuncs.getJSONObject(func_name);
-//					int behavior, priority = 999;
-//					int show = 1;
-//					JSONObject objbehavior = objfun.getJSONObject("search");
-//					Iterator<?> itbehavior = objbehavior.keys();
-//					behavior = BEHAVIOR_SEARCH;
-//					while (itbehavior.hasNext()) // loop for search fields in
-//													// certain function
-//					{
-//						String field = (String) itbehavior.next();
-//						JSONObject field_info = objbehavior
-//								.getJSONObject(field);
-//						field_name = field_info.getString("name");
-//						field_type = field_info.getString("type");
-//						alias_name = field_info.getString("alias");
-//						priority = field_info.getInt("priority");
-//						if (priority == 999)
-//							show = 0;
-//						else
-//							show = 1;
-//						int id = dbUtil.get_recordid(db, "fields_info",
-//								"name='" + field_name + "' and behavior="
-//										+ behavior + " and function_name='"
-//										+ func_name + "' and user='" + user
-//										+ "'");
-//						if (id >= 0) // record exist;
-//						{
-//							db.execSQL("update fields_info set abandon = 0 where _id ="
-//									+ id);
-//						}
-//						else
-//						{
-//							stat.bindString(1, field_name);
-//							stat.bindString(2, alias_name);
-//							stat.bindString(3, field_type);
-//							stat.bindString(4, func_name);
-//							stat.bindLong(5, behavior);
-//							stat.bindLong(6, priority);
-//							stat.bindLong(7, show);
-//							stat.bindString(8, user);
-//							stat.executeInsert();
-//						}
-//					}
+//				Editor editor = TradeFilingApplication
+//						.get_instance()
+//						.getSharedPreferences(user + "_Apex_auth",
+//								Context.MODE_PRIVATE).edit();
 //
-//					objbehavior = objfun.getJSONObject("result");
-//					Iterator<?> itresult = objbehavior.keys();
-//					behavior = BEHAVIOR_RESULT;
-//					while (itresult.hasNext()) // loop for result fields in
-//												// certain function
-//					{
-//						String field = (String) itresult.next();
-//						JSONObject field_info = objbehavior
-//								.getJSONObject(field);
-//						field_name = field_info.getString("name");
-//						field_type = field_info.getString("type");
-//						alias_name = field_info.getString("alias");
-//						priority = field_info.getInt("priority");
-//						if (priority == 999)
-//							show = 0;
-//						else
-//							show = 1;
-//						int id = dbUtil.get_recordid(db, "fields_info",
-//								"name='" + field_name + "' and behavior="
-//										+ behavior + " and function_name='"
-//										+ func_name + "' and user='" + user
-//										+ "'");
-//						if (id >= 0) // record exist;
-//						{
-//							db.execSQL("update fields_info set abandon = 0 where _id ="
-//									+ id);
-//						}
-//						else
-//						{
-//							stat.bindString(1, field_name);
-//							stat.bindString(2, alias_name);
-//							stat.bindString(3, field_type);
-//							stat.bindString(4, func_name);
-//							stat.bindLong(5, behavior);
-//							stat.bindLong(6, priority);
-//							stat.bindLong(7, show);
-//							stat.bindString(8, user);
-//							stat.executeInsert();
-//						}
-//					}
+//				editor.putInt("AuthInfoVer", objheader.getInt("ver"));
+//				JSONObject objfuncs = jsobj.getJSONObject("functions");
+//				Iterator<?> it = objfuncs.keys();
+////				db = dbUtil.OpenDB(TradeFilingApplication.get_instance(),
+////						null, true);
+////				String sql = "insert into fields_info(name,aname,field_type,function_name,behavior,priority,show,user) values(?,?,?,?,?,?,?,?)";
+////				String sql1 = "insert into actions_info(name,function_name,user,priority) values(?,?,?,?)";
+////
+////				SQLiteStatement stat = db.compileStatement(sql);
+////				SQLiteStatement stat1 = db.compileStatement(sql1);
+////
+////				db.beginTransaction();
+////				db.execSQL("update fields_info set abandon = 1 where user ='"
+////						+ user + "'");
+////				db.execSQL("update actions_info set abandon = 1 where user ='"
+////						+ user + "'");
+////
+////				String field_name, field_type, alias_name;
+////				while (it.hasNext()) // loop for each function
+////				{
+////					String func_name = (String) it.next();
+////
+////					// Set<String> funset = new HashSet<String>();
+////					JSONObject objfun = objfuncs.getJSONObject(func_name);
+////					int behavior, priority = 999;
+////					int show = 1;
+////					JSONObject objbehavior = objfun.getJSONObject("search");
+////					Iterator<?> itbehavior = objbehavior.keys();
+////					behavior = BEHAVIOR_SEARCH;
+////					while (itbehavior.hasNext()) // loop for search fields in
+////													// certain function
+////					{
+////						String field = (String) itbehavior.next();
+////						JSONObject field_info = objbehavior
+////								.getJSONObject(field);
+////						field_name = field_info.getString("name");
+////						field_type = field_info.getString("type");
+////						alias_name = field_info.getString("alias");
+////						priority = field_info.getInt("priority");
+////						if (priority == 999)
+////							show = 0;
+////						else
+////							show = 1;
+////						int id = dbUtil.get_recordid(db, "fields_info",
+////								"name='" + field_name + "' and behavior="
+////										+ behavior + " and function_name='"
+////										+ func_name + "' and user='" + user
+////										+ "'");
+////						if (id >= 0) // record exist;
+////						{
+////							db.execSQL("update fields_info set abandon = 0 where _id ="
+////									+ id);
+////						}
+////						else
+////						{
+////							stat.bindString(1, field_name);
+////							stat.bindString(2, alias_name);
+////							stat.bindString(3, field_type);
+////							stat.bindString(4, func_name);
+////							stat.bindLong(5, behavior);
+////							stat.bindLong(6, priority);
+////							stat.bindLong(7, show);
+////							stat.bindString(8, user);
+////							stat.executeInsert();
+////						}
+////					}
+////
+////					objbehavior = objfun.getJSONObject("result");
+////					Iterator<?> itresult = objbehavior.keys();
+////					behavior = BEHAVIOR_RESULT;
+////					while (itresult.hasNext()) // loop for result fields in
+////												// certain function
+////					{
+////						String field = (String) itresult.next();
+////						JSONObject field_info = objbehavior
+////								.getJSONObject(field);
+////						field_name = field_info.getString("name");
+////						field_type = field_info.getString("type");
+////						alias_name = field_info.getString("alias");
+////						priority = field_info.getInt("priority");
+////						if (priority == 999)
+////							show = 0;
+////						else
+////							show = 1;
+////						int id = dbUtil.get_recordid(db, "fields_info",
+////								"name='" + field_name + "' and behavior="
+////										+ behavior + " and function_name='"
+////										+ func_name + "' and user='" + user
+////										+ "'");
+////						if (id >= 0) // record exist;
+////						{
+////							db.execSQL("update fields_info set abandon = 0 where _id ="
+////									+ id);
+////						}
+////						else
+////						{
+////							stat.bindString(1, field_name);
+////							stat.bindString(2, alias_name);
+////							stat.bindString(3, field_type);
+////							stat.bindString(4, func_name);
+////							stat.bindLong(5, behavior);
+////							stat.bindLong(6, priority);
+////							stat.bindLong(7, show);
+////							stat.bindString(8, user);
+////							stat.executeInsert();
+////						}
+////					}
+////
+////					// objfun.has("actions")
+////					objbehavior = objfun.getJSONObject("actions");
+////					Iterator<?> itactions = objbehavior.keys();
+////					// behavior = BEHAVIOR_RESULT;
+////					while (itactions.hasNext()) // loop for result fields in
+////												// certain function
+////					{
+////						String actionname = (String) itactions.next();
+////						int action_priority = objbehavior.getInt(actionname);
+////
+////						int id = dbUtil.get_recordid(db, "actions_info",
+////								"name='" + actionname + "' and function_name='"
+////										+ func_name + "' and user='" + user
+////										+ "'");
+////						if (id >= 0) // record exist;
+////						{
+////							db.execSQL("update actions_info set abandon = 0 , priority="
+////									+ action_priority + " where _id =" + id);
+////						}
+////						else
+////						{
+////							stat1.bindString(1, actionname);
+////							stat1.bindString(2, func_name);
+////							stat1.bindString(3, user);
+////							stat1.bindLong(4, action_priority);
+////							stat1.executeInsert();
+////
+////						}
+////					}
+////				}
+////				db.execSQL("delete from fields_info where abandon = 1");
+////				db.execSQL("delete from actions_info where abandon = 1");
+////				db.setTransactionSuccessful();
+////				db.endTransaction();
+////				editor.commit();
+////
+////				// 删除Result固定显示字段 及 更新显示最多三条
+////				dbUtil.deleteResultFields(db);
+////				dbUtil.updateResultDisplayFields(db);
 //
-//					// objfun.has("actions")
-//					objbehavior = objfun.getJSONObject("actions");
-//					Iterator<?> itactions = objbehavior.keys();
-//					// behavior = BEHAVIOR_RESULT;
-//					while (itactions.hasNext()) // loop for result fields in
-//												// certain function
-//					{
-//						String actionname = (String) itactions.next();
-//						int action_priority = objbehavior.getInt(actionname);
+//				return RESULT_TRUE;
+//			}
+//			Log.d(TAG, "json is wrong");
+//			return RESULT_USERAUTH_ERROR;
+//		}
+//		catch (JSONException e1)
+//		{
+//			// TODO Auto-generated catch block
+//			TradeFilingApplication.logout();
 //
-//						int id = dbUtil.get_recordid(db, "actions_info",
-//								"name='" + actionname + "' and function_name='"
-//										+ func_name + "' and user='" + user
-//										+ "'");
-//						if (id >= 0) // record exist;
-//						{
-//							db.execSQL("update actions_info set abandon = 0 , priority="
-//									+ action_priority + " where _id =" + id);
-//						}
-//						else
-//						{
-//							stat1.bindString(1, actionname);
-//							stat1.bindString(2, func_name);
-//							stat1.bindString(3, user);
-//							stat1.bindLong(4, action_priority);
-//							stat1.executeInsert();
 //
-//						}
-//					}
-//				}
-//				db.execSQL("delete from fields_info where abandon = 1");
-//				db.execSQL("delete from actions_info where abandon = 1");
-//				db.setTransactionSuccessful();
-//				db.endTransaction();
-//				editor.commit();
+//			parms.putString("module_name", "Log");
+//			parms.putString("action_type", "save");
+//			parms.putString("return", json);
 //
-//				// 删除Result固定显示字段 及 更新显示最多三条
-//				dbUtil.deleteResultFields(db);
-//				dbUtil.updateResultDisplayFields(db);
-
-				return RESULT_TRUE;
-			}
-			Log.d(TAG, "json is wrong");
-			return RESULT_USERAUTH_ERROR;
-		}
-		catch (JSONException e1)
-		{
-			// TODO Auto-generated catch block
-			TradeFilingApplication.logout();
-			
-			
-			parms.putString("module_name", "Log");
-			parms.putString("action_type", "save");
-			parms.putString("return", json);
-			
-			String jstr = getJson(OnlineDataProvider.URL_LOG, parms);
-			
-			e1.printStackTrace();
-			Log.d(TAG, "json is wrong");
-		}
-		catch (NameNotFoundException e)
-		{
-			// TODO Auto-generated catch block
-
-			TradeFilingApplication.logout();
-			
-			
-			parms.putString("module_name", "Log");
-			parms.putString("action_type", "save");
-			parms.putString("return", json);
-			String jstr = getJson(OnlineDataProvider.URL_LOG, parms);
-			e.printStackTrace();
-		}
-		finally
-		{
-//			dbUtil.CloseDB(db);
-		}
-
-		// try
-		// {
-		// m_RemoteVerCode = Integer
-		// .parseInt(obj.getString("verCode"));
-		// m_RemoteVerName = obj.getString("verName");
-		// m_NewVerUrl = obj.getString("URL");
-		// }
-		// catch (Exception e)
-		// {
-		// m_RemoteVerCode = -1;
-		// m_RemoteVerName = "";
-		// m_NewVerUrl = "";
-		// dbgUtil.Log(Log.INFO,TAG, "download failed json file wrong!");
-		// return false;
-		// }
-		Log.d(TAG, "json is wrong");
-		return RESULT_USERAUTH_ERROR;
-	}
+//			String jstr = getJson(OnlineDataProvider.URL_LOG, parms);
+//
+//			e1.printStackTrace();
+//			Log.d(TAG, "json is wrong");
+//		}
+//		catch (NameNotFoundException e)
+//		{
+//			// TODO Auto-generated catch block
+//
+//			TradeFilingApplication.logout();
+//
+//
+//			parms.putString("module_name", "Log");
+//			parms.putString("action_type", "save");
+//			parms.putString("return", json);
+//			String jstr = getJson(OnlineDataProvider.URL_LOG, parms);
+//			e.printStackTrace();
+//		}
+//		finally
+//		{
+////			dbUtil.CloseDB(db);
+//		}
+//
+//		// try
+//		// {
+//		// m_RemoteVerCode = Integer
+//		// .parseInt(obj.getString("verCode"));
+//		// m_RemoteVerName = obj.getString("verName");
+//		// m_NewVerUrl = obj.getString("URL");
+//		// }
+//		// catch (Exception e)
+//		// {
+//		// m_RemoteVerCode = -1;
+//		// m_RemoteVerName = "";
+//		// m_NewVerUrl = "";
+//		// dbgUtil.Log(Log.INFO,TAG, "download failed json file wrong!");
+//		// return false;
+//		// }
+//		Log.d(TAG, "json is wrong");
+//		return RESULT_USERAUTH_ERROR;
+//	}
 
 	// private void writeData(JSONObject allData)
 	// {

+ 7 - 4
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/detail/DetailFragment.java

@@ -1321,6 +1321,7 @@ public class DetailFragment extends Fragment implements OnClickListener /*
 	{
 		int	errorcode;
 
+		JSONObject json;
 		@Override
 		protected Boolean doInBackground(Void... params)
 		{
@@ -1334,6 +1335,7 @@ public class DetailFragment extends Fragment implements OnClickListener /*
 
 
 			JSONObject jsonResult = RADataProvider.TabDetail(getArguments());
+			json=jsonResult;
 			String jstr=jsonResult.toString();
 			if (jstr == null || jstr.length() <= 0)
 			{
@@ -1410,10 +1412,11 @@ public class DetailFragment extends Fragment implements OnClickListener /*
 				// case Network.RESULT_RESPONSE_NULL:
 				{
 
-					Toast toast = Toast.makeText(
-							TradeFilingApplication.get_instance(),
-							getText(R.string.msg_net_resulterror) + ":"
-									+ errorcode, Toast.LENGTH_LONG);
+					String msg =  json.optString("err_msg");
+					Toast toast = Toast.makeText(getActivity()
+									.getApplicationContext(),
+							msg,
+							Toast.LENGTH_LONG);
 					toast.setGravity(Gravity.CENTER, 0, 0);
 					toast.show();
 

+ 1 - 1
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/home/FunctionGrid.java

@@ -43,7 +43,7 @@ protected void onAttachedToWindow() {
 
         super.onMeasure(widthMeasureSpec, expandSpec);
 
-        Log.e("DEBUG", "onMeasure: FunctionGrid");
+//        Log.e("DEBUG", "onMeasure: FunctionGrid");
     }
 
 

+ 4 - 3
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/login/LoginFragment.java

@@ -483,9 +483,11 @@ public class LoginFragment extends Fragment/* implements OnClickListener */
 						case OnlineDataProvider.RESULT_ERROR:
 							// case Network.RESULT_RESPONSE_NULL:
 						{
+
+							String msg =  json.optString("err_msg");
 							Toast toast = Toast.makeText(getActivity()
 											.getApplicationContext(),
-									getText(R.string.msg_net_resulterror),
+									msg,
 									Toast.LENGTH_LONG);
 							toast.setGravity(Gravity.CENTER, 0, 0);
 							toast.show();
@@ -502,8 +504,7 @@ public class LoginFragment extends Fragment/* implements OnClickListener */
 						default: {
 							Toast toast = Toast.makeText(getActivity()
 											.getApplicationContext(),
-									getText(R.string.msg_net_resulterror) + ":"
-											+ result, Toast.LENGTH_LONG);
+									getText(R.string.msg_net_resulterror), Toast.LENGTH_LONG);
 							toast.setGravity(Gravity.CENTER, 0, 0);
 							toast.show();
 							break;

+ 8 - 7
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/login/RetrievePasswordActivity.java

@@ -46,7 +46,7 @@ public class RetrievePasswordActivity extends AppCompatActivity
 	/**
 	 * Keep track of the login task to ensure we can cancel it if requested.
 	 */
-	private UserLoginTask	mAuthTask	= null;
+	private RetrievePasswordTask	mAuthTask	= null;
 
 	// Values for email and password at the time of the login attempt.
 	private String			m_sEmail;
@@ -234,7 +234,7 @@ public class RetrievePasswordActivity extends AppCompatActivity
 			// perform the user login attempt.
 			mLoginStatusMessageView.setText(R.string.login_progress_signing_in);
 			showProgress(true);
-			mAuthTask = new UserLoginTask();
+			mAuthTask = new RetrievePasswordTask();
 			mAuthTask.execute((Void) null);
 		}
 	}
@@ -292,7 +292,7 @@ public class RetrievePasswordActivity extends AppCompatActivity
 	 * Represents an asynchronous login/registration task used to authenticate
 	 * the user.
 	 */
-	public class UserLoginTask extends AsyncTask<Void, Void, Boolean>
+	public class RetrievePasswordTask extends AsyncTask<Void, Void, Boolean>
 	{
 		JSONObject json;
 
@@ -378,8 +378,10 @@ public class RetrievePasswordActivity extends AppCompatActivity
 					case OnlineDataProvider.RESULT_ERROR:
 					// case Network.RESULT_RESPONSE_NULL:
 					{
-						Toast toast = Toast.makeText(getApplicationContext(),
-								getText(R.string.msg_net_resulterror),
+						String msg =  json.optString("err_msg");
+						Toast toast = Toast.makeText(RetrievePasswordActivity.this
+										.getApplicationContext(),
+								msg,
 								Toast.LENGTH_LONG);
 						toast.setGravity(Gravity.CENTER, 0, 0);
 						toast.show();
@@ -437,8 +439,7 @@ public class RetrievePasswordActivity extends AppCompatActivity
 					default:
 					{
 						Toast toast = Toast.makeText(getApplicationContext(),
-								getText(R.string.msg_net_resulterror) + ":"
-										+ code, Toast.LENGTH_LONG);
+								getText(R.string.msg_net_resulterror), Toast.LENGTH_LONG);
 						toast.setGravity(Gravity.CENTER, 0, 0);
 						toast.show();
 						break;

+ 5 - 4
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/my/ChangePasswordActivity.java

@@ -335,8 +335,10 @@ public class ChangePasswordActivity extends AppCompatActivity {
 				case OnlineDataProvider.RESULT_ERROR:
 				// case Network.RESULT_RESPONSE_NULL:
 				{
-					Toast toast = Toast.makeText(getApplicationContext(),
-							getText(R.string.msg_net_resulterror),
+					String msg =  json.optString("err_msg");
+					Toast toast = Toast.makeText(ChangePasswordActivity.this
+									.getApplicationContext(),
+							msg,
 							Toast.LENGTH_LONG);
 					toast.setGravity(Gravity.CENTER, 0, 0);
 					toast.show();
@@ -364,8 +366,7 @@ public class ChangePasswordActivity extends AppCompatActivity {
 				}
 				default: {
 					Toast toast = Toast.makeText(getApplicationContext(),
-							getText(R.string.msg_net_resulterror) + ":"
-									+ errorcode, Toast.LENGTH_LONG);
+							getText(R.string.msg_net_resulterror) , Toast.LENGTH_LONG);
 					toast.setGravity(Gravity.CENTER, 0, 0);
 					toast.show();
 					break;

+ 3 - 0
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/my/MyFragment.java

@@ -169,9 +169,12 @@ public class MyFragment extends StaticModelistFragment
                 @Override
                 public void run()
                 {
+
                     RADataProvider.Logout();
+
                 }
             }).start();
+            TradeFilingApplication.logout();
 
 
 

+ 2 - 3
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/signup/SignupActivity.java

@@ -286,7 +286,7 @@ public class SignupActivity extends AppCompatActivity
                     }
                     case OnlineDataProvider.RESULT_FAILED_WITH_MESSAGE:
                     {
-                        Toast toast = Toast.makeText(getApplicationContext(),jsobj.optString("message"), Toast.LENGTH_LONG);
+                        Toast toast = Toast.makeText(getApplicationContext(),jsobj.optString("err_msg"), Toast.LENGTH_LONG);
                         toast.setGravity(Gravity.CENTER, 0, 0);
                         toast.show();
                         return;
@@ -295,8 +295,7 @@ public class SignupActivity extends AppCompatActivity
                     default:
                     {
                         Toast toast = Toast.makeText(getApplicationContext(),
-                                getText(R.string.msg_net_resulterror) + ":"
-                                        + result, Toast.LENGTH_LONG);
+                                getText(R.string.msg_net_resulterror) , Toast.LENGTH_LONG);
                         toast.setGravity(Gravity.CENTER, 0, 0);
                         toast.show();
                         break;

+ 0 - 9
ApexDrivers/ratradefiling/src/main/res/layout/home_header_view1.xml

@@ -111,15 +111,6 @@
 
         </com.usai.ratradefiling.home.FunctionGrid>
 
-        <Button
-            android:id="@+id/button"
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
-            android:text="Button"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@id/function_grid" />
-
     </androidx.constraintlayout.widget.ConstraintLayout>
 
 </com.usai.ratradefiling.home.HomeHeaderView>

+ 2 - 2
ApexDrivers/ratradefiling/src/main/res/values-zh/strings.xml

@@ -17,7 +17,7 @@
     <string name="error_invalid_email">This email address is invalid</string>
     <string name="msg_connection_none">No available connection </string>
     <string name="msg_net_error">Can not connect to server</string>
-    <string name="msg_net_resulterror">An error occur on server,please contact our sales.CODE</string>
+    <string name="msg_net_resulterror">Can not connect to the server, please contact admin.</string>
     <string name="str_invalid_pore">Invalid user name or email</string>
     <string name="str_ver">ver:</string>
     <string name="msg_ver_low">Client version is too low</string>
@@ -83,7 +83,7 @@
     <string name="signup_agree">I AGREE</string>
     <string name="terms">terms_en</string>
     <string name="email_invalid">Email invalid</string>
-    <string name="password_invalid">PASSWORD is invalid.\r\nPassword must 8&#8221;16 characters, letters, numbers and uppercase letters are allowed.</string>
+    <string name="password_invalid">PASSWORD is invalid.\r\nPassword must 816 characters, letters, numbers and uppercase letters are allowed.</string>
     <string name="password_not_match">Password does not match</string>
 
     <string name="str_signup_success">Signup successfully!</string>

+ 4 - 2
ApexDrivers/ratradefiling/src/main/res/values/strings.xml

@@ -12,13 +12,15 @@
     <!--Home-->
     <string name="btn_more">More</string>
     <!--Common-->
+
+
     <string name="btn_close">Cancel</string>
     <string name="btn_ok">OK</string>
     <string name="error_field_required">Required field</string>
     <string name="error_invalid_email">This email address is invalid</string>
     <string name="msg_connection_none">No available connection </string>
     <string name="msg_net_error">Can not connect to server</string>
-    <string name="msg_net_resulterror">An error occur on server,please contact our sales.CODE</string>
+    <string name="msg_net_resulterror">Can not connect to the server, please contact admin.</string>
     <string name="str_invalid_pore">Invalid user name or email</string>
     <string name="str_ver">Ver:</string>
     <string name="msg_ver_low">Client version is too low</string>
@@ -86,7 +88,7 @@
     <string name="signup_agree">I AGREE</string>
     <string name="terms">terms_en</string>
     <string name="email_invalid">Email invalid</string>
-    <string name="password_invalid">PASSWORD is invalid.\r\nPassword must 8&#8221;16 characters, letters, numbers and uppercase letters are allowed.</string>
+    <string name="password_invalid">PASSWORD is invalid.\r\nPassword must 816 characters, letters, numbers and uppercase letters are allowed.</string>
     <string name="password_not_match">Password does not match</string>
 
     <string name="str_signup_success">Signup successfully!</string>