Commit 6101df16 authored by Your Name's avatar Your Name

Merge remote-tracking branch 'origin/master'

parents 623e3747 b67973ea
Pipeline #1376 canceled with stages
......@@ -32,6 +32,26 @@
android:supportsRtl="true"
android:theme="@style/Theme.SwiftCleanerPhoneHelper"
tools:targetApi="31">
<!-- <receiver-->
<!-- android:name="自定义 Receiver"-->
<!-- android:enabled="true"-->
<!-- android:exported="false" >-->
<!-- <intent-filter>-->
<!-- <action android:name="cn.jpush.android.intent.RECEIVER_MESSAGE" />-->
<!-- <category android:name="com.clean_swift" />-->
<!-- </intent-filter>-->
<!-- </receiver>-->
<activity
android:name=".view.activity.StartActivity"
android:exported="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 注册广播 -->
<service
......@@ -42,15 +62,7 @@
</intent-filter>
</service>
<!-- <receiver-->
<!-- android:name="自定义 Receiver"-->
<!-- android:enabled="true"-->
<!-- android:exported="false" >-->
<!-- <intent-filter>-->
<!-- <action android:name="cn.jpush.android.intent.RECEIVER_MESSAGE" />-->
<!-- <category android:name="com.clean_swift" />-->
<!-- </intent-filter>-->
<!-- </receiver>-->
<activity
android:name=".view.activity.SimilarPhotosActivity"
android:exported="false" />
......@@ -81,16 +93,7 @@
<activity
android:name=".view.activity.CleanJunkActivity"
android:exported="false" />
<activity
android:name=".view.activity.StartActivity"
android:exported="true"
android:launchMode="singleInstance">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".view.MainActivity"
android:exported="false" /> <!-- 今日头条autosize 屏幕适配 -->
......
......@@ -17,16 +17,13 @@ import android.view.View;
import com.gyf.immersionbar.ImmersionBar;
import com.swiftcleaner.chovey.R;
import com.swiftcleaner.chovey.databinding.ActivityStartBinding;
import com.swiftcleaner.chovey.model.tool.ToastUtil;
import com.swiftcleaner.chovey.model.util.PermissionUtils;
import com.swiftcleaner.chovey.view.MainActivity;
import com.zxdemo.admob.AdmobHelper;
import com.zxdemo.utils.NonBlockingCountdown;
import com.zxdemo.utils.TimeOut;
import java.util.function.Function;
import java.util.concurrent.atomic.AtomicBoolean;
import kotlin.jvm.functions.Function0;
public class StartActivity extends AppCompatActivity {
private ActivityResultLauncher<String> requestNotificationPermissionLauncher;
......@@ -34,12 +31,9 @@ public class StartActivity extends AppCompatActivity {
private SharedPreferences sharedPreferences;
private ActivityResultLauncher<String[]> multiplePermissionsLauncher;
private ActivityResultLauncher<Intent> notificationSettingsLauncher;
private NonBlockingCountdown nonBlockingCountdown=new NonBlockingCountdown(5, new TimeOut() {
@Override
public void timeOut() {
goToMainActivity();
}
});
private boolean adShowing = false;
private NonBlockingCountdown nonBlockingCountdown = new NonBlockingCountdown(this::jumpNext);
private int outJumpTime = 15;
@Override
protected void onCreate(Bundle savedInstanceState) {
......@@ -49,12 +43,11 @@ public class StartActivity extends AppCompatActivity {
setContentView(view);
initBar();
initPermission();
nonBlockingCountdown.start();
sharedPreferences = getSharedPreferences("AppPreferences", MODE_PRIVATE);
boolean isFirstTime = sharedPreferences.getBoolean("isFirstTime", true);
//广告
// initAdvertisement();
showOpenAd();
if (!isFirstTime) {
//点击过start
binding.startId.setVisibility(View.GONE);
......@@ -70,6 +63,20 @@ public class StartActivity extends AppCompatActivity {
}
@Override
protected void onResume() {
super.onResume();
if (!adShowing) {
nonBlockingCountdown.start(outJumpTime);
}
}
@Override
protected void onPause() {
super.onPause();
nonBlockingCountdown.cancel();
}
private void initPermission() {
multiplePermissionsLauncher = registerForActivityResult(
new ActivityResultContracts.RequestMultiplePermissions(),
......@@ -145,6 +152,7 @@ public class StartActivity extends AppCompatActivity {
binding.startId.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showOpenAd();
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("isFirstTime", false);
editor.apply();
......@@ -161,21 +169,24 @@ public class StartActivity extends AppCompatActivity {
// 在这里执行第三方 SDK 的初始化和其他数据读取操作
}
// private void initAdvertisement() {
// AdmobHelper.INSTANCE.showAppOpenAd(this,
// () -> {
// goToMainActivity();
// return null;
// },
// () -> {
// return null;
// },
// () -> {
// return null;
// }
//
// );
// }
private void showOpenAd() {
AdmobHelper.INSTANCE.showAppOpenAd(this,
() -> {
jumpNext();
return null;
},
() -> {
adShowing = true;
nonBlockingCountdown.cancel();
return null;
},
() -> {
jumpNext();
return null;
}
);
}
private void setupAgreementTextView() {
binding.userAgreement.setOnClickListener(v -> {
......@@ -190,7 +201,12 @@ public class StartActivity extends AppCompatActivity {
});
}
private void goToMainActivity() {
public AtomicBoolean jumped = new AtomicBoolean(false);
private void jumpNext() {
if (jumped.get()) return;
jumped.set(true);
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
......
......@@ -10,6 +10,7 @@ import android.os.Build
import android.os.Bundle
import android.os.PowerManager
import androidx.annotation.RequiresApi
import com.zxdemo.admob.AdmobHelper
//import com.reyun.solar.engine.SolarEngineConfig
//import com.reyun.solar.engine.SolarEngineManager
import com.zxdemo.receiver.AppInstallReceiver
......@@ -55,6 +56,7 @@ class ZxApplication : Application() {
InstallRefeerUtils.init()
startOmgNotification()
AdmobHelper.init(this, {}, {})
}
......
......@@ -112,17 +112,17 @@ object AdmobHelper {
if (useAdmob) {
MobileAds.initialize(context) {
}
if (isAppOpenAdAvailable()) {
loaded.invoke(0)
return
}
if (isInterstitialAdAvailable()) {
loaded.invoke(1)
loadAppOpenAd(context)
return
}
loadAppOpenAd(context, { loaded.invoke(0) }, { failed.invoke() })
loadInterstitialAd(context)
// if (isAppOpenAdAvailable()) {
// loaded.invoke(0)
// return
// }
// if (isInterstitialAdAvailable()) {
// loaded.invoke(1)
// loadAppOpenAd(context)
// return
// }
// loadAppOpenAd(context, { loaded.invoke(0) }, { failed.invoke() })
// loadInterstitialAd(context)
} else {
val initConfig = AppLovinSdkInitializationConfiguration.builder(
MAX_SDK_KEY, context
......
......@@ -2,34 +2,37 @@ package com.zxdemo.utils;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
public class NonBlockingCountdown {
private static final long COUNTDOWN_INTERVAL = 1000; // 倒计时时间间隔,单位毫秒
private final Handler handler = new Handler(Looper.getMainLooper());
private Runnable countdownRunnable;
public int seconds = 0;
public NonBlockingCountdown(int s, TimeOut timeOut) {
public NonBlockingCountdown(TimeOut timeOut) {
this.countdownRunnable = new Runnable() {
int seconds = s;
@Override
public void run() {
if (seconds > 0) {
seconds--;
// 在这里更新UI,显示剩余时间
Log.e("NonBlockingCountdown", "seconds=" + seconds);
handler.postDelayed(countdownRunnable, COUNTDOWN_INTERVAL);
} else {
// 倒计时结束,可以在这里做一些操作,比如通知用户
handler.removeCallbacks(this);
timeOut.timeOut();
Log.e("NonBlockingCountdown", "timeOut");
}
}
};
}
public void start() {
public void start(int s) {
this.seconds = s;
handler.postDelayed(countdownRunnable, COUNTDOWN_INTERVAL);
}
......
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