Răsfoiți Sursa

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

Ray Zhang 5 ani în urmă
părinte
comite
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;
@@ -8,10 +8,14 @@ import android.widget.SimpleAdapter;
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.ListFragment;
 
-import com.usai.redant.rautils.utils.RAUtil;
+//import com.usai.apex.R;
 //import com.usai.util.commonUtil;
-
+//
 //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.JSONException;
 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)
     {
         JSONObject jsonobj=loadjson(rawid);
@@ -98,6 +120,7 @@ public class StaticModelistFragment extends ListFragment {
 
 //        this.getListView().setDivider(new ColorDrawable(Color.RED));
         this.getListView().setDivider(getResources().getDrawable(R.drawable.list_div));
+
         int px=RAUtil.dp2px(getActivity(), 8.75f);
         this.getListView().setDividerHeight(px);
 
@@ -119,10 +142,11 @@ public class StaticModelistFragment extends ListFragment {
     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);
 //            // 获取文件的字节数
 //            int lenght = in.available();
@@ -130,16 +154,17 @@ public class StaticModelistFragment extends ListFragment {
 //            byte[] buffer = new byte[lenght];
 //            // 将文件中的数据读到byte数组中
 //            in.read(buffer);
+//
 //            jstring = EncodingUtils.getString(buffer, "UTF-8");
 //            JSONObject jsobj = new JSONObject(jstring);
 //            return jsobj;
-////            JSONObject objrecords = jsobj.getJSONObject("records");
-//        }
-//        catch (Exception e)
-//        {
-//            e.printStackTrace();
-//        }
-//        return null;
+//            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="ra_white">#ffffff</color>
-
+    <color name="table_bg">#efeff4</color>
 </resources>

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

@@ -7,18 +7,18 @@
     <uses-feature android:name="android.hardware.type.watch" />
 
     <application
-        android:usesCleartextTraffic="true"
         android:name=".TradeFilingApplication"
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
         android:label="@string/app_name"
         android:roundIcon="@mipmap/ic_launcher_round"
         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
                app to run.
@@ -30,13 +30,15 @@
         <activity
             android:name=".signup.SignupActivity"
             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 android:name=".EmptyActivity"></activity>
+        <activity android:name=".EmptyActivity" />
         <activity
             android:name=".RootActivity"
             android:configChanges="fontScale"
@@ -49,10 +51,10 @@
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </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>
 
 </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.saved.CheckSavedActivity;
 import com.usai.ratradefiling.R;
-import com.usai.ratradefiling.StaticModelistFragment;
+import com.usai.redant.rautils.list.StaticModelistFragment;
 
 import org.json.JSONObject;
 
 /**
  * A simple {@link Fragment} subclass.
  */
-public class MyFragment extends StaticModelistFragment {
+public class MyFragment extends StaticModelistFragment
+{
 
     static final int PASSWORD_CHANGED = 1;
     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-->
     <string name="about">about_en</string>
+    <!-- TODO: Remove or change this placeholder text -->
+    <string name="hello_blank_fragment">Hello blank fragment</string>
 </resources>