Commit bc14c88d authored by bixing's avatar bixing

Merge remote-tracking branch 'origin/media_master' into media_master

parents 9197c2d9 d6231565
......@@ -4,19 +4,19 @@ plugins {
android {
namespace 'com.ads.cal.picturetranslate'
compileSdk 34
compileSdk 35
defaultConfig {
applicationId "com.hr.heart.rate"
minSdk 24
targetSdk 34
targetSdk 35
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk {
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
......@@ -66,7 +66,7 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.9.0'
implementation 'androidx.camera:camera-view:1.2.3'
implementation 'androidx.camera:camera-view:1.4.2'
implementation 'androidx.lifecycle:lifecycle-process:2.6.2'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
......@@ -78,31 +78,33 @@ dependencies {
// To recognize Latin script
implementation 'com.google.mlkit:text-recognition:16.0.0'
implementation 'com.google.mlkit:text-recognition:16.0.1'
// To recognize Chinese script
implementation 'com.google.mlkit:text-recognition-chinese:16.0.0'
implementation 'com.google.mlkit:text-recognition-chinese:16.0.1'
// To recognize Devanagari script
implementation 'com.google.mlkit:text-recognition-devanagari:16.0.0'
implementation 'com.google.mlkit:text-recognition-devanagari:16.0.1'
// To recognize Japanese script
implementation 'com.google.mlkit:text-recognition-japanese:16.0.0'
implementation 'com.google.mlkit:text-recognition-japanese:16.0.1'
// To recognize Korean script
implementation 'com.google.mlkit:text-recognition-korean:16.0.0'
implementation 'com.google.mlkit:text-recognition-korean:16.0.1'
implementation "androidx.camera:camera-core:1.3.0-alpha04"
implementation "androidx.camera:camera-camera2:1.3.0-alpha04"
implementation "androidx.camera:camera-lifecycle:1.3.0-alpha04"
// 升级到 1.4.2,修复 libimage_processing_util_jni.so 的 4KB 页对齐问题
// (1.4.0-rc01 于 2024-08-07 包含 16KB page size 修复,兼容 AGP 8.5.x)
implementation "androidx.camera:camera-core:1.4.2"
implementation "androidx.camera:camera-camera2:1.4.2"
implementation "androidx.camera:camera-lifecycle:1.4.2"
//图像裁剪
implementation 'com.edmodo:cropper:1.0.1'
implementation 'com.github.bumptech.glide:glide:4.15.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'
implementation 'com.edmodo:cropper:2.0.0'
implementation 'com.github.bumptech.glide:glide:5.0.7'
annotationProcessor 'com.github.bumptech.glide:compiler:5.0.7'
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.27'
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.31'
implementation("org.greenrobot:eventbus:3.3.1")
// Import the BoM for the Firebase platform
......@@ -116,65 +118,37 @@ dependencies {
//facebook
implementation 'com.facebook.android:facebook-android-sdk:latest.release'
//TU (Necessary)
api "com.thinkup.sdk:core-tpn:6.5.36.2"
api "com.thinkup.sdk:nativead-tpn:6.5.36.2"
api "com.thinkup.sdk:banner-tpn:6.5.36.2"
api "com.thinkup.sdk:interstitial-tpn:6.5.36.2"
api "com.thinkup.sdk:rewardedvideo-tpn:6.5.36.2"
api "com.thinkup.sdk:splash-tpn:6.5.36.2"
//TU (Necessary)
api "com.thinkup.sdk:core-tpn:6.6.20.1"
//Androidx (Necessary)
api "androidx.appcompat:appcompat:1.6.1"
api "androidx.browser:browser:1.4.0"
//Vungle
api "com.thinkup.sdk:adapter-tpn-vungle:6.5.36.4"
api "com.thinkup.sdk:adapter-tpn-vungle:7.6.1.1.1"
api "com.vungle:vungle-ads:7.6.1"
api "com.google.android.gms:play-services-basement:18.1.0"
api "com.google.android.gms:play-services-ads-identifier:18.0.1"
//UnityAds
api "com.thinkup.sdk:adapter-tpn-unityads:6.5.36"
api "com.unity3d.ads:unity-ads:4.16.1"
//Bigo
api "com.thinkup.sdk:adapter-tpn-bigo:6.5.36"
api "com.bigossp:bigo-ads:5.5.1"
//Pubnative
api "com.thinkup.sdk:adapter-tpn-pubnative:6.5.36"
api "net.pubnative:hybid.sdk:3.6.2"
//Pangle
api "com.thinkup.sdk:adapter-tpn-pangle:6.5.36"
api "com.pangle.global:pag-sdk:7.6.0.2"
api "com.thinkup.sdk:adapter-tpn-pangle:7.9.1.0.1.0"
api "com.pangle.global:pag-sdk:7.9.1.0"
api "com.google.android.gms:play-services-ads-identifier:18.2.0"
//Admob
api "com.thinkup.sdk:adapter-tpn-admob:6.5.36"
api "com.google.android.gms:play-services-ads:24.6.0"
//TU Adx SDK(Necessary)
api "com.thinkup.sdk:adapter-tpn-sdm:6.5.36.8"
api "com.smartdigimkttech.sdk:smartdigimkttech-sdk:6.5.47"
api "com.thinkup.sdk:adapter-tpn-sdm:6.5.72.1.0"
api "com.smartdigimkttech.sdk:smartdigimkttech-sdk:6.5.72"
//AppLovin
api "com.thinkup.sdk:adapter-tpn-applovin:6.5.36"
api "com.applovin:applovin-sdk:13.4.0"
api "com.thinkup.sdk:adapter-tpn-applovin:13.6.0.1.0"
api "com.applovin:applovin-sdk:13.6.0"
//Mintegral
api "com.thinkup.sdk:adapter-tpn-mintegral:6.5.36"
api "com.mbridge.msdk.oversea:mbridge_android_sdk:16.9.91"
api "androidx.recyclerview:recyclerview:1.1.0"
//Tramini
api "com.thinkup.sdk:tramini-plugin-tpn:6.5.36"
// implementation 'com.tencent.bugly:crashreport:latest.release'
api "com.thinkup.sdk:adapter-tpn-mintegral:17.0.91.1.0"
api "com.mbridge.msdk.oversea:mbridge_android_sdk:17.0.91"
implementation 'androidx.cardview:cardview:1.0.0'
api "com.airbnb.android:lottie:6.1.0"
//Tramini
api "com.thinkup.sdk:tramini-plugin-tpn:6.6.20"
}
\ No newline at end of file
This diff is collapsed.
package com.ads.cal.picturetranslate;
import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
public class PermissionUtil {
public static void checkSelfIMAGEPermission(Activity activity, int requestCode) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
if (ContextCompat.checkSelfPermission(activity, android.Manifest.permission.READ_MEDIA_IMAGES)
!= PackageManager.PERMISSION_GRANTED) {
// 如果没有权限,请求权限
ActivityCompat.requestPermissions(activity,
new String[]{android.Manifest.permission.READ_MEDIA_IMAGES},
requestCode);
} else {
// 已经有权限,可以访问媒体图像文件
toSystemPhoto(activity, requestCode);
}
} else {
// 请求外部存储权限
if (ContextCompat.checkSelfPermission(activity, android.Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
// 如果没有权限,请求权限
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
requestCode);
} else {
// 已经有权限,可以继续处理逻辑
toSystemPhoto(activity, requestCode);
}
}
}
/**
* 打开系统图片选择器(使用 ACTION_GET_CONTENT,无需存储权限)
*
* @param activity 当前 Activity
* @param requestCode 请求码,用于 onActivityResult 回调
*/
public static void toSystemPhoto(Activity activity, int requestCode) {
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
activity.startActivityForResult(intent, requestCode);
}
......
......@@ -83,18 +83,13 @@ import java.io.File;
selectPhone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PermissionUtil.checkSelfIMAGEPermission(CameraActivity.this, SELECT_TAKE_PHONE);
PermissionUtil.toSystemPhoto(CameraActivity.this, SELECT_TAKE_PHONE);
}
});
}
private void initData() {
Uri firstImageUri = Util.getFirstImageUriFromGallery(this);
if (firstImageUri == null) {
return;
}
selectPhone.setImageURI(firstImageUri);
// 已移除 READ_MEDIA_IMAGES 权限,不再查询 MediaStore 获取相册缩略图
}
private void initCamera() {
......@@ -162,21 +157,7 @@ import java.io.File;
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == SELECT_TAKE_PHONE) {
if (allPermissionsGranted(grantResults)) {
PermissionUtil.toSystemPhoto(this, SELECT_TAKE_PHONE);
} else {
Toast.makeText(this, getString(R.string.app_toast_enable_permissions), Toast.LENGTH_SHORT).show();
}
}
}
private boolean allPermissionsGranted(int[] grantResults) {
return grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED;
}
/**
* 获取图片回调
......
......@@ -117,7 +117,7 @@ public class PictureTranslateCutOutPhotoActivity extends BaseActivity {
} catch (IOException e) {
e.printStackTrace();
}
cropImageView.setImageBitmap(bitmap, exif);
cropImageView.setImageBitmap(bitmap );
}
}
......
......@@ -288,7 +288,7 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
@Override
protected void onStop() {
if (!isFinished) {
if (!isFinished && messenger != null) {
forceStart = true;
finish();
}
......@@ -641,11 +641,7 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
Toast.makeText(this, getString(R.string.app_toast_enable_permissions), Toast.LENGTH_SHORT).show();
}
} else if (requestCode == PICK_IMAGE_REQUEST) {
if (allPermissionsGranted(grantResults)) {
PermissionUtil.toSystemPhoto(this, PICK_IMAGE_REQUEST);
} else {
Toast.makeText(this, getString(R.string.app_toast_enable_permissions), Toast.LENGTH_SHORT).show();
}
// Photo Picker 模式不再需要权限检查
}
}
......@@ -658,7 +654,7 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
take_photo.setOnClickListener(v -> checkSelfPermission());
selectImg = findViewById(R.id.select_);
selectImg.setOnClickListener(v -> {
PermissionUtil.checkSelfIMAGEPermission(PictureTranslateListMainActivity.this, PICK_IMAGE_REQUEST);
PermissionUtil.toSystemPhoto(PictureTranslateListMainActivity.this, PICK_IMAGE_REQUEST);
});
recyclerView = findViewById(R.id.listData);
LinearLayoutManager layoutManager = new LinearLayoutManager(this, RecyclerView.VERTICAL, false);
......
......@@ -296,6 +296,7 @@ public class PictureTranslateShowPhotoActivity extends BaseActivity {
public static void startPictureTranslateShowPhotoActivity(Context context, Uri uri) {
Intent intent = new Intent(context, PictureTranslateShowPhotoActivity.class);
intent.putExtra("uri", uri);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
context.startActivity(intent);
}
}
......@@ -249,9 +249,7 @@ public class InterstitialAdManager {
// }
// }
}
if (!TextUtils.isEmpty(sAdId)) {
TUInterstitial.entryAdScenario(sAdId, "f65bf35b235ce0");
}
if (null != mInterstitialAd && mInterstitialAd.isAdReady()) {
mInterstitialAd.show(activity, "f65bf35b235ce0");
}
......
......@@ -223,9 +223,7 @@ public class InterstitialHalfAdManager {
if (activity.isFinishing() || activity.isDestroyed()) {
return;
}
if (!TextUtils.isEmpty(sAdId)) {
TUInterstitial.entryAdScenario(sAdId, "f65bf35b235ce0");
}
if (null != mInterstitialAd && mInterstitialAd.isAdReady()) {
mInterstitialAd.show(activity, "f65bf35b235ce0");
}
......
......@@ -265,9 +265,7 @@ public class OpenAdManager {
return;
}
}
if (!TextUtils.isEmpty(sAdId)) {
TUSplashAd.entryAdScenario(sAdId, "f65bf35e68ddf9");
}
if (null != splashAd && splashAd.isAdReady()) {
splashAd.show(activity, viewGroup, "f65bf35e68ddf9");
}
......
......@@ -26,6 +26,7 @@
android:layout_marginEnd="51dp"
android:background="@drawable/app_white_corner_4"
android:padding="2dp"
android:src="@mipmap/app_icon_photo"
android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="@+id/take_photo"
app:layout_constraintEnd_toStartOf="@+id/take_photo"
......
......@@ -6,16 +6,14 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:7.4.2'
classpath 'com.android.tools.build:gradle:8.5.2'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.20'
classpath "cn.kw.lib.plugin:sep-plugin:2.4.7"
}
}
plugins {
id 'com.android.application' version '8.1.1' apply false
id 'com.android.library' version '8.1.1' apply false
id 'com.android.application' version '8.0.2' apply false
id 'com.android.library' version '8.0.2' apply false
}
task clean(type: Delete) {
......
#Fri Sep 22 15:53:39 CST 2023
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment