Quellcode durchsuchen

Add search result and detail saving function -- 添加查询结果和detail的保存功能 (resolve: #28)
Tap my --> saved search crash -- My 标签点saved search 闪退(resolve: #27)
Add save list interface -- 添加保存列表界面(resolve: #29)
Open the saved query function -- 打开保存的查询功能(resolve: #14304)
Open the saved detail function -- 打开保存的detail功能(issue50: #14309)

Ray Zhang vor 4 Jahren
Ursprung
Commit
46dfa772f4

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

@@ -55,6 +55,7 @@
         <activity android:name=".search.SearchActivity" />
         <activity android:name=".fields.CustomizeFieldsActivity" />
         <activity android:name=".detail.NewDetailActivity" />
+        <activity android:name=".my.CheckSavedActivity"/>
     </application>
 
 </manifest>

+ 118 - 0
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/dataprovider/RADataProvider.java

@@ -31,6 +31,124 @@ public class RADataProvider {
     {
         return 0;
     }
+    public static JSONArray loadSavedDetail()
+    {
+        String userfilePath = TradeFilingApplication.get_instance().getFilesDir().getPath()+"/saved_detail_"+TradeFilingApplication.get_instance().get_user()+".json";
+        String  json_user=FileManager.readJson(userfilePath);
+
+
+        JSONArray array=null;
+        if(TextUtils.isEmpty(json_user))
+        {
+            array = new JSONArray();
+
+        }
+        else
+        {
+            try
+            {
+                array = new JSONArray(json_user) ;
+            } catch (JSONException e)
+            {
+                array = new JSONArray();
+                e.printStackTrace();
+            }
+
+        }
+        return array;
+    }
+    public static JSONArray loadSavedSearch()
+    {
+        String userfilePath = TradeFilingApplication.get_instance().getFilesDir().getPath()+"/saved_search_"+TradeFilingApplication.get_instance().get_user()+".json";
+        String  json_user=FileManager.readJson(userfilePath);
+
+
+        JSONArray array=null;
+        if(TextUtils.isEmpty(json_user))
+        {
+            array = new JSONArray();
+
+        }
+        else
+        {
+            try
+            {
+                array = new JSONArray(json_user) ;
+            } catch (JSONException e)
+            {
+                array = new JSONArray();
+                e.printStackTrace();
+            }
+
+        }
+        return array;
+    }
+
+    public static boolean saveDetailParametersForModuleWithName(JSONObject param, String module, String name) {
+        String userfilePath = TradeFilingApplication.get_instance().getFilesDir().getPath()+"/saved_detail_"+TradeFilingApplication.get_instance().get_user()+".json";
+        String  json_user=FileManager.readJson(userfilePath);
+
+
+        JSONArray array=null;
+        if(TextUtils.isEmpty(json_user))
+        {
+            array = new JSONArray();
+
+        }
+        else
+        {
+            try
+            {
+                array = new JSONArray(json_user) ;
+            } catch (JSONException e)
+            {
+                array = new JSONArray();
+                e.printStackTrace();
+            }
+
+        }
+
+        if(array.length()>=20)
+        {
+            array.remove(0);
+        }
+
+        JSONObject item = new JSONObject();
+        try
+        {
+            if(TradeFilingApplication.get_company_list().length()>0)
+            {
+
+
+                param.put("company",TradeFilingApplication.get_company_list().optJSONObject(TradeFilingApplication.get_current_company_index()).optString("id"));
+
+
+                item.put("company_name",TradeFilingApplication.get_company_list().optJSONObject(TradeFilingApplication.get_current_company_index()).optString("name"));
+
+            }
+
+            item.put("module",module);
+            item.put("name",name);
+            item.put("param",param);
+            item.put("current_date",RAUtil.getCurrentDateTime());
+
+
+            array.put(item);
+
+        } catch (JSONException e)
+        {
+            e.printStackTrace();
+            return false;
+        }
+
+
+
+
+
+        FileManager.writeJson(array.toString(),userfilePath);
+
+        return true;
+    }
     public static boolean saveSearchParametersForModuleWithName(String intentStr, JSONObject param, String module, String name) {
 
 

+ 8 - 22
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/detail/NewDetailActivity.java

@@ -23,18 +23,13 @@ import androidx.fragment.app.Fragment;
 import androidx.viewpager.widget.ViewPager;
 
 import com.google.android.material.bottomnavigation.BottomNavigationView;
-//import com.usai.apex.ApexResultActivity≥importxTrackingApplication;
-//import com.usai.apex.DetailFragment;
-//import com.usai.apex.R;R
-//import com.usai.apex.ViewPagerAdapter;
-//import com.usai.apex.apexresult.ApexResultActivity;
+
 import com.usai.ratradefiling.NoScrollViewPager;
 import com.usai.ratradefiling.R;
 import com.usai.ratradefiling.TradeFilingApplication;
 import com.usai.ratradefiling.ViewPagerAdapter;
+import com.usai.ratradefiling.dataprovider.RADataProvider;
 import com.usai.redant.rautils.utils.RAUtil;
-//import com.usai.util.commonUtil;
-//import com.usai.util.dbUtil;
 
 import org.json.JSONException;
 import org.json.JSONObject;
@@ -169,21 +164,12 @@ public class NewDetailActivity extends AppCompatActivity {
 
                                 String param = getIntent().toUri(0);
 
-//                                SQLiteDatabase db = dbUtil.OpenDB(
-//                                        ApexTrackingApplication.get_instance(), null, true);
-//                                db.execSQL("insert into favorites(name,params,user,create_time,module_name) values('"
-//                                        + name
-//                                        + "','"
-//                                        + param
-//                                        + "','"
-//                                        + ApexTrackingApplication.get_user()
-//                                        + "',"
-//                                        + System.currentTimeMillis()
-//                                        + ",'"
-//                                        +getIntent().getStringExtra("function_name")+ "')");
-//                                dbUtil.CloseDB(db);
-
-                                /* User clicked OK so do some stuff */
+
+                                JSONObject json = RAUtil.Bundle2Json(paramsB);
+
+                                boolean bsuccessful= RADataProvider.saveDetailParametersForModuleWithName(json, sub_type, name);
+
+
                             }
                         })
                         .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {

+ 15 - 18
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/my/MyFragment.java

@@ -103,29 +103,26 @@ public class MyFragment extends StaticModelistFragment
         if (title.equals("Saved Detail"))
         {
 
-            if(true)
-                throw new AssertionError("not impl");
-//            Intent intent = new Intent();
-//            intent.setClass(getActivity(), CheckSavedActivity.class);
-//            // intent.putExtra("user", ApexTrackingApplication.get_user());
-//            // intent.putExtra("password", password);
-//            intent.putExtra("function_name", "Saved Detail");
+
+            Intent intent = new Intent();
+            intent.setClass(getActivity(), CheckSavedActivity.class);
+            // intent.putExtra("user", ApexTrackingApplication.get_user());
+            // intent.putExtra("password", password);
+            intent.putExtra("function_name", "Saved Detail");
 ////            intent.putExtra("title", "Booking Search");
-//            startActivity(intent);
+            startActivity(intent);
         }
         else if (title.equals("Saved Search"))
         {
 
-            if(true)
-                throw new AssertionError("not impl");
-//
-//            Intent intent = new Intent();
-//            intent.setClass(getActivity(), CheckSavedActivity.class);
-//            // intent.putExtra("user", user);
-//            // intent.putExtra("password", password);
-//            intent.putExtra("function_name", "Saved Search");
-////            intent.putExtra("title", "B/L info. Search");
-//            startActivity(intent);
+
+            Intent intent = new Intent();
+            intent.setClass(getActivity(), CheckSavedActivity.class);
+            // intent.putExtra("user", user);
+            // intent.putExtra("password", password);
+            intent.putExtra("function_name", "Saved Search");
+//            intent.putExtra("title", "B/L info. Search");
+            startActivity(intent);
         }
 
 //        else if(title.equals("Saved Documents"))

+ 52 - 47
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/my/SavedDetailFragment.java

@@ -7,6 +7,7 @@ import android.database.sqlite.SQLiteDatabase;
 import android.graphics.Color;
 import android.graphics.drawable.ColorDrawable;
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.text.format.DateFormat;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -28,6 +29,8 @@ import android.widget.TextView;
 //import com.usai.util.dbUtil;
 
 import com.usai.ratradefiling.R;
+import com.usai.ratradefiling.dataprovider.RADataProvider;
+import com.usai.ratradefiling.detail.NewDetailActivity;
 import com.usai.ratradefiling.swipemenulistview.BaseSwipListAdapter;
 import com.usai.ratradefiling.swipemenulistview.SwipeMenu;
 import com.usai.ratradefiling.swipemenulistview.SwipeMenuCreator;
@@ -35,6 +38,10 @@ import com.usai.ratradefiling.swipemenulistview.SwipeMenuItem;
 import com.usai.ratradefiling.swipemenulistview.SwipeMenuListView;
 import com.usai.redant.rautils.utils.RAUtil;
 
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
 import java.net.URISyntaxException;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -149,28 +156,30 @@ public class SavedDetailFragment extends TFListFragment
 	public void onListItemClick(ListView l, View v, int position, long id)
 	{
 
-		Intent intent = new Intent();
-		// SQLiteDatabase db = dbUtil.OpenDB(getActivity(), null, false);
-		// Cursor c = db.query("favorites", new String[]
-		// {"params"},"_id="+searchresult.getData().get(position).get("_id"),null,
-		// null, null, null);
-		// if(c.moveToNext())
-		// {
-		String uri = (String) searchresult.getData().get(position)
-				.get("params");
-		try
-		{
-			intent = Intent.parseUri(uri, 0);
-
-			startActivity(intent);
-		}
-		catch (URISyntaxException e)
-		{
-			// TODO Auto-generated catch block
-			e.printStackTrace();
+		JSONArray actions = sectionModel.actions;
+		if (actions == null) {
+			actions = new JSONArray();
 		}
 
+		Intent intent = new Intent(mCtx, NewDetailActivity.class);
+		intent.putExtra("sub_type", params.getString("sub_type"));
+		intent.putExtra("actions_count", actions.length());
+
+		intent.putExtra("bundle_params",params);
+//        intent.putExtra("_id",detail_id);
+//        if(_schema!=null)
+//            intent.putExtra("_schema",_schema);
+
+		for (int i = 0; i < actions.length(); i++) {
+			try {
+				String name = actions.getString(i);
+				intent.putExtra("action" + i, name);
+			} catch (JSONException e) {
+				e.printStackTrace();
+			}
+		}
 
+		startActivity(intent);
 
 	}
 
@@ -197,16 +206,12 @@ public class SavedDetailFragment extends TFListFragment
 		public FavoritesAdapter(SearchResult result, Context context)
 		{
 
-//			this.mInflater = LayoutInflater.from(context);
-//			SQLiteDatabase db = dbUtil.OpenDB(getActivity(), null, false);
-//			Cursor cursor = db.query("favorites", new String[] { "_id",
-//					"create_time", "name", "params","module_name" }, "user='"
-//					+ ApexTrackingApplication.get_user() + "'", null, null,
-//					null, "_id desc", null);
-//
-//			result.add_records(cursor);
-//			dbUtil.CloseCursor(cursor);
-//			dbUtil.CloseDB(db);
+
+			this.mInflater = LayoutInflater.from(context);
+			JSONArray array = RADataProvider.loadSavedDetail();
+
+
+			result.add_records(array);
 
 		}
 
@@ -228,10 +233,12 @@ public class SavedDetailFragment extends TFListFragment
 
 			holder.message.setText(searchresult.getData().get(position).get("name")
 					.toString());// 给该控件设置数据(数据从集合类中来)
-			holder.time.setText(DateFormat.format(
-					getString(R.string.time_format),
-					(Long) searchresult.getData().get(position)
-							.get("create_time")));
+			String time =(String) searchresult.getData().get(position).get("create_time");
+			if(TextUtils.isEmpty(time))
+			{
+				time = "";
+			}
+			holder.time.setText(time );
 			holder.icon.setImageResource(rid);
 
 
@@ -273,27 +280,25 @@ public class SavedDetailFragment extends TFListFragment
 			return datalist.size();
 		}
 
-		public void add_records(Cursor c)
+		public void add_records(JSONArray array)
 		{
-			while (c.moveToNext())
+
+			for(int i=0;i<array.length();i++)
 			{
-				long _id = c.getInt(0);
-				long create_time = c.getLong(1);
-				String name = c.getString(2);
-				String params = c.getString(3);
-				String module_name = c.getString(4);
+				JSONObject item = array.optJSONObject(i);
 				Map<String, Object> map = new HashMap<String, Object>();
-				map.put("_id", _id);
-
-				map.put("create_time", create_time);
-				map.put("name", name);
-
-				map.put("params", params);
-				map.put("module_name", module_name);
+				map.put("_id", i);
 
+				map.put("create_time", item.optString("current_date"));
+				map.put("name", item.optString("name"));
+				map.put("company_name", item.optString("company_name"));
+				map.put("params", item.optJSONObject("param"));
+				map.put("module_name", item.optString("module"));
 				datalist.add(map);
 			}
 
+
+
 		}
 
 		public List<Map<String, Object>> getData()

+ 48 - 49
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/my/SavedSearchFragment.java

@@ -20,6 +20,8 @@ import android.widget.TextView;
 
 
 import com.usai.ratradefiling.R;
+import com.usai.ratradefiling.dataprovider.RADataProvider;
+import com.usai.ratradefiling.result.ResultActivity;
 import com.usai.ratradefiling.swipemenulistview.BaseSwipListAdapter;
 import com.usai.ratradefiling.swipemenulistview.SwipeMenu;
 import com.usai.ratradefiling.swipemenulistview.SwipeMenuCreator;
@@ -27,6 +29,7 @@ import com.usai.ratradefiling.swipemenulistview.SwipeMenuItem;
 import com.usai.ratradefiling.swipemenulistview.SwipeMenuListView;
 import com.usai.redant.rautils.utils.RAUtil;
 
+import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
 
@@ -140,32 +143,33 @@ public class SavedSearchFragment extends TFListFragment
 	{
 
 		Intent intent = new Intent();
-		String uri = (String) searchresult.getData().get(position).get("params");
+//		String uri = (String) ;
 		String searchParms = (String) searchresult.getData().get(position).get("criterion");
 		try
 		{
 //
 //			intent = Intent.parseUri(uri, 0);
-//			Bundle parms = new Bundle();
-////			parms.writeToParcel(parcel, flags)
-//			JSONObject obj = new JSONObject(searchParms);
-//			Iterator<?> it = obj.keys();
-//			while (it.hasNext())
-//			{
-//
-//				String key = (String) it.next();
-//				parms.putString(key, obj.getString(key));
-//
-////					obj.put(key, searchParms.get(key).toString());
-//
-//
-//
-//			}
-//
+
+			Bundle parms = new Bundle();
+//			parms.writeToParcel(parcel, flags)
+			JSONObject obj =(JSONObject) searchresult.getData().get(position).get("params");
+			Iterator<?> it = obj.keys();
+			while (it.hasNext())
+			{
+
+				String key = (String) it.next();
+				parms.putString(key, obj.getString(key));
+
+//					obj.put(key, searchParms.get(key).toString());
+
+
+
+			}
+
 //			parms.putString("columns",dbUtil.get_fields(ApexTrackingApplication.get_user(), (String) searchresult.getData().get(position).get("module_name")));
-//
-//
-//			ApexResultActivity.startResultActivity(getActivity(), parms);
+
+
+			ResultActivity.startResultActivity(getActivity(), parms);
 
 		}
 		catch (Exception e)
@@ -201,18 +205,11 @@ public class SavedSearchFragment extends TFListFragment
 		public HistoryAdapter(SearchResult result, Context context)
 		{
 //
-//			this.mInflater = LayoutInflater.from(context);
-//			SQLiteDatabase db = dbUtil
-//					.OpenDB(getActivity(), null, false);
-//			Cursor cursor = db.query("history",
-//					new String[] { "_id", "create_time", "criterion",
-//							"params","module_name" ,"name"}, "user='"
-//							+ ApexTrackingApplication.get_user() + "'", null,
-//					null, null, "_id desc", null);
-//
-//			result.add_records(cursor);
-//			dbUtil.CloseCursor(cursor);
-//			dbUtil.CloseDB(db);
+			this.mInflater = LayoutInflater.from(context);
+			JSONArray array = RADataProvider.loadSavedSearch();
+
+
+			result.add_records(array);
 //
 		}
 
@@ -239,7 +236,13 @@ public class SavedSearchFragment extends TFListFragment
 			int rid= RAUtil.iconName2Rid(getActivity(),module_name);
 
 			holder.message.setText(name);// 给该控件设置数据(数据从集合类中来)
-			holder.time.setText(DateFormat.format(getString(R.string.time_format),(Long) searchresult.getData().get(position).get("create_time")));
+
+			String time =(String) searchresult.getData().get(position).get("create_time");
+			if(TextUtils.isEmpty(time))
+			{
+				time = "";
+			}
+			holder.time.setText(time );
 			holder.icon.setImageResource(rid);
 
 			return convertView;
@@ -279,29 +282,25 @@ public class SavedSearchFragment extends TFListFragment
 			return datalist.size();
 		}
 
-		public void add_records(Cursor c)
+		public void add_records(JSONArray array)
 		{
-			while (c.moveToNext())
+
+			for(int i=0;i<array.length();i++)
 			{
-				long _id = c.getInt(0);
-				long create_time = c.getLong(1);
-				String criterion = c.getString(2);
-				String params = c.getString(3);
-				String module_name = c.getString(4);
-				String name = c.getString(5);
+				JSONObject item = array.optJSONObject(i);
 				Map<String, Object> map = new HashMap<String, Object>();
-				map.put("_id", _id);
-				
-				map.put("create_time", create_time);
-				map.put("criterion", criterion);
-				
-				map.put("params", params);
-				map.put("module_name", module_name);
-				map.put("name", name);
+				map.put("_id", i);
 
+				map.put("create_time", item.optString("current_date"));
+				map.put("name", item.optString("name"));
+				map.put("company_name", item.optString("company_name"));
+				map.put("params", item.optJSONObject("param"));
+				map.put("module_name", item.optString("module"));
 				datalist.add(map);
 			}
 
+
+
 		}
 
 		public List<Map<String, Object>> getData()