V1.0.3(7)

This commit is contained in:
litingting 2024-08-21 16:44:01 +08:00
parent 67b9cee3c3
commit 5a133e40d5
48 changed files with 667 additions and 347 deletions

View File

@ -18,8 +18,8 @@ android {
applicationId = "com.soft.ware.lock.hd" applicationId = "com.soft.ware.lock.hd"
minSdk = 23 minSdk = 23
targetSdk = 34 targetSdk = 34
versionCode = 6 versionCode = 7
versionName = "1.0.2" versionName = "1.0.3"
setProperty( setProperty(
"archivesBaseName", "archivesBaseName",
"SoftWare Lock_v" + versionName + "(${versionCode})_$timestamp" "SoftWare Lock_v" + versionName + "(${versionCode})_$timestamp"

View File

@ -1,6 +0,0 @@
包名com.soft.ware.lock.hd
应用名SoftWare Lock
签名文件SoftWare Lock.jks
签名路径app/SoftWare Lock.jks
别名SoftWare Lockkey0
密码SoftWare Lock

View File

@ -1,20 +0,0 @@
{
"version": 3,
"artifactType": {
"type": "APK",
"kind": "Directory"
},
"applicationId": "com.soft.ware.lock.hd",
"variantName": "release",
"elements": [
{
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 5,
"versionName": "1.0.1",
"outputFile": "SoftWare Lock_v1.0.1(5)_07_26_18_05-release.apk"
}
],
"elementType": "File"
}

Binary file not shown.

View File

@ -33,6 +33,9 @@
<activity <activity
android:name=".activity.SettingActivity" android:name=".activity.SettingActivity"
android:exported="false" /> android:exported="false" />
<activity
android:name=".activity.PrivacyActivity"
android:exported="false" />
<activity <activity
android:name=".activity.KeyWordActivity" android:name=".activity.KeyWordActivity"
android:exported="false" android:exported="false"
@ -40,6 +43,7 @@
<activity <activity
android:name=".activity.MainActivity" android:name=".activity.MainActivity"
android:exported="false" android:exported="false"
android:windowSoftInputMode="stateAlwaysHidden"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".activity.IntoActivity" android:name=".activity.IntoActivity"

View File

@ -0,0 +1,77 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Privacy Policy</title>
<style>
body {
font-family: Arial, sans-serif;
line-height: 1.6;
margin: 20px;
}
h1, h2 {
color: #333;
}
h2 {
margin-top: 20px;
}
p {
margin: 10px 0;
}
ul {
margin: 10px 0;
padding-left: 20px;
}
</style>
</head>
<body>
<h1>Privacy Policy</h1>
<p>We provide this Privacy Policy to help you understand how we collect, use, and disclose information, including what you may provide to us or that we obtain from our products and services. We treat your privacy very seriously. Your privacy is important to us.</p>
<h2>Information Collection and Use</h2>
<p>For a better experience, while using our Service, we may require you to provide us with certain personally identifiable information such as users' name, address, location, pictures. The information that we request will be retained on your device and is not collected by us in any way retained by us and used as described in this privacy policy.</p>
<p>The app does use third-party services that may collect information used to identify you.</p>
<p>Please refer to the privacy policy of the third-party service provider used by the application:</p>
<ul>
<li>Google Play Services</li>
<li>Google Analytics for Firebase</li>
<li>Firebase Crashlytics</li>
<li>Unity</li>
<li>AppLovin</li>
<li>Vungle</li>
</ul>
<h2>Log Data</h2>
<p>We want to inform you that whenever you use our Service, in the case of an error in the app, we collect data and information (through third-party products) on your phone called Log Data. This Log Data may include information such as your device Internet Protocol (“IP”) address, device name, operating system version, the configuration of the app when utilizing our Service, the time and date of your use of the Service, and other statistics.</p>
<h2>Cookies</h2>
<p>Cookies are files with a small amount of data that are commonly used as anonymous unique identifiers. These are sent to your browser from the websites that you visit and are stored on your device's internal memory. This Service does not use these “cookies” explicitly. However, the app may use third-party code and libraries that use “cookies” to collect information and improve their services. You have the option to either accept or refuse these cookies and know when a cookie is being sent to your device. If you choose to refuse our cookies, you may not be able to use some portions of this Service.</p>
<h2>Service Providers</h2>
<p>We may employ third-party companies and individuals due to the following reasons:</p>
<ul>
<li>To facilitate our Service;</li>
<li>To provide the Service on our behalf;</li>
<li>To perform Service-related services; or</li>
<li>To assist us in analyzing how our Service is used.</li>
</ul>
<p>We want to inform users of this Service that these third parties have access to their Personal Information. The reason is to perform the tasks assigned to them on our behalf. However, they are obligated not to disclose or use the information for any other purpose.</p>
<h2>Security</h2>
<p>We value your trust in providing us your Personal Information, thus we are striving to use commercially acceptable means of protecting it. But remember that no method of transmission over the internet, or method of electronic storage is 100% secure and reliable, and we cannot guarantee its absolute security.</p>
<h2>Links to Other Sites</h2>
<p>This Service may contain links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by us. Therefore, we strongly advise you to review the Privacy Policy of these websites. We have no control over and assume no responsibility for the content, privacy policies, or practices of any third-party sites or services.</p>
<h2>Childrens Privacy</h2>
<p>These Services do not address anyone under the age of 13. We do not knowingly collect personally identifiable information from children under 13 years of age. In the case we discover that a child under 13 has provided us with personal information, we immediately delete this from our servers. If you are a parent or guardian and you are aware that your child has provided us with personal information, please contact us so that we will be able to take the necessary actions.</p>
<h2>Changes to This Privacy Policy</h2>
<p>We may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. We will notify you of any changes by posting the new Privacy Policy on this page.</p>
<h2>Privacy Questions</h2>
<p>We may update our Privacy Policy from time to time. When we change the policy in a material way, a notice will be posted on our website along with the updated Privacy Policy.</p>
<p>If you have any questions or concerns about our Privacy Policy or data processing, please contact us: <a href="mailto:amithchamara832@gmail.com">amithchamara832@gmail.com</a>.</p>
</body>
</html>

View File

@ -1,86 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Privacy Policy</title>
<style>
body {
font-family: Arial, sans-serif;
line-height: 1.6;
margin: 0;
padding: 0;
padding: 20px;
}
h1, h2 {
color: #333;
}
h2 {
margin-top: 20px;
}
p {
margin: 10px 0;
}
ul {
margin: 10px 0;
padding-left: 20px;
}
</style>
</head>
<body>
<h1>Privacy Policy</h1>
<p><strong>Date:</strong> August 14, 2024</p>
<p>We provide this Privacy Policy to help you understand how we collect, use, and disclose information, including what you may provide to us or that we obtain from our products and services. We treat your privacy very seriously. Your privacy is important to us.</p>
<h2>Information Collection and Use</h2>
<p>For a better experience, while using our Service, we may require you to provide us with certain personally identifiable information, such as users' name, address, location, pictures, etc. The information that we request will be retained on your device and is not collected or retained by us in any way and used as described in this privacy policy.</p>
<p>The app does use third-party services that may collect information used to identify you.</p>
<p>Please refer to the privacy policy of the third-party service provider used by the application:</p>
<ul>
<li>Google Play Services</li>
<li>Google Analytics for Firebase</li>
<li>Firebase Crashlytics</li>
<li>Unity</li>
<li>AppLovin</li>
<li>Pangle</li>
<li>Mintegral</li>
<li>Bigo</li>
<li>Ironsource</li>
<li>Vungle</li>
</ul>
<h2>Log Data</h2>
<p>We want to inform you that whenever you use our Service, in case of an error in the app, we collect data and information (through third-party products) on your phone called Log Data. This Log Data may include information such as your device Internet Protocol (“IP”) address, device name, operating system version, the configuration of the app when utilizing our Service, the time and date of your use of the Service, and other statistics.</p>
<h2>Cookies</h2>
<p>Cookies are files with a small amount of data that are commonly used as anonymous unique identifiers. These are sent to your browser from the websites that you visit and are stored on your device's internal memory.</p>
<p>This Service does not use these “cookies” explicitly. However, the app may use third-party code and libraries that use “cookies” to collect information and improve their services. You have the option to either accept or refuse these cookies and know when a cookie is being sent to your device. If you choose to refuse our cookies, you may not be able to use some portions of this Service.</p>
<h2>Service Providers</h2>
<p>We may employ third-party companies and individuals due to the following reasons:</p>
<ul>
<li>To facilitate our Service</li>
<li>To provide the Service on our behalf</li>
<li>To perform Service-related services, or</li>
<li>To assist us in analyzing how our Service is used</li>
</ul>
<p>We want to inform users of this Service that these third parties have access to their Personal Information. The reason is to perform the tasks assigned to them on our behalf. However, they are obligated not to disclose or use the information for any other purpose.</p>
<h2>Security</h2>
<p>We value your trust in providing us your Personal Information, thus we are striving to use commercially acceptable means of protecting it. But remember that no method of transmission over the internet, or method of electronic storage is 100% secure and reliable, and we cannot guarantee its absolute security.</p>
<h2>Links to Other Sites</h2>
<p>This Service may contain links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by us. Therefore, we strongly advise you to review the Privacy Policy of these websites. We have no control over and assume no responsibility for the content, privacy policies, or practices of any third-party sites or services.</p>
<h2>Childrens Privacy</h2>
<p>These Services do not address anyone under the age of 13. We do not knowingly collect personally identifiable information from children under 13 years of age. In the case we discover that a child under 13 has provided us with personal information, we will immediately delete this from our servers. If you are a parent or guardian and you are aware that your child has provided us with personal information, please contact us so that we will be able to take the necessary actions.</p>
<h2>Changes to This Privacy Policy</h2>
<p>We may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. We will notify you of any changes by posting the new Privacy Policy on this page.</p>
<h2>Privacy Questions</h2>
<p>We may update the Privacy Policy from time to time. When we change the policy in a material way, a notice will be posted on our website along with the updated Privacy Policy.</p>
<p>If you have any questions or concerns about our Privacy Policy or data processing, please contact us: <a href="mailto:saleemjeeta2@gmail.com">saleemjeeta2@gmail.com</a>.</p>
</body>
</html>

View File

@ -12,6 +12,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.example.applock.R; import com.example.applock.R;
import com.example.applock.application.SoftWareLockApplication;
import com.example.applock.click.ButtomKeyClick; import com.example.applock.click.ButtomKeyClick;
import com.example.applock.listener.InputKeyListener; import com.example.applock.listener.InputKeyListener;
import com.example.applock.lockadapter.ButtomAdapter; import com.example.applock.lockadapter.ButtomAdapter;
@ -62,10 +63,10 @@ public class InPutKeyView extends FrameLayout {
public void OnKeyClick(String bottomkey) { public void OnKeyClick(String bottomkey) {
if (my_top_key.length() >= keylength) { if (my_top_key.length() >= keylength) {
my_top_key.delete(0, my_top_key.length()); my_top_key.delete(0, my_top_key.length());
Log.d("dhn","-------fin"+my_top_key.length()); Log.d(SoftWareLockApplication.TAG,"-------fin"+my_top_key.length());
} }
my_top_key.append(bottomkey); my_top_key.append(bottomkey);
Log.d("dhn","-------fin"+my_top_key.length()); Log.d(SoftWareLockApplication.TAG,"-------fin"+my_top_key.length());
topAdapter.updateItem(my_top_key.toString()); topAdapter.updateItem(my_top_key.toString());
if (my_top_key.length() == keylength) { if (my_top_key.length() == keylength) {
inputKeyListener.onInputComplete(my_top_key.toString()); inputKeyListener.onInputComplete(my_top_key.toString());

View File

@ -30,9 +30,10 @@ public class IntoActivity extends AppCompatActivity {
private CountDownTimer countDownTimer; private CountDownTimer countDownTimer;
private List<ATInterstitial> ads; private List<ATInterstitial> ads;
private boolean isAlreadyShow = false; private boolean isAlreadyShow = false;
private float i = 0;
private AppEntity entity; private AppEntity entity;
private CustomProgressBar customProgressBar; private CustomProgressBar customProgressBar;
private long countTime = 13100;
private String lockpackname = MyAllValues.softWareLockApplication.getPackageName(); private String lockpackname = MyAllValues.softWareLockApplication.getPackageName();
@SuppressLint("MissingInflatedId") @SuppressLint("MissingInflatedId")
@ -44,11 +45,12 @@ public class IntoActivity extends AppCompatActivity {
customProgressBar = findViewById(R.id.splash_pg); customProgressBar = findViewById(R.id.splash_pg);
ads = SoftWareLockApplication.lodAd(); ads = SoftWareLockApplication.lodAd();
countDownTimer = new CountDownTimer(10100, 100) { countDownTimer = new CountDownTimer(countTime, 100) {
@Override @Override
public void onTick(long millisUntilFinished) { public void onTick(long millisUntilFinished) {
i++; float percentage = 100 - (float)millisUntilFinished / countTime * 100;
customProgressBar.setProgress(i); int round = (int)percentage;
customProgressBar.setProgress(round);
if (!isAlreadyShow) { if (!isAlreadyShow) {
showAd(false); showAd(false);
} }
@ -61,7 +63,7 @@ public class IntoActivity extends AppCompatActivity {
} }
} }
}; };
gocount(); countDownTimer.start();
} }
@ -92,12 +94,6 @@ public class IntoActivity extends AppCompatActivity {
}); });
mInterstitialAd.show(this); mInterstitialAd.show(this);
} }
}
private void gocount() {
countDownTimer.start();
} }
public void intoActivity() { public void intoActivity() {

View File

@ -47,6 +47,7 @@ public class KeyWordActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
MyKeyPage = getIntent().getIntExtra(MyAllValues.PASS_KEY_WORD, 0); MyKeyPage = getIntent().getIntExtra(MyAllValues.PASS_KEY_WORD, 0);
Mytool.getAllAd();
setContentView(R.layout.activity_key_word); setContentView(R.layout.activity_key_word);
ads = SoftWareLockApplication.lodAd(); ads = SoftWareLockApplication.lodAd();
text_page = findViewById(R.id.text_page); text_page = findViewById(R.id.text_page);
@ -179,11 +180,7 @@ public class KeyWordActivity extends AppCompatActivity {
}); });
} }
private void resetPin() {
Datamanager.setTopKey(fistkey);
Toast.makeText(KeyWordActivity.this, getString(R.string.reset_success), Toast.LENGTH_SHORT).show();
showAd();
}
private void showAd() { private void showAd() {
ATInterstitial mInterstitialAd = Mytool.onCache(ads); ATInterstitial mInterstitialAd = Mytool.onCache(ads);

View File

@ -4,6 +4,7 @@ import android.annotation.SuppressLint;
import android.content.Intent; import android.content.Intent;
import android.graphics.PorterDuff; import android.graphics.PorterDuff;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
@ -19,6 +20,7 @@ import com.example.applock.R;
import com.example.applock.allmanager.LockAction; import com.example.applock.allmanager.LockAction;
import com.example.applock.allmanager.SoftLockPermission; import com.example.applock.allmanager.SoftLockPermission;
import com.example.applock.allmanager.SoftWarePerssionDialog; import com.example.applock.allmanager.SoftWarePerssionDialog;
import com.example.applock.application.SoftWareLockApplication;
import com.example.applock.lockadapter.FragmentAdapter; import com.example.applock.lockadapter.FragmentAdapter;
import com.example.applock.roombase.SoftWareLockRoom; import com.example.applock.roombase.SoftWareLockRoom;
import com.example.applock.value.MyAllValues; import com.example.applock.value.MyAllValues;
@ -75,8 +77,11 @@ public class MainActivity extends AppCompatActivity implements PermissionBtnList
getPermission(); getPermission();
} }
@Override
protected void onResume() {
super.onResume();
Log.d(SoftWareLockApplication.TAG,"======onResume");
}
private void setViewPaper() { private void setViewPaper() {
int tabIconColor = ContextCompat.getColor(MainActivity.this, R.color.table_unselect); int tabIconColor = ContextCompat.getColor(MainActivity.this, R.color.table_unselect);

View File

@ -0,0 +1,24 @@
package com.example.applock.activity
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.example.applock.databinding.ActivityPrivacyBinding
import com.example.applock.value.Mytool
class PrivacyActivity : AppCompatActivity() {
private lateinit var vb: ActivityPrivacyBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
vb = ActivityPrivacyBinding.inflate(layoutInflater)
Mytool.getAllAd()
setContentView(vb.root)
vb.webView.loadUrl("file:///android_asset/SoftWare_Lock_privacy.html")
vb.back.setOnClickListener {
finish()
}
}
}

View File

@ -40,6 +40,7 @@ public class SearchActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search); setContentView(R.layout.activity_search);
Mytool.getAllAd();
recycle_search = findViewById(R.id.recycle_search); recycle_search = findViewById(R.id.recycle_search);
search_text = findViewById(R.id.search_text); search_text = findViewById(R.id.search_text);
start_search = findViewById(R.id.start_search); start_search = findViewById(R.id.start_search);

View File

@ -17,6 +17,8 @@ import androidx.core.view.WindowInsetsCompat;
import com.example.applock.R; import com.example.applock.R;
import com.example.applock.allmanager.AppManager; import com.example.applock.allmanager.AppManager;
import com.example.applock.value.MyAllValues; import com.example.applock.value.MyAllValues;
import com.example.applock.value.Mytool;
import com.example.applock.value.onActionCallback;
public class SettingActivity extends AppCompatActivity { public class SettingActivity extends AppCompatActivity {
@ -30,6 +32,7 @@ public class SettingActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setting); setContentView(R.layout.activity_setting);
Mytool.getAllAd();
gotofindview(); gotofindview();
onMyClick(); onMyClick();
} }
@ -43,7 +46,7 @@ public class SettingActivity extends AppCompatActivity {
version_text = findViewById(R.id.version_text); version_text = findViewById(R.id.version_text);
String appVersions = AppManager.getAppVersions(this); String appVersions = AppManager.getAppVersions(this);
if (appVersions == null) { if (appVersions == null) {
version_text.setText("V1.0.0"); version_text.setText("V1.0.3");
} else { } else {
String format = String.format(getString(R.string.app_lock_version), appVersions); String format = String.format(getString(R.string.app_lock_version), appVersions);
version_text.setText(format); version_text.setText(format);
@ -60,6 +63,9 @@ public class SettingActivity extends AppCompatActivity {
reset_password.setOnClickListener(new View.OnClickListener() { reset_password.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
Mytool.showAd(SettingActivity.this, new onActionCallback() {
@Override
public void onAction() {
Intent intent = new Intent(SettingActivity.this, KeyWordActivity.class); Intent intent = new Intent(SettingActivity.this, KeyWordActivity.class);
intent.putExtra(MyAllValues.PASS_KEY_FROM,2); intent.putExtra(MyAllValues.PASS_KEY_FROM,2);
intent.putExtra(MyAllValues.PASS_KEY_WORD,2); intent.putExtra(MyAllValues.PASS_KEY_WORD,2);
@ -67,6 +73,9 @@ public class SettingActivity extends AppCompatActivity {
finish(); finish();
} }
}); });
}
});
app_share.setOnClickListener(new View.OnClickListener() { app_share.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -89,9 +98,7 @@ public class SettingActivity extends AppCompatActivity {
privacy_policy.setOnClickListener(new View.OnClickListener() { privacy_policy.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
String path = getString(R.string.privacy); Intent intent = new Intent(SettingActivity.this,PrivacyActivity.class);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(path));
startActivity(intent); startActivity(intent);
} }
}); });

View File

@ -33,7 +33,7 @@ public class SoftWareLockApplication extends Application {
public static SoftWareLockApplication app; public static SoftWareLockApplication app;
private static Context context; private static Context context;
public static int userOption =0; public static int userOption =0;
public static int userOption2 =0; public static final String TAG = "===============";
@Override @Override
public void onCreate() { public void onCreate() {

View File

@ -4,19 +4,26 @@ import android.annotation.SuppressLint;
import android.os.Bundle; import android.os.Bundle;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import com.example.applock.R; import com.example.applock.R;
import com.example.applock.allmanager.MsgDialog;
import com.example.applock.allmanager.SoftWarePerssionDialog;
import com.example.applock.application.SoftWareLockApplication;
import com.example.applock.lockadapter.LockedAdapter; import com.example.applock.lockadapter.LockedAdapter;
import com.example.applock.lockadapter.SystemAdapter;
import com.example.applock.lockadapter.ThirdAdapter; import com.example.applock.lockadapter.ThirdAdapter;
import com.example.applock.roombase.AppDataBase; import com.example.applock.roombase.AppDataBase;
import com.example.applock.roombase.AppEntity; import com.example.applock.roombase.AppEntity;
import com.example.applock.roombase.SoftWareLockRoom; import com.example.applock.roombase.SoftWareLockRoom;
import com.example.applock.value.onShowDialogCallback;
import java.util.List; import java.util.List;
@ -24,6 +31,9 @@ public class LockedFragment extends Fragment {
private RecyclerView recyclerView_locked; private RecyclerView recyclerView_locked;
private boolean locked = true; private boolean locked = true;
private List<AppEntity> list; private List<AppEntity> list;
private MsgDialog msgDialog;
private SoftWarePerssionDialog dialog;
private boolean showDialog = false;
@SuppressLint("MissingInflatedId") @SuppressLint("MissingInflatedId")
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
@ -35,26 +45,47 @@ public class LockedFragment extends Fragment {
return view; return view;
} }
private void setRecycleLocked() {
SoftWareLockRoom.RUNIO(new Runnable() {
@Override
public void run() {
list = AppDataBase.getDatabaseInstance().getAppEntityDao().queryApp(locked);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
LockedAdapter lockedAdapter = new LockedAdapter(getActivity(),list);
recyclerView_locked.setAdapter(lockedAdapter);
recyclerView_locked.setLayoutManager(new GridLayoutManager(getActivity(),1));
}
});
}
});
}
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
setRecycleLocked(); Log.d(SoftWareLockApplication.TAG,"=====locked=onResume showDialog="+showDialog);
if(showDialog){
showDialog = false;
if(getActivity()!= null&& msgDialog != null){
msgDialog.show(getActivity().getSupportFragmentManager(), "");
} }
} }
}
private void setRecycleLocked() {
SystemAdapter lockedAdapter = new SystemAdapter(requireActivity());
lockedAdapter.setOnShowDialogCallback(new onShowDialogCallback() {
@Override
public void onShowDialog(String msg) {
Log.d(SoftWareLockApplication.TAG,"---lockFragemnt--onShowDialog---------------");
msgDialog = new MsgDialog(msg);
showDialog = true;
}
@Override
public void onShowStepDialog() {
if (dialog == null) {
dialog = new SoftWarePerssionDialog(requireActivity());
}
dialog.show(requireActivity().getSupportFragmentManager(), "");
}
});
recyclerView_locked.setAdapter(lockedAdapter);
recyclerView_locked.setLayoutManager(new GridLayoutManager(getActivity(),1));
AppDataBase.getDatabaseInstance().getAppEntityDao().queryApp(locked).observe(getViewLifecycleOwner(), new Observer<List<AppEntity>>() {
@Override
public void onChanged(List<AppEntity> appEntities) {
lockedAdapter.setData(appEntities);
Log.d(SoftWareLockApplication.TAG,"---Locked---onChanged");
}
});
}
}

View File

@ -9,17 +9,23 @@ import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import com.example.applock.R; import com.example.applock.R;
import com.example.applock.allmanager.MsgDialog;
import com.example.applock.allmanager.MyWorker; import com.example.applock.allmanager.MyWorker;
import com.example.applock.allmanager.SoftWarePerssionDialog;
import com.example.applock.application.SoftWareLockApplication;
import com.example.applock.lockadapter.SystemAdapter; import com.example.applock.lockadapter.SystemAdapter;
import com.example.applock.roombase.AppDataBase; import com.example.applock.roombase.AppDataBase;
import com.example.applock.roombase.AppEntity; import com.example.applock.roombase.AppEntity;
import com.example.applock.roombase.SoftWareLockRoom; import com.example.applock.roombase.SoftWareLockRoom;
import com.example.applock.value.Mytool; import com.example.applock.value.Mytool;
import com.example.applock.value.onShowDialogCallback;
import com.pgl.ssdk.S;
import java.util.List; import java.util.List;
@ -27,7 +33,14 @@ public class SystemFragment extends Fragment {
private RecyclerView recyclerView_apps; private RecyclerView recyclerView_apps;
private List<AppEntity> list; private List<AppEntity> list;
private boolean system = true;
public static String KEY = "IS_SYSTEM";
private MsgDialog msgDialog;
private SoftWarePerssionDialog dialog;
private boolean showDialog = false;
@SuppressLint("MissingInflatedId") @SuppressLint("MissingInflatedId")
@Override @Override
@ -40,26 +53,62 @@ public class SystemFragment extends Fragment {
return view; return view;
} }
public static SystemFragment newInstance(boolean isSystem) {
Bundle args = new Bundle();
SystemFragment fragment = new SystemFragment();
args.putBoolean(KEY,isSystem);
fragment.setArguments(args);
return fragment;
}
@Override
public void onResume() {
super.onResume();
Log.d(SoftWareLockApplication.TAG,"=====system=onResume showDialog="+showDialog);
if(showDialog){
showDialog = false;
if(getActivity()!= null&& msgDialog != null){
msgDialog.show(getActivity().getSupportFragmentManager(), "");
}
}
}
private void setRecycleSystem() { private void setRecycleSystem() {
SystemAdapter systemAdapter = new SystemAdapter(requireActivity());
systemAdapter.setOnShowDialogCallback(new onShowDialogCallback() {
@Override
public void onShowDialog(String msg) {
Log.d(SoftWareLockApplication.TAG,"----system onShowDialog111");
msgDialog = new MsgDialog(msg);
showDialog = true;
}
@Override
public void onShowStepDialog() {
if (dialog == null) {
dialog = new SoftWarePerssionDialog(requireActivity());
}
dialog.show(requireActivity().getSupportFragmentManager(), "");
}
});
recyclerView_apps.setAdapter(systemAdapter);
recyclerView_apps.setLayoutManager(new GridLayoutManager(getActivity(),1));
SoftWareLockRoom.RUNIO(new Runnable() { SoftWareLockRoom.RUNIO(new Runnable() {
@Override @Override
public void run() { public void run() {
list = AppDataBase.getDatabaseInstance().getAppEntityDao().queryApplfrom(system); boolean aBoolean = getArguments().getBoolean(KEY, true);
list = AppDataBase.getDatabaseInstance().getAppEntityDao().queryApplfrom(aBoolean);
getActivity().runOnUiThread(new Runnable() { getActivity().runOnUiThread(new Runnable() {
@Override @Override
public void run() { public void run() {
SystemAdapter systemAdapter = new SystemAdapter(getActivity(),list); systemAdapter.setData(list);
recyclerView_apps.setAdapter(systemAdapter);
recyclerView_apps.setLayoutManager(new GridLayoutManager(getActivity(),1));
} }
}); });
} }
}); });
} }
@Override
public void onResume() {
super.onResume();
setRecycleSystem();
}
} }

View File

@ -53,9 +53,5 @@ public class ThirdFragment extends Fragment {
}); });
} }
@Override
public void onResume() {
super.onResume();
setRecycleThird();
}
} }

View File

@ -19,9 +19,9 @@ public class FragmentAdapter extends FragmentStateAdapter {
public Fragment createFragment(int position) { public Fragment createFragment(int position) {
switch (position) { switch (position) {
case 0: case 0:
return new SystemFragment(); return SystemFragment.newInstance(true);
case 1: case 1:
return new ThirdFragment(); return SystemFragment.newInstance(false);
default: default:
return new LockedFragment(); return new LockedFragment();
} }

View File

@ -15,22 +15,34 @@ import androidx.recyclerview.widget.RecyclerView;
import com.example.applock.R; import com.example.applock.R;
import com.example.applock.allmanager.AppManager; import com.example.applock.allmanager.AppManager;
import com.example.applock.allmanager.MsgDialog;
import com.example.applock.application.SoftWareLockApplication;
import com.example.applock.databinding.ItemAppBinding; import com.example.applock.databinding.ItemAppBinding;
import com.example.applock.databinding.LockedAppBinding; import com.example.applock.databinding.LockedAppBinding;
import com.example.applock.roombase.AppDataBase; import com.example.applock.roombase.AppDataBase;
import com.example.applock.roombase.AppEntity; import com.example.applock.roombase.AppEntity;
import com.example.applock.roombase.SoftWareLockRoom; import com.example.applock.roombase.SoftWareLockRoom;
import com.example.applock.value.Mytool;
import com.example.applock.value.onActionCallback;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class LockedAdapter extends RecyclerView.Adapter<LockedAdapter.LockedVH> { public class LockedAdapter extends RecyclerView.Adapter<LockedAdapter.LockedVH> {
private FragmentActivity mycon; private FragmentActivity mycon;
private List<AppEntity> mylist; private List<AppEntity> mylist = new ArrayList<>();
private boolean lockedapp = true; private boolean lockedapp = true;
public LockedAdapter(FragmentActivity context,List<AppEntity> entities){
mylist = entities; public LockedAdapter(FragmentActivity context) {
mycon = context; mycon = context;
} }
public void setData(List<AppEntity> entities) {
mylist = entities;
notifyDataSetChanged();
}
@NonNull @NonNull
@Override @Override
public LockedVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { public LockedVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
@ -47,27 +59,49 @@ public class LockedAdapter extends RecyclerView.Adapter<LockedAdapter.LockedVH>
if (icon != null) { if (icon != null) {
holder.lockedbinding.lockedLogo.setImageDrawable(icon); holder.lockedbinding.lockedLogo.setImageDrawable(icon);
} }
holder.lockedbinding.lockedLocked.setBackgroundResource(R.drawable.lock); holder.lockedbinding.lockedLocked.setSelected(true);
holder.lockedbinding.lockedLocked.setOnClickListener(new View.OnClickListener() { holder.lockedbinding.lockedLocked.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (lockedapp){ if (SoftWareLockApplication.userOption % 5 == 0){
holder.lockedbinding.lockedLocked.setBackgroundResource(R.drawable.unlock); Mytool.showAd(mycon, new onActionCallback() {
@Override
public void onAction() {
holder.lockedbinding.lockedLocked.setSelected(!holder.lockedbinding.lockedLocked.isSelected());
if (!holder.lockedbinding.lockedLocked.isSelected()) {
lockedapp = false; lockedapp = false;
entityApp.setApplocked(false); entityApp.setApplocked(false);
Toast.makeText(mycon, mycon.getText(R.string.unlock_success), Toast.LENGTH_SHORT).show(); Toast.makeText(mycon, mycon.getText(R.string.unlock_success), Toast.LENGTH_SHORT).show();
} else { } else {
holder.lockedbinding.lockedLocked.setBackgroundResource(R.drawable.lock);
lockedapp = true; lockedapp = true;
entityApp.setApplocked(true); entityApp.setApplocked(true);
Toast.makeText(mycon, mycon.getText(R.string.lock_success), Toast.LENGTH_SHORT).show(); Toast.makeText(mycon, mycon.getText(R.string.lock_success), Toast.LENGTH_SHORT).show();
} }
// MsgDialog msgDialog = new MsgDialog(msg);
// msgDialog.show(mycon.getSupportFragmentManager(), "");
}
});
}else {
holder.lockedbinding.lockedLocked.setSelected(!holder.lockedbinding.lockedLocked.isSelected());
if (!holder.lockedbinding.lockedLocked.isSelected()) {
lockedapp = false;
entityApp.setApplocked(false);
Toast.makeText(mycon, mycon.getText(R.string.unlock_success), Toast.LENGTH_SHORT).show();
} else {
lockedapp = true;
entityApp.setApplocked(true);
Toast.makeText(mycon, mycon.getText(R.string.lock_success), Toast.LENGTH_SHORT).show();
}
}
SoftWareLockRoom.RUNIO(new Runnable() { SoftWareLockRoom.RUNIO(new Runnable() {
@Override @Override
public void run() { public void run() {
AppDataBase.getDatabaseInstance().getAppEntityDao().updateData(entityApp); AppDataBase.getDatabaseInstance().getAppEntityDao().updateData(entityApp);
} }
}); });
SoftWareLockApplication.userOption++;
} }
}); });
} }
@ -79,9 +113,11 @@ public class LockedAdapter extends RecyclerView.Adapter<LockedAdapter.LockedVH>
public class LockedVH extends RecyclerView.ViewHolder { public class LockedVH extends RecyclerView.ViewHolder {
private LockedAppBinding lockedbinding; private LockedAppBinding lockedbinding;
public LockedVH(@NonNull LockedAppBinding itemView) { public LockedVH(@NonNull LockedAppBinding itemView) {
super(itemView.getRoot()); super(itemView.getRoot());
lockedbinding = itemView; lockedbinding = itemView;
} }
} }
} }

View File

@ -1,6 +1,7 @@
package com.example.applock.lockadapter; package com.example.applock.lockadapter;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.SharedPreferences; import android.content.SharedPreferences;
@ -33,27 +34,36 @@ import com.example.applock.roombase.SoftWareLockRoom;
import com.example.applock.value.Adcallback; import com.example.applock.value.Adcallback;
import com.example.applock.value.MyAllValues; import com.example.applock.value.MyAllValues;
import com.example.applock.value.Mytool; import com.example.applock.value.Mytool;
import com.example.applock.value.onShowDialogCallback;
import com.pgl.ssdk.S; import com.pgl.ssdk.S;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
public class SystemAdapter extends RecyclerView.Adapter<SystemAdapter.SystemVH> { public class SystemAdapter extends RecyclerView.Adapter<SystemAdapter.SystemVH> {
private FragmentActivity mycon; private Activity mycon;
public static SharedPreferences.Editor keyeditor; public static SharedPreferences.Editor keyeditor;
private List<ATInterstitial> ads; private List<ATInterstitial> ads;
private List<AppEntity> mylist; private List<AppEntity> mylist = new ArrayList<>();
private LockListener lockListener; private LockListener lockListener;
private SoftWarePerssionDialog dialog; private SoftWarePerssionDialog dialog;
private boolean mLockList; private boolean mLockList;
private MsgDialog msgDialog; private MsgDialog msgDialog;
public SystemAdapter(FragmentActivity context, List<AppEntity> entities){
private onShowDialogCallback onShowDialogCallback;
public void setOnShowDialogCallback(onShowDialogCallback callback) {
this.onShowDialogCallback = callback;
}
public SystemAdapter(Activity context){
mycon = context; mycon = context;
mylist = entities;
ads = SoftWareLockApplication.lodAd(); ads = SoftWareLockApplication.lodAd();
} }
public void setLockListener(LockListener lockListener) { public void setData(List<AppEntity> entities) {
this.lockListener = lockListener; mylist = entities;
notifyDataSetChanged();
} }
@NonNull @NonNull
@Override @Override
@ -71,6 +81,7 @@ public class SystemAdapter extends RecyclerView.Adapter<SystemAdapter.SystemVH>
if (icon != null) { if (icon != null) {
holder.appBinding.appLogo.setImageDrawable(icon); holder.appBinding.appLogo.setImageDrawable(icon);
} }
mLockList = entityApp.isApplocked(); mLockList = entityApp.isApplocked();
if (mLockList){ if (mLockList){
holder.appBinding.appLocked.setSelected(true); holder.appBinding.appLocked.setSelected(true);
@ -82,23 +93,20 @@ public class SystemAdapter extends RecyclerView.Adapter<SystemAdapter.SystemVH>
public void onClick(View v) { public void onClick(View v) {
if (SoftLockPermission.allAllowPermission(mycon)){ if (SoftLockPermission.allAllowPermission(mycon)){
holder.appBinding.appLocked.setSelected(!holder.appBinding.appLocked.isSelected()); holder.appBinding.appLocked.setSelected(!holder.appBinding.appLocked.isSelected());
if ( SoftWareLockApplication.userOption % 5 == 0) { if ( SoftWareLockApplication.userOption % 5 == 0) {
ATInterstitial mInterstitialAd = Mytool.onCache(ads); ATInterstitial mInterstitialAd = Mytool.onCache(ads);
if (mInterstitialAd == null) { if (mInterstitialAd == null) {
Log.d("dhn111","-----mInterstitialAd=null---------------");
onAction(entityApp, holder.appBinding.appLocked,true); onAction(entityApp, holder.appBinding.appLocked,true);
// TODO: 2024/8/16 // TODO: 2024/8/16
} else { } else {
Mytool.setCallback(mInterstitialAd, new Adcallback() { Mytool.setCallback(mInterstitialAd, new Adcallback() {
@Override @Override
public void onShowFail(AdError ad) { public void onShowFail(AdError ad) {
Log.d("dhn111","-----onShowFail---------------");
onAction(entityApp, holder.appBinding.appLocked,true); onAction(entityApp, holder.appBinding.appLocked,true);
} }
@Override @Override
public void onAdHidden() { public void onAdHidden() {
Log.d("dhn111","-----onAdHidden---------------");
onAction(entityApp, holder.appBinding.appLocked,true); onAction(entityApp, holder.appBinding.appLocked,true);
} }
}); });
@ -106,7 +114,6 @@ public class SystemAdapter extends RecyclerView.Adapter<SystemAdapter.SystemVH>
} }
} else { } else {
Log.d("dhn111","-----不显示广告---------------");
onAction(entityApp, holder.appBinding.appLocked,false); onAction(entityApp, holder.appBinding.appLocked,false);
} }
SoftWareLockApplication.userOption++; SoftWareLockApplication.userOption++;
@ -117,28 +124,31 @@ public class SystemAdapter extends RecyclerView.Adapter<SystemAdapter.SystemVH>
}); });
} }
private void onAction(AppEntity entity,ImageView imageView,boolean showDailog){ private void onAction(AppEntity tmpEntity,ImageView imageView,boolean showDailog){
String msg = ""; String msg = "";
boolean selected = imageView.isSelected(); boolean selected = imageView.isSelected();
if (!selected) { if (!selected) {
entity.setApplocked(false); tmpEntity.setApplocked(false);
msg = entity.getApplabel() + "unlocked success"; msg = tmpEntity.getApplabel() + " unlocked success";
} else { } else {
entity.setApplocked(true); tmpEntity.setApplocked(true);
msg = entity.getApplabel() + "locked success"; msg = tmpEntity.getApplabel() + " locked success";
} }
if(showDailog){
msgDialog = new MsgDialog(msg);
msgDialog.show(mycon.getSupportFragmentManager(), "");
}
SoftWareLockRoom.RUNIO(new Runnable() { SoftWareLockRoom.RUNIO(new Runnable() {
@Override @Override
public void run() { public void run() {
AppDataBase.getDatabaseInstance().getAppEntityDao().updateData(entity); AppDataBase.getDatabaseInstance().getAppEntityDao().updateData(tmpEntity);
Log.d(SoftWareLockApplication.TAG,"-----updateData---------------");
} }
}); });
if(showDailog){
if(onShowDialogCallback!= null){
onShowDialogCallback.onShowDialog(msg);
}
}
} }
private void getDialogsuccess() { private void getDialogsuccess() {
@ -147,10 +157,9 @@ public class SystemAdapter extends RecyclerView.Adapter<SystemAdapter.SystemVH>
if (isSelect && isEnable) { if (isSelect && isEnable) {
//goApply(); //goApply();
} else { } else {
if (dialog == null) { if(onShowDialogCallback!= null){
dialog = new SoftWarePerssionDialog(mycon); onShowDialogCallback.onShowStepDialog();
} }
dialog.show(mycon.getSupportFragmentManager(), "");
} }
} }
@Override @Override

View File

@ -76,22 +76,22 @@ public class ThirdAdapter extends RecyclerView.Adapter<ThirdAdapter.ThirdVH> {
if (SoftLockPermission.allAllowPermission(mycon)){ if (SoftLockPermission.allAllowPermission(mycon)){
holder.appBinding.appLocked.setSelected(!holder.appBinding.appLocked.isSelected()); holder.appBinding.appLocked.setSelected(!holder.appBinding.appLocked.isSelected());
if (SoftWareLockApplication.userOption2 % 5 == 0) { if (SoftWareLockApplication.userOption % 5 == 0) {
ATInterstitial mInterstitialAd = Mytool.onCache(ads); ATInterstitial mInterstitialAd = Mytool.onCache(ads);
if (mInterstitialAd == null) { if (mInterstitialAd == null) {
Log.d("dhn111","-----mInterstitialAd=null---------------"); Log.d(SoftWareLockApplication.TAG,"-----mInterstitialAd=null---------------");
onAction(entityApp, holder.appBinding.appLocked,true); onAction(entityApp, holder.appBinding.appLocked,true);
// TODO: 2024/8/16 // TODO: 2024/8/16
} else { } else {
Mytool.setCallback(mInterstitialAd, new Adcallback() { Mytool.setCallback(mInterstitialAd, new Adcallback() {
@Override @Override
public void onShowFail(AdError ad) { public void onShowFail(AdError ad) {
Log.d("dhn111","-----onShowFail---------------"); Log.d(SoftWareLockApplication.TAG,"-----onShowFail---------------");
onAction(entityApp, holder.appBinding.appLocked,true); onAction(entityApp, holder.appBinding.appLocked,true);
} }
@Override @Override
public void onAdHidden() { public void onAdHidden() {
Log.d("dhn111","-----onAdHidden---------------"); Log.d(SoftWareLockApplication.TAG,"-----onAdHidden---------------");
onAction(entityApp, holder.appBinding.appLocked,true); onAction(entityApp, holder.appBinding.appLocked,true);
} }
}); });
@ -99,10 +99,10 @@ public class ThirdAdapter extends RecyclerView.Adapter<ThirdAdapter.ThirdVH> {
} }
} else { } else {
Log.d("dhn111","-----不显示广告---------------"); Log.d(SoftWareLockApplication.TAG,"-----不显示广告---------------");
onAction(entityApp, holder.appBinding.appLocked,false); onAction(entityApp, holder.appBinding.appLocked,false);
} }
SoftWareLockApplication.userOption2++; SoftWareLockApplication.userOption++;
}else { }else {
getDialogsuccess(); getDialogsuccess();
} }

View File

@ -1,5 +1,6 @@
package com.example.applock.roombase; package com.example.applock.roombase;
import androidx.lifecycle.LiveData;
import androidx.room.Dao; import androidx.room.Dao;
import androidx.room.Insert; import androidx.room.Insert;
import androidx.room.OnConflictStrategy; import androidx.room.OnConflictStrategy;
@ -22,7 +23,11 @@ public interface AppEntityDao {
void insertData(AppEntity entityApp); void insertData(AppEntity entityApp);
@Query("select * from app_table_name where applocked=:isLock") @Query("select * from app_table_name where applocked=:isLock")
List<AppEntity> queryApp(boolean isLock); LiveData<List<AppEntity>> queryApp(boolean isLock);
@Query("select * from app_table_name where applocked=:isLock")
List<AppEntity> queryLockApp(boolean isLock);
@Query("select * from app_table_name where appfrom=:appfrom") @Query("select * from app_table_name where appfrom=:appfrom")
List<AppEntity> queryApplfrom(boolean appfrom); List<AppEntity> queryApplfrom(boolean appfrom);
} }

View File

@ -30,7 +30,7 @@ public class SoftWareLockRoom {
getMyUIServicePool().execute(new Runnable() { getMyUIServicePool().execute(new Runnable() {
@Override @Override
public void run() { public void run() {
List<AppEntity> applist = AppDataBase.getDatabaseInstance().getAppEntityDao().queryApp(islock); List<AppEntity> applist = AppDataBase.getDatabaseInstance().getAppEntityDao().queryLockApp(islock);
getMyHandler().post(()->{ getMyHandler().post(()->{
listener.QueryResult(applist); listener.QueryResult(applist);
}); });

View File

@ -1,5 +1,6 @@
package com.example.applock.value; package com.example.applock.value;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.util.Log; import android.util.Log;
@ -96,7 +97,7 @@ public class Mytool {
} }
}); });
// ad.load(); ad.load();
} }
} }
return adArrayList; return adArrayList;
@ -106,4 +107,26 @@ public class Mytool {
ATInterstitial ad = new ATInterstitial(context, adUnitId); ATInterstitial ad = new ATInterstitial(context, adUnitId);
return ad; return ad;
} }
public static void showAd(Activity activity,onActionCallback callback) {
ATInterstitial mInterstitialAd = Mytool.onCache(adArrayList);
if (mInterstitialAd == null) {
callback.onAction();
} else {
Mytool.setCallback(mInterstitialAd, new Adcallback() {
@Override
public void onShowFail(AdError ad) {
callback.onAction();
}
@Override
public void onAdHidden() {
callback.onAction();
}
});
mInterstitialAd.show(activity);
}
}
} }

View File

@ -0,0 +1,11 @@
package com.example.applock.value;
import com.anythink.core.api.AdError;
public interface onActionCallback {
void onAction( );
}

View File

@ -0,0 +1,9 @@
package com.example.applock.value;
public interface onShowDialogCallback {
void onShowDialog(String msg);
void onShowStepDialog();
}

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="64dp"
android:height="64dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:pathData="M395.2,513.6l323.1,-312.4c19.1,-18.4 19.1,-48.3 0,-66.7 -19.1,-18.4 -49.9,-18.4 -69,0L291.8,480.3c-19.1,18.4 -19.1,48.3 0,66.7l357.6,345.7c9.5,9.2 22,13.8 34.5,13.8 12.5,0 25,-4.6 34.5,-13.8 19.1,-18.4 19.1,-48.2 0,-66.7L395.2,513.6z"
android:fillColor="@color/black00"/>
</vector>

View File

@ -0,0 +1,27 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="25dp"
android:height="24dp"
android:viewportWidth="25"
android:viewportHeight="24">
<path
android:pathData="M8.42,5C7.836,5 7.281,5.255 6.901,5.698L2.616,10.698C1.974,11.447 1.974,12.553 2.616,13.302L6.901,18.302C7.281,18.745 7.836,19 8.42,19L19.5,19C20.605,19 21.5,18.105 21.5,17L21.5,7C21.5,5.895 20.605,5 19.5,5L8.42,5Z"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="#4584FF"
android:strokeLineCap="round"/>
<path
android:pathData="M15.5,10L11.5,14"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="#4584FF"
android:strokeLineCap="round"/>
<path
android:pathData="M11.5,10L15.5,14"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="#4584FF"
android:strokeLineCap="round"/>
</vector>

View File

@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="32dp"
android:height="33dp"
android:viewportWidth="32"
android:viewportHeight="33">
<path
android:pathData="M16,0.5L16,0.5A16,16 0,0 1,32 16.5L32,16.5A16,16 0,0 1,16 32.5L16,32.5A16,16 0,0 1,0 16.5L0,16.5A16,16 0,0 1,16 0.5z"
android:fillColor="#ffffff"/>
<path
android:pathData="M15.504,6.585L8.504,10.585C7.832,10.969 7.832,11.951 8.504,12.335C9.379,12.835 14.629,15.835 15.504,16.335C15.811,16.511 16.196,16.511 16.504,16.335L23.504,12.335C24.176,11.951 24.176,10.969 23.504,10.585L16.504,6.585C16.197,6.409 15.812,6.409 15.504,6.585ZM16.004,8.616L20.973,11.46L16.004,14.304C14.972,13.714 12.718,12.422 11.035,11.46L16.004,8.616ZM8.754,15.491C8.507,15.559 8.266,15.72 8.129,15.96C7.855,16.439 8.025,17.061 8.504,17.335L15.504,21.335C15.811,21.511 16.196,21.511 16.504,21.335L23.504,17.335C23.984,17.061 24.153,16.439 23.879,15.96C23.605,15.48 22.984,15.311 22.504,15.585L16.004,19.304L9.504,15.585C9.264,15.448 9.001,15.424 8.754,15.491ZM8.754,20.491C8.507,20.559 8.266,20.72 8.129,20.96C7.855,21.439 8.025,22.061 8.504,22.335L15.504,26.335C15.811,26.511 16.196,26.511 16.504,26.335L23.504,22.335C23.984,22.061 24.153,21.439 23.879,20.96C23.605,20.48 22.984,20.311 22.504,20.585L16.004,24.304L9.504,20.585C9.264,20.448 9.001,20.424 8.754,20.491Z"
android:fillColor="#2A343D"/>
</vector>

View File

@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="32dp"
android:height="33dp"
android:viewportWidth="32"
android:viewportHeight="33">
<path
android:pathData="M16,0.5L16,0.5A16,16 0,0 1,32 16.5L32,16.5A16,16 0,0 1,16 32.5L16,32.5A16,16 0,0 1,0 16.5L0,16.5A16,16 0,0 1,16 0.5z"
android:fillColor="#ffffff"/>
<path
android:pathData="M15.623,6.534C14.744,6.909 9.47,9.16 8.592,9.535C8.223,9.692 7.998,10.04 7.998,10.441C7.998,14.821 8.173,16.781 8.967,19.038C10.006,21.993 12.046,24.348 15.498,26.321C15.805,26.497 16.191,26.497 16.498,26.321C19.981,24.33 22.03,21.983 23.06,19.038C23.844,16.797 23.998,14.933 23.998,10.441C23.998,10.042 23.771,9.693 23.404,9.535L16.436,6.534C16.184,6.426 15.875,6.426 15.623,6.534ZM15.998,8.503L21.994,11.106C22.081,18.281 20.675,21.426 16.007,24.287C11.218,21.308 9.946,18.129 9.995,11.114C11.358,10.532 14.845,8.995 15.998,8.503Z"
android:fillColor="#2A343D"/>
</vector>

View File

@ -0,0 +1,17 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="25dp"
android:viewportWidth="24"
android:viewportHeight="25">
<group>
<clip-path
android:pathData="M0,0.5h24v24h-24z"/>
<path
android:pathData="M3,6.5H21M3,12.5H21M3,18.5H21"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="#3A3938"
android:strokeLineCap="round"/>
</group>
</vector>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@drawable/lock"/> <item android:state_selected="true" android:drawable="@drawable/lock"/>
<item android:drawable="@drawable/unlock"/> <item android:state_selected="false" android:drawable="@drawable/unlock"/>
</selector> </selector>

View 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">
<corners android:radius="24dp"/>
<solid android:color="@color/dialog_bg"/>
</shape>

View File

@ -8,8 +8,8 @@
tools:context=".activity.IntoActivity"> tools:context=".activity.IntoActivity">
<ImageView <ImageView
android:id="@+id/lock_logo" android:id="@+id/lock_logo"
android:layout_width="150dp" android:layout_width="120dp"
android:layout_height="150dp" android:layout_height="120dp"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_marginTop="200dp" android:layout_marginTop="200dp"
android:src="@mipmap/intologo"/> android:src="@mipmap/intologo"/>

View File

@ -31,7 +31,7 @@
android:layout_height="30dp" android:layout_height="30dp"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_centerVertical="true" android:layout_centerVertical="true"
app:srcCompat="@mipmap/setting" /> app:srcCompat="@drawable/menu" />
</RelativeLayout> </RelativeLayout>
<RelativeLayout <RelativeLayout
android:id="@+id/search_layout" android:id="@+id/search_layout"
@ -74,6 +74,7 @@
<com.google.android.material.tabs.TabLayout <com.google.android.material.tabs.TabLayout
android:id="@+id/main_tablelayout" android:id="@+id/main_tablelayout"
android:layout_width="340dp" android:layout_width="340dp"
app:tabIndicatorHeight="0dp"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
app:tabSelectedTextColor="@color/white" app:tabSelectedTextColor="@color/white"
app:tabIndicatorColor="@color/white" app:tabIndicatorColor="@color/white"

View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:background="@color/white"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/back"
android:layout_width="44dp"
android:layout_height="44dp"
android:layout_marginStart="12dp"
android:padding="10dp"
android:src="@drawable/back_black" />
<TextView
android:layout_width="wrap_content"
android:layout_height="44dp"
android:layout_centerHorizontal="true"
android:layout_gravity="center_horizontal"
android:padding="10dp"
android:text="@string/app_privacy"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/back"
android:textColor="@color/black"
android:textSize="15sp"
tools:ignore="WebViewLayout" />
</RelativeLayout>
</androidx.core.widget.NestedScrollView>

View File

@ -8,7 +8,7 @@
tools:context=".activity.SettingActivity"> tools:context=".activity.SettingActivity">
<RelativeLayout <RelativeLayout
android:id="@+id/setting_top" android:id="@+id/setting_top"
android:layout_width="343dp" android:layout_width="match_parent"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
@ -16,6 +16,8 @@
android:id="@+id/setting_back" android:id="@+id/setting_back"
android:layout_width="43dp" android:layout_width="43dp"
android:layout_height="43dp" android:layout_height="43dp"
android:padding="8dp"
android:layout_marginStart="25dp"
android:src="@drawable/image_back" android:src="@drawable/image_back"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
@ -23,11 +25,9 @@
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/setting_title" android:id="@+id/setting_title"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="43dp" android:layout_height="wrap_content"
android:layout_toRightOf="@+id/setting_back" android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:gravity="center"
android:textSize="25sp" android:textSize="25sp"
android:textStyle="bold" android:textStyle="bold"
android:text="@string/setting" android:text="@string/setting"
@ -54,8 +54,8 @@
android:text="@string/change_password" android:text="@string/change_password"
android:textSize="17sp" /> android:textSize="17sp" />
<ImageView <ImageView
android:layout_width="24dp" android:layout_width="18dp"
android:layout_height="24dp" android:layout_height="18dp"
android:background="@drawable/go_reset" android:background="@drawable/go_reset"
android:layout_alignParentEnd="true"/> android:layout_alignParentEnd="true"/>
</RelativeLayout> </RelativeLayout>
@ -74,8 +74,8 @@
android:text="@string/app_share" android:text="@string/app_share"
android:textSize="17sp" /> android:textSize="17sp" />
<ImageView <ImageView
android:layout_width="24dp" android:layout_width="18dp"
android:layout_height="24dp" android:layout_height="18dp"
android:background="@drawable/go_reset" android:background="@drawable/go_reset"
android:layout_alignParentEnd="true"/> android:layout_alignParentEnd="true"/>
</RelativeLayout> </RelativeLayout>
@ -94,8 +94,8 @@
android:text="@string/app_rate" android:text="@string/app_rate"
android:textSize="17sp" /> android:textSize="17sp" />
<ImageView <ImageView
android:layout_width="24dp" android:layout_width="18dp"
android:layout_height="24dp" android:layout_height="18dp"
android:background="@drawable/go_reset" android:background="@drawable/go_reset"
android:layout_alignParentEnd="true"/> android:layout_alignParentEnd="true"/>
</RelativeLayout> </RelativeLayout>
@ -114,8 +114,8 @@
android:text="@string/Privacy_Policy" android:text="@string/Privacy_Policy"
android:textSize="17sp" /> android:textSize="17sp" />
<ImageView <ImageView
android:layout_width="24dp" android:layout_width="18dp"
android:layout_height="24dp" android:layout_height="18dp"
android:background="@drawable/go_reset" android:background="@drawable/go_reset"
android:layout_alignParentEnd="true"/> android:layout_alignParentEnd="true"/>
</RelativeLayout> </RelativeLayout>

View File

@ -21,6 +21,6 @@
android:layout_width="40dp" android:layout_width="40dp"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_gravity="center" android:layout_gravity="center"
android:src="@mipmap/delete_key" /> android:src="@drawable/icon_delete" />
</LinearLayout> </LinearLayout>

View File

@ -2,64 +2,69 @@
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="328dp" android:layout_width="368dp"
app:cardCornerRadius="24dp" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
tools:context=".activity.MainActivity"
android:background="@color/dialog_bg" android:background="@color/dialog_bg"
android:layout_height="wrap_content"> app:cardCornerRadius="24dp"
tools:context=".activity.MainActivity">
<RelativeLayout <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="20dp"> android:padding="20dp">
<TextView <TextView
android:id="@+id/title1" android:id="@+id/title1"
android:layout_width="230dp" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_marginTop="24dp"
android:text="@string/permission_required" android:text="@string/permission_required"
android:textColor="@color/black" android:textColor="@color/black"
android:textStyle="bold" android:textSize="20sp"
android:textSize="20sp" /> android:textStyle="bold" />
<TextView <TextView
android:id="@+id/title2" android:id="@+id/title2"
android:layout_width="230dp" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/title1" android:layout_below="@+id/title1"
android:layout_centerHorizontal="true"
android:gravity="center"
android:text="@string/permission_text" android:text="@string/permission_text"
android:textStyle="bold"
android:textSize="20sp" android:textSize="20sp"
android:layout_centerHorizontal="true"/> android:textStyle="bold" />
<androidx.cardview.widget.CardView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_below="@+id/title2"
android:layout_marginTop="30dp"
app:cardCornerRadius="24dp">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/dialog_bg" android:layout_below="@+id/title2"
android:paddingRight="16dp" android:layout_marginTop="30dp"
android:background="@drawable/step_bg"
android:orientation="vertical"
android:paddingLeft="16dp" android:paddingLeft="16dp"
android:orientation="vertical"> android:paddingRight="16dp">
<LinearLayout <LinearLayout
android:id="@+id/bottom" android:id="@+id/bottom"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:layout_marginTop="20dp"
android:layout_marginTop="20dp"> android:orientation="horizontal">
<ImageView <ImageView
android:layout_width="40dp" android:layout_width="40dp"
android:layout_height="40dp" android:layout_height="40dp"
android:src="@mipmap/detect" android:layout_gravity="center"
android:layout_gravity="center"/> android:src="@drawable/icon_step2" />
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:layout_marginStart="10dp"
> android:orientation="vertical">
<TextView <TextView
android:id="@+id/tv_overlay_title" android:id="@+id/tv_overlay_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -68,40 +73,48 @@
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="20sp" /> android:textSize="20sp" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:text="@string/detect_detail" /> android:text="@string/detect_detail" />
<TextView <TextView
android:id="@+id/tv_usage_button" android:id="@+id/tv_usage_button"
android:layout_width="150dp" android:layout_width="150dp"
android:layout_height="40dp" android:layout_height="40dp"
android:paddingStart="8dp" android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:paddingEnd="8dp"
android:gravity="center"
android:textSize="16dp"
android:background="@drawable/selector_permssion" android:background="@drawable/selector_permssion"
android:text="@string/permit" /> android:gravity="center"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:text="@string/permit"
android:textSize="16dp" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/top" android:id="@+id/top"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:layout_marginTop="20dp"
android:layout_marginBottom="20dp" android:layout_marginBottom="20dp"
android:layout_marginTop="20dp"> android:orientation="horizontal">
<ImageView <ImageView
android:layout_width="40dp" android:layout_width="40dp"
android:layout_height="40dp" android:layout_height="40dp"
android:src="@mipmap/show" android:layout_gravity="center"
android:layout_gravity="center"/> android:src="@drawable/icon_step1" />
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:id="@+id/tv_usage_title" android:id="@+id/tv_usage_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -110,25 +123,28 @@
android:text="@string/show" android:text="@string/show"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="20sp" /> android:textSize="20sp" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:text="@string/show_detail" /> android:text="@string/show_detail" />
<TextView <TextView
android:id="@+id/tv_overlay_button" android:id="@+id/tv_overlay_button"
android:layout_width="150dp" android:layout_width="150dp"
android:layout_height="40dp" android:layout_height="40dp"
android:paddingStart="8dp" android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:paddingEnd="8dp"
android:background="@drawable/selector_permssion" android:background="@drawable/selector_permssion"
android:gravity="center" android:gravity="center"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:text="@string/permit" android:text="@string/permit"
android:textSize="16dp" /> android:textSize="16dp" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</androidx.cardview.widget.CardView>
</RelativeLayout> </RelativeLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>

View File

@ -34,7 +34,7 @@
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:focusableInTouchMode="false" android:focusableInTouchMode="false"
android:background="@drawable/unlock" /> android:src="@drawable/selector_app_lock" />
</RelativeLayout> </RelativeLayout>
</RelativeLayout> </RelativeLayout>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 524 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 624 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 546 B

View File

@ -10,4 +10,5 @@
<color name="edit_text_bg">#F5F5F5</color> <color name="edit_text_bg">#F5F5F5</color>
<color name="table_unselect">#C4D8FF</color> <color name="table_unselect">#C4D8FF</color>
<color name="table_bg">#4584FF</color> <color name="table_bg">#4584FF</color>
<color name="black00">#000000</color>
</resources> </resources>

View File

@ -41,4 +41,5 @@
<string name="third_text">Third</string> <string name="third_text">Third</string>
<string name="lock_success">Lock Successful</string> <string name="lock_success">Lock Successful</string>
<string name="unlock_success">Unlock Successful</string> <string name="unlock_success">Unlock Successful</string>
<string name="app_privacy">Privacy Policy</string>
</resources> </resources>

6
keystore.properties Normal file
View File

@ -0,0 +1,6 @@
package_name=com.soft.ware.lock.hd
app_name=SoftWare Lock
keystoreFile=app/SoftWare Lock.jks
key_alias=SoftWare Lockkey0
key_store_password=SoftWare Lock
key_password=SoftWare Lock