Bläddra i källkod

Move static list fragments to public libraries -- 将静态列表fragment移植到公共库 (resolve: #14213)
Add company selection interface -- 增加公司选择界面 (issue50: #14209)

Ray Zhang 5 år sedan
förälder
incheckning
38423c036b

+ 39 - 14
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/StaticModelistFragment.java → ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/list/StaticModelistFragment.java

@@ -1,4 +1,4 @@
-package com.usai.ratradefiling;
+package com.usai.redant.rautils.list;
 
 
 
 
 import android.view.LayoutInflater;
 import android.view.LayoutInflater;
@@ -8,10 +8,14 @@ import android.widget.SimpleAdapter;
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.ListFragment;
 import androidx.fragment.app.ListFragment;
 
 
-import com.usai.redant.rautils.utils.RAUtil;
+//import com.usai.apex.R;
 //import com.usai.util.commonUtil;
 //import com.usai.util.commonUtil;
-
+//
 //import org.apache.http.util.EncodingUtils;
 //import org.apache.http.util.EncodingUtils;
+import com.usai.redant.rautils.R;
+import com.usai.redant.rautils.utils.RAConverter;
+import com.usai.redant.rautils.utils.RAUtil;
+
 import org.json.JSONArray;
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONException;
 import org.json.JSONObject;
 import org.json.JSONObject;
@@ -71,6 +75,24 @@ public class StaticModelistFragment extends ListFragment {
 //
 //
 //    }
 //    }
 
 
+    protected  void setupAdapter(JSONObject jsonobj)
+    {
+        adapter        = new SimpleAdapter(this.getActivity(),
+                getData(jsonobj), R.layout.static_modelist_cell, new String[] { "title",
+                "img","detail" }, new int[] { R.id.tv_title, R.id.iv_thumb,R.id.tv_detail });
+
+        View headerView = initHeaderView();
+        if(headerView!=null) {
+//            headerView.setOnClickListener(new View.OnClickListener() {
+//                @Override
+//                public void onClick(View v) {
+//
+//                }
+//            });
+            getListView().addHeaderView(headerView);
+        }
+        setListAdapter(adapter);
+    }
     protected  void setupAdapter(int rawid)
     protected  void setupAdapter(int rawid)
     {
     {
         JSONObject jsonobj=loadjson(rawid);
         JSONObject jsonobj=loadjson(rawid);
@@ -98,6 +120,7 @@ public class StaticModelistFragment extends ListFragment {
 
 
 //        this.getListView().setDivider(new ColorDrawable(Color.RED));
 //        this.getListView().setDivider(new ColorDrawable(Color.RED));
         this.getListView().setDivider(getResources().getDrawable(R.drawable.list_div));
         this.getListView().setDivider(getResources().getDrawable(R.drawable.list_div));
+
         int px=RAUtil.dp2px(getActivity(), 8.75f);
         int px=RAUtil.dp2px(getActivity(), 8.75f);
         this.getListView().setDividerHeight(px);
         this.getListView().setDividerHeight(px);
 
 
@@ -119,10 +142,11 @@ public class StaticModelistFragment extends ListFragment {
     protected JSONObject loadjson(int rawid)
     protected JSONObject loadjson(int rawid)
     {
     {
 
 
-        return RAUtil.getJsonFromRAW(getActivity(),rawid);
-//        String jstring = "";
-//        try
-//        {
+        String jstring = "";
+        try
+        {
+
+            return RAUtil.getJsonFromRAW(getContext(),rawid);
 //            InputStream in = getResources().openRawResource(rawid);
 //            InputStream in = getResources().openRawResource(rawid);
 //            // 获取文件的字节数
 //            // 获取文件的字节数
 //            int lenght = in.available();
 //            int lenght = in.available();
@@ -130,16 +154,17 @@ public class StaticModelistFragment extends ListFragment {
 //            byte[] buffer = new byte[lenght];
 //            byte[] buffer = new byte[lenght];
 //            // 将文件中的数据读到byte数组中
 //            // 将文件中的数据读到byte数组中
 //            in.read(buffer);
 //            in.read(buffer);
+//
 //            jstring = EncodingUtils.getString(buffer, "UTF-8");
 //            jstring = EncodingUtils.getString(buffer, "UTF-8");
 //            JSONObject jsobj = new JSONObject(jstring);
 //            JSONObject jsobj = new JSONObject(jstring);
 //            return jsobj;
 //            return jsobj;
-////            JSONObject objrecords = jsobj.getJSONObject("records");
-//        }
-//        catch (Exception e)
-//        {
-//            e.printStackTrace();
-//        }
-//        return null;
+//            JSONObject objrecords = jsobj.getJSONObject("records");
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+        return null;
 
 
     }
     }
 
 

+ 22 - 0
ApexDrivers/RAUtilsLibrary/src/main/res/drawable-ldpi/list_bg.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
+    <!--&lt;!&ndash; 渐变 &ndash;&gt;-->
+    <!--&lt;!&ndash;<gradient android:angle="180" android:endColor="#FFCCCCCC"&ndash;&gt;-->
+    <!--&lt;!&ndash;android:startColor="@android:color/white" />&ndash;&gt;-->
+    <!--&lt;!&ndash; 描边 &ndash;&gt;-->
+    <!--<stroke android:width="1dp" android:color="@android:color/darker_gray" />-->
+
+
+
+    <!-- 描边 -->
+    <stroke android:width="0.3dp" android:color="@android:color/darker_gray" />
+
+    <!-- 实心填充 -->
+    <solid android:color="@android:color/white" />
+
+    <!--&lt;!&ndash; 圆角 &ndash;&gt;-->
+    <!--<corners android:bottomLeftRadius="8dip"-->
+        <!--android:bottomRightRadius="8dip" android:topLeftRadius="8dip"-->
+        <!--android:topRightRadius="8dip" />-->
+
+</shape>

+ 7 - 0
ApexDrivers/RAUtilsLibrary/src/main/res/drawable-ldpi/list_div.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <solid android:color="@color/table_bg" />
+
+
+</shape>

+ 7 - 0
ApexDrivers/RAUtilsLibrary/src/main/res/layout/invisable_listheader.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="0.00001dp"
+    android:visibility="invisible">
+
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 54 - 0
ApexDrivers/RAUtilsLibrary/src/main/res/layout/static_modelist_cell.xml

@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@drawable/list_bg"
+    android:orientation="vertical">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="56dp">
+
+        <TextView
+            android:id="@+id/tv_title"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:layout_marginEnd="16dp"
+            android:layout_marginStart="8dp"
+            android:layout_marginTop="4dp"
+            android:layout_weight="1"
+            android:text="Tool name"
+            android:textAlignment="viewStart"
+            android:gravity="start"
+            android:textColor="@android:color/black"
+            android:textSize="14sp"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toEndOf="@+id/iv_thumb"
+            app:layout_constraintTop_toTopOf="@+id/iv_thumb" />
+
+        <ImageView
+            android:id="@+id/iv_thumb"
+            android:layout_width="42dp"
+            android:layout_height="42dp"
+            android:layout_marginStart="16dp"
+            android:contentDescription="TODO"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <TextView
+            android:id="@+id/tv_detail"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="8dp"
+            android:lines="1"
+            android:text="TextView"
+            android:textSize="9.7sp"
+            app:layout_constraintStart_toEndOf="@+id/iv_thumb"
+            app:layout_constraintTop_toBottomOf="@+id/tv_title" />
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+</LinearLayout>

+ 1 - 1
ApexDrivers/RAUtilsLibrary/src/main/res/values/colors.xml

@@ -18,5 +18,5 @@
     <color name="pdf_preview_icon_gray">#444445</color>
     <color name="pdf_preview_icon_gray">#444445</color>
 
 
     <color name="ra_white">#ffffff</color>
     <color name="ra_white">#ffffff</color>
-
+    <color name="table_bg">#efeff4</color>
 </resources>
 </resources>

+ 17 - 15
ApexDrivers/ratradefiling/src/main/AndroidManifest.xml

@@ -7,18 +7,18 @@
     <uses-feature android:name="android.hardware.type.watch" />
     <uses-feature android:name="android.hardware.type.watch" />
 
 
     <application
     <application
-        android:usesCleartextTraffic="true"
         android:name=".TradeFilingApplication"
         android:name=".TradeFilingApplication"
         android:allowBackup="true"
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
         android:icon="@mipmap/ic_launcher"
         android:label="@string/app_name"
         android:label="@string/app_name"
         android:roundIcon="@mipmap/ic_launcher_round"
         android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
         android:supportsRtl="true"
-        android:theme="@style/TradeFilingTheme">
-<!--        <uses-library-->
-<!--            android:name="com.google.android.wearable"-->
-<!--            android:required="true" />-->
-
+        android:theme="@style/TradeFilingTheme"
+        android:usesCleartextTraffic="true">
+        <activity android:name=".home.CompanySelectActivity"></activity>
+        <!-- <uses-library -->
+        <!-- android:name="com.google.android.wearable" -->
+        <!-- android:required="true" /> -->
         <!--
         <!--
                Set to true if your app is Standalone, that is, it does not require the handheld
                Set to true if your app is Standalone, that is, it does not require the handheld
                app to run.
                app to run.
@@ -30,13 +30,15 @@
         <activity
         <activity
             android:name=".signup.SignupActivity"
             android:name=".signup.SignupActivity"
             android:label="@string/title_activity_signup">
             android:label="@string/title_activity_signup">
-<!--            <intent-filter>-->
-<!--                <action android:name="android.intent.action.MAIN" />-->
 
 
-<!--                <category android:name="android.intent.category.LAUNCHER" />-->
-<!--            </intent-filter>-->
+            <!-- <intent-filter> -->
+            <!-- <action android:name="android.intent.action.MAIN" /> -->
+
+
+            <!-- <category android:name="android.intent.category.LAUNCHER" /> -->
+            <!-- </intent-filter> -->
         </activity>
         </activity>
-        <activity android:name=".EmptyActivity"></activity>
+        <activity android:name=".EmptyActivity" />
         <activity
         <activity
             android:name=".RootActivity"
             android:name=".RootActivity"
             android:configChanges="fontScale"
             android:configChanges="fontScale"
@@ -49,10 +51,10 @@
                 <category android:name="android.intent.category.LAUNCHER" />
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
             </intent-filter>
         </activity>
         </activity>
-        <activity android:name=".result.ResultActivity"></activity>
-        <activity android:name=".search.SearchActivity"></activity>
-        <activity android:name=".fields.CustomizeFieldsActivity"></activity>
-        <activity android:name=".detail.NewDetailActivity"></activity>
+        <activity android:name=".result.ResultActivity" />
+        <activity android:name=".search.SearchActivity" />
+        <activity android:name=".fields.CustomizeFieldsActivity" />
+        <activity android:name=".detail.NewDetailActivity" />
     </application>
     </application>
 
 
 </manifest>
 </manifest>

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

@@ -0,0 +1,19 @@
+package com.usai.ratradefiling.home;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.FragmentActivity;
+
+import android.os.Bundle;
+
+import com.usai.ratradefiling.R;
+
+public class CompanySelectActivity extends FragmentActivity // AppCompatActivity
+{
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState)
+    {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_company_select);
+    }
+}

+ 143 - 0
ApexDrivers/ratradefiling/src/main/java/com/usai/ratradefiling/home/CompanySelectFragment.java

@@ -0,0 +1,143 @@
+package com.usai.ratradefiling.home;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+//import androidx.fragment.app.Fragment;
+
+import android.view.View;
+import android.widget.ListView;
+
+import com.usai.ratradefiling.R;
+import com.usai.redant.rautils.list.StaticModelistFragment;
+
+import org.json.JSONObject;
+
+///**
+// * A simple {@link Fragment} subclass.
+// * Use the {@link CompanySelectFragment#newInstance} factory method to
+// * create an instance of this fragment.
+// */
+public class CompanySelectFragment extends StaticModelistFragment
+{
+
+
+
+    public CompanySelectFragment()
+    {
+        // Required empty public constructor
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState)
+    {
+        super.onActivityCreated(savedInstanceState);
+
+
+        JSONObject json;
+        Intent i=getActivity().getIntent();
+        json=i.getBundleExtra("");
+
+        setupAdapter(json);
+
+//        adapter.getView()
+
+        customize_style();
+//        JSONObject jsonobj=loadjson(R.raw.search);
+//        adapter        = new SimpleRoundCornerAdapter(this.getActivity(),
+//                getData(jsonobj), R.layout.static_modelist_cell, new String[] { "title",
+//                "img","detail" }, new int[] { R.id.tv_name, R.id.iv_icon,R.id.tv_detail });
+//        setListAdapter(adapter);
+////        this.getListView().setDivider(R.drawable.);
+//        this.getListView().setDividerHeight(18);
+//        this.getListView().setBackgroundColor(Color.WHITE);
+
+    }
+    @Override
+    public void onListItemClick(ListView l, View v, int position, long id)
+    {
+
+//        JSONObject jsonobj=loadjson(R.raw.my);
+//        Log.d("FragmentList", "Item clicked: " + id);
+//
+//        String 	title = (String) getData(jsonobj).get(position-1).get("title");
+//
+////        Intent intent = new Intent();
+//        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.putExtra("title", "Booking Search");
+////            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);
+//        }
+//
+////        else if(title.equals("Saved Documents"))
+////        {
+//////            Intent intent = new Intent();
+//////            intent.setClass(getActivity(), LocalDocumentActivity.class);
+////////			intent.putExtra("module_name", "Announcements");
+//////            startActivity(intent);
+////
+////            Intent intent = new Intent();
+////            intent.setClass(getActivity(), CheckSavedActivity.class);
+////            intent.putExtra("function_name", "Saved Documents");
+////
+////            startActivity(intent);
+////
+////        }
+//        else if (title.equals("Change Password"))
+//            {
+//
+//                if(true)
+//                    throw new AssertionError("not impl");
+////            Intent intent = new Intent();
+////			intent.setClass(getActivity(), ChangePasswordActivity.class);
+////
+////			startActivityForResult(intent, REQUEST_CHANGEPASSWORD_ACTIVITY);
+////			return;
+//            }
+//            else if (title.equals("Logout"))
+//                {
+//
+//                    String UNIQUE_STRING = "com.usai.apex.push.cancel";
+//                    Intent intent = new Intent(UNIQUE_STRING);
+//                    // intent.putExtra("key1", "value1");
+//                    // intent.putExtra("key2", "value2");
+//                    intent.setPackage( getActivity().getPackageName());
+//                    getActivity().sendBroadcast(intent);
+//                    if(mCallBack!=null)
+//                        mCallBack.onLogout();
+//
+//                    {
+//
+//                        Intent bintent = new Intent("Login");
+//                        bintent.putExtra("state", false);
+//                        LocalBroadcastManager.getInstance(getActivity())
+//                                .sendBroadcast(bintent);
+//                    }
+//
+//                }
+
+
+    }
+}

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

@@ -14,14 +14,15 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager;
 //import com.usai.apex.ChangePasswordActivity;
 //import com.usai.apex.ChangePasswordActivity;
 //import com.usai.apex.saved.CheckSavedActivity;
 //import com.usai.apex.saved.CheckSavedActivity;
 import com.usai.ratradefiling.R;
 import com.usai.ratradefiling.R;
-import com.usai.ratradefiling.StaticModelistFragment;
+import com.usai.redant.rautils.list.StaticModelistFragment;
 
 
 import org.json.JSONObject;
 import org.json.JSONObject;
 
 
 /**
 /**
  * A simple {@link Fragment} subclass.
  * A simple {@link Fragment} subclass.
  */
  */
-public class MyFragment extends StaticModelistFragment {
+public class MyFragment extends StaticModelistFragment
+{
 
 
     static final int PASSWORD_CHANGED = 1;
     static final int PASSWORD_CHANGED = 1;
     private static final int	REQUEST_CHANGEPASSWORD_ACTIVITY	= 2;
     private static final int	REQUEST_CHANGEPASSWORD_ACTIVITY	= 2;

BIN
ApexDrivers/ratradefiling/src/main/res/drawable-v24/tab_home.png


BIN
ApexDrivers/ratradefiling/src/main/res/drawable-v24/tab_login.png


BIN
ApexDrivers/ratradefiling/src/main/res/drawable/tab_my.png


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

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".home.CompanySelectActivity">
+
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 14 - 0
ApexDrivers/ratradefiling/src/main/res/layout/fragment_company_select.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout 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.CompanySelectFragment">
+
+    <!-- TODO: Update blank fragment layout -->
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:text="@string/hello_blank_fragment" />
+
+</FrameLayout>

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

@@ -91,4 +91,6 @@
 
 
     <!--about-->
     <!--about-->
     <string name="about">about_en</string>
     <string name="about">about_en</string>
+    <!-- TODO: Remove or change this placeholder text -->
+    <string name="hello_blank_fragment">Hello blank fragment</string>
 </resources>
 </resources>