V1.0.1(2) 集成max
This commit is contained in:
parent
91f5a614af
commit
3ee020e175
@ -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:+")
|
||||
}
|
||||
29
app/google-services.json
Normal file
29
app/google-services.json
Normal file
@ -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"
|
||||
}
|
||||
@ -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<SecurityLockEntity> securityLockEntities = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
MeValues.lock = this;
|
||||
initMAxSDk();
|
||||
MyTools.init(this);
|
||||
Set<SecurityLockEntity> 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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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<Long, Unit>() {
|
||||
@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<Unit>() {
|
||||
@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
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -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);
|
||||
|
||||
@ -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<AllAppsAdapter.AllAppVH> {
|
||||
private Context mcon;
|
||||
private AllAppActivity mActivity;
|
||||
private List<SecurityLockEntity> 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<AllAppsAdapter.AllAppVH
|
||||
return super.toString();
|
||||
}
|
||||
|
||||
public AllAppsAdapter(Context context, List<SecurityLockEntity> entities) {
|
||||
mcon = context;
|
||||
public AllAppsAdapter(AllAppActivity context, List<SecurityLockEntity> entities) {
|
||||
mActivity = context;
|
||||
this.securityLockEntities = entities;
|
||||
}
|
||||
|
||||
@ -42,7 +51,6 @@ public class AllAppsAdapter extends RecyclerView.Adapter<AllAppsAdapter.AllAppVH
|
||||
@NonNull
|
||||
@Override
|
||||
public AllAppVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
|
||||
AllAppsViewBinding allAppsViewBinding = AllAppsViewBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
return new AllAppVH(allAppsViewBinding);
|
||||
}
|
||||
@ -53,7 +61,7 @@ public class AllAppsAdapter extends RecyclerView.Adapter<AllAppsAdapter.AllAppVH
|
||||
SecurityLockEntity entity = securityLockEntities.get(position);
|
||||
String appsSign = entity.getApplsign();
|
||||
holder.allAppsViewBinding.appReName.setText(appsSign);
|
||||
Drawable drawable = AppsManager.getapplogo(mcon, entity.getApppakname());
|
||||
Drawable drawable = AppsManager.getapplogo(MeValues.lock, entity.getApppakname());
|
||||
holder.allAppsViewBinding.appReLogo.setImageDrawable(drawable);
|
||||
|
||||
// boolean locksuccess = entity.isLocksuccess();
|
||||
@ -70,16 +78,48 @@ public class AllAppsAdapter extends RecyclerView.Adapter<AllAppsAdapter.AllAppVH
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
MyTools.settest(entity.getApppakname(), locksuccess);
|
||||
//Log.d("----sign1", "----------" + entity.getApppakname() + "-----sign1" + isChecked);
|
||||
entity.setLocksuccess(isChecked);
|
||||
//Log.d("----sign2", "----------" + isChecked);
|
||||
MyTools.RUNIO(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
SecurityLockDataBase.getSecurityLockDataBase().getsecurityLockDAO().Updataentity(entity);
|
||||
// Log.d("----sign2", "----------" + entity.getApppakname() + "--------" + entity.isLocksuccess());
|
||||
}
|
||||
});
|
||||
Log.d(Securitylocks.TAG, "----------" + entity.getApppakname() + "-----" + isChecked);
|
||||
|
||||
if (Securitylocks.userOption % 5 == 0) {
|
||||
showMax(new ActionListener() {
|
||||
@Override
|
||||
public void onAction() {
|
||||
|
||||
MyTools.settest(entity.getApppakname(), locksuccess);
|
||||
|
||||
entity.setLocksuccess(isChecked);
|
||||
MyTools.RUNIO(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
SecurityLockDataBase.getSecurityLockDataBase().getsecurityLockDAO().Updataentity(entity);
|
||||
// Log.d("----sign2", "----------" + entity.getApppakname() + "--------" + entity.isLocksuccess());
|
||||
}
|
||||
});
|
||||
String msg = "";
|
||||
if (isChecked) {
|
||||
msg = entity.getApplsign() + "locked success";
|
||||
} else {
|
||||
msg = entity.getApplsign() + "unlocked success";
|
||||
}
|
||||
msgDialog = new MsgDialog(msg);
|
||||
msgDialog.show(mActivity.getSupportFragmentManager(), "");
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
MyTools.settest(entity.getApppakname(), locksuccess);
|
||||
entity.setLocksuccess(isChecked);
|
||||
MyTools.RUNIO(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
SecurityLockDataBase.getSecurityLockDataBase().getsecurityLockDAO().Updataentity(entity);
|
||||
// Log.d("----sign2", "----------" + entity.getApppakname() + "--------" + entity.isLocksuccess());
|
||||
}
|
||||
});
|
||||
}
|
||||
Securitylocks.userOption++;
|
||||
|
||||
}
|
||||
});
|
||||
@ -99,4 +139,17 @@ public class AllAppsAdapter extends RecyclerView.Adapter<AllAppsAdapter.AllAppVH
|
||||
allAppsViewBinding = itemView;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void showMax(ActionListener listener) {
|
||||
MaxManager.ShowAd(mActivity, 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();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,8 +11,11 @@ import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.lc.myapplication.security.locks.databinding.LockedAppsViewBinding;
|
||||
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;
|
||||
|
||||
@ -67,4 +70,7 @@ public class LockedAppAdapter extends RecyclerView.Adapter<LockedAppAdapter.Lock
|
||||
lockedAppsViewBinding = itemView;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.lc.myapplication.security.locks.adapter;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.util.Log;
|
||||
@ -11,9 +12,15 @@ import android.widget.CompoundButton;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.lc.myapplication.security.locks.Securitylocks;
|
||||
import com.lc.myapplication.security.locks.activity.TestimonialsActivity;
|
||||
import com.lc.myapplication.security.locks.databinding.TuijianAppsViewBinding;
|
||||
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;
|
||||
|
||||
@ -25,8 +32,9 @@ import java.util.Random;
|
||||
public class TuijianAdapter extends RecyclerView.Adapter<TuijianAdapter.TuijianAppVH>{
|
||||
private TuijianAppsViewBinding tuijianAppsViewBinding;
|
||||
private List<SecurityLockEntity> securityLockEntities;
|
||||
private Context mycon;
|
||||
public TuijianAdapter(Context context,List<SecurityLockEntity> list){
|
||||
private TestimonialsActivity mycon;
|
||||
private MsgDialog msgDialog = null;
|
||||
public TuijianAdapter(TestimonialsActivity context, List<SecurityLockEntity> list){
|
||||
mycon = context;
|
||||
securityLockEntities = list;
|
||||
}
|
||||
@ -55,6 +63,23 @@ public class TuijianAdapter extends RecyclerView.Adapter<TuijianAdapter.TuijianA
|
||||
holder.tuijianAppsViewBinding.tuijianReSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
if (Securitylocks.userOption % 5 == 0){
|
||||
showMax(new ActionListener() {
|
||||
@Override
|
||||
public void onAction() {
|
||||
String msg = "";
|
||||
if (isChecked) {
|
||||
msg = entity.getApplsign() + "locked success";
|
||||
} else {
|
||||
msg = entity.getApplsign() + "unlocked success";
|
||||
}
|
||||
msgDialog = new MsgDialog(msg);
|
||||
msgDialog.show(mycon.getSupportFragmentManager(), "");
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
Securitylocks.userOption++;
|
||||
MyTools.settest(entity.getApppakname(), locksuccess);
|
||||
entity.setLocksuccess(isChecked);
|
||||
MyTools.RUNIO(new Runnable() {
|
||||
@ -83,4 +108,16 @@ public class TuijianAdapter extends RecyclerView.Adapter<TuijianAdapter.TuijianA
|
||||
tuijianAppsViewBinding = itemView;
|
||||
}
|
||||
}
|
||||
|
||||
private void showMax(ActionListener listener) {
|
||||
MaxManager.ShowAd(mycon, 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();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,47 @@
|
||||
package com.lc.myapplication.security.locks.dialog
|
||||
|
||||
import android.graphics.Color
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import com.lc.myapplication.security.locks.databinding.MsgDialogBinding
|
||||
|
||||
|
||||
class MsgDialog(private var message: String) : DialogFragment() {
|
||||
|
||||
private lateinit var vb: MsgDialogBinding
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
vb = MsgDialogBinding.inflate(layoutInflater)
|
||||
dialog?.run {
|
||||
setCanceledOnTouchOutside(true)
|
||||
window?.run {
|
||||
setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
|
||||
setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
|
||||
}
|
||||
|
||||
}
|
||||
vb.msg.text = message
|
||||
initCLick()
|
||||
return vb.root
|
||||
}
|
||||
|
||||
|
||||
private fun initCLick() {
|
||||
vb.tvOk.setOnClickListener {
|
||||
dismiss()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -52,6 +52,7 @@ public class SettingDialog extends DialogFragment {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Intent intent = new Intent(getActivity(), PassCodeActivity.class);
|
||||
intent.putExtra(MeValues.KEY_SHOW,true);
|
||||
intent.putExtra(MeValues.KEYCODE_TYPE, 2);
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
@ -0,0 +1,5 @@
|
||||
package com.lc.myapplication.security.locks.listener;
|
||||
|
||||
public interface ActionListener {
|
||||
void onAction( );
|
||||
}
|
||||
@ -0,0 +1,62 @@
|
||||
package com.lc.myapplication.security.locks.max
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Canvas
|
||||
import android.graphics.Color
|
||||
import android.graphics.LinearGradient
|
||||
import android.graphics.Paint
|
||||
import android.graphics.RectF
|
||||
import android.graphics.Shader
|
||||
import android.util.AttributeSet
|
||||
import android.view.View
|
||||
|
||||
class CustomProgressBar(context: Context, attrs: AttributeSet?) : View(context, attrs) {
|
||||
private var progress = 0f // 当前进度
|
||||
private val maxProgress = 100f // 最大进度
|
||||
private val progressBarHeight = 20f // 进度条高度
|
||||
private val cornerRadius = 10f // 圆角半径
|
||||
private val backgroundColor = Color.parseColor("#26000000")
|
||||
private val startColor = Color.parseColor("#FF9ce8ff") // 起始颜色
|
||||
private val middleColor = Color.parseColor("#FFa4c4fb") // 中间颜色
|
||||
private val endColor = Color.parseColor("#FFbfa4ee") // 结束颜色
|
||||
private val paint = Paint()
|
||||
private val paintTow = Paint()
|
||||
|
||||
init {
|
||||
paint.style = Paint.Style.FILL
|
||||
paint.isAntiAlias = true
|
||||
paintTow.style = Paint.Style.FILL
|
||||
paintTow.isAntiAlias = true
|
||||
}
|
||||
|
||||
override fun onDraw(canvas: Canvas) {
|
||||
super.onDraw(canvas)
|
||||
// 绘制底色矩形
|
||||
paint.shader = null // 重置着色器
|
||||
paint.color = backgroundColor
|
||||
val backgroundRect = RectF(0f, (height / 2 - progressBarHeight / 2), width.toFloat(), (height / 2 + progressBarHeight / 2))
|
||||
canvas.drawRoundRect(backgroundRect, cornerRadius, cornerRadius, paint)
|
||||
|
||||
|
||||
// 计算进度条的宽度
|
||||
val progressBarWidth = (width * progress / maxProgress)
|
||||
|
||||
// 创建颜色渐变对象
|
||||
val gradient = LinearGradient(0f, 0f, width.toFloat(), 0f, intArrayOf(startColor, middleColor, endColor), null, Shader.TileMode.CLAMP)
|
||||
paintTow.shader = gradient
|
||||
|
||||
// 绘制带圆角的进度条矩形
|
||||
val rect = RectF(0f, (height / 2 - progressBarHeight / 2), progressBarWidth.toFloat(), (height / 2 + progressBarHeight / 2))
|
||||
canvas.drawRoundRect(rect, cornerRadius, cornerRadius, paintTow)
|
||||
}
|
||||
|
||||
fun getProgress():Float{
|
||||
return progress
|
||||
}
|
||||
|
||||
// 设置进度
|
||||
fun setProgress(progress: Float) {
|
||||
this.progress = progress
|
||||
invalidate() // 请求重绘
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
package com.lc.myapplication.security.locks.max;
|
||||
|
||||
import com.applovin.mediation.MaxAd;
|
||||
|
||||
public interface MaxListener {
|
||||
void onFail(MaxAd ad);
|
||||
|
||||
void onShowSuccess(MaxAd ad);
|
||||
|
||||
void onHidden();
|
||||
}
|
||||
@ -0,0 +1,165 @@
|
||||
package com.lc.myapplication.security.locks.max;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.applovin.mediation.MaxAd;
|
||||
import com.applovin.mediation.MaxAdListener;
|
||||
import com.applovin.mediation.MaxError;
|
||||
import com.applovin.mediation.ads.MaxInterstitialAd;
|
||||
import com.lc.myapplication.security.locks.Securitylocks;
|
||||
import com.lc.myapplication.security.locks.value.MeValues;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class MaxManager {
|
||||
/**
|
||||
d642099557241756
|
||||
599cd93d978a2f31
|
||||
40f5a50c609f9280
|
||||
*/
|
||||
private static final String one_AD = "d642099557241756";
|
||||
private static final String two_Ad = "599cd93d978a2f31";
|
||||
private static final String three_ad = "40f5a50c609f9280";
|
||||
|
||||
|
||||
public static final int type_no_cache = 0;
|
||||
public static final int type_has_cache = 1;
|
||||
public static final int type_show_success = 2;
|
||||
public static final int type_show_close = 3;
|
||||
public static final int type_show_fail = 4;
|
||||
|
||||
private static List<MaxInterstitialAd> adList = new ArrayList<>();
|
||||
|
||||
public static MaxInterstitialAd getAd(List<MaxInterstitialAd> list) {
|
||||
Collections.shuffle(list);
|
||||
for (MaxInterstitialAd ad : list) {
|
||||
if (ad.isReady()) {
|
||||
return ad;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static List<MaxInterstitialAd> 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -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<MaxInterstitialAd>
|
||||
|
||||
@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")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
package com.lc.myapplication.security.locks.max;
|
||||
|
||||
public interface onActionListener {
|
||||
|
||||
void onAction();
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
package com.lc.myapplication.security.locks.max;
|
||||
|
||||
public interface onAdStatusListener {
|
||||
|
||||
void onAdStatus(int type);
|
||||
}
|
||||
@ -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";
|
||||
|
||||
|
||||
}
|
||||
|
||||
7
app/src/main/res/drawable/btn_bg.xml
Normal file
7
app/src/main/res/drawable/btn_bg.xml
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/btn_color" />
|
||||
<corners android:radius="9dp" />
|
||||
|
||||
</shape>
|
||||
7
app/src/main/res/drawable/msg_dialog_bg.xml
Normal file
7
app/src/main/res/drawable/msg_dialog_bg.xml
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/white" />
|
||||
<corners android:radius="9dp" />
|
||||
|
||||
</shape>
|
||||
@ -6,8 +6,18 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".activity.IntoActivity">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@mipmap/into"/>
|
||||
android:background="@mipmap/into" />
|
||||
|
||||
<com.lc.myapplication.security.locks.max.CustomProgressBar
|
||||
android:id="@+id/pb"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="20dp"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_marginStart="25dp"
|
||||
android:layout_marginEnd="25dp"
|
||||
android:layout_marginBottom="70dp" />
|
||||
</RelativeLayout>
|
||||
42
app/src/main/res/layout/msg_dialog.xml
Normal file
42
app/src/main/res/layout/msg_dialog.xml
Normal file
@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="27dp"
|
||||
android:layout_marginEnd="27dp"
|
||||
android:gravity="center"
|
||||
android:background="@drawable/msg_dialog_bg"
|
||||
android:orientation="vertical"
|
||||
android:padding="10dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/msg"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@string/app_name"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="17sp" />
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_ok"
|
||||
android:layout_width="100dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="29dp"
|
||||
android:background="@drawable/btn_bg"
|
||||
android:gravity="center"
|
||||
android:padding="12dp"
|
||||
android:text="@string/ok"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</FrameLayout>
|
||||
@ -2,5 +2,6 @@
|
||||
<resources>
|
||||
<color name="black">#FF000000</color>
|
||||
<color name="white">#FFFFFFFF</color>
|
||||
<color name="color_bg">#E4FCFD</color>
|
||||
<color name="color_bg">#E5FCFD</color>
|
||||
<color name="btn_color">#78f2ed</color>
|
||||
</resources>
|
||||
@ -15,6 +15,7 @@
|
||||
<string name="passcode_next">next</string>
|
||||
<string name="passcode_goon">go on</string>
|
||||
<string name="passcode_change">change</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="code_not_same">The password is not the same twice</string>
|
||||
<string name="change_success">Change to success</string>
|
||||
<string name="dialog_permiss">Permissions
To use App Lock properly, please allow the following</string>
|
||||
|
||||
@ -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:+")
|
||||
}
|
||||
}
|
||||
@ -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"
|
||||
|
||||
6
keystore.properties
Normal file
6
keystore.properties
Normal file
@ -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
|
||||
@ -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")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user