diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 08353fa..1bf906a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -5,6 +5,12 @@ plugins { alias(libs.plugins.android.application) id("org.jetbrains.kotlin.android") id ("kotlin-kapt") + id("com.google.gms.google-services") + id("com.google.firebase.crashlytics") + id("applovin-quality-service") +} +applovin{ + apiKey = "C8XiiEAUrUDh6nWnlsJz8iEhrTyNLUctJ_xGloqZJHwJINes1b_Md0rTpgbdETXAq9eH5RVsJqqNTILCA2qnbA" } val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date()) android { @@ -12,11 +18,12 @@ android { compileSdk = 34 defaultConfig { + //com.lc.applock.security.locks applicationId = "com.lc.applock.security.locks" minSdk = 23 targetSdk = 34 - versionCode = 1 - versionName = "1.0.0" + versionCode = 2 + versionName = "1.0.1" setProperty("archivesBaseName", "AppLockMaster_v${versionName}_(${versionCode})_$timestamp") testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } @@ -64,4 +71,16 @@ dependencies { implementation("androidx.room:room-guava:$room_version") testImplementation("androidx.room:room-testing:$room_version") implementation("androidx.room:room-paging:$room_version") + + + //----------------firebase + implementation(platform("com.google.firebase:firebase-bom:33.1.1")) + implementation("com.google.firebase:firebase-crashlytics") + implementation("com.google.firebase:firebase-analytics") + + implementation("com.applovin:applovin-sdk:+") + implementation("com.applovin.mediation:vungle-adapter:+") + implementation("com.applovin.mediation:mintegral-adapter:+") + implementation("com.applovin.mediation:bytedance-adapter:+") + implementation("com.applovin.mediation:unityads-adapter:+") } \ No newline at end of file diff --git a/app/google-services.json b/app/google-services.json new file mode 100644 index 0000000..34c368e --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,29 @@ +{ + "project_info": { + "project_number": "19226425093", + "project_id": "app-lock-master---lock-apps", + "storage_bucket": "app-lock-master---lock-apps.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:19226425093:android:30950fb84b7930a5a6a96c", + "android_client_info": { + "package_name": "com.lc.applock.security.locks" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyCThZKS8sq7PbqOnJwRZrpn9QH2nXbmwDM" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/app/src/main/java/com/lc/myapplication/security/locks/Securitylocks.java b/app/src/main/java/com/lc/myapplication/security/locks/Securitylocks.java index a63d076..f815d79 100644 --- a/app/src/main/java/com/lc/myapplication/security/locks/Securitylocks.java +++ b/app/src/main/java/com/lc/myapplication/security/locks/Securitylocks.java @@ -1,8 +1,15 @@ package com.lc.myapplication.security.locks; import android.app.Application; +import android.content.Intent; import android.util.Log; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + +import com.applovin.sdk.AppLovinMediationProvider; +import com.applovin.sdk.AppLovinSdk; +import com.applovin.sdk.AppLovinSdkConfiguration; +import com.applovin.sdk.AppLovinSdkInitializationConfiguration; import com.lc.myapplication.security.locks.lockroom.SecurityLockDataBase; import com.lc.myapplication.security.locks.lockroom.SecurityLockEntity; import com.lc.myapplication.security.locks.tool.AppsManager; @@ -14,16 +21,26 @@ import java.util.List; import java.util.Set; public class Securitylocks extends Application { + public static String TAG = "============="; + + public static boolean initSDkOK = false; + public static String initAction = "ACTION_INIT"; + + public static int userOption =0; + + private String SDK_KEY = "i4k2zRVkJrBdZ2AlcVyiG2B1feL1OvMldT2ea5279uyuoGXtC_5uGTbx7Up_JehNT_K0TmZK42hpEAFFwlHLEb"; public static List securityLockEntities = new ArrayList<>(); + @Override public void onCreate() { super.onCreate(); MeValues.lock = this; + initMAxSDk(); MyTools.init(this); Set entities = AppsManager.queryapps(this); //Log.d("--------en1","----------"+entities.size()); AppsManager.insertEntity(entities); - // Log.d("--------en2","----------"+securityLockEntities.size()); + // Log.d("--------en2","----------"+securityLockEntities.size()); MyTools.RUNIO(new Runnable() { @Override public void run() { @@ -33,4 +50,21 @@ public class Securitylocks extends Application { //Log.d("--------en3","----------"+securityLockEntities.size()); } + private void initMAxSDk() { + + AppLovinSdkInitializationConfiguration initConfig = AppLovinSdkInitializationConfiguration.builder(SDK_KEY, this) + .setMediationProvider(AppLovinMediationProvider.MAX) + .build(); + // Initialize the SDK with the configuration + AppLovinSdk.getInstance(this).initialize(initConfig, new AppLovinSdk.SdkInitializationListener() { + @Override + public void onSdkInitialized(AppLovinSdkConfiguration appLovinSdkConfiguration) { + initSDkOK = true; + Log.d(TAG, "-------------ok"); + LocalBroadcastManager.getInstance(Securitylocks.this).sendBroadcast(new Intent(initAction)); + } + }); + +// AppLovinSdk.getInstance(Securitylocks.this).showMediationDebugger(); + } } diff --git a/app/src/main/java/com/lc/myapplication/security/locks/activity/AllAppActivity.java b/app/src/main/java/com/lc/myapplication/security/locks/activity/AllAppActivity.java index 8d7c644..41eee9c 100644 --- a/app/src/main/java/com/lc/myapplication/security/locks/activity/AllAppActivity.java +++ b/app/src/main/java/com/lc/myapplication/security/locks/activity/AllAppActivity.java @@ -1,6 +1,7 @@ package com.lc.myapplication.security.locks.activity; import android.annotation.SuppressLint; +import android.app.FragmentManager; import android.content.Intent; import android.os.Bundle; import android.view.View; @@ -20,8 +21,10 @@ import androidx.recyclerview.widget.RecyclerView; import com.lc.myapplication.security.locks.R; import com.lc.myapplication.security.locks.Securitylocks; import com.lc.myapplication.security.locks.adapter.AllAppsAdapter; +import com.lc.myapplication.security.locks.dialog.MsgDialog; import com.lc.myapplication.security.locks.lockroom.SecurityLockDataBase; import com.lc.myapplication.security.locks.lockroom.SecurityLockEntity; +import com.lc.myapplication.security.locks.max.MaxManager; import com.lc.myapplication.security.locks.tool.MyService; import com.lc.myapplication.security.locks.tool.MyTools; @@ -39,6 +42,7 @@ public class AllAppActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_all_app); + MaxManager.onLoadAd(); all_apps_view = findViewById(R.id.all_apps_view); all_apps_back = findViewById(R.id.all_apps_back); all_main = findViewById(R.id.all_main); @@ -71,6 +75,8 @@ public class AllAppActivity extends AppCompatActivity { runOnUiThread(new Runnable() { @Override public void run() { + + AllAppsAdapter allAppsAdapter = new AllAppsAdapter(AllAppActivity.this, list); all_apps_view.setAdapter(allAppsAdapter); all_apps_view.setLayoutManager(new GridLayoutManager(AllAppActivity.this,3)); diff --git a/app/src/main/java/com/lc/myapplication/security/locks/activity/IntoActivity.java b/app/src/main/java/com/lc/myapplication/security/locks/activity/IntoActivity.java index 000c996..1938d3b 100644 --- a/app/src/main/java/com/lc/myapplication/security/locks/activity/IntoActivity.java +++ b/app/src/main/java/com/lc/myapplication/security/locks/activity/IntoActivity.java @@ -4,47 +4,68 @@ import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; import android.os.CountDownTimer; +import android.util.Log; import androidx.appcompat.app.AppCompatActivity; +import com.lc.myapplication.security.locks.max.WelComManager; +import com.lc.myapplication.security.locks.Securitylocks; +import com.lc.myapplication.security.locks.max.CustomProgressBar; import com.lc.myapplication.security.locks.tool.MyTools; import com.lc.myapplication.security.locks.R; +import kotlin.Unit; +import kotlin.jvm.functions.Function0; +import kotlin.jvm.functions.Function1; + public class IntoActivity extends AppCompatActivity { private CountDownTimer timer; + private CustomProgressBar progressBar; + private Long time = 11000L; @SuppressLint("MissingInflatedId") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_into); - timer = new CountDownTimer(1000, 500) { - @Override - public void onTick(long millisUntilFinished) { + progressBar = findViewById(R.id.pb); + + timer = WelComManager.initTimer(IntoActivity.this, time, new Function1() { + @Override + public Unit invoke(Long aLong) { + long number = time - aLong; + Double s = calculatePercentage(number, time); + Log.d(Securitylocks.TAG, "--------------l=" + s); + progressBar.setProgress(s.floatValue()); + return null; } - + }, new Function0() { @Override - public void onFinish() { + public Unit invoke() { + progressBar.setProgress(100); startSwitchActivity(); + return null; } - }; - timego(); + }); + } private void startSwitchActivity() { String firstkey = MyTools.getPassword(); - if (firstkey.isEmpty()){ + if (firstkey.isEmpty()) { startActivity(new Intent(IntoActivity.this, PassCodeActivity.class)); finish(); - }else { + } else { startActivity(new Intent(IntoActivity.this, MainActivity.class)); finish(); } } - - private void timego() { - timer.start(); + private Double calculatePercentage(long number, long total) { + if (total == 0) { + return 0.00; // 防止除以0错误 + } + return ((double) number / total) * 100; } @Override diff --git a/app/src/main/java/com/lc/myapplication/security/locks/activity/LockedAppActivity.java b/app/src/main/java/com/lc/myapplication/security/locks/activity/LockedAppActivity.java index 42cc535..865d9ec 100644 --- a/app/src/main/java/com/lc/myapplication/security/locks/activity/LockedAppActivity.java +++ b/app/src/main/java/com/lc/myapplication/security/locks/activity/LockedAppActivity.java @@ -23,6 +23,7 @@ import com.lc.myapplication.security.locks.adapter.LockedAppAdapter; import com.lc.myapplication.security.locks.draw.MySpace; import com.lc.myapplication.security.locks.lockroom.SecurityLockDataBase; import com.lc.myapplication.security.locks.lockroom.SecurityLockEntity; +import com.lc.myapplication.security.locks.max.MaxManager; import com.lc.myapplication.security.locks.tool.MyTools; import java.util.ArrayList; @@ -39,6 +40,7 @@ public class LockedAppActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_locked_app); + MaxManager.onLoadAd(); locked_app = findViewById(R.id.locked_apps_view); locked_back = findViewById(R.id.locked_back); locked_main = findViewById(R.id.locked_main); diff --git a/app/src/main/java/com/lc/myapplication/security/locks/activity/PassCodeActivity.java b/app/src/main/java/com/lc/myapplication/security/locks/activity/PassCodeActivity.java index c54eb6e..956165d 100644 --- a/app/src/main/java/com/lc/myapplication/security/locks/activity/PassCodeActivity.java +++ b/app/src/main/java/com/lc/myapplication/security/locks/activity/PassCodeActivity.java @@ -14,6 +14,9 @@ import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; +import com.lc.myapplication.security.locks.listener.ActionListener; +import com.lc.myapplication.security.locks.max.MaxManager; +import com.lc.myapplication.security.locks.max.onAdStatusListener; import com.lc.myapplication.security.locks.tool.MyTools; import com.lc.myapplication.security.locks.R; import com.lc.myapplication.security.locks.draw.DrawInputView; @@ -30,38 +33,51 @@ public class PassCodeActivity extends AppCompatActivity { private String inputkey; private DrawInputView drawInputView; private ImageView image_back; + + private boolean showAd = false; + @SuppressLint("MissingInflatedId") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_passcode_word); - type = getIntent().getIntExtra(MeValues.KEYCODE_TYPE,0); + MaxManager.onLoadAd(); + type = getIntent().getIntExtra(MeValues.KEYCODE_TYPE, 0); + showAd = getIntent().getBooleanExtra(MeValues.KEY_SHOW, false); + if (showAd) { + showMax(new ActionListener() { + @Override + public void onAction() { + + } + }); + } initfindview(); int result = 0; int resourceId = this.getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { result = this.getResources().getDimensionPixelSize(resourceId); } - Log.d("------height","------height"+result); + Log.d("------height", "------height" + result); gotoSwitchKeyType(); } private void gotoSwitchKeyType() { - if (type == 0){ + if (type == 0) { image_back.setVisibility(View.GONE); passcode_name.setText(getString(R.string.set_passcode)); passcode_step.setText(getString(R.string.passcode_next)); passcode_step.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Intent intent = new Intent(PassCodeActivity.this,PassCodeActivity.class); - intent.putExtra(MeValues.KEYCODE_TYPE,1); - intent.putExtra(MeValues.FIRST_KEY,inputkey); + Intent intent = new Intent(PassCodeActivity.this, PassCodeActivity.class); + intent.putExtra(MeValues.KEYCODE_TYPE, 1); + intent.putExtra(MeValues.FIRST_KEY, inputkey); startActivity(intent); finish(); } }); - }else if (type == 1){ + } else if (type == 1) { image_back.setVisibility(View.GONE); passcode_name.setText(getString(R.string.setagain)); passcode_step.setText(getString(R.string.passcode_goon)); @@ -69,19 +85,19 @@ public class PassCodeActivity extends AppCompatActivity { @Override public void onClick(View v) { String passkey = getIntent().getStringExtra(MeValues.FIRST_KEY); - if (Objects.equals(passkey,inputkey)){ + if (Objects.equals(passkey, inputkey)) { MyTools.setPassword(passkey); Intent intent = new Intent(PassCodeActivity.this, MainActivity.class); startActivity(intent); finish(); - }else { - Toast.makeText(PassCodeActivity.this,getString(R.string.code_not_same),Toast.LENGTH_LONG).show(); + } else { + Toast.makeText(PassCodeActivity.this, getString(R.string.code_not_same), Toast.LENGTH_LONG).show(); drawInputView.ClearInputCode(); passcode_step.setVisibility(View.GONE); } } }); - }else if (type == 2){ + } else if (type == 2) { image_back.setVisibility(View.VISIBLE); passcode_name.setText(getString(R.string.change_passcode)); passcode_step.setText(getString(R.string.passcode_change)); @@ -127,4 +143,17 @@ public class PassCodeActivity extends AppCompatActivity { image_back = findViewById(R.id.passcode_back); } + private void showMax(ActionListener listener) { + MaxManager.ShowAd(PassCodeActivity.this, new onAdStatusListener() { + @Override + public void onAdStatus(int type) { + if (type == MaxManager.type_show_close || type == MaxManager.type_show_fail || type == MaxManager.type_no_cache) { + if (listener != null) + listener.onAction(); + } + } + }); + } + + } \ No newline at end of file diff --git a/app/src/main/java/com/lc/myapplication/security/locks/activity/TestimonialsActivity.java b/app/src/main/java/com/lc/myapplication/security/locks/activity/TestimonialsActivity.java index 6341ce9..5ec85ea 100644 --- a/app/src/main/java/com/lc/myapplication/security/locks/activity/TestimonialsActivity.java +++ b/app/src/main/java/com/lc/myapplication/security/locks/activity/TestimonialsActivity.java @@ -20,6 +20,7 @@ import com.lc.myapplication.security.locks.adapter.TuijianAdapter; import com.lc.myapplication.security.locks.draw.MySpace; import com.lc.myapplication.security.locks.lockroom.SecurityLockDataBase; import com.lc.myapplication.security.locks.lockroom.SecurityLockEntity; +import com.lc.myapplication.security.locks.max.MaxManager; import com.lc.myapplication.security.locks.tool.MyService; import com.lc.myapplication.security.locks.tool.MyTools; @@ -39,6 +40,7 @@ public class TestimonialsActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_testimonials); + MaxManager.onLoadAd(); tuijian_re = findViewById(R.id.tuijian_apps_view); tuijian_back = findViewById(R.id.tuijian_back); tuijain_main = findViewById(R.id.tuijian_main); diff --git a/app/src/main/java/com/lc/myapplication/security/locks/adapter/AllAppsAdapter.java b/app/src/main/java/com/lc/myapplication/security/locks/adapter/AllAppsAdapter.java index fd67a40..93ea1d5 100644 --- a/app/src/main/java/com/lc/myapplication/security/locks/adapter/AllAppsAdapter.java +++ b/app/src/main/java/com/lc/myapplication/security/locks/adapter/AllAppsAdapter.java @@ -1,31 +1,40 @@ package com.lc.myapplication.security.locks.adapter; -import android.content.Context; import android.graphics.drawable.Drawable; import android.util.Log; import android.view.LayoutInflater; -import android.view.View; import android.view.ViewGroup; import android.widget.CompoundButton; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.lc.myapplication.security.locks.Securitylocks; +import com.lc.myapplication.security.locks.activity.AllAppActivity; import com.lc.myapplication.security.locks.databinding.AllAppsViewBinding; -import com.lc.myapplication.security.locks.listener.AppLockListener; +import com.lc.myapplication.security.locks.dialog.MsgDialog; +import com.lc.myapplication.security.locks.listener.ActionListener; import com.lc.myapplication.security.locks.lockroom.SecurityLockDataBase; import com.lc.myapplication.security.locks.lockroom.SecurityLockEntity; +import com.lc.myapplication.security.locks.max.MaxManager; +import com.lc.myapplication.security.locks.max.onAdStatusListener; import com.lc.myapplication.security.locks.tool.AppsManager; import com.lc.myapplication.security.locks.tool.MyTools; +import com.lc.myapplication.security.locks.value.MeValues; -import java.util.ArrayList; import java.util.List; public class AllAppsAdapter extends RecyclerView.Adapter { - private Context mcon; + private AllAppActivity mActivity; private List securityLockEntities; + private MsgDialog msgDialog = null; + + private onAdStatusListener listener; + + public void setListener(onAdStatusListener listener) { + this.listener = listener; + } @NonNull @Override @@ -33,8 +42,8 @@ public class AllAppsAdapter extends RecyclerView.Adapter entities) { - mcon = context; + public AllAppsAdapter(AllAppActivity context, List entities) { + mActivity = context; this.securityLockEntities = entities; } @@ -42,7 +51,6 @@ public class AllAppsAdapter extends RecyclerView.Adapter{ private TuijianAppsViewBinding tuijianAppsViewBinding; private List securityLockEntities; - private Context mycon; - public TuijianAdapter(Context context,List list){ + private TestimonialsActivity mycon; + private MsgDialog msgDialog = null; + public TuijianAdapter(TestimonialsActivity context, List list){ mycon = context; securityLockEntities = list; } @@ -55,6 +63,23 @@ public class TuijianAdapter extends RecyclerView.Adapter adList = new ArrayList<>(); + + public static MaxInterstitialAd getAd(List list) { + Collections.shuffle(list); + for (MaxInterstitialAd ad : list) { + if (ad.isReady()) { + return ad; + } + } + return null; + } + + public static List onLoadAd() { + if (adList.isEmpty()) { + MaxInterstitialAd AdT = new MaxInterstitialAd(two_Ad, MeValues.lock); + MaxInterstitialAd AdOne = new MaxInterstitialAd(one_AD, MeValues.lock); + MaxInterstitialAd AdThree = new MaxInterstitialAd(three_ad,MeValues.lock); + adList.add(AdOne); + adList.add(AdT); + adList.add(AdThree); + } + + for (MaxInterstitialAd ad : adList) { + if (!ad.isReady()) { + setMyListener(ad, new MaxListener() { + @Override + public void onFail(MaxAd ad) { + + } + + @Override + public void onShowSuccess(MaxAd ad) { + + } + + @Override + public void onHidden() { + + } + }); + ad.loadAd(); + } + + } + + return adList; + } + + public static void setMyListener(MaxInterstitialAd ad, MaxListener maxListener) { + ad.setListener(new MaxAdListener() { + @Override + public void onAdLoaded(@NonNull MaxAd maxAd) { + Log.d(Securitylocks.TAG, "-------onAdLoaded-----maxAd="+maxAd.getAdUnitId()); + } + + @Override + public void onAdDisplayed(@NonNull MaxAd maxAd) { + Log.d(Securitylocks.TAG, "-------onAdDisplayed-----maxAd="+maxAd.getAdUnitId()); + maxListener.onShowSuccess(maxAd); + } + + @Override + public void onAdHidden(@NonNull MaxAd maxAd) { + Log.d(Securitylocks.TAG, "-------onAdHidden-----maxAd="+maxAd.getAdUnitId()); + maxListener.onHidden(); + setMyListener(ad, new MaxListener() { + @Override + public void onFail(MaxAd ad) { + + } + + @Override + public void onShowSuccess(MaxAd ad) { + + } + + @Override + public void onHidden() { + + } + }); + ad.loadAd(); + } + + @Override + public void onAdClicked(@NonNull MaxAd maxAd) { + + } + + @Override + public void onAdLoadFailed(@NonNull String s, @NonNull MaxError maxError) { + Log.d(Securitylocks.TAG, "-------onAdLoadFailed-----s="+s+"-----maxError="+maxError.getCode()+"----="+maxError.getMessage()); + } + + @Override + public void onAdDisplayFailed(@NonNull MaxAd maxAd, @NonNull MaxError maxError) { + maxListener.onFail(maxAd); + } + }); + + } + + public static void ShowAd(Activity activity, onAdStatusListener listener) { + MaxInterstitialAd ad = MaxManager.getAd(adList); + if (ad == null) { + listener.onAdStatus(type_no_cache); + } else { + listener.onAdStatus(type_has_cache); + MaxManager.setMyListener(ad, new MaxListener() { + @Override + public void onFail(MaxAd ad) { + listener.onAdStatus(type_show_fail); + } + + @Override + public void onShowSuccess(MaxAd ad) { + listener.onAdStatus(type_show_success); + } + + @Override + public void onHidden() { + listener.onAdStatus(type_show_close); + } + }); + ad.showAd(activity); + } + } + + +} diff --git a/app/src/main/java/com/lc/myapplication/security/locks/max/WelComManager.kt b/app/src/main/java/com/lc/myapplication/security/locks/max/WelComManager.kt new file mode 100644 index 0000000..3b65d23 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/locks/max/WelComManager.kt @@ -0,0 +1,81 @@ +package com.lc.myapplication.security.locks.max + +import android.app.Activity +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.content.IntentFilter +import android.os.CountDownTimer +import android.util.Log +import androidx.localbroadcastmanager.content.LocalBroadcastManager +import com.applovin.mediation.ads.MaxInterstitialAd +import com.lc.myapplication.security.locks.Securitylocks + + +object WelComManager { + + private lateinit var timer: CountDownTimer + + private var need_Show = true + + private lateinit var lists: List + + @JvmStatic + fun initTimer( + activity: Activity, + countTime: Long, + timAction: (time: Long) -> Unit, + goMainAction: () -> Unit + ): CountDownTimer { + need_Show = true + timer = object : CountDownTimer(countTime, 100) { + override fun onTick(millisUntilFinished: Long) { + timAction.invoke(millisUntilFinished) + if (need_Show) { + MaxManager.ShowAd(activity) { + Log.d(Securitylocks.TAG, "--onTick----------it=$it") + if (it == MaxManager.type_has_cache) { + need_Show = false + } + if (it == MaxManager.type_show_close || it == MaxManager.type_show_fail) { + Log.d(Securitylocks.TAG, "--onTick---------enter") + goMainAction.invoke() + } + } + } + } + + override fun onFinish() { + if (need_Show) { + MaxManager.ShowAd(activity) { + if (it == MaxManager.type_show_close || it == MaxManager.type_show_fail || it == MaxManager.type_no_cache) { + Log.d(Securitylocks.TAG, "--onFinish---------enter") + goMainAction.invoke() + } + } + } + } + } + startAd(activity) + return timer + } + + private fun startAd(activity: Activity) { + if (!Securitylocks.initSDkOK) { + LocalBroadcastManager.getInstance(activity) + .registerReceiver(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + lists = MaxManager.onLoadAd() + timer.start() + Log.d(Securitylocks.TAG, "------------1sucess") + } + }, IntentFilter(Securitylocks.initAction)) + } else { + lists = MaxManager.onLoadAd() + timer.start() + Log.d(Securitylocks.TAG, "------------2sucess") + } + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/lc/myapplication/security/locks/max/onActionListener.java b/app/src/main/java/com/lc/myapplication/security/locks/max/onActionListener.java new file mode 100644 index 0000000..1637600 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/locks/max/onActionListener.java @@ -0,0 +1,6 @@ +package com.lc.myapplication.security.locks.max; + +public interface onActionListener { + + void onAction(); +} diff --git a/app/src/main/java/com/lc/myapplication/security/locks/max/onAdStatusListener.java b/app/src/main/java/com/lc/myapplication/security/locks/max/onAdStatusListener.java new file mode 100644 index 0000000..eeacc65 --- /dev/null +++ b/app/src/main/java/com/lc/myapplication/security/locks/max/onAdStatusListener.java @@ -0,0 +1,6 @@ +package com.lc.myapplication.security.locks.max; + +public interface onAdStatusListener { + + void onAdStatus(int type); +} diff --git a/app/src/main/java/com/lc/myapplication/security/locks/value/MeValues.java b/app/src/main/java/com/lc/myapplication/security/locks/value/MeValues.java index 0f12805..39d584f 100644 --- a/app/src/main/java/com/lc/myapplication/security/locks/value/MeValues.java +++ b/app/src/main/java/com/lc/myapplication/security/locks/value/MeValues.java @@ -11,4 +11,8 @@ public class MeValues { public static String KEYCODE_TYPE = "password_type"; public static String sh_password = "share_password"; public static final String FIRST_KEY = "first key"; + + public static String KEY_SHOW = "KEY_SHOW"; + + } diff --git a/app/src/main/res/drawable/btn_bg.xml b/app/src/main/res/drawable/btn_bg.xml new file mode 100644 index 0000000..fd3ffb9 --- /dev/null +++ b/app/src/main/res/drawable/btn_bg.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/msg_dialog_bg.xml b/app/src/main/res/drawable/msg_dialog_bg.xml new file mode 100644 index 0000000..81fc15d --- /dev/null +++ b/app/src/main/res/drawable/msg_dialog_bg.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_into.xml b/app/src/main/res/layout/activity_into.xml index 4959b2e..1bb94cd 100644 --- a/app/src/main/res/layout/activity_into.xml +++ b/app/src/main/res/layout/activity_into.xml @@ -6,8 +6,18 @@ android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".activity.IntoActivity"> + + android:background="@mipmap/into" /> + + \ No newline at end of file diff --git a/app/src/main/res/layout/msg_dialog.xml b/app/src/main/res/layout/msg_dialog.xml new file mode 100644 index 0000000..1510f19 --- /dev/null +++ b/app/src/main/res/layout/msg_dialog.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index cd7d6c4..2db97bf 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -2,5 +2,6 @@ #FF000000 #FFFFFFFF - #E4FCFD + #E5FCFD + #78f2ed \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8ce5ffa..b5a0372 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -15,6 +15,7 @@ next go on change + OK The password is not the same twice Change to success Permissions
To use App Lock properly, please allow the following diff --git a/build.gradle.kts b/build.gradle.kts index a04e5ba..0020323 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,4 +2,11 @@ plugins { alias(libs.plugins.android.application) apply false id("org.jetbrains.kotlin.android") version "1.9.0" apply false + id("com.google.gms.google-services") version "4.3.15" apply false + id ("com.google.firebase.crashlytics") version "2.9.2" apply false +} +buildscript { + dependencies { + classpath("com.applovin.quality:AppLovinQualityServiceGradlePlugin:+") + } } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 16d6c35..7d802a8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.4.0" +agp = "8.1.3" junit = "4.13.2" junitVersion = "1.2.1" espressoCore = "3.6.1" diff --git a/keystore.properties b/keystore.properties new file mode 100644 index 0000000..63a1288 --- /dev/null +++ b/keystore.properties @@ -0,0 +1,6 @@ +app_name=App Lock Master +package_name=com.lc.applock.security.locks +keystoreFile=app/SecurityLocks.jks +key_alias=securitylockskey0 +key_store_password=Security Locks +key_password=Security Locks \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 1a00c1b..52feee5 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -9,6 +9,7 @@ pluginManagement { } mavenCentral() gradlePluginPortal() + maven { url = uri("https://artifacts.applovin.com/android") } } } dependencyResolutionManagement { @@ -17,9 +18,11 @@ dependencyResolutionManagement { google() mavenCentral() maven("https://jitpack.io") + maven { url = uri("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea") } + maven { url = uri("https://artifact.bytedance.com/repository/pangle") } } } -rootProject.name = "Security Locks" +rootProject.name = "App Lock Master" include(":app") \ No newline at end of file