Sfoglia il codice sorgente

Add function panel setting function -- 添加function panel 设置功能 (issue50: #14213)
Add company selection interface -- 增加公司选择界面 (resolve: #14209)

Ray Zhang 5 anni fa
parent
commit
2a005011a2

+ 6 - 6
ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/list/StaticModelistFragment.java

@@ -174,8 +174,8 @@ public class StaticModelistFragment extends ListFragment {
         List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
 
         try {
-            ModeName=jsobj.getString("title");
-            ModeIcon=jsobj.getString("icon");
+            ModeName=jsobj.optString("title");
+            ModeIcon=jsobj.optString("icon");
 
             JSONArray array = jsobj.getJSONArray("modelist");
              for(int i=0;i<array.length();i++) {
@@ -183,10 +183,10 @@ public class StaticModelistFragment extends ListFragment {
                  JSONObject rowobj = array.getJSONObject(i);
 
                  Map<String, Object> map = new HashMap<String, Object>();
-                 String name=rowobj.getString("name");
-                 String info=rowobj.getString("detail");
-                 String    icon=rowobj.getString("icon");
-                 String    type=rowobj.getString("type");
+                 String name=rowobj.optString("name");
+                 String info=rowobj.optString("detail");
+                 String    icon=rowobj.optString("icon");
+                 String    type=rowobj.optString("type");
 
 
                  int iconid = RAUtil.iconName2Rid(getContext(),icon);

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

@@ -15,8 +15,8 @@
         android:supportsRtl="true"
         android:theme="@style/TradeFilingTheme"
         android:usesCleartextTraffic="true">
-        <activity android:name=".home.CompanySelectActivity"></activity>
-        <!-- <uses-library -->
+        <activity android:name=".home.FunctionPanelSettingActivity"></activity>
+        <activity android:name=".home.CompanySelectActivity" /> <!-- <uses-library -->
         <!-- android:name="com.google.android.wearable" -->
         <!-- android:required="true" /> -->
         <!--

+ 28 - 1
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/RootActivity.java

@@ -30,9 +30,12 @@ import com.google.android.material.bottomnavigation.BottomNavigationView;
 //import com.usai.apex.ViewPagerAdapter;
 import com.usai.ratradefiling.about.AboutFragment;
 import com.usai.ratradefiling.base.BasicActivity;
+import com.usai.ratradefiling.fields.CustomizeFieldsActivity;
+import com.usai.ratradefiling.home.FunctionPanelSettingActivity;
 import com.usai.ratradefiling.home.HomeFragment;
 import com.usai.ratradefiling.login.LoginFragment;
 import com.usai.ratradefiling.my.MyFragment;
+import com.usai.ratradefiling.result.ResultActivity;
 import com.usai.redant.rautils.utils.RAUtil;
 
 import static android.view.View.GONE;
@@ -56,7 +59,10 @@ public class RootActivity extends BasicActivity {
 //    Toolbar toolbar=null;
     Menu actionbutton;
 
+    public static class RequestCode {
 
+       public static final int FunctionSetting = 1111;
+    }
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         actionbutton = menu;
@@ -86,11 +92,24 @@ public class RootActivity extends BasicActivity {
                 }
 
                 break;
-            case R.id.quick_search:
+            case R.id.panel_setting:
 
             {
 
+                Intent intent = new Intent();
+                intent.setClass(this, FunctionPanelSettingActivity.class);
+                intent.putExtra("user", TradeFilingApplication.get_user());
+//                intent.putExtra("sub_type", mParams.getString("sub_type"));
+//        intent.putExtra("sub_type", mParams.getString("sub_type"));
+//                intent.putExtra("type", "result");
+//                intent.putExtra("forNewResult", true);
+//                intent.putExtra("maxDisplayCount", 3);
+
+                HomeFragment homef=(HomeFragment)((ViewPagerAdapter)viewPager.getAdapter()).getItem(viewPager.getCurrentItem());
+                homef.startActivityForResult(intent, RequestCode.FunctionSetting);
+
                 // 设置function panel
+
             }
 
 //                Toast.makeText(this,"跳转至container search activity",Toast.LENGTH_LONG).show();
@@ -139,6 +158,14 @@ public class RootActivity extends BasicActivity {
         }
 
     }
+
+//    @Override
+//    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+//        super.onActivityResult(requestCode, resultCode, data);
+//
+//
+//    }
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
 //        autoSetupStatusBar=false;

+ 4 - 0
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/TradeFilingApplication.java

@@ -598,6 +598,10 @@ public class TradeFilingApplication extends Application implements RAProviderHel
 		Log.d(TAG, "get_company_list");
 		return m_current_company_idx;
 	}
+	public void set_current_company(int index)
+	{
+		m_current_company_idx = index;
+	}
 	public static String get_current_company_name()
 	{
 		Log.d(TAG, "get_company_list");

+ 3 - 2
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/fields/DragListView.java

@@ -16,6 +16,7 @@ import android.widget.ListView;
 
 
 import com.usai.ratradefiling.R;
+import com.usai.ratradefiling.home.FunctionPanelSettingActivity;
 
 import org.json.JSONObject;
 
@@ -54,7 +55,7 @@ public class DragListView extends ListView
 	{
 		public void onItemClick(AdapterView<?> parent, View v, int pos, long id)
 		{
-			CustomizeFieldsActivity.DragListAdapter adapter = (CustomizeFieldsActivity.DragListAdapter) ((ListView) parent)
+			FunctionPanelSettingActivity.DragListAdapter adapter = (FunctionPanelSettingActivity.DragListAdapter) ((ListView) parent)
 					.getAdapter();
 
 			if (adapter.isEnabled(pos) == false)// return if item is a group key
@@ -276,7 +277,7 @@ public class DragListView extends ListView
 		if (dragPosition > 0 && dragPosition < getAdapter().getCount())
 		{
 			/* @SuppressWarnings("unchecked") */
-			CustomizeFieldsActivity.DragListAdapter adapter = (CustomizeFieldsActivity.DragListAdapter) getAdapter();
+			FunctionPanelSettingActivity.DragListAdapter adapter = (FunctionPanelSettingActivity.DragListAdapter) getAdapter();
 			JSONObject dragItem = adapter.getItem(dragSrcPosition);
 
 			DragListViewDelegate delegate = getDelegate();

+ 16 - 0
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/home/CompanySelectActivity.java

@@ -3,13 +3,29 @@ package com.usai.ratradefiling.home;
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.fragment.app.FragmentActivity;
 
+import android.content.Context;
+import android.content.Intent;
 import android.os.Bundle;
 
 import com.usai.ratradefiling.R;
+import com.usai.ratradefiling.result.ResultActivity;
 
 public class CompanySelectActivity extends FragmentActivity // AppCompatActivity
 {
 
+    private static final String ParametersKey = "_CompanySelect_Parameters_Key";
+//    public static void StartCompanySelectActivity(Context context, Bundle params) {
+//
+//        if (context != null) {
+//
+//            Intent intent = new Intent(context, CompanySelectActivity.class);
+////            if (params != null) {
+////                intent.putExtra(ParametersKey, params);
+////            }
+//            context.startActivity(intent);
+//        }
+//
+//    }
     @Override
     protected void onCreate(Bundle savedInstanceState)
     {

+ 27 - 7
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/home/CompanySelectFragment.java

@@ -9,10 +9,14 @@ import android.view.View;
 import android.widget.ListView;
 
 import com.usai.ratradefiling.R;
+import com.usai.ratradefiling.TradeFilingApplication;
 import com.usai.redant.rautils.list.StaticModelistFragment;
 
+import org.json.JSONException;
 import org.json.JSONObject;
 
+import java.util.Set;
+
 ///**
 // * A simple {@link Fragment} subclass.
 // * Use the {@link CompanySelectFragment#newInstance} factory method to
@@ -20,8 +24,8 @@ import org.json.JSONObject;
 // */
 public class CompanySelectFragment extends StaticModelistFragment
 {
-
-
+    JSONObject m_Json = new JSONObject();
+    private static final String ParametersKey = "_CompanySelect_Parameters_Key";
 
     public CompanySelectFragment()
     {
@@ -34,11 +38,22 @@ public class CompanySelectFragment extends StaticModelistFragment
         super.onActivityCreated(savedInstanceState);
 
 
-        JSONObject json;
+
         Intent i=getActivity().getIntent();
-        json=i.getBundleExtra("");
+        Bundle b=i.getBundleExtra("ParametersKey");
 
-        setupAdapter(json);
+
+//        JSONObject json = new JSONObject();
+        try
+        {
+            m_Json.put("modelist", TradeFilingApplication.get_company_list());
+            m_Json.put("title","Set Company");
+        } catch (JSONException e)
+        {
+            e.printStackTrace();
+            return;
+        }
+        setupAdapter(m_Json);
 
 //        adapter.getView()
 
@@ -57,10 +72,15 @@ public class CompanySelectFragment extends StaticModelistFragment
     public void onListItemClick(ListView l, View v, int position, long id)
     {
 
-//        JSONObject jsonobj=loadjson(R.raw.my);
+        JSONObject jsonobj=m_Json;
 //        Log.d("FragmentList", "Item clicked: " + id);
 //
-//        String 	title = (String) getData(jsonobj).get(position-1).get("title");
+        String 	title = (String) getData(jsonobj).get(position-1).get("title");
+        String 	cid = (String) getData(jsonobj).get(position-1).get("id");
+        TradeFilingApplication.get_instance().set_current_company(position-1);
+
+
+        getActivity().finish();
 //
 ////        Intent intent = new Intent();
 //        if (title.equals("Saved Detail"))

+ 3 - 0
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/home/FunctionPanelAdapter.java

@@ -25,6 +25,9 @@ public class FunctionPanelAdapter extends BaseAdapter {
 
     }
 
+    public void update_json(JSONObject json){
+        function_json = json;
+    }
 
     @Override
     public int getCount() {

+ 444 - 0
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/home/FunctionPanelSettingActivity.java

@@ -0,0 +1,444 @@
+package com.usai.ratradefiling.home;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.TextView;
+
+import com.usai.ratradefiling.R;
+import com.usai.ratradefiling.TradeFilingApplication;
+import com.usai.ratradefiling.dataprovider.RADataProvider;
+import com.usai.ratradefiling.fields.CustomizeFieldsActivity;
+import com.usai.ratradefiling.fields.DragListView;
+import com.usai.redant.rautils.utils.FileManager;
+import com.usai.redant.rautils.utils.RAConverter;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class FunctionPanelSettingActivity extends AppCompatActivity implements
+        View.OnClickListener, DragListView.DragListViewDelegate
+{
+    //
+    // @Override
+    // protected void onCreate(Bundle savedInstanceState)
+    // {
+    // super.onCreate(savedInstanceState);
+    // setContentView(R.layout.activity_customize_fields);
+    // }
+    //
+//    @Override
+//    public boolean onCreateOptionsMenu(Menu menu)
+//    {
+//        // Inflate the menu; this adds items to the action bar if it is present.
+//        getMenuInflater().inflate(R.menu.customize_fields, menu);
+//        return true;
+//    }
+
+    //	private static List<fieldedit> list = null;
+    private FunctionPanelSettingActivity.DragListAdapter adapter = null;
+
+    // public static List<String> groupKey = new ArrayList<String>();
+    private static List<JSONObject> list = null;
+    private List<JSONObject> showList = null;
+    private List<JSONObject> hideList = null;
+    //	private List<fieldedit> showList = new ArrayList<fieldedit>();
+//	private List<fieldedit> hideList = new ArrayList<fieldedit>();
+    private String user/* ,password */;
+//	private int behavior;
+
+    @Override
+    public boolean dragListViewCanMoveItem(DragListView dragListView, int from, int to) {
+
+        int hidePosition = adapter.getPosition(mHideField);
+        // hide -> display && displayCount >= maxDisplayCount
+//        if (from > hidePosition && to < hidePosition && hidePosition > maxDisplayCount) {
+//
+//            new AlertDialog.Builder(this)
+//                    .setTitle("Warning")
+//                    .setMessage("the maximums count of display items is " + maxDisplayCount)
+//                    .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
+//                        @Override
+//                        public void onClick(DialogInterface dialog, int which) {
+//
+//                        }
+//                    })
+//                    .show();
+//
+//            return false;
+//        }
+
+        return true;
+    }
+
+    public class fieldedit
+    {
+        public String name = null;
+        public int _id = -1;
+
+        public fieldedit(String str, int i)
+        {
+            name = str;
+            _id = i;
+
+        }
+    }
+
+//    private boolean forNewResult = false;
+//    private int maxDisplayCount = 0;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState)
+    {
+        super.onCreate(savedInstanceState);
+
+        user = TradeFilingApplication.get_user();
+        // password = getIntent().getStringExtra("password");
+
+//        forNewResult = getIntent().getBooleanExtra("forNewResult", false);
+//        maxDisplayCount = getIntent().getIntExtra("maxDisplayCount", 0);
+
+
+        setContentView(R.layout.activity_function_panel_setting);
+        Button btnok = (Button) findViewById(R.id.btnok);
+        btnok.setOnClickListener(this);
+        Button btncancel = (Button) findViewById(R.id.btncancel);
+        btncancel.setOnClickListener(this);
+
+        initData();
+
+        DragListView dragListView = (DragListView) findViewById(R.id.drag_list);
+//
+//        if (forNewResult) {
+//
+//            dragListView.setDelegate(this);
+//        }
+
+        adapter = new FunctionPanelSettingActivity.DragListAdapter(this, list);
+        dragListView.setAdapter(adapter);
+
+//        SharedPreferences RunOnce = getSharedPreferences("Apex", 0);
+
+//        String vername;
+//        try
+//        {
+//            vername = getPackageManager().getPackageInfo(
+//                    "com.usai.apex", 0).versionName;
+//            boolean bFirstRun = RunOnce.getBoolean(
+//                    "FirstRun"+vername+"_fields", true);
+////			if(bFirstRun&&false)
+////			{
+////				SharedPreferences.Editor editor = RunOnce.edit();
+////				editor.putBoolean("FirstRun"+vername+"_fields", false);
+////				// Don't forget to commit your edits!!!
+////				editor.commit();
+////				Intent intent = new Intent();
+////				intent.setClass(this, HelpActivity.class);
+////				intent.putExtra("caller", "fields");
+////				startActivity(intent);
+////
+////			}
+//        }
+//        catch (PackageManager.NameNotFoundException e)
+//        {
+//            // TODO Auto-generated catch block
+//            e.printStackTrace();
+//        }
+    }
+//    @Override
+//    public boolean onOptionsItemSelected(MenuItem item)
+//    {
+//        switch (item.getItemId())
+//        {
+////		case R.id.action_help:
+////			Intent intent = new Intent();
+////			intent.setClass(this, HelpActivity.class);
+////			intent.putExtra("caller", "fields");
+//////			// intent.putExtra("password", password);
+//////			intent.putExtra("function_name", function_name);
+//////			intent.putExtra("behavior", Network.BEHAVIOR_SEARCH);
+////			startActivity(intent);
+////			break;
+//
+//            default:
+//                break;
+//        }
+//        return super.onOptionsItemSelected(item);
+//    }
+
+    private JSONObject mDisplayField, mHideField;
+    public void initData()
+    {
+//		SQLiteDatabase db = dbUtil.OpenDB(this, null, false);
+//		Cursor cursor = db.query("fields_info", new String[] { "aname", "show",
+//				"_id" }, "function_name='" + function_name + "' and user='"
+//				+ user + "' and behavior=" + behavior, null, null, null,
+//				"priority , aname", null);
+//		while (cursor.moveToNext())
+//		{
+//			int show = cursor.getInt(1);
+//			if (show == 1)
+//				showList.add(new fieldedit(cursor.getString(0), cursor
+//						.getInt(2)));
+//			else
+//			{
+//				hideList.add(new fieldedit(cursor.getString(0), cursor
+//						.getInt(2)));
+//
+//			}
+//		}
+        try
+        {
+            JSONObject fields = RADataProvider.updateFunctionPanel();
+
+//			JSONObject.parseArray(array.toJSONString(), JSONObject.class);
+
+
+            showList= RAConverter.JsonArray2List(fields.optJSONArray("active_functions")) ;
+            hideList= RAConverter.JsonArray2List(fields.optJSONArray("deactive_functions")) ;
+//			fields.getJSONArray("hide");
+            // ��ݽ��
+            list = new ArrayList<JSONObject>();
+
+            // groupKey��ŵ��Ƿ����ǩ
+            // groupKey.add("Display fields");
+            // groupKey.add("Hide fields");
+
+            // for (int i = 0; i < 5; i++)
+            // {
+            // navList.add("Aѡ��" + i);
+            // }
+//		if (forNewResult) {
+//			mDisplayField = new fieldedit("Additional Fields To Display", -1);
+//		} else {
+//			mDisplayField = new fieldedit(getString(R.string.str_displayitem), -1);
+//		}
+
+
+
+            mDisplayField=	new JSONObject("{\"name\":\"My Functions\",\"id\":-1}");
+            list.add(mDisplayField);
+            list.addAll(showList);
+            mHideField = new JSONObject("{\"name\":\"All Functions\",\"id\":-2}");
+            list.add(mHideField);
+            list.addAll(hideList);
+        } catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+
+
+
+        // for (int i = 0; i <18; i++)
+        // {
+        // moreList.add("Bѡ��" + i);
+        // }
+//		if (forNewResult) {
+//			mHideField = new fieldedit("Additional Fields", -2);
+//		} else {
+//			mHideField = new fieldedit(getString(R.string.str_hideitem), -2);
+//		}
+
+//		dbUtil.CloseCursor(cursor);
+//		dbUtil.CloseDB(db);
+    }
+
+    public static class DragListAdapter extends ArrayAdapter<JSONObject>
+    {
+
+        // private Context mContext;
+
+        public DragListAdapter(Context context, List<JSONObject> objects)
+        {
+            super(context, 0, objects);
+            // this.mContext = context;
+        }
+
+        public List<JSONObject> getList()
+        {
+            return list;
+        }
+
+        @Override
+        public boolean isEnabled(int position)
+        {
+            if (getItem(position).optInt("id") < 0) // _id<0 means a group key
+                return false;
+            // if (groupKey.contains(getItem(position).name))
+            // {
+            // // ����Ƿ����ǩ������false������ѡ�У����ܵ��
+            // return false;
+            // }
+            return super.isEnabled(position);
+        }
+
+        public int switchpos()
+        {
+
+            for (int i = 1; i < getCount(); i++)
+            {
+                if (getItem(i).optInt("id") < 0)
+                    return i;
+            }
+            return -1;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent)
+        {
+
+            View view = convertView;
+            if (getItem(position).optInt("id") < 0) // _id<0 means a group key
+            {
+                view = LayoutInflater.from(getContext()).inflate(
+                        R.layout.drag_list_item_tag, null);
+            }
+            // if (groupKey.contains(getItem(position).name))
+            // {
+            // // ����Ƿ����ǩ���ͼ��ط����ǩ�IJ����ļ������������ļ���ʾЧ��ͬ
+            // view = LayoutInflater.from(getContext()).inflate(
+            // R.layout.drag_list_item_tag, null);
+            // }
+            else
+            {
+                // �������������ǩ���ͼ����������IJ����ļ�
+                view = LayoutInflater.from(getContext()).inflate(
+                        R.layout.drag_list_item, null);
+            }
+
+            TextView textView = (TextView) view
+                    .findViewById(R.id.drag_list_item_text);
+            textView.setText(getItem(position).optString("name"));
+
+            return view;
+        }
+    }
+
+    @Override
+    public void onClick(View v)
+    {
+        switch (v.getId())
+        {
+            case R.id.btnok:
+            {
+                // DragListView dragListView = (DragListView)
+                // findViewById(R.id.drag_list);
+//			if (!forNewResult) {
+//				int count = 0;
+//				for (int i = 0; i < adapter.getCount(); i++)
+//				{
+//					JSONObject item = adapter.getItem(i);
+//					if (item.optInt("id",0)== -2 || count > 0)
+//						break;
+//					if (item.optInt("id",0) >= 0)
+//						count++;
+//
+//				}
+//				if (count == 0)
+//				{
+//					new AlertDialog.Builder(CustomizeFieldsActivity.this)
+//							.setIcon(android.R.drawable.ic_dialog_info)
+//							.setTitle("Error!")
+//							.setMessage("You must set at least 1 field visiable!")
+//							.setPositiveButton("OK",
+//									new DialogInterface.OnClickListener()
+//									{
+//										public void onClick(DialogInterface dialog,
+//															int whichButton)
+//										{
+//
+//											// finish();
+//											/* User clicked OK so do some stuff */
+//										}
+//									}).show();
+//					break;
+//
+//				}
+//			}
+
+                int show = 1;
+//			showList.clear();
+//			hideList.clear();
+//			SQLiteDatabase db = dbUtil.OpenDB(this, null, true);
+//			db.beginTransaction();
+                JSONArray jarr_show = new JSONArray();
+                JSONArray jarr_hide = new JSONArray();
+                for (int i = 0; i < adapter.getCount(); i++)
+                {
+                    JSONObject item = adapter.getItem(i);
+                    if (item.optInt("id",0) == -2)// hide group begin
+                    {
+                        show = 0;
+                    }
+                    if(item.optInt("id",0)<0)
+                        continue;
+                    if (show == 1 )
+                        jarr_show.put(item);
+//					showList.add(item);
+//					db.execSQL("update fields_info set show=" + show
+//							+ " ,priority=" + i + " where _id=" + fe._id);
+                    else
+                        jarr_hide.put(item);
+//					hideList.add(item);
+//					db.execSQL("update fields_info set show=" + show
+//							+ " where _id=" + fe._id);
+
+                }
+
+                JSONObject fields = RADataProvider.updateFunctionPanel();
+                try
+                {
+                    fields.put("active_functions",jarr_show);
+                    fields.put("deactive_functions",jarr_hide);
+                    String userfilePath = TradeFilingApplication.get_instance().getFilesDir().getPath()+"/FunctionPanel_"+user+".json";
+                    FileManager.writeJson(fields.toString(),userfilePath);
+
+                } catch (JSONException e)
+                {
+                    e.printStackTrace();
+                }
+
+//			db.setTransactionSuccessful();
+//			db.endTransaction();
+//			dbUtil.CloseDB(db);
+                finish();
+//			 Log.d("fields",);
+                break;
+            }
+            case R.id.btncancel:
+                finish();
+                break;
+            default:
+                break;
+        }
+        // TODO Auto-generated method stub
+
+    }
+
+}
+//
+//{
+//
+//    @Override
+//    protected void onCreate(Bundle savedInstanceState)
+//    {
+//        super.onCreate(savedInstanceState);
+//        setContentView(R.layout.activity_function_panel_setting);
+//    }
+//}

+ 25 - 42
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/home/HomeFragment.java

@@ -31,6 +31,7 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
 import com.usai.ratradefiling.R;
 //import com.usai.ratradefiling.SaveInstanceHelper;
 //import com.usai.ratradefiling.badgeview.BadgeView;
+import com.usai.ratradefiling.RootActivity;
 import com.usai.ratradefiling.base.ResultBaseModel;
 import com.usai.ratradefiling.dataprovider.RADataProvider;
 //import com.usai.ratradefiling.message.MessageActivity;
@@ -80,6 +81,7 @@ public class HomeFragment extends Fragment
     private final static int REQUEST_MORE_CODE = 0;
 
     private final static String SavedFirstVisible = "SavedFirstVisible";
+    private static final int COMPANY_SELECT = 12 ;
 
     private Context mCtx;
     private HomeFragment self = this;
@@ -185,6 +187,7 @@ public class HomeFragment extends Fragment
 
         // header
         mHeaderView = HomeHeaderView.headerView(mCtx);
+        mHeaderView.homeFragment = this;
 //        mHeaderView.setDelegate(this);
         mListView.addHeaderView(mHeaderView);
 
@@ -280,7 +283,29 @@ public class HomeFragment extends Fragment
                     loadData();
                 }
             }
+            return;
+        }
+        else         if (requestCode == COMPANY_SELECT)
+        {
+
+            mHeaderView.update_Company();
+            loadData();
+
+//            if (requestCode == Activity.RESULT_OK && data != null)
+//            {
+//
+//                boolean reload = data.getBooleanExtra("reload", false);
+//                if (reload)
+//                {
+//                    loadData();
+//                }
+//            }
         }
+        else if(resultCode == RootActivity.RequestCode.FunctionSetting)
+            {
+                self.mHeaderView.reloadFunctionPanel();
+            }
+
     }
 
     @Override
@@ -651,48 +676,6 @@ public class HomeFragment extends Fragment
 
     }
 
-    private void updateDriverAvailable(final boolean available)
-    {
-
-        showProgressDialog();
-//        ApexDriverApplication.sharedApplication().getNetworkQueue().addOperationTask(new OperationQueue.OperationBackgroundCallBack() {
-//            @Override
-//            public Object operationDoInBackground() {
-//
-//                return com.usai.ratradefiling.network.Network.updateDriverAvailable(available);
-//            }
-//        }, new OperationQueue.OperationCompletionCallBack() {
-//            @Override
-//            public void operationCompletion(Object object) {
-//
-//                dismissProgressDialog();
-//
-//                JSONObject json = (JSONObject)object;
-//
-//                if (json != null) {
-//
-//                    int result = json.optInt("result");
-//                    if (result == Network.RESULT_TRUE) {
-//
-//                        mHeaderView.setAvailable(available);
-//
-//                    } else {
-//                        String errMsg = json.optString("err_msg");
-//                        if (errMsg == null || errMsg.length() == 0) {
-//                            errMsg = getString(R.string.sorry);
-//                        }
-//                        showWarningMsg(errMsg);
-//                    }
-//                } else {
-//                    String errMsg = getString(R.string.sorry);
-//
-//                    showWarningMsg(errMsg);
-//                }
-//
-//
-//            }
-//        },null);
-    }
 
 //    private void startMoreActivity(String title, int type)
 //    {

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

@@ -1,6 +1,8 @@
 package com.usai.ratradefiling.home;
 
+import android.app.Activity;
 import android.content.Context;
+import android.content.Intent;
 import android.os.Bundle;
 import android.text.Html;
 import android.util.AttributeSet;
@@ -22,6 +24,7 @@ import org.json.JSONObject;
 
 public class HomeHeaderView extends RelativeLayout {
 
+    HomeFragment hf;
     JSONObject function_json=null;
     GridView function_panel=null;
 
@@ -38,8 +41,9 @@ public class HomeHeaderView extends RelativeLayout {
 //        void finishedCountClick();
     }
 
+    public  HomeFragment homeFragment;
     private Context mCtx;
-
+    private static final int	COMPANY_SELECT	= 12;
     public static HomeHeaderView headerView(Context ctx) {
         HomeHeaderView headerView = (HomeHeaderView) LayoutInflater.from(ctx).inflate(R.layout.home_header_view1,null);
         headerView.init();
@@ -60,6 +64,20 @@ public class HomeHeaderView extends RelativeLayout {
         mCtx = context;
     }
 
+    public void reloadFunctionPanel()
+    {
+        String userfilePath = TradeFilingApplication.get_instance().getFilesDir().getPath()+"/FunctionPanel_"+TradeFilingApplication.get_instance().get_user()+".json";
+        String  json_user= FileManager.readJson(userfilePath);
+
+        try {
+            function_json = new JSONObject(json_user);
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+        FunctionPanelAdapter fpadapter = (FunctionPanelAdapter)function_panel.getAdapter();
+        fpadapter.update_json(function_json);
+        fpadapter.notifyDataSetChanged();
+    }
     private boolean initialized = false;
 //
 //    private View newContainer, processingContainer, finishedContainer;
@@ -93,6 +111,8 @@ public class HomeHeaderView extends RelativeLayout {
         } catch (JSONException e) {
             e.printStackTrace();
         }
+
+
         function_panel = findViewById(R.id.function_grid);
         function_panel.setAdapter(new FunctionPanelAdapter(getContext(),function_json));
         function_panel.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@@ -117,6 +137,15 @@ public class HomeHeaderView extends RelativeLayout {
             public void onClick(View view) {
                 if(TradeFilingApplication.get_instance().get_company_list().length()<2)
                     return;
+//                Bundle parms = new Bundle();
+//
+//
+
+                Intent intent = new Intent(mCtx, CompanySelectActivity.class);
+                homeFragment.startActivityForResult(intent,COMPANY_SELECT);
+//                CompanySelectActivity.StartCompanySelectActivity(mCtx,null);
+
+
             }
         });
 
@@ -226,6 +255,12 @@ public class HomeHeaderView extends RelativeLayout {
 
         initialized = true;
     }
+
+    public void update_Company()
+    {
+        tv_company.setText(TradeFilingApplication.get_instance().get_current_company_name());
+    }
+
 //
 //    private String textFromCount(int count) {
 //

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

@@ -6,4 +6,13 @@
     android:layout_height="match_parent"
     tools:context=".home.CompanySelectActivity">
 
+    <fragment
+        android:id="@+id/fragment"
+        android:name="com.usai.ratradefiling.home.CompanySelectFragment"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 49 - 0
ApexDrivers/ratradefiling/src/main/res/layout/activity_function_panel_setting.xml

@@ -0,0 +1,49 @@
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".home.FunctionPanelSettingActivity">
+
+    <com.usai.ratradefiling.fields.DragListView
+        android:id="@+id/drag_list"
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent"
+        android:layout_above="@+id/foot"
+        android:cacheColorHint="#00000000" />
+
+    <LinearLayout
+        android:id="@+id/foot"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentLeft="true"
+        android:orientation="horizontal" >
+
+        <Button
+            android:id="@+id/btncancel"
+            style="?android:attr/buttonStyleSmall"
+            android:layout_width="wrap_content"
+            android:layout_height="39dp"
+            android:background="@drawable/btn_bg"
+            android:layout_marginBottom="2dp"
+            android:layout_marginLeft="4dp"
+            android:layout_marginRight="4dp"
+            android:layout_marginTop="2dp"
+            android:layout_weight="1"
+            android:text="@string/str_cancel" />
+
+        <Button
+            android:id="@+id/btnok"
+            style="?android:attr/buttonStyleSmall"
+            android:layout_width="wrap_content"
+            android:layout_height="39dp"
+            android:background="@drawable/btn_bg"
+            android:layout_marginBottom="2dp"
+            android:layout_marginLeft="4dp"
+            android:layout_marginRight="4dp"
+            android:layout_marginTop="2dp"
+            android:layout_weight="1"
+            android:text="@string/str_ok" />
+    </LinearLayout>
+
+</RelativeLayout>