diff --git a/build.gradle b/build.gradle index 2f030a79..881632a0 100644 --- a/build.gradle +++ b/build.gradle @@ -5,10 +5,14 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:7.0.3' + classpath 'com.android.tools.build:gradle:8.11.1' } } +plugins { + id 'org.jetbrains.kotlin.android' version '1.8.0' apply false +} + subprojects { repositories { google() @@ -19,6 +23,6 @@ subprojects { version = '4.3.0' group = 'com.journeyapps' - ext.androidTargetSdk = 30 + ext.androidTargetSdk = 35 ext.zxingCore = 'com.google.zxing:core:3.4.1' } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ffed3a25..2733ed5d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/sample/build.gradle b/sample/build.gradle index 329db202..c5ffc4fc 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -1,4 +1,5 @@ apply plugin: 'com.android.application' +apply plugin: 'org.jetbrains.kotlin.android' android { compileSdkVersion project.androidTargetSdk @@ -64,6 +65,7 @@ android { // called context.getMainProject() during module analysis. disable 'UsingOnClickInXml' } + namespace 'example.zxing' } diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml index f73ac68e..1e0054ca 100644 --- a/sample/src/main/AndroidManifest.xml +++ b/sample/src/main/AndroidManifest.xml @@ -1,6 +1,5 @@ - + + android:theme="@style/AppTheme" + android:exported="true"> diff --git a/zxing-android-embedded/AndroidManifest.xml b/zxing-android-embedded/AndroidManifest.xml index d3e61770..8d584783 100644 --- a/zxing-android-embedded/AndroidManifest.xml +++ b/zxing-android-embedded/AndroidManifest.xml @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. --> - + diff --git a/zxing-android-embedded/build.gradle b/zxing-android-embedded/build.gradle index b54e0380..4d118711 100644 --- a/zxing-android-embedded/build.gradle +++ b/zxing-android-embedded/build.gradle @@ -33,6 +33,7 @@ if (secretPropsFile.exists()) { dependencies { api project.zxingCore + implementation 'androidx.activity:activity:1.8.0' implementation 'androidx.core:core:1.6.0' implementation 'androidx.fragment:fragment:1.3.6' @@ -41,6 +42,7 @@ dependencies { } android { + namespace 'com.journeyapps.barcodescanner' resourcePrefix 'zxing_' compileSdkVersion project.androidTargetSdk @@ -73,11 +75,13 @@ android { defaultConfig { minSdkVersion 19 + aarMetadata { + minCompileSdk 19 + } } buildTypes { debug { - versionNameSuffix ".debug" resValue "string", "app_version", "${defaultConfig.versionName}${versionNameSuffix}" } release { @@ -87,7 +91,7 @@ android { } task sourceJar(type: Jar) { - classifier = 'sources' + archiveClassifier = 'sources' from android.sourceSets.main.java.srcDirs } diff --git a/zxing-android-embedded/src/com/google/zxing/client/android/BeepManager.java b/zxing-android-embedded/src/com/google/zxing/client/android/BeepManager.java index f553eb37..53d35b27 100644 --- a/zxing-android-embedded/src/com/google/zxing/client/android/BeepManager.java +++ b/zxing-android-embedded/src/com/google/zxing/client/android/BeepManager.java @@ -27,6 +27,8 @@ import android.os.Vibrator; import android.util.Log; +import com.journeyapps.barcodescanner.R; + import java.io.IOException; /** diff --git a/zxing-android-embedded/src/com/journeyapps/barcodescanner/BarcodeView.java b/zxing-android-embedded/src/com/journeyapps/barcodescanner/BarcodeView.java index 65d71314..4e92a9f1 100644 --- a/zxing-android-embedded/src/com/journeyapps/barcodescanner/BarcodeView.java +++ b/zxing-android-embedded/src/com/journeyapps/barcodescanner/BarcodeView.java @@ -7,7 +7,6 @@ import com.google.zxing.DecodeHintType; import com.google.zxing.ResultPoint; -import com.google.zxing.client.android.R; import java.util.HashMap; import java.util.List; diff --git a/zxing-android-embedded/src/com/journeyapps/barcodescanner/CameraPreview.java b/zxing-android-embedded/src/com/journeyapps/barcodescanner/CameraPreview.java index b647f8cd..a70bd515 100644 --- a/zxing-android-embedded/src/com/journeyapps/barcodescanner/CameraPreview.java +++ b/zxing-android-embedded/src/com/journeyapps/barcodescanner/CameraPreview.java @@ -21,7 +21,6 @@ import android.view.ViewGroup; import android.view.WindowManager; -import com.google.zxing.client.android.R; import com.journeyapps.barcodescanner.camera.CameraInstance; import com.journeyapps.barcodescanner.camera.CameraParametersCallback; import com.journeyapps.barcodescanner.camera.CameraSettings; diff --git a/zxing-android-embedded/src/com/journeyapps/barcodescanner/CaptureActivity.java b/zxing-android-embedded/src/com/journeyapps/barcodescanner/CaptureActivity.java index 1d4cbe85..2a34f806 100644 --- a/zxing-android-embedded/src/com/journeyapps/barcodescanner/CaptureActivity.java +++ b/zxing-android-embedded/src/com/journeyapps/barcodescanner/CaptureActivity.java @@ -1,25 +1,41 @@ package com.journeyapps.barcodescanner; -import android.app.Activity; import android.os.Bundle; + +import androidx.activity.ComponentActivity; +import androidx.activity.EdgeToEdge; import androidx.annotation.NonNull; -import android.view.KeyEvent; +import androidx.core.graphics.Insets; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; -import com.google.zxing.client.android.R; +import android.view.KeyEvent; +import android.view.ViewGroup; /** * */ -public class CaptureActivity extends Activity { +public class CaptureActivity extends ComponentActivity { private CaptureManager capture; private DecoratedBarcodeView barcodeScannerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + EdgeToEdge.enable(this); barcodeScannerView = initializeContent(); + ViewCompat.setOnApplyWindowInsetsListener(barcodeScannerView.getStatusView(), (view, windowInsets) -> { + Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars()); + + ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams) view.getLayoutParams(); + mlp.bottomMargin = insets.bottom; + barcodeScannerView.getStatusView().setLayoutParams(mlp); + + return WindowInsetsCompat.CONSUMED; + }); + capture = new CaptureManager(this, barcodeScannerView); capture.initializeFromIntent(getIntent(), savedInstanceState); capture.decode(); diff --git a/zxing-android-embedded/src/com/journeyapps/barcodescanner/CaptureManager.java b/zxing-android-embedded/src/com/journeyapps/barcodescanner/CaptureManager.java index 6e35b10a..22bdc0cb 100644 --- a/zxing-android-embedded/src/com/journeyapps/barcodescanner/CaptureManager.java +++ b/zxing-android-embedded/src/com/journeyapps/barcodescanner/CaptureManager.java @@ -26,7 +26,6 @@ import com.google.zxing.client.android.BeepManager; import com.google.zxing.client.android.InactivityTimer; import com.google.zxing.client.android.Intents; -import com.google.zxing.client.android.R; import java.io.File; import java.io.FileOutputStream; diff --git a/zxing-android-embedded/src/com/journeyapps/barcodescanner/DecoderThread.java b/zxing-android-embedded/src/com/journeyapps/barcodescanner/DecoderThread.java index d0780077..1fc40301 100644 --- a/zxing-android-embedded/src/com/journeyapps/barcodescanner/DecoderThread.java +++ b/zxing-android-embedded/src/com/journeyapps/barcodescanner/DecoderThread.java @@ -10,7 +10,6 @@ import com.google.zxing.LuminanceSource; import com.google.zxing.Result; import com.google.zxing.ResultPoint; -import com.google.zxing.client.android.R; import com.journeyapps.barcodescanner.camera.CameraInstance; import com.journeyapps.barcodescanner.camera.PreviewCallback; diff --git a/zxing-android-embedded/src/com/journeyapps/barcodescanner/DecoratedBarcodeView.java b/zxing-android-embedded/src/com/journeyapps/barcodescanner/DecoratedBarcodeView.java index a070e403..4c9a5972 100644 --- a/zxing-android-embedded/src/com/journeyapps/barcodescanner/DecoratedBarcodeView.java +++ b/zxing-android-embedded/src/com/journeyapps/barcodescanner/DecoratedBarcodeView.java @@ -15,7 +15,6 @@ import com.google.zxing.client.android.DecodeFormatManager; import com.google.zxing.client.android.DecodeHintManager; import com.google.zxing.client.android.Intents; -import com.google.zxing.client.android.R; import com.journeyapps.barcodescanner.camera.CameraParametersCallback; import com.journeyapps.barcodescanner.camera.CameraSettings; diff --git a/zxing-android-embedded/src/com/journeyapps/barcodescanner/ViewfinderView.java b/zxing-android-embedded/src/com/journeyapps/barcodescanner/ViewfinderView.java index 4bd02378..ce0968bc 100755 --- a/zxing-android-embedded/src/com/journeyapps/barcodescanner/ViewfinderView.java +++ b/zxing-android-embedded/src/com/journeyapps/barcodescanner/ViewfinderView.java @@ -27,7 +27,6 @@ import android.view.View; import com.google.zxing.ResultPoint; -import com.google.zxing.client.android.R; import java.util.ArrayList; import java.util.List; diff --git a/zxing-android-embedded/src/com/journeyapps/barcodescanner/camera/CameraInstance.java b/zxing-android-embedded/src/com/journeyapps/barcodescanner/camera/CameraInstance.java index ae54a4db..f77f6d69 100644 --- a/zxing-android-embedded/src/com/journeyapps/barcodescanner/camera/CameraInstance.java +++ b/zxing-android-embedded/src/com/journeyapps/barcodescanner/camera/CameraInstance.java @@ -5,7 +5,7 @@ import android.util.Log; import android.view.SurfaceHolder; -import com.google.zxing.client.android.R; +import com.journeyapps.barcodescanner.R; import com.journeyapps.barcodescanner.Size; import com.journeyapps.barcodescanner.Util;