Browse Source

PDFTool(Android) - 修复flutter widget中低版本系统崩溃问题

liuxiaolong 9 months ago
parent
commit
ee3c16664b
19 changed files with 56 additions and 35 deletions
  1. 0 7
      ComPDFKit_Tools/build.gradle
  2. 1 1
      ComPDFKit_Tools/src/main/AndroidManifest.xml
  3. 1 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/basic/fragment/CBasicPDFFragment.java
  4. 4 5
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFApplyConfigUtil.java
  5. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFDocumentActivity.java
  6. 2 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/viewutils/CViewUtils.java
  7. 1 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/CPDFToolBar.java
  8. 11 0
      ComPDFKit_Tools/src/main/res/drawable/tools_common_btn_corner_ripple_in_widget.xml
  9. 9 0
      ComPDFKit_Tools/src/main/res/drawable/tools_common_oval_ripple_in_widget.xml
  10. 1 1
      ComPDFKit_Tools/src/main/res/layout/tools_annot_tool_bar_tools_item.xml
  11. 2 2
      ComPDFKit_Tools/src/main/res/layout/tools_cpdf_tool_bar.xml
  12. 2 2
      ComPDFKit_Tools/src/main/res/layout/tools_cpdf_tool_bar_pdf_view_menu_action.xml
  13. 1 1
      ComPDFKit_Tools/src/main/res/layout/tools_ctool_bar.xml
  14. 1 1
      ComPDFKit_Tools/src/main/res/layout/tools_fun_tool_bar_list_item.xml
  15. 5 5
      ComPDFKit_Tools/src/main/res/layout/tools_properties_ink_ctrl_layout.xml
  16. 2 2
      ComPDFKit_Tools/src/main/res/layout/tools_properties_stamp_style_add_custom_activity.xml
  17. 4 3
      ComPDFKit_Tools/src/main/res/layout/tools_search_toolbar_view.xml
  18. 2 2
      ComPDFKit_Tools/src/main/res/layout/tools_signature_tool_bar.xml
  19. 6 0
      PDFViewer/src/main/java/com/compdfkit/pdfviewer/home/HomeFunFragment.java

+ 0 - 7
ComPDFKit_Tools/build.gradle

@@ -31,13 +31,6 @@ android {
             minifyEnabled true
             zipAlignEnabled true
             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-            libraryVariants.all { variant ->
-                variant.outputs.all { output ->
-                    if (outputFile != null && outputFileName.endsWith('.aar')) {
-                        outputFileName = "ComPDFKit_Tools.aar"
-                    }
-                }
-            }
         }
     }
 

+ 1 - 1
ComPDFKit_Tools/src/main/AndroidManifest.xml

@@ -36,7 +36,7 @@
             android:name=".common.pdf.CPDFDocumentActivity"
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:exported="true"
-            android:theme="@style/LaunchTheme"
+            android:theme="@style/ComPDFKit.Theme.Light"
             android:windowSoftInputMode="adjustPan">
 <!--            <intent-filter tools:ignore="AppLinkUrlError"-->
 <!--                android:scheme="http">-->

+ 1 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/basic/fragment/CBasicPDFFragment.java

@@ -138,6 +138,7 @@ public class CBasicPDFFragment extends CPermissionFragment {
     public void showPageEdit(CPDFViewCtrl pdfView, boolean enterEdit, CPDFPageEditDialogFragment.OnBackLisener backListener) {
         curEditMode = pdfView.getCPdfReaderView().getLoadType();
         pdfView.exitEditMode();
+        pdfView.getCPdfReaderView().getContextMenuShowListener().dismissContextMenu();
         CPDFPageEditDialogFragment pageEditDialogFragment = CPDFPageEditDialogFragment.newInstance();
         pageEditDialogFragment.initWithPDFView(pdfView);
         pageEditDialogFragment.setEnterEdit(enterEdit);

+ 4 - 5
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFApplyConfigUtil.java

@@ -362,22 +362,21 @@ public class CPDFApplyConfigUtil {
         switch (configuration.globalConfig.themeMode) {
             case Light:
                 themeId = R.style.ComPDFKit_Theme_Light;
-                CLog.e("主题", "getThemeId(Context context, CPDFConfiguration configuration) - 使用Light主题");
-
+                CLog.e("ComPDFKit_Tools", "Theme-getThemeId(Context context, CPDFConfiguration configuration) - Use Light Theme");
                 break;
             case Dark:
                 themeId = R.style.ComPDFKit_Theme_Dark;
-                CLog.e("主题", "getThemeId(Context context, CPDFConfiguration configuration) - 使用Dark主题");
+                CLog.e("ComPDFKit_Tools", "Theme-getThemeId(Context context, CPDFConfiguration configuration) - Use Dark Theme");
 
                 break;
             default:
                 if (CViewUtils.isDarkMode(context)) {
                     themeId = R.style.ComPDFKit_Theme_Dark;
-                    CLog.e("主题", "getThemeId(Context context, CPDFConfiguration configuration) - 跟随系统,使用Dark主题");
+                    CLog.e("ComPDFKit_Tools", "Theme-getThemeId(Context context, CPDFConfiguration configuration) - Follow the system and use the Dark theme");
 
                 } else {
                     themeId = R.style.ComPDFKit_Theme_Light;
-                    CLog.e("主题", "getThemeId(Context context, CPDFConfiguration configuration) - 跟随系统,使用Dark主题");
+                    CLog.e("ComPDFKit_Tools", "Theme-getThemeId(Context context, CPDFConfiguration configuration) - Follow the system and use the Light theme");
 
                 }
                 break;

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFDocumentActivity.java

@@ -55,7 +55,7 @@ public class CPDFDocumentActivity extends CBasicPDFActivity {
         if (configuration == null) {
             configuration = CPDFConfigurationUtils.normalConfig(this, "tools_default_configuration.json");
         }
-        int themeId = CPDFApplyConfigUtil.getInstance().getThemeId(this, configuration);
+        int themeId = CPDFApplyConfigUtil.getInstance().getThemeId(getApplicationContext(), configuration);
         setTheme(themeId);
         setContentView(R.layout.tools_pdf_document_activity);
         if (getIntent() != null) {

+ 2 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/viewutils/CViewUtils.java

@@ -154,8 +154,8 @@ public class CViewUtils {
 
     public static boolean isDarkMode(Context context){
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q){
-            UiModeManager uiModeManager = (UiModeManager) context.getSystemService(Context.UI_MODE_SERVICE);
-            return uiModeManager.getNightMode() == UiModeManager.MODE_NIGHT_YES;
+            int uiMode = context.getResources().getConfiguration().uiMode;
+            return (uiMode & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES;
         }else {
             return false;
         }

+ 1 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/CPDFToolBar.java

@@ -30,6 +30,7 @@ import androidx.core.content.ContextCompat;
 import androidx.fragment.app.FragmentActivity;
 
 import com.compdfkit.tools.R;
+import com.compdfkit.tools.common.utils.dialog.CAlertDialog;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.utils.window.CModeSwitchDialogFragment;
 import com.compdfkit.tools.common.views.pdfview.CPreviewMode;

+ 11 - 0
ComPDFKit_Tools/src/main/res/drawable/tools_common_btn_corner_ripple_in_widget.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+    android:color="@color/tools_ripple_color" >
+
+    <item android:id="@android:id/mask">
+        <shape>
+            <corners android:radius="6dp"/>
+            <solid android:color="?android:attr/colorBackground"/>
+        </shape>
+    </item>
+</ripple>

+ 9 - 0
ComPDFKit_Tools/src/main/res/drawable/tools_common_oval_ripple_in_widget.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+    android:color="@color/tools_ripple_color">
+    <item android:id="@android:id/mask">
+        <shape android:shape="oval">
+            <solid android:color="?android:attr/colorBackground" />
+        </shape>
+    </item>
+</ripple>

+ 1 - 1
ComPDFKit_Tools/src/main/res/layout/tools_annot_tool_bar_tools_item.xml

@@ -5,7 +5,7 @@
     android:id="@+id/iv_tool_item"
     style="@style/tools_annotation_tool_bar_item_iv_style"
     android:layout_marginStart="12dp"
-    android:background="@drawable/tools_common_btn_corner_ripple"
+    android:background="@drawable/tools_common_btn_corner_ripple_in_widget"
     android:padding="3dp"
     app:srcCompat="@drawable/tools_ic_annotation_setting"
     app:tint="@color/tools_annotation_iv_status_color"

+ 2 - 2
ComPDFKit_Tools/src/main/res/layout/tools_cpdf_tool_bar.xml

@@ -26,7 +26,7 @@
         android:layout_marginStart="8dp"
         android:visibility="gone"
         tools:visibility="visible"
-        android:background="@drawable/tools_common_oval_ripple"
+        android:background="@drawable/tools_common_oval_ripple_in_widget"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintDimensionRatio="1:1"
         app:layout_constraintStart_toStartOf="parent"
@@ -40,7 +40,7 @@
         android:layout_height="match_parent"
         android:layout_marginVertical="4dp"
         android:layout_marginStart="4dp"
-        android:background="@drawable/tools_common_btn_corner_ripple"
+        android:background="@drawable/tools_common_btn_corner_ripple_in_widget"
         android:gravity="center_vertical"
         android:paddingHorizontal="4dp"
         app:layout_constrainedWidth="true"

+ 2 - 2
ComPDFKit_Tools/src/main/res/layout/tools_cpdf_tool_bar_pdf_view_menu_action.xml

@@ -4,14 +4,14 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools">
 
-    <androidx.appcompat.widget.AppCompatImageView xmlns:android="http://schemas.android.com/apk/res/android"
+    <androidx.appcompat.widget.AppCompatImageView
         xmlns:app="http://schemas.android.com/apk/res-auto"
         android:id="@+id/iv_action"
         android:layout_width="40dp"
         android:layout_height="40dp"
         android:layout_marginVertical="10dp"
         android:layout_marginHorizontal="4dp"
-        android:background="@drawable/tools_common_oval_ripple"
+        android:background="@drawable/tools_common_oval_ripple_in_widget"
         android:clickable="true"
         android:focusable="true"
         android:padding="8dp"

+ 1 - 1
ComPDFKit_Tools/src/main/res/layout/tools_ctool_bar.xml

@@ -31,7 +31,7 @@
         android:layout_height="40dp"
         android:layout_marginStart="8dp"
         android:padding="6dp"
-        android:background="@drawable/tools_common_oval_ripple"
+        android:background="@drawable/tools_common_oval_ripple_in_widget"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintDimensionRatio="1:1"
         app:layout_constraintStart_toStartOf="parent"

+ 1 - 1
ComPDFKit_Tools/src/main/res/layout/tools_fun_tool_bar_list_item.xml

@@ -16,7 +16,7 @@
         app:cardCornerRadius="4dp"
         app:cardElevation="0dp"
         tools:cardBackgroundColor="?attr/colorPrimary"
-        android:foreground="@drawable/tools_common_btn_corner_ripple"
+        android:foreground="@drawable/tools_common_btn_corner_ripple_in_widget"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"

+ 5 - 5
ComPDFKit_Tools/src/main/res/layout/tools_properties_ink_ctrl_layout.xml

@@ -22,7 +22,7 @@
             android:layout_width="30dp"
             android:layout_height="30dp"
             android:background="@drawable/tools_annot_properties_icon_btn_corner_status_bg"
-            android:foreground="@drawable/tools_common_btn_corner_ripple"
+            android:foreground="@drawable/tools_common_btn_corner_ripple_in_widget"
             android:padding="4dp"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toStartOf="@id/iv_ink_eraser"
@@ -50,7 +50,7 @@
             android:layout_height="30dp"
             android:background="@drawable/tools_annot_properties_icon_btn_corner_status_bg"
             android:padding="4dp"
-            android:foreground="@drawable/tools_common_btn_corner_ripple"
+            android:foreground="@drawable/tools_common_btn_corner_ripple_in_widget"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toStartOf="@id/iv_ink_redo"
             app:layout_constraintStart_toEndOf="@id/iv_ink_eraser"
@@ -64,7 +64,7 @@
             android:layout_height="30dp"
             android:background="@drawable/tools_annot_properties_icon_btn_corner_status_bg"
             android:padding="4dp"
-            android:foreground="@drawable/tools_common_btn_corner_ripple"
+            android:foreground="@drawable/tools_common_btn_corner_ripple_in_widget"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toStartOf="@id/line"
             app:layout_constraintStart_toEndOf="@id/iv_ink_undo"
@@ -89,7 +89,7 @@
             android:id="@+id/tv_ink_clean"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:background="@drawable/tools_common_btn_corner_ripple"
+            android:background="@drawable/tools_common_btn_corner_ripple_in_widget"
             android:text="@string/tools_clean"
             android:paddingVertical="2dp"
             android:paddingHorizontal="6dp"
@@ -104,7 +104,7 @@
             android:id="@+id/tv_ink_save"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:background="@drawable/tools_common_btn_corner_ripple"
+            android:background="@drawable/tools_common_btn_corner_ripple_in_widget"
             android:paddingVertical="2dp"
             android:paddingHorizontal="6dp"
             android:text="@string/tools_save"

+ 2 - 2
ComPDFKit_Tools/src/main/res/layout/tools_properties_stamp_style_add_custom_activity.xml

@@ -189,7 +189,7 @@
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginEnd="16dp"
-                    android:checked="true"
+                    android:checked="false"
                     app:layout_constraintBottom_toBottomOf="@id/tv_date"
                     app:layout_constraintEnd_toEndOf="parent"
                     app:layout_constraintTop_toTopOf="@id/tv_date" />
@@ -218,7 +218,7 @@
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginEnd="16dp"
-                    android:checked="true"
+                    android:checked="false"
                     app:layout_constraintBottom_toBottomOf="@id/tv_time"
                     app:layout_constraintEnd_toEndOf="parent"
                     app:layout_constraintTop_toTopOf="@id/tv_time" />

+ 4 - 3
ComPDFKit_Tools/src/main/res/layout/tools_search_toolbar_view.xml

@@ -49,7 +49,7 @@
                 android:layout_height="35dp"
                 android:layout_gravity="center_vertical|end"
                 android:layout_marginEnd="8dp"
-                android:background="@drawable/tools_common_oval_ripple"
+                android:background="@drawable/tools_common_oval_ripple_in_widget"
                 android:padding="4dp"
                 app:srcCompat="@drawable/tools_ic_search_setting"
                 app:tint="?attr/colorOnPrimary" />
@@ -94,7 +94,7 @@
             android:layout_width="35dp"
             android:layout_height="35dp"
             android:layout_marginEnd="8dp"
-            android:background="@drawable/tools_common_oval_ripple"
+            android:background="@drawable/tools_common_oval_ripple_in_widget"
             android:padding="6dp"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toStartOf="@id/iv_search"
@@ -110,6 +110,7 @@
             android:padding="6dp"
             app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
+            android:background="@drawable/tools_common_oval_ripple_in_widget"
             app:layout_constraintTop_toTopOf="parent"
             app:srcCompat="@drawable/tools_ic_search"
             app:tint="?attr/colorOnPrimary" />
@@ -206,7 +207,7 @@
             android:layout_height="32dp"
             android:layout_marginEnd="16dp"
             android:background="@drawable/tools_sign_cert_info_btn_bg"
-            android:foreground="@drawable/tools_common_btn_corner_ripple"
+            android:foreground="@drawable/tools_common_btn_corner_ripple_in_widget"
             android:gravity="center"
             android:paddingHorizontal="16dp"
             android:text="@string/tools_replace_all"

+ 2 - 2
ComPDFKit_Tools/src/main/res/layout/tools_signature_tool_bar.xml

@@ -10,7 +10,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:background="@drawable/tools_signature_toolbar_btn_corner_status_bg"
-        android:foreground="@drawable/tools_common_btn_corner_ripple"
+        android:foreground="@drawable/tools_common_btn_corner_ripple_in_widget"
         android:padding="8dp"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toStartOf="@id/cl_verify_digital_signature"
@@ -47,7 +47,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:background="@drawable/tools_signature_toolbar_btn_corner_status_bg"
-        android:foreground="@drawable/tools_common_btn_corner_ripple"
+        android:foreground="@drawable/tools_common_btn_corner_ripple_in_widget"
         android:padding="8dp"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"

+ 6 - 0
PDFViewer/src/main/java/com/compdfkit/pdfviewer/home/HomeFunFragment.java

@@ -9,7 +9,11 @@
 
 package com.compdfkit.pdfviewer.home;
 
+import android.app.UiModeManager;
+import android.content.Context;
+import android.content.res.Configuration;
 import android.os.Bundle;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -23,6 +27,8 @@ import com.compdfkit.pdfviewer.R;
 import com.compdfkit.pdfviewer.databinding.FragmentHomeBinding;
 import com.compdfkit.pdfviewer.home.datas.FunDatas;
 import com.compdfkit.tools.common.pdf.CPDFDocumentActivity;
+import com.compdfkit.tools.common.utils.CToastUtil;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.pdfview.CPreviewMode;
 import com.compdfkit.ui.utils.CPDFCommomUtils;