Pārlūkot izejas kodu

crm sdk 29
修改不随系统字体缩放。

Ray Zhang 5 gadi atpakaļ
vecāks
revīzija
b6fa779696

+ 7 - 7
ApexDrivers/apexcrm/build.gradle

@@ -11,12 +11,12 @@ android {
         }
     }
 
-    compileSdkVersion 26
+    compileSdkVersion 29
     defaultConfig {
         applicationId "com.usai.apex.apexcrm"
         minSdkVersion 24
-        targetSdkVersion 26
-        versionCode 2
+        targetSdkVersion 29
+        versionCode 3
         versionName "1.17.45678"
         ndk.abiFilters 'armeabi-v7a',"arm64-v8a"
 //        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -47,12 +47,12 @@ android {
 }
 
 dependencies {
-    implementation fileTree(include: ['*.jar'], dir: 'libs')
-    api 'com.android.support:appcompat-v7:26.0.0'
-    api 'com.android.support.constraint:constraint-layout:1.1.3'
+//    implementation fileTree(include: ['*.jar'], dir: 'libs')
+    api 'androidx.appcompat:appcompat:1.1.0'
+    api 'androidx.constraintlayout:constraintlayout:1.1.3'
 //    testImplementation 'junit:junit:4.12'
 //    androidTestImplementation 'com.android.support.test:runner:1.0.2'
 //    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
     implementation project(path: ':RAUtilsLibrary')
-    implementation 'com.github.barteksc:android-pdf-viewer:3.0.0-beta.5'
+    implementation 'com.github.barteksc:android-pdf-viewer:3.2.0-beta.1'
 }

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

@@ -32,7 +32,7 @@
         <!-- Provider -->
 
         <provider
-            android:name="android.support.v4.content.FileProvider"
+            android:name="androidx.core.content.FileProvider"
             android:authorities="com.usai.apex.apex.crm.fileprovider"
             android:exported="false"
             android:grantUriPermissions="true">
@@ -56,7 +56,7 @@
         <receiver android:name=".receiver.AlarmReceiver"
 
                   android:enabled="true"
-                  android:exported="true"
+                  android:exported="false"
                   android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
             <intent-filter>
 

+ 52 - 1
ApexDrivers/apexcrm/src/main/java/com/usai/apex/apexcrm/Main2Activity.java

@@ -1,7 +1,14 @@
 package com.usai.apex.apexcrm;
 
+//import android.content.res.Configuration;
+//import android.content.res.Resources;
+import android.content.res.Configuration;
+import android.content.res.Resources;
 import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import android.util.DisplayMetrics;
+import android.view.WindowManager;
+
+import androidx.appcompat.app.AppCompatActivity;
 
 public class Main2Activity extends AppCompatActivity {
 
@@ -9,10 +16,54 @@ public class Main2Activity extends AppCompatActivity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main2);
+//        adjustFontScale(getResources().getConfiguration());
+
 
 
 //        Button btn_ray = findViewById(btn_ray);
 //        Button btn_robert = findViewById(btn_robert);
 
     }
+
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        if (newConfig.fontScale != 1)//非默认值
+            getResources();
+        super.onConfigurationChanged(newConfig);
+    }
+    @Override
+    public Resources getResources() {
+        Resources res = super.getResources();
+        if (res.getConfiguration().fontScale != 1) {//非默认值
+            Configuration newConfig = new Configuration();
+            newConfig.setToDefaults();//设置默认
+            res.updateConfiguration(newConfig, res.getDisplayMetrics());
+        }
+        return res;
+    }
+
+//    public void adjustFontScale(Configuration configuration) {
+//        if (configuration.fontScale > 1.0) {
+////            LogUtil.log(LogUtil.WARN, TAG, "fontScale=" + configuration.fontScale); //Custom Log class, you can use Log.w
+////            LogUtil.log(LogUtil.WARN, TAG, "font too big. scale down..."); //Custom Log class, you can use Log.w
+//            configuration.fontScale = (float) 1.30;
+//            DisplayMetrics metrics = getResources().getDisplayMetrics();
+//            WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
+//            wm.getDefaultDisplay().getMetrics(metrics);
+//            metrics.scaledDensity = configuration.fontScale * metrics.density;
+//            getBaseContext().getResources().updateConfiguration(configuration, metrics);
+//        }
+//    }
+//
+//    @Override
+//    public Resources getResources() {
+//        Resources resources = super.getResources();
+//        Configuration config = resources.getConfiguration();
+//        if(config.fontScale != 1.0f) {
+//            config.fontScale = 1.0f;
+//            return Main2Activity.this.createConfigurationContext(config).getResources();
+//        } else {
+//            return resources;
+//        }
+//    }
 }

+ 39 - 6
ApexDrivers/apexcrm/src/main/java/com/usai/apex/apexcrm/MainActivity.java

@@ -7,17 +7,19 @@ import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
+import android.content.res.Configuration;
+import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.net.Uri;
 import android.net.http.SslError;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.content.PermissionChecker;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.app.AppCompatActivity;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.PermissionChecker;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AppCompatActivity;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.KeyEvent;
@@ -27,7 +29,6 @@ import android.webkit.SslErrorHandler;
 import android.webkit.ValueCallback;
 import android.webkit.WebResourceRequest;
 import android.webkit.WebResourceResponse;
-import android.webkit.WebSettings;
 import android.webkit.WebView;
 import android.widget.Button;
 import android.widget.ProgressBar;
@@ -1431,6 +1432,38 @@ public void QueryLaunchNotification(String msg) {
         return FileManager.base64StringFromFile(path);
     }
 
+//    @Override
+//    public Resources getResources() {
+//        Resources resources = super.getResources();
+//        Configuration config = resources.getConfiguration();
+//        if(config.fontScale != 1.0f) {
+//            config.fontScale = 1.0f;
+//            return self.createConfigurationContext(config).getResources();
+//        } else {
+//            return resources;
+//        }
+//    }
+
+
+
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        if (newConfig.fontScale != 1)//非默认值
+            getResources();
+        super.onConfigurationChanged(newConfig);
+    }
+    @Override
+    public Resources getResources() {
+        Resources res = super.getResources();
+        if (res.getConfiguration().fontScale != 1) {//非默认值
+            Configuration newConfig = new Configuration();
+            newConfig.setToDefaults();//设置默认
+            res.updateConfiguration(newConfig, res.getDisplayMetrics());
+        }
+        return res;
+    }
+
+
     // endregion
 
     // region Local Callback

+ 2 - 4
ApexDrivers/apexcrm/src/main/java/com/usai/apex/apexcrm/RAWebView.java

@@ -2,15 +2,14 @@ package com.usai.apex.apexcrm;
 
 
 import android.annotation.SuppressLint;
-import android.content.ActivityNotFoundException;
 import android.content.Context;
 import android.content.Intent;
 import android.graphics.Bitmap;
 import android.net.Uri;
 import android.net.http.SslError;
 import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v7.app.AppCompatActivity;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.View;
@@ -20,7 +19,6 @@ import android.webkit.JsResult;
 import android.webkit.SslErrorHandler;
 import android.webkit.ValueCallback;
 import android.webkit.WebChromeClient;
-import android.webkit.WebResourceError;
 import android.webkit.WebResourceRequest;
 import android.webkit.WebResourceResponse;
 import android.webkit.WebSettings;

+ 30 - 0
ApexDrivers/apexcrm/src/main/java/com/usai/apex/apexcrm/application/ApexCRMApp.java

@@ -3,6 +3,8 @@ package com.usai.apex.apexcrm.application;
 import android.app.Activity;
 import android.content.Intent;
 import android.content.SharedPreferences;
+import android.content.res.Configuration;
+import android.content.res.Resources;
 import android.os.Handler;
 import android.os.Looper;
 import android.text.TextUtils;
@@ -55,6 +57,34 @@ public class ApexCRMApp extends ApexApplication implements RAProviderHelper.Prov
         sendBroadcast(intent);
     }
 
+//    @Override
+//    public Resources getResources() {
+//        Resources resources = super.getResources();
+//        Configuration config = resources.getConfiguration();
+//        if(config.fontScale != 1.0f) {
+//            config.fontScale = 1.0f;
+//            return this.createConfigurationContext(config).getResources();
+//        } else {
+//            return resources;
+//        }
+//    }
+@Override
+public void onConfigurationChanged(Configuration newConfig) {
+    if (newConfig.fontScale != 1)//非默认值
+        getResources();
+    super.onConfigurationChanged(newConfig);
+}
+    @Override
+    public Resources getResources() {
+        Resources res = super.getResources();
+        if (res.getConfiguration().fontScale != 1) {//非默认值
+            Configuration newConfig = new Configuration();
+            newConfig.setToDefaults();//设置默认
+            res.updateConfiguration(newConfig, res.getDisplayMetrics());
+        }
+        return res;
+    }
+
     // endregion
 
     // region Override

+ 8 - 0
ApexDrivers/apexcrm/src/main/java/com/usai/apex/apexcrm/receiver/BootReceiver.java

@@ -1,5 +1,6 @@
 package com.usai.apex.apexcrm.receiver;
 
+import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 
@@ -22,4 +23,11 @@ public class BootReceiver extends BootCompleteBroadcastReceiver {
         dbgUtil.fileLog(context,"ApexCRM: OnLockedBootComplete");
         startService(context, intent, CRMService.class);
     }
+
+
+
+//    @Override
+//    public void onReceive(Context context, Intent intent) {
+//
+//    }
 }

+ 22 - 0
ApexDrivers/apexcrm/src/main/java/com/usai/apex/apexcrm/service/CRMService.java

@@ -1,5 +1,8 @@
 package com.usai.apex.apexcrm.service;
 
+import android.content.res.Configuration;
+import android.content.res.Resources;
+
 import com.usai.apex.apexcrm.R;
 import com.usai.apex.apexcrm.application.ApexCRMApp;
 import com.usai.redant.rautils.service.RAService;
@@ -18,4 +21,23 @@ public class CRMService extends RAService {
         FOREGROUND_ICON= R.drawable.ic_action_bar_o;;
 //        BACKGROUND_ICON=ApexDriverApplication.sharedApplication().BACKGROUND_ICON;
     }
+
+
+
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        if (newConfig.fontScale != 1)//非默认值
+            getResources();
+        super.onConfigurationChanged(newConfig);
+    }
+    @Override
+    public Resources getResources() {
+        Resources res = super.getResources();
+        if (res.getConfiguration().fontScale != 1) {//非默认值
+            Configuration newConfig = new Configuration();
+            newConfig.setToDefaults();//设置默认
+            res.updateConfiguration(newConfig, res.getDisplayMetrics());
+        }
+        return res;
+    }
 }

+ 2 - 2
ApexDrivers/apexcrm/src/main/res/layout/activity_main.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<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"
@@ -64,4 +64,4 @@
         android:visibility="gone"
         />
 
-</android.support.constraint.ConstraintLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 2 - 2
ApexDrivers/apexcrm/src/main/res/layout/activity_main2.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<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"
@@ -25,4 +25,4 @@
         android:text="Robert"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/btn_ray" />
-</android.support.constraint.ConstraintLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>