diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 4456bd2..1d66456 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -18,14 +18,13 @@ android {
applicationId = "com.soft.ware.lock.hd"
minSdk = 23
targetSdk = 34
- versionCode = 5
- versionName = "1.0.1"
+ versionCode = 6
+ versionName = "1.0.2"
setProperty(
"archivesBaseName",
"SoftWare Lock_v" + versionName + "(${versionCode})_$timestamp"
)
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
-
}
buildTypes {
@@ -123,7 +122,7 @@ dependencies {
implementation("androidx.recyclerview:recyclerview:1.1.0")
//Tramini
- implementation("com.anythink.sdk:tramini-plugin-tpn:6.3.68")
+ //implementation("com.anythink.sdk:tramini-plugin-tpn:6.3.68")
// Debugger UI Tools
// implementation ("com.anythink.sdk:debugger-ui:1.0.7")
diff --git a/app/info b/app/info
index 6a334dc..7236279 100644
--- a/app/info
+++ b/app/info
@@ -1,5 +1,6 @@
包名:com.soft.ware.lock.hd
应用名:SoftWare Lock
签名文件:SoftWare Lock.jks
+签名路径:app/SoftWare Lock.jks
别名:SoftWare Lockkey0
-密码:SoftWare Lock
\ No newline at end of file
+密码:SoftWare Lock
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 336e2f0..0001dcb 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,17 +1,20 @@
+
+
-
+
+
+
+
-
-
+ android:screenOrientation="portrait" />
+ android:exported="true"
+ android:screenOrientation="portrait">
-
+
+
\ No newline at end of file
diff --git a/app/src/main/assets/privacy.html b/app/src/main/assets/privacy.html
new file mode 100644
index 0000000..0c837d5
--- /dev/null
+++ b/app/src/main/assets/privacy.html
@@ -0,0 +1,86 @@
+
+
+
+
+
+ Privacy Policy
+
+
+
+ Privacy Policy
+ Date: August 14, 2024
+
+ 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.
+
+ Information Collection and Use
+ 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.
+ The app does use third-party services that may collect information used to identify you.
+ Please refer to the privacy policy of the third-party service provider used by the application:
+
+ - Google Play Services
+ - Google Analytics for Firebase
+ - Firebase Crashlytics
+ - Unity
+ - AppLovin
+ - Pangle
+ - Mintegral
+ - Bigo
+ - Ironsource
+ - Vungle
+
+
+ Log Data
+ 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.
+
+ Cookies
+ 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.
+
+ Service Providers
+ We may employ third-party companies and individuals due to the following reasons:
+
+ - To facilitate our Service
+ - To provide the Service on our behalf
+ - To perform Service-related services, or
+ - To assist us in analyzing how our Service is used
+
+ 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.
+
+ Security
+ 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.
+
+ Links to Other Sites
+ 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.
+
+ Children’s Privacy
+ 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.
+
+ Changes to This Privacy Policy
+ 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.
+
+ Privacy Questions
+ 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.
+ If you have any questions or concerns about our Privacy Policy or data processing, please contact us: saleemjeeta2@gmail.com.
+
+
diff --git a/app/src/main/java/com/example/applock/DrawView/InPutKeyView.java b/app/src/main/java/com/example/applock/DrawView/InPutKeyView.java
index 3d244e2..0b03766 100644
--- a/app/src/main/java/com/example/applock/DrawView/InPutKeyView.java
+++ b/app/src/main/java/com/example/applock/DrawView/InPutKeyView.java
@@ -2,6 +2,7 @@ package com.example.applock.DrawView;
import android.content.Context;
import android.util.AttributeSet;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.FrameLayout;
@@ -61,8 +62,10 @@ public class InPutKeyView extends FrameLayout {
public void OnKeyClick(String bottomkey) {
if (my_top_key.length() >= keylength) {
my_top_key.delete(0, my_top_key.length());
+ Log.d("dhn","-------fin"+my_top_key.length());
}
my_top_key.append(bottomkey);
+ Log.d("dhn","-------fin"+my_top_key.length());
topAdapter.updateItem(my_top_key.toString());
if (my_top_key.length() == keylength) {
inputKeyListener.onInputComplete(my_top_key.toString());
diff --git a/app/src/main/java/com/example/applock/activity/IntoActivity.java b/app/src/main/java/com/example/applock/activity/IntoActivity.java
index 2740d12..a7280b1 100644
--- a/app/src/main/java/com/example/applock/activity/IntoActivity.java
+++ b/app/src/main/java/com/example/applock/activity/IntoActivity.java
@@ -11,9 +11,17 @@ import com.anythink.core.api.AdError;
import com.anythink.interstitial.api.ATInterstitial;
import com.example.applock.DrawView.CustomProgressBar;
import com.example.applock.R;
+import com.example.applock.allmanager.AppManager;
import com.example.applock.allmanager.Datamanager;
+import com.example.applock.allmanager.LockAction;
+import com.example.applock.allmanager.MyWorker;
+import com.example.applock.allmanager.SoftLockPermission;
import com.example.applock.application.SoftWareLockApplication;
+import com.example.applock.roombase.AppDataBase;
+import com.example.applock.roombase.AppEntity;
+import com.example.applock.roombase.SoftWareLockRoom;
import com.example.applock.value.Adcallback;
+import com.example.applock.value.MyAllValues;
import com.example.applock.value.Mytool;
import java.util.List;
@@ -23,7 +31,9 @@ public class IntoActivity extends AppCompatActivity {
private List ads;
private boolean isAlreadyShow = false;
private float i = 0;
+ private AppEntity entity;
private CustomProgressBar customProgressBar;
+ private String lockpackname = MyAllValues.softWareLockApplication.getPackageName();
@SuppressLint("MissingInflatedId")
@Override
@@ -31,8 +41,8 @@ public class IntoActivity extends AppCompatActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_into);
- customProgressBar = findViewById(R.id.splash_pg);
- ads = SoftWareLockApplication.lodAd();
+ customProgressBar = findViewById(R.id.splash_pg);
+ ads = SoftWareLockApplication.lodAd();
countDownTimer = new CountDownTimer(10100, 100) {
@Override
@@ -91,16 +101,38 @@ public class IntoActivity extends AppCompatActivity {
}
public void intoActivity() {
-
String firstkey = Datamanager.getTopKey();
if (firstkey.isEmpty()) {
Intent intent = new Intent(IntoActivity.this, KeyWordActivity.class);
startActivity(intent);
+ finish();
} else {
- startActivity(new Intent(IntoActivity.this, MainActivity.class));
+ if (SoftLockPermission.allAllowPermission(this)){
+ SoftWareLockRoom.RUNIO(new Runnable() {
+ @Override
+ public void run() {
+ entity = AppDataBase.getDatabaseInstance().getAppEntityDao().queryByPagName(lockpackname);
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ entity.setApplocked(true);
+ SoftWareLockRoom.RUNIO(new Runnable() {
+ @Override
+ public void run() {
+ AppDataBase.getDatabaseInstance().getAppEntityDao().updateData(entity);
+ }
+ });
+ startActivity(new Intent(IntoActivity.this, MainActivity.class));
+ finish();
+ }
+ });
+ }
+ });
+ }else {
+ startActivity(new Intent(IntoActivity.this, MainActivity.class));
+ finish();
+ }
}
- finish();
-
}
@Override
diff --git a/app/src/main/java/com/example/applock/activity/KeyWordActivity.java b/app/src/main/java/com/example/applock/activity/KeyWordActivity.java
index 923ef59..c183bf0 100644
--- a/app/src/main/java/com/example/applock/activity/KeyWordActivity.java
+++ b/app/src/main/java/com/example/applock/activity/KeyWordActivity.java
@@ -39,19 +39,22 @@ public class KeyWordActivity extends AppCompatActivity {
private InPutKeyView inPutKeyView;
private int MyKeyPage;
private List ads;
+ private int type_from;
+ private TextView key_top_title;
+ private ImageView key_page_logo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyKeyPage = getIntent().getIntExtra(MyAllValues.PASS_KEY_WORD, 0);
setContentView(R.layout.activity_key_word);
-
ads = SoftWareLockApplication.lodAd();
-
text_page = findViewById(R.id.text_page);
text_key_btn = findViewById(R.id.text_key_btn);
image_back = findViewById(R.id.image_back);
inPutKeyView = findViewById(R.id.input_view);
+ key_top_title = findViewById(R.id.key_top_title);
+ key_page_logo = findViewById(R.id.key_page_logo);
gotoKyePage();
}
@@ -88,9 +91,11 @@ public class KeyWordActivity extends AppCompatActivity {
@Override
public void onClick(View v) {
Intent intent = new Intent(KeyWordActivity.this, KeyWordActivity.class);
+ intent.putExtra(MyAllValues.PASS_KEY_FROM,0);
intent.putExtra(MyAllValues.PASS_KEY_WORD, 1);
intent.putExtra(MyAllValues.PASS_WORD_TOP_KEY, fistkey);
startActivity(intent);
+ finish();
}
});
} else if (MyKeyPage == 1) {
@@ -101,15 +106,28 @@ public class KeyWordActivity extends AppCompatActivity {
text_key_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- if (Objects.equals(setPin, fistkey)) {
- Datamanager.setTopKey(fistkey);
- Intent intent = new Intent(KeyWordActivity.this, MainActivity.class);
- startActivity(intent);
- finish();
- } else {
- Toast.makeText(KeyWordActivity.this, getString(R.string.set_key_file), Toast.LENGTH_SHORT).show();
- inPutKeyView.clearTopKey();
- text_key_btn.setVisibility(View.GONE);
+ type_from = getIntent().getIntExtra(MyAllValues.PASS_KEY_FROM,0);
+ if (type_from == 0){
+ if (Objects.equals(setPin, fistkey)) {
+ Datamanager.setTopKey(fistkey);
+ Intent intent = new Intent(KeyWordActivity.this, MainActivity.class);
+ startActivity(intent);
+ finish();
+ } else {
+ Toast.makeText(KeyWordActivity.this, getString(R.string.set_key_file), Toast.LENGTH_SHORT).show();
+ inPutKeyView.clearTopKey();
+ text_key_btn.setVisibility(View.GONE);
+ }
+ }else {
+ if (Objects.equals(setPin, fistkey)) {
+ Datamanager.setTopKey(fistkey);
+ Toast.makeText(KeyWordActivity.this, getString(R.string.reset_success), Toast.LENGTH_SHORT).show();
+ showAd();
+ } else {
+ Toast.makeText(KeyWordActivity.this, getString(R.string.set_key_file), Toast.LENGTH_SHORT).show();
+ inPutKeyView.clearTopKey();
+ text_key_btn.setVisibility(View.GONE);
+ }
}
}
@@ -122,12 +140,19 @@ public class KeyWordActivity extends AppCompatActivity {
});
} else if (MyKeyPage == 2) {
image_back.setVisibility(View.VISIBLE);
- text_page.setText(getString(R.string.reset_my_key));
text_key_btn.setText(getString(R.string.next));
+ key_top_title.setVisibility(View.VISIBLE);
+ text_page.setVisibility(View.GONE);
+ key_page_logo.setVisibility(View.VISIBLE);
text_key_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- resetPin();
+ Intent intent = new Intent(KeyWordActivity.this, KeyWordActivity.class);
+ intent.putExtra(MyAllValues.PASS_KEY_FROM,2);
+ intent.putExtra(MyAllValues.PASS_KEY_WORD, 1);
+ intent.putExtra(MyAllValues.PASS_WORD_TOP_KEY, fistkey);
+ startActivity(intent);
+ finish();
}
});
image_back.setOnClickListener(new View.OnClickListener() {
@@ -177,6 +202,7 @@ public class KeyWordActivity extends AppCompatActivity {
}
});
mInterstitialAd.show(this);
+ finish();
}
}
diff --git a/app/src/main/java/com/example/applock/activity/MainActivity.java b/app/src/main/java/com/example/applock/activity/MainActivity.java
index bf07936..217dac7 100644
--- a/app/src/main/java/com/example/applock/activity/MainActivity.java
+++ b/app/src/main/java/com/example/applock/activity/MainActivity.java
@@ -2,129 +2,115 @@ package com.example.applock.activity;
import android.annotation.SuppressLint;
import android.content.Intent;
-import android.graphics.Typeface;
+import android.graphics.PorterDuff;
import android.os.Bundle;
-import android.util.Log;
-import android.view.Gravity;
import android.view.View;
+import android.widget.EditText;
import android.widget.ImageView;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-import androidx.activity.EdgeToEdge;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
-import androidx.core.graphics.Insets;
-import androidx.core.view.ViewCompat;
-import androidx.core.view.WindowInsetsCompat;
-import androidx.drawerlayout.widget.DrawerLayout;
-import androidx.fragment.app.Fragment;
-import androidx.viewpager.widget.ViewPager;
+import androidx.core.content.ContextCompat;
+import androidx.viewpager2.widget.ViewPager2;
import androidx.work.WorkManager;
import com.example.applock.R;
-import com.example.applock.allmanager.AppManager;
+import com.example.applock.allmanager.LockAction;
import com.example.applock.allmanager.SoftLockPermission;
import com.example.applock.allmanager.SoftWarePerssionDialog;
-import com.example.applock.lockadapter.ViewPaperAdapter;
+import com.example.applock.lockadapter.FragmentAdapter;
+import com.example.applock.roombase.SoftWareLockRoom;
import com.example.applock.value.MyAllValues;
import com.google.android.material.tabs.TabLayout;
import com.example.applock.allmanager.MySoftWareLockService;
import com.example.applock.listener.PermissionBtnListener;
-import java.util.ArrayList;
-import java.util.List;
-import com.example.applock.fragment.SoftWareLockFragment;
+import com.google.android.material.tabs.TabLayoutMediator;
public class MainActivity extends AppCompatActivity implements PermissionBtnListener{
- private TextView textview_softlock;
- private TextView reset_key;
- private TextView version;
- private TextView text_version;
- private ViewPager viewPager;
- private TabLayout tabLayout;
+ private EditText search_text;
+ private ImageView start_search;
+ private String search_name;
+ private ViewPager2 view_page_main;
+ private TabLayout main_tablelayout;
private String[] tabTitle;
private ImageView image_setting;
private WorkManager workManager;
- private RelativeLayout reset_key_lay;
- private DrawerLayout main_draw;
private SoftWarePerssionDialog dialog;
+ private boolean gotoit = false;
+
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
- text_version = findViewById(R.id.text_version);
workManager = WorkManager.getInstance(this);
- viewPager = findViewById(R.id.view_page_main);
- main_draw = findViewById(R.id.main_draw);
- tabLayout = findViewById(R.id.app_table);
+ view_page_main = findViewById(R.id.view_page_main);
+ main_tablelayout = findViewById(R.id.main_tablelayout);
image_setting = findViewById(R.id.image_set);
- reset_key_lay = findViewById(R.id.reset_key_lay);
+ search_text = findViewById(R.id.main_search_text);
+ start_search = findViewById(R.id.main_start_search);
image_setting.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- main_draw.openDrawer(Gravity.RIGHT);
+ Intent intent = new Intent(MainActivity.this,SettingActivity.class);
+ startActivity(intent);
+ }
+ });
+ start_search.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (SoftLockPermission.isGetUsagePermission(MainActivity.this) && SoftLockPermission.isOverlays(MainActivity.this)){
+ search_name = search_text.getText().toString();
+ Intent intent =new Intent(MainActivity.this,SearchActivity.class);
+ intent.putExtra(MyAllValues.search_name,search_name);
+ startActivity(intent);
+ }else {
+ getPermission();
+ }
}
});
startService(new Intent(this,MySoftWareLockService.class));
- initTableLayoutViewPaper();
-
+ setViewPaper();
getPermission();
- reset_key_lay.setOnClickListener(new View.OnClickListener() {
+ }
+
+
+
+
+ private void setViewPaper() {
+ int tabIconColor = ContextCompat.getColor(MainActivity.this, R.color.table_unselect);
+ view_page_main.setAdapter(new FragmentAdapter(this));
+ TabLayoutMediator tabLayoutMediator = new TabLayoutMediator(main_tablelayout, view_page_main, new TabLayoutMediator.TabConfigurationStrategy() {
@Override
- public void onClick(View v) {
- gotoReset();
+ public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {
+ switch (position) {
+ case 0:
+ tab.setIcon(R.drawable.system_src);
+ tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN);
+ tab.setText(R.string.system_text);
+ break;
+ case 1:
+ tab.setIcon(R.drawable.third_src);
+ tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN);
+ tab.setText(R.string.third_text);
+ break;
+ case 2:
+ tab.setIcon(R.drawable.locked_src);
+ tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN);
+ tab.setText(R.string.locked);
+ break;
+ }
}
});
-
- String appVersions = AppManager.getAppVersions(this);
- if (appVersions == null) {
- text_version.setText("V1.0.0");
- } else {
- String format = String.format(getString(R.string.app_lock_version), appVersions);
- text_version.setText(format);
- }
+ tabLayoutMediator.attach();
}
- private void gotoReset() {
- Intent intent = new Intent(MainActivity.this, KeyWordActivity.class);
- intent.putExtra(MyAllValues.PASS_KEY_WORD, 2);
- startActivity(intent);
- }
-
- private void initTableLayoutViewPaper() {
- tabTitle = new String[]{getString(R.string.unlocked), getString(R.string.locked)};
- List fragmentList = new ArrayList<>();
- fragmentList.add(SoftWareLockFragment.newInstancePage(false));
- fragmentList.add(SoftWareLockFragment.newInstancePage(true));
- ViewPaperAdapter viewPaperAdapter= new ViewPaperAdapter(getSupportFragmentManager(), fragmentList, tabTitle);
- viewPager.setAdapter(viewPaperAdapter);
- Log.d("-------","----tabtitle"+tabTitle);
- tabLayout.setupWithViewPager(viewPager);
- viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
- @Override
- public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-
- }
-
- @Override
- public void onPageSelected(int position) {
- SoftWareLockFragment fragment = (SoftWareLockFragment) fragmentList.get(position);
- fragment.refresh();
- }
-
- @Override
- public void onPageScrollStateChanged(int state) {
-
- }
- });
- }
-
- private void getPermission() {
+ public void getPermission() {
boolean getUsagePermission = SoftLockPermission.isGetUsagePermission(this);
boolean overlays = SoftLockPermission.isOverlays(this);
if (getUsagePermission && overlays) {
-
+ // hideDialog();
} else {
if (dialog == null) {
dialog = new SoftWarePerssionDialog(this);
@@ -145,7 +131,7 @@ public class MainActivity extends AppCompatActivity implements PermissionBtnList
SoftLockPermission.requestOverlays(this, MyAllValues.request_code_overlay);
}
- @Override
+ @Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
@@ -154,7 +140,6 @@ public class MainActivity extends AppCompatActivity implements PermissionBtnList
break;
}
}
-
private void hideDialog() {
if (SoftLockPermission.allAllowPermission(this)) {
if (dialog != null) {
diff --git a/app/src/main/java/com/example/applock/activity/SearchActivity.java b/app/src/main/java/com/example/applock/activity/SearchActivity.java
new file mode 100644
index 0000000..88ee8c5
--- /dev/null
+++ b/app/src/main/java/com/example/applock/activity/SearchActivity.java
@@ -0,0 +1,87 @@
+package com.example.applock.activity;
+
+import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.ImageView;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.example.applock.R;
+import com.example.applock.allmanager.MyWorker;
+import com.example.applock.lockadapter.SearchAdapter;
+import com.example.applock.roombase.AppDataBase;
+import com.example.applock.roombase.AppEntity;
+import com.example.applock.roombase.SoftWareLockRoom;
+import com.example.applock.value.MyAllValues;
+import com.example.applock.value.Mytool;
+
+import java.util.List;
+
+public class SearchActivity extends AppCompatActivity {
+
+ private RecyclerView recycle_search;
+ private EditText search_text;
+ private ImageView start_search;
+ private String put_name;
+ private ImageView search_back;
+ private String search_name;
+ private List list;
+ @SuppressLint("MissingInflatedId")
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_search);
+ recycle_search = findViewById(R.id.recycle_search);
+ search_text = findViewById(R.id.search_text);
+ start_search = findViewById(R.id.start_search);
+ search_back = findViewById(R.id.search_back);
+ search_back.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ getData();
+ start_search.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ search_name = search_text.getText().toString();
+ //setRecycle();
+ }
+ });
+ }
+
+ private void setRecycle() {
+ SoftWareLockRoom.RUNIO(new Runnable() {
+ @Override
+ public void run() {
+ list = AppDataBase.getDatabaseInstance().getAppEntityDao().QueryByInputName(search_name);
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ SearchAdapter searchAdapter = new SearchAdapter(SearchActivity.this,list);
+ recycle_search.setAdapter(searchAdapter);
+ recycle_search.setLayoutManager(new GridLayoutManager(SearchActivity.this,1));
+ }
+ });
+ }
+ });
+ }
+
+ private void getData() {
+ Intent intent = getIntent();
+ search_name = intent.getStringExtra(MyAllValues.search_name);
+ search_text.setText(search_name);
+ setRecycle();
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/applock/activity/SettingActivity.java b/app/src/main/java/com/example/applock/activity/SettingActivity.java
new file mode 100644
index 0000000..3dff797
--- /dev/null
+++ b/app/src/main/java/com/example/applock/activity/SettingActivity.java
@@ -0,0 +1,99 @@
+package com.example.applock.activity;
+
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+
+import com.example.applock.R;
+import com.example.applock.allmanager.AppManager;
+import com.example.applock.value.MyAllValues;
+
+public class SettingActivity extends AppCompatActivity {
+
+ private RelativeLayout reset_password;
+ private RelativeLayout app_share;
+ private RelativeLayout app_rate;
+ private RelativeLayout privacy_policy;
+ private TextView version_text;
+ private ImageView setting_back;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_setting);
+ gotofindview();
+ onMyClick();
+ }
+
+ private void gotofindview() {
+ setting_back = findViewById(R.id.setting_back);
+ reset_password = findViewById(R.id.reset_keycode);
+ app_share = findViewById(R.id.share_app);
+ app_rate = findViewById(R.id.app_rate);
+ privacy_policy = findViewById(R.id.privacy_policy);
+ version_text = findViewById(R.id.version_text);
+ String appVersions = AppManager.getAppVersions(this);
+ if (appVersions == null) {
+ version_text.setText("V1.0.0");
+ } else {
+ String format = String.format(getString(R.string.app_lock_version), appVersions);
+ version_text.setText(format);
+ }
+ }
+
+ private void onMyClick() {
+ setting_back.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+ reset_password.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(SettingActivity.this, KeyWordActivity.class);
+ intent.putExtra(MyAllValues.PASS_KEY_FROM,2);
+ intent.putExtra(MyAllValues.PASS_KEY_WORD,2);
+ startActivity(intent);
+ finish();
+ }
+ });
+ app_share.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent();
+ intent.setAction(Intent.ACTION_SEND);
+ intent.setType("text/*");
+ intent.putExtra(Intent.EXTRA_TEXT,getString(R.string.app_path));
+ startActivity(Intent.createChooser(intent,"share"));
+ }
+ });
+ app_rate.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ String path = getString(R.string.app_path);
+ Intent intent = new Intent(Intent.ACTION_VIEW);
+ intent.setData(Uri.parse(path));
+ startActivity(intent);
+ }
+ });
+ privacy_policy.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ String path = getString(R.string.privacy);
+ Intent intent = new Intent(Intent.ACTION_VIEW);
+ intent.setData(Uri.parse(path));
+ startActivity(intent);
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/applock/allmanager/AppManager.java b/app/src/main/java/com/example/applock/allmanager/AppManager.java
index 924042a..ba9e89a 100644
--- a/app/src/main/java/com/example/applock/allmanager/AppManager.java
+++ b/app/src/main/java/com/example/applock/allmanager/AppManager.java
@@ -38,10 +38,14 @@ public class AppManager {
}
AppEntity appEntity = new AppEntity();
appEntity.setApppackageName(appPackageName);
-
try {
ApplicationInfo applicationInfo = packageManager.getApplicationInfo(appPackageName,PackageManager.GET_UNINSTALLED_PACKAGES);
CharSequence applicationLabel = packageManager.getApplicationLabel(applicationInfo);//获取应用程序的名称
+ if ((applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0){
+ appEntity.setAppfrom(false);
+ }else {
+ appEntity.setAppfrom(true);
+ }
appEntity.setApplabel(applicationLabel.toString());
applist.add(appEntity);
} catch (PackageManager.NameNotFoundException e) {
diff --git a/app/src/main/java/com/example/applock/allmanager/LockAction.java b/app/src/main/java/com/example/applock/allmanager/LockAction.java
index 6e8e8e3..acf9f49 100644
--- a/app/src/main/java/com/example/applock/allmanager/LockAction.java
+++ b/app/src/main/java/com/example/applock/allmanager/LockAction.java
@@ -66,7 +66,6 @@ public class LockAction {
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS |
WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
layParams = new WindowManager.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT, type, flag, PixelFormat.RGBA_8888);
-
}
public static LockAction getActionInstance(Context context) {
@@ -81,8 +80,6 @@ public class LockAction {
if (lockActionViewBinding.getRoot().getWindowToken() == null) {
manager.addView(lockActionViewBinding.getRoot(), layParams);
}
-
-
}
diff --git a/app/src/main/java/com/example/applock/allmanager/MsgDialog.kt b/app/src/main/java/com/example/applock/allmanager/MsgDialog.kt
new file mode 100644
index 0000000..b211589
--- /dev/null
+++ b/app/src/main/java/com/example/applock/allmanager/MsgDialog.kt
@@ -0,0 +1,42 @@
+package com.example.applock.allmanager
+
+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.example.applock.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()
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/applock/allmanager/MyWorker.java b/app/src/main/java/com/example/applock/allmanager/MyWorker.java
index 89f2fe2..b526624 100644
--- a/app/src/main/java/com/example/applock/allmanager/MyWorker.java
+++ b/app/src/main/java/com/example/applock/allmanager/MyWorker.java
@@ -45,6 +45,7 @@ public class MyWorker extends JobIntentService {
lockAction.showLockView();
});
} else {
+
}
} else {
SoftWareLockRoom.onRunMain(() -> {
diff --git a/app/src/main/java/com/example/applock/allmanager/SoftWarePerssionDialog.java b/app/src/main/java/com/example/applock/allmanager/SoftWarePerssionDialog.java
index 45bb1c1..908963d 100644
--- a/app/src/main/java/com/example/applock/allmanager/SoftWarePerssionDialog.java
+++ b/app/src/main/java/com/example/applock/allmanager/SoftWarePerssionDialog.java
@@ -1,5 +1,6 @@
package com.example.applock.allmanager;
+import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Gravity;
@@ -17,14 +18,15 @@ import com.example.applock.R;
import com.example.applock.activity.MainActivity;
import com.example.applock.databinding.DialogPermissionBinding;
import com.example.applock.listener.PermissionBtnListener;
+import com.example.applock.value.MyAllValues;
public class SoftWarePerssionDialog extends DialogFragment {
private DialogPermissionBinding dialogPermissionBinding;
private PermissionBtnListener permissionBtnListener;
- private Context mContext;
+ private Activity mContext;
- public SoftWarePerssionDialog(Context context) {
+ public SoftWarePerssionDialog(Activity context) {
mContext = context;
}
@@ -56,21 +58,19 @@ public class SoftWarePerssionDialog extends DialogFragment {
private void init() {
- setCancelable(false);
Window window = getDialog().getWindow();
window.setBackgroundDrawableResource(R.color.nobackground);
- window.getDecorView().setPadding(0, 0, 0, 0);
WindowManager.LayoutParams wlp = window.getAttributes();
- wlp.gravity = Gravity.CENTER;
+ wlp.gravity = Gravity.BOTTOM;
wlp.width = WindowManager.LayoutParams.MATCH_PARENT;
wlp.height = WindowManager.LayoutParams.WRAP_CONTENT;
window.setAttributes(wlp);
-
+ setCancelable(true);
dialogPermissionBinding.tvUsageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!dialogPermissionBinding.tvUsageButton.isSelected()) {
- permissionBtnListener.onClickUsage();
+ SoftLockPermission.requestUsage(mContext, MyAllValues.request_code_usage);
}
}
});
@@ -79,10 +79,9 @@ public class SoftWarePerssionDialog extends DialogFragment {
@Override
public void onClick(View v) {
if (!dialogPermissionBinding.tvOverlayButton.isSelected()) {
- permissionBtnListener.onClickOverlay();
+ SoftLockPermission.requestOverlays(mContext, MyAllValues.request_code_overlay);
}
}
});
}
-
}
diff --git a/app/src/main/java/com/example/applock/application/SoftWareLockApplication.java b/app/src/main/java/com/example/applock/application/SoftWareLockApplication.java
index 18333fa..4ab4d9e 100644
--- a/app/src/main/java/com/example/applock/application/SoftWareLockApplication.java
+++ b/app/src/main/java/com/example/applock/application/SoftWareLockApplication.java
@@ -32,6 +32,8 @@ public class SoftWareLockApplication extends Application {
public static List ads;
public static SoftWareLockApplication app;
private static Context context;
+ public static int userOption =0;
+ public static int userOption2 =0;
@Override
public void onCreate() {
diff --git a/app/src/main/java/com/example/applock/fragment/LockedFragment.java b/app/src/main/java/com/example/applock/fragment/LockedFragment.java
new file mode 100644
index 0000000..e91e845
--- /dev/null
+++ b/app/src/main/java/com/example/applock/fragment/LockedFragment.java
@@ -0,0 +1,60 @@
+package com.example.applock.fragment;
+
+import android.annotation.SuppressLint;
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.example.applock.R;
+import com.example.applock.lockadapter.LockedAdapter;
+import com.example.applock.lockadapter.ThirdAdapter;
+import com.example.applock.roombase.AppDataBase;
+import com.example.applock.roombase.AppEntity;
+import com.example.applock.roombase.SoftWareLockRoom;
+
+import java.util.List;
+
+public class LockedFragment extends Fragment {
+ private RecyclerView recyclerView_locked;
+ private boolean locked = true;
+ private List list;
+ @SuppressLint("MissingInflatedId")
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ View view = inflater.inflate(R.layout.fragment_locked, container, false);
+ recyclerView_locked = view.findViewById(R.id.recyclerView_locked);
+ setRecycleLocked();
+ 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
+ public void onResume() {
+ super.onResume();
+ setRecycleLocked();
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/applock/fragment/SoftWareLockFragment.java b/app/src/main/java/com/example/applock/fragment/SoftWareLockFragment.java
deleted file mode 100644
index f03f250..0000000
--- a/app/src/main/java/com/example/applock/fragment/SoftWareLockFragment.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package com.example.applock.fragment;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.os.Bundle;
-
-import androidx.annotation.LongDef;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LifecycleEventObserver;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.lifecycle.ViewModelProvider;
-import androidx.recyclerview.widget.LinearLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
-
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import com.example.applock.R;
-import com.example.applock.allmanager.SuccessDialog;
-import com.example.applock.listener.LockListener;
-import com.example.applock.listener.SwitchListener;
-import com.example.applock.lockadapter.SoftWareAdapter;
-import com.example.applock.value.MyAllValues;
-import com.example.applock.viewmodel.SoftWareLockVM;
-
-import org.jetbrains.annotations.NotNull;
-
-
-public class SoftWareLockFragment extends Fragment {
-
- private SoftWareLockVM mViewModel;
- private RecyclerView recyclerView;
- private SoftWareAdapter softAdapter;
- private boolean isLocked;
- private SuccessDialog successDialog;
- public static SoftWareLockFragment newInstancePage(boolean locked) {
- SoftWareLockFragment softWareLockFragment = new SoftWareLockFragment();
- Bundle bundle = new Bundle();
- bundle.putBoolean(MyAllValues.FRAGMENT_TYPE,locked);
- softWareLockFragment.setArguments(bundle);
- return softWareLockFragment;
- }
-
- @SuppressLint("MissingInflatedId")
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- // Inflate the layout for this fragment
- View view = inflater.inflate(R.layout.fragment_soft_ware_lock, container, false);
- recyclerView = view.findViewById(R.id.recyclerView_apps);
-
- return view;
- }
-
- @Override
- public void onActivityCreated(@Nullable Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- mViewModel = new ViewModelProvider(this).get(SoftWareLockVM.class);
- Bundle arguments = getArguments();
- if (arguments != null)
- isLocked = getArguments().getBoolean(MyAllValues.FRAGMENT_TYPE);
- mViewModel.UpDataAppLock(isLocked);
- initAppRecycle();
- mViewModel.getMutableLiveDataApp().observe(requireActivity(), list -> {
- softAdapter.setEntityApps(list);
-
- });
-
- }
- public void refresh() {
- mViewModel.UpDataAppLock(isLocked);
- }
-
- private void initAppRecycle() {
- softAdapter = new SoftWareAdapter(requireActivity(), isLocked);
- softAdapter.setLockListener(new LockListener() {
- @Override
- public void onSwitch(String msg) {
- successDialog = new SuccessDialog(requireContext(),msg);
- successDialog.show(getChildFragmentManager(), "");
- }
- });
- recyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
- recyclerView.setAdapter(softAdapter);
-
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/applock/fragment/SystemFragment.java b/app/src/main/java/com/example/applock/fragment/SystemFragment.java
new file mode 100644
index 0000000..fc646a8
--- /dev/null
+++ b/app/src/main/java/com/example/applock/fragment/SystemFragment.java
@@ -0,0 +1,65 @@
+package com.example.applock.fragment;
+
+import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.graphics.Typeface;
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.example.applock.R;
+import com.example.applock.allmanager.MyWorker;
+import com.example.applock.lockadapter.SystemAdapter;
+import com.example.applock.roombase.AppDataBase;
+import com.example.applock.roombase.AppEntity;
+import com.example.applock.roombase.SoftWareLockRoom;
+import com.example.applock.value.Mytool;
+
+import java.util.List;
+
+public class SystemFragment extends Fragment {
+
+ private RecyclerView recyclerView_apps;
+ private List list;
+ private boolean system = true;
+
+ @SuppressLint("MissingInflatedId")
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ View view = inflater.inflate(R.layout.fragment_system, container, false);
+ recyclerView_apps = view.findViewById(R.id.recyclerView_apps);
+ setRecycleSystem();
+ return view;
+ }
+
+ private void setRecycleSystem() {
+ SoftWareLockRoom.RUNIO(new Runnable() {
+ @Override
+ public void run() {
+ list = AppDataBase.getDatabaseInstance().getAppEntityDao().queryApplfrom(system);
+ getActivity().runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ SystemAdapter systemAdapter = new SystemAdapter(getActivity(),list);
+ recyclerView_apps.setAdapter(systemAdapter);
+ recyclerView_apps.setLayoutManager(new GridLayoutManager(getActivity(),1));
+ }
+ });
+ }
+ });
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ setRecycleSystem();
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/applock/fragment/ThirdFragment.java b/app/src/main/java/com/example/applock/fragment/ThirdFragment.java
new file mode 100644
index 0000000..0c817d2
--- /dev/null
+++ b/app/src/main/java/com/example/applock/fragment/ThirdFragment.java
@@ -0,0 +1,61 @@
+package com.example.applock.fragment;
+
+import android.annotation.SuppressLint;
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.example.applock.R;
+import com.example.applock.lockadapter.SystemAdapter;
+import com.example.applock.lockadapter.ThirdAdapter;
+import com.example.applock.roombase.AppDataBase;
+import com.example.applock.roombase.AppEntity;
+import com.example.applock.roombase.SoftWareLockRoom;
+
+import java.util.List;
+
+
+public class ThirdFragment extends Fragment {
+
+ private RecyclerView recyclerView_third;
+ private boolean third = false;
+ private List list;
+ @SuppressLint("MissingInflatedId")
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ View view = inflater.inflate(R.layout.fragment_third, container, false);
+ recyclerView_third = view.findViewById(R.id.recyclerView_third);
+ setRecycleThird();
+ return view;
+ }
+
+ private void setRecycleThird() {
+ SoftWareLockRoom.RUNIO(new Runnable() {
+ @Override
+ public void run() {
+ list = AppDataBase.getDatabaseInstance().getAppEntityDao().queryApplfrom(third);
+ getActivity().runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ ThirdAdapter thirdAdapter = new ThirdAdapter(getActivity(),list);
+ recyclerView_third.setAdapter(thirdAdapter);
+ recyclerView_third.setLayoutManager(new GridLayoutManager(getActivity(),1));
+ }
+ });
+ }
+ });
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ setRecycleThird();
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/applock/lockadapter/FragmentAdapter.java b/app/src/main/java/com/example/applock/lockadapter/FragmentAdapter.java
new file mode 100644
index 0000000..e47f77b
--- /dev/null
+++ b/app/src/main/java/com/example/applock/lockadapter/FragmentAdapter.java
@@ -0,0 +1,34 @@
+package com.example.applock.lockadapter;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
+import androidx.viewpager2.adapter.FragmentStateAdapter;
+
+import com.example.applock.fragment.LockedFragment;
+import com.example.applock.fragment.SystemFragment;
+import com.example.applock.fragment.ThirdFragment;
+
+public class FragmentAdapter extends FragmentStateAdapter {
+ public FragmentAdapter(@NonNull FragmentActivity fragmentActivity) {
+ super(fragmentActivity);
+ }
+
+ @NonNull
+ @Override
+ public Fragment createFragment(int position) {
+ switch (position){
+ case 0:
+ return new SystemFragment();
+ case 1:
+ return new ThirdFragment();
+ default:
+ return new LockedFragment();
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return 3;
+ }
+}
diff --git a/app/src/main/java/com/example/applock/lockadapter/LockedAdapter.java b/app/src/main/java/com/example/applock/lockadapter/LockedAdapter.java
new file mode 100644
index 0000000..931f069
--- /dev/null
+++ b/app/src/main/java/com/example/applock/lockadapter/LockedAdapter.java
@@ -0,0 +1,87 @@
+package com.example.applock.lockadapter;
+
+import android.content.DialogInterface;
+import android.content.SharedPreferences;
+import android.graphics.drawable.Drawable;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.example.applock.R;
+import com.example.applock.allmanager.AppManager;
+import com.example.applock.databinding.ItemAppBinding;
+import com.example.applock.databinding.LockedAppBinding;
+import com.example.applock.roombase.AppDataBase;
+import com.example.applock.roombase.AppEntity;
+import com.example.applock.roombase.SoftWareLockRoom;
+
+import java.util.List;
+
+public class LockedAdapter extends RecyclerView.Adapter {
+ private FragmentActivity mycon;
+ private List mylist;
+ private boolean lockedapp = true;
+ public LockedAdapter(FragmentActivity context,List entities){
+ mylist = entities;
+ mycon = context;
+ }
+ @NonNull
+ @Override
+ public LockedVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ LockedAppBinding lockedAppBinding = LockedAppBinding.inflate(LayoutInflater.from(mycon),parent,false);
+ return new LockedVH(lockedAppBinding);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull LockedVH holder, int position) {
+ AppEntity entityApp = mylist.get(position);
+ String label = entityApp.getApplabel();
+ holder.lockedbinding.lockedLabel.setText(label);
+ Drawable icon = AppManager.getIcon(mycon, entityApp.getApppackageName());
+ if (icon != null) {
+ holder.lockedbinding.lockedLogo.setImageDrawable(icon);
+ }
+ holder.lockedbinding.lockedLocked.setBackgroundResource(R.drawable.lock);
+ holder.lockedbinding.lockedLocked.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (lockedapp){
+ holder.lockedbinding.lockedLocked.setBackgroundResource(R.drawable.unlock);
+ lockedapp = false;
+ entityApp.setApplocked(false);
+ Toast.makeText(mycon,mycon.getText(R.string.unlock_success),Toast.LENGTH_SHORT).show();
+ }else {
+ holder.lockedbinding.lockedLocked.setBackgroundResource(R.drawable.lock);
+ lockedapp = true;
+ entityApp.setApplocked(true);
+ Toast.makeText(mycon,mycon.getText(R.string.lock_success),Toast.LENGTH_SHORT).show();
+ }
+ SoftWareLockRoom.RUNIO(new Runnable() {
+ @Override
+ public void run() {
+ AppDataBase.getDatabaseInstance().getAppEntityDao().updateData(entityApp);
+ }
+ });
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mylist.size();
+ }
+
+ public class LockedVH extends RecyclerView.ViewHolder {
+ private LockedAppBinding lockedbinding;
+ public LockedVH(@NonNull LockedAppBinding itemView) {
+ super(itemView.getRoot());
+ lockedbinding = itemView;
+ }
+ }
+}
diff --git a/app/src/main/java/com/example/applock/lockadapter/SearchAdapter.java b/app/src/main/java/com/example/applock/lockadapter/SearchAdapter.java
new file mode 100644
index 0000000..a737b69
--- /dev/null
+++ b/app/src/main/java/com/example/applock/lockadapter/SearchAdapter.java
@@ -0,0 +1,91 @@
+package com.example.applock.lockadapter;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.graphics.drawable.Drawable;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.example.applock.R;
+import com.example.applock.allmanager.AppManager;
+import com.example.applock.databinding.RecycleSearchViewBinding;
+import com.example.applock.listener.LockListener;
+import com.example.applock.roombase.AppDataBase;
+import com.example.applock.roombase.AppEntity;
+import com.example.applock.roombase.SoftWareLockRoom;
+
+import java.util.List;
+
+public class SearchAdapter extends RecyclerView.Adapter {
+ private RecycleSearchViewBinding recycleSearchViewBinding;
+ private Context mycon;
+ private List entityList;
+ private boolean searchlock;
+ public SearchAdapter(Context context, List appEntities){
+ mycon = context;
+ entityList = appEntities;
+ }
+ @NonNull
+ @Override
+ public SearchVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ recycleSearchViewBinding = RecycleSearchViewBinding.inflate(LayoutInflater.from(mycon),parent,false);
+ return new SearchVH(recycleSearchViewBinding);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull SearchVH holder, @SuppressLint("RecyclerView") int position) {
+ AppEntity entityApp = entityList.get(position);
+ String label = entityApp.getApplabel();
+ holder.searchViewBinding.rearchAppLabel.setText(label);
+ Drawable icon = AppManager.getIcon(mycon, entityApp.getApppackageName());
+ if (icon != null) {
+ holder.searchViewBinding.rearchAppLogo.setImageDrawable(icon);
+ }
+ searchlock = entityApp.isApplocked();
+ if (searchlock){
+ holder.searchViewBinding.rearchAppLock.setSelected(true);
+ }else {
+ holder.searchViewBinding.rearchAppLock.setSelected(false);
+ }
+ holder.searchViewBinding.rearchAppLock.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ holder.searchViewBinding.rearchAppLock.setSelected(! holder.searchViewBinding.rearchAppLock.isSelected());
+ boolean select = holder.searchViewBinding.rearchAppLock.isSelected();
+ if (!select) {
+ entityApp.setApplocked(false);
+ Toast.makeText(mycon,"unlocked success",Toast.LENGTH_SHORT).show();
+ } else {
+ entityApp.setApplocked(true);
+ Toast.makeText(mycon,"locked success",Toast.LENGTH_SHORT).show();
+ }
+ SoftWareLockRoom.RUNIO(new Runnable() {
+ @Override
+ public void run() {
+ AppDataBase.getDatabaseInstance().getAppEntityDao().updateData(entityApp);
+ }
+ });
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return entityList.size();
+ }
+
+ public class SearchVH extends RecyclerView.ViewHolder {
+ private RecycleSearchViewBinding searchViewBinding;
+ public SearchVH(RecycleSearchViewBinding recycleSearchViewBinding) {
+ super(recycleSearchViewBinding.getRoot());
+ searchViewBinding = recycleSearchViewBinding;
+ }
+ }
+}
diff --git a/app/src/main/java/com/example/applock/lockadapter/SoftWareAdapter.java b/app/src/main/java/com/example/applock/lockadapter/SoftWareAdapter.java
deleted file mode 100644
index a361134..0000000
--- a/app/src/main/java/com/example/applock/lockadapter/SoftWareAdapter.java
+++ /dev/null
@@ -1,198 +0,0 @@
-package com.example.applock.lockadapter;
-
-import android.annotation.SuppressLint;
-import android.app.Activity;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.SharedPreferences;
-import android.graphics.drawable.Drawable;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Toast;
-
-import androidx.annotation.NonNull;
-import androidx.appcompat.app.AlertDialog;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.anythink.core.api.AdError;
-import com.anythink.interstitial.api.ATInterstitial;
-import com.example.applock.activity.KeyWordActivity;
-import com.example.applock.allmanager.AppManager;
-import com.example.applock.allmanager.Datamanager;
-import com.example.applock.application.SoftWareLockApplication;
-import com.example.applock.databinding.ItemAppBinding;
-import com.example.applock.listener.InputKeyListener;
-import com.example.applock.listener.LockListener;
-import com.example.applock.listener.SwitchListener;
-import com.example.applock.roombase.AppEntity;
-import com.example.applock.roombase.SoftWareLockRoom;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.example.applock.R;
-import com.example.applock.value.Adcallback;
-import com.example.applock.value.Mytool;
-
-public class SoftWareAdapter extends RecyclerView.Adapter {
- private List entityApp1 = new ArrayList<>();
-
- private Activity mCon;
-
- private boolean mLockList;
- private boolean lock;
- private LockListener lockListener;
- private SwitchListener switchListener;
- public static SharedPreferences keysp;
- public static SharedPreferences.Editor keyeditor;
- private int keyid;
- private List ads;
-
- public SoftWareAdapter(Activity context, boolean lock) {
- this.mCon = context;
- this.mLockList = lock;
- keysp = mCon.getSharedPreferences("key", Context.MODE_PRIVATE);
- ads = SoftWareLockApplication.lodAd();
- }
-
- public void setLockListener(LockListener lockListener) {
- this.lockListener = lockListener;
- }
-
- public void setSwitchListener(SwitchListener switchListener) {
- this.switchListener = switchListener;
- }
-
- @NonNull
- @Override
- public SoftWareViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- ItemAppBinding itemAppBinding = ItemAppBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
- return new SoftWareViewHolder(itemAppBinding);
- }
-
- @Override
- public void onBindViewHolder(@NonNull SoftWareViewHolder holder, @SuppressLint("RecyclerView") int position) {
- AppEntity entityApp = entityApp1.get(position);
- String label = entityApp.getApplabel();
- holder.itemAppBinding.appLabel.setText(label);
- Drawable icon = AppManager.getIcon(mCon, entityApp.getApppackageName());
- if (icon != null) {
- holder.itemAppBinding.appLogo.setImageDrawable(icon);
- }
- holder.itemAppBinding.appLocked.setSelected(entityApp.isApplocked());
- holder.itemAppBinding.appLocked.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- keyid = getkey();
- keyid++;
- keyeditor = keysp.edit();
- if (keyid % 5 == 0) {
- keyeditor.putInt("key", keyid);
- keyeditor.apply();
- ATInterstitial mInterstitialAd = Mytool.onCache(ads);
- if (mInterstitialAd == null) {
- initEvent(label, entityApp, position, holder.itemAppBinding.appLocked);
- } else {
- Mytool.setCallback(mInterstitialAd, new Adcallback() {
- @Override
- public void onShowFail(AdError ad) {
- initEvent(label, entityApp, position, holder.itemAppBinding.appLocked);
- }
-
- @Override
- public void onAdHidden() {
- initEvent(label, entityApp, position, holder.itemAppBinding.appLocked);
- }
- });
- mInterstitialAd.show(mCon);
- }
-
- } else {
- keyeditor.putInt("key", keyid);
- keyeditor.apply();
- initEvent(label, entityApp, position, holder.itemAppBinding.appLocked);
- }
- }
- });
-
- }
-
-
-
- private void initEvent(String label, AppEntity entityApp, int position, View view) {
- Datamanager.setOpCount();
- AlertDialog alertDialog2 = new AlertDialog.Builder(mCon)
- .setTitle("Prompt")
- .setMessage("Are you sure " + label + "?")
- .setIcon(R.mipmap.intologo)
- .setPositiveButton("Sure", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- boolean selected = view.isSelected();
- view.setSelected(!selected);
- boolean selectedNew = view.isSelected();
- entityApp.setApplocked(selectedNew);
- SoftWareLockRoom.updateRoom(entityApp);
- String name2;
- if (selectedNew) {
- if (!mLockList) {
- entityApp1.remove(entityApp);
- notifyItemRemoved(position);
- } else {
-
- }
- name2 = String.format(mCon.getString(R.string.lock_app), label);
- setbacklistener(name2);
- } else {
- name2 = String.format(mCon.getString(R.string.unlock_app), label);
- setbacklistener(name2);
- if (mLockList) {
- entityApp1.remove(entityApp);
- notifyItemRemoved(position);
- }
- }
- }
- })
- .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- //holder.itemAppBinding.appLocked.setSelected(!selected);
- }
- })
- .create();
- alertDialog2.show();
- }
-
- public static int getkey() {
- return keysp.getInt("key", 0);
- }
-
- private void setbacklistener(String softname) {
- if (lockListener != null) {
- lockListener.onSwitch(softname);
- }
- }
-
-
- @Override
- public int getItemCount() {
- return entityApp1.size();
- }
-
- public void setEntityApps(List apps) {
- entityApp1 = apps;
- notifyDataSetChanged();
-
- }
-
- static class SoftWareViewHolder extends RecyclerView.ViewHolder {
- private ItemAppBinding itemAppBinding;
-
- public SoftWareViewHolder(@NonNull ItemAppBinding itemView) {
- super(itemView.getRoot());
- itemAppBinding = itemView;
- }
- }
-}
diff --git a/app/src/main/java/com/example/applock/lockadapter/SystemAdapter.java b/app/src/main/java/com/example/applock/lockadapter/SystemAdapter.java
new file mode 100644
index 0000000..6ce1970
--- /dev/null
+++ b/app/src/main/java/com/example/applock/lockadapter/SystemAdapter.java
@@ -0,0 +1,168 @@
+package com.example.applock.lockadapter;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.SharedPreferences;
+import android.graphics.drawable.Drawable;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.anythink.core.api.AdError;
+import com.anythink.interstitial.api.ATInterstitial;
+import com.example.applock.R;
+import com.example.applock.allmanager.AppManager;
+import com.example.applock.allmanager.MsgDialog;
+import com.example.applock.allmanager.MyWorker;
+import com.example.applock.allmanager.SoftLockPermission;
+import com.example.applock.allmanager.SoftWarePerssionDialog;
+import com.example.applock.application.SoftWareLockApplication;
+import com.example.applock.databinding.ItemAppBinding;
+import com.example.applock.listener.LockListener;
+import com.example.applock.roombase.AppDataBase;
+import com.example.applock.roombase.AppEntity;
+import com.example.applock.roombase.SoftWareLockRoom;
+import com.example.applock.value.Adcallback;
+import com.example.applock.value.MyAllValues;
+import com.example.applock.value.Mytool;
+import com.pgl.ssdk.S;
+
+import java.util.List;
+import java.util.Objects;
+
+public class SystemAdapter extends RecyclerView.Adapter {
+ private FragmentActivity mycon;
+ public static SharedPreferences.Editor keyeditor;
+ private List ads;
+ private List mylist;
+ private LockListener lockListener;
+ private SoftWarePerssionDialog dialog;
+ private boolean mLockList;
+ private MsgDialog msgDialog;
+ public SystemAdapter(FragmentActivity context, List entities){
+ mycon = context;
+ mylist = entities;
+ ads = SoftWareLockApplication.lodAd();
+ }
+ public void setLockListener(LockListener lockListener) {
+ this.lockListener = lockListener;
+ }
+ @NonNull
+ @Override
+ public SystemVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ ItemAppBinding itemAppBinding = ItemAppBinding.inflate(LayoutInflater.from(mycon),parent,false);
+ return new SystemVH(itemAppBinding);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull SystemVH holder, int position) {
+ AppEntity entityApp = mylist.get(position);
+ String label = entityApp.getApplabel();
+ holder.appBinding.appLabel.setText(label);
+ Drawable icon = AppManager.getIcon(mycon, entityApp.getApppackageName());
+ if (icon != null) {
+ holder.appBinding.appLogo.setImageDrawable(icon);
+ }
+ mLockList = entityApp.isApplocked();
+ if (mLockList){
+ holder.appBinding.appLocked.setSelected(true);
+ }else {
+ holder.appBinding.appLocked.setSelected(false);
+ }
+ holder.appBinding.appLocked.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (SoftLockPermission.allAllowPermission(mycon)){
+ holder.appBinding.appLocked.setSelected(!holder.appBinding.appLocked.isSelected());
+
+ if (SoftWareLockApplication.userOption % 5 == 0) {
+ ATInterstitial mInterstitialAd = Mytool.onCache(ads);
+ if (mInterstitialAd == null) {
+ Log.d("dhn111","-----mInterstitialAd=null---------------");
+ onAction(entityApp, holder.appBinding.appLocked,true);
+ // TODO: 2024/8/16
+ } else {
+ Mytool.setCallback(mInterstitialAd, new Adcallback() {
+ @Override
+ public void onShowFail(AdError ad) {
+ Log.d("dhn111","-----onShowFail---------------");
+ onAction(entityApp, holder.appBinding.appLocked,true);
+ }
+ @Override
+ public void onAdHidden() {
+ Log.d("dhn111","-----onAdHidden---------------");
+ onAction(entityApp, holder.appBinding.appLocked,true);
+ }
+ });
+ mInterstitialAd.show(mycon);
+ }
+
+ } else {
+ Log.d("dhn111","-----不显示广告---------------");
+ onAction(entityApp, holder.appBinding.appLocked,false);
+ }
+ SoftWareLockApplication.userOption++;
+ }else {
+ getDialogsuccess();
+ }
+ }
+ });
+ }
+
+ private void onAction(AppEntity entity,ImageView imageView,boolean showDailog){
+ String msg = "";
+ boolean selected = imageView.isSelected();
+ if (!selected) {
+ entity.setApplocked(false);
+ msg = entity.getApplabel() + "unlocked success";
+ } else {
+ entity.setApplocked(true);
+ msg = entity.getApplabel() + "locked success";
+ }
+ if(showDailog){
+ msgDialog = new MsgDialog(msg);
+ msgDialog.show(mycon.getSupportFragmentManager(), "");
+
+ }
+
+ SoftWareLockRoom.RUNIO(new Runnable() {
+ @Override
+ public void run() {
+ AppDataBase.getDatabaseInstance().getAppEntityDao().updateData(entity);
+ }
+ });
+
+ }
+ private void getDialogsuccess() {
+ boolean isSelect = SoftLockPermission.isGetUsagePermission(mycon);
+ boolean isEnable = SoftLockPermission.isOverlays(mycon);
+ if (isSelect && isEnable) {
+ //goApply();
+ } else {
+ if (dialog == null) {
+ dialog = new SoftWarePerssionDialog(mycon);
+ }
+ dialog.show(mycon.getSupportFragmentManager(), "");
+ }
+ }
+ @Override
+ public int getItemCount() {
+ return mylist.size();
+ }
+
+ public class SystemVH extends RecyclerView.ViewHolder {
+ private ItemAppBinding appBinding;
+ public SystemVH(@NonNull ItemAppBinding itemView) {
+ super(itemView.getRoot());
+ appBinding = itemView;
+ }
+ }
+}
diff --git a/app/src/main/java/com/example/applock/lockadapter/ThirdAdapter.java b/app/src/main/java/com/example/applock/lockadapter/ThirdAdapter.java
new file mode 100644
index 0000000..b7df4e0
--- /dev/null
+++ b/app/src/main/java/com/example/applock/lockadapter/ThirdAdapter.java
@@ -0,0 +1,161 @@
+package com.example.applock.lockadapter;
+
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.SharedPreferences;
+import android.graphics.drawable.Drawable;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.anythink.core.api.AdError;
+import com.anythink.interstitial.api.ATInterstitial;
+import com.example.applock.R;
+import com.example.applock.allmanager.AppManager;
+import com.example.applock.allmanager.MsgDialog;
+import com.example.applock.allmanager.SoftLockPermission;
+import com.example.applock.allmanager.SoftWarePerssionDialog;
+import com.example.applock.application.SoftWareLockApplication;
+import com.example.applock.databinding.ItemAppBinding;
+import com.example.applock.listener.LockListener;
+import com.example.applock.roombase.AppDataBase;
+import com.example.applock.roombase.AppEntity;
+import com.example.applock.roombase.SoftWareLockRoom;
+import com.example.applock.value.Adcallback;
+import com.example.applock.value.MyAllValues;
+import com.example.applock.value.Mytool;
+
+import java.util.List;
+import java.util.Objects;
+
+public class ThirdAdapter extends RecyclerView.Adapter {
+ private FragmentActivity mycon;
+ private List ads;
+ private List mylist;
+ private MsgDialog msgDialog;
+ private SoftWarePerssionDialog dialog;
+ private boolean thirdlock;
+
+ public ThirdAdapter(FragmentActivity context,List entities){
+ mylist = entities;
+ mycon = context;
+ ads = SoftWareLockApplication.lodAd();
+ }
+ @NonNull
+ @Override
+ public ThirdVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ ItemAppBinding itemAppBinding = ItemAppBinding.inflate(LayoutInflater.from(mycon),parent,false);
+ return new ThirdVH(itemAppBinding);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ThirdVH holder, int position) {
+ AppEntity entityApp = mylist.get(position);
+ String label = entityApp.getApplabel();
+ holder.appBinding.appLabel.setText(label);
+ Drawable icon = AppManager.getIcon(mycon, entityApp.getApppackageName());
+ if (icon != null) {
+ holder.appBinding.appLogo.setImageDrawable(icon);
+ }
+ thirdlock = entityApp.isApplocked();
+ if (thirdlock){
+ holder.appBinding.appLocked.setSelected(true);
+ }else {
+ holder.appBinding.appLocked.setSelected(false);
+ }
+ holder.appBinding.appLocked.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (SoftLockPermission.allAllowPermission(mycon)){
+ holder.appBinding.appLocked.setSelected(!holder.appBinding.appLocked.isSelected());
+
+ if (SoftWareLockApplication.userOption2 % 5 == 0) {
+ ATInterstitial mInterstitialAd = Mytool.onCache(ads);
+ if (mInterstitialAd == null) {
+ Log.d("dhn111","-----mInterstitialAd=null---------------");
+ onAction(entityApp, holder.appBinding.appLocked,true);
+ // TODO: 2024/8/16
+ } else {
+ Mytool.setCallback(mInterstitialAd, new Adcallback() {
+ @Override
+ public void onShowFail(AdError ad) {
+ Log.d("dhn111","-----onShowFail---------------");
+ onAction(entityApp, holder.appBinding.appLocked,true);
+ }
+ @Override
+ public void onAdHidden() {
+ Log.d("dhn111","-----onAdHidden---------------");
+ onAction(entityApp, holder.appBinding.appLocked,true);
+ }
+ });
+ mInterstitialAd.show(mycon);
+ }
+
+ } else {
+ Log.d("dhn111","-----不显示广告---------------");
+ onAction(entityApp, holder.appBinding.appLocked,false);
+ }
+ SoftWareLockApplication.userOption2++;
+ }else {
+ getDialogsuccess();
+ }
+ }
+ });
+ }
+ private void onAction(AppEntity entity, ImageView imageView, boolean showDailog){
+ String msg = "";
+ boolean selected = imageView.isSelected();
+ if (!selected) {
+ entity.setApplocked(false);
+ msg = entity.getApplabel() + "unlocked success";
+ } else {
+ entity.setApplocked(true);
+ msg = entity.getApplabel() + "locked success";
+ }
+ if(showDailog){
+ msgDialog = new MsgDialog(msg);
+ msgDialog.show(mycon.getSupportFragmentManager(), "");
+
+ }
+
+ SoftWareLockRoom.RUNIO(new Runnable() {
+ @Override
+ public void run() {
+ AppDataBase.getDatabaseInstance().getAppEntityDao().updateData(entity);
+ }
+ });
+ }
+ private void getDialogsuccess() {
+ boolean isSelect = SoftLockPermission.isGetUsagePermission(mycon);
+ boolean isEnable = SoftLockPermission.isOverlays(mycon);
+ //Log.d("----eable","eable"+isEnable);
+ if (isSelect && isEnable) {
+ //goApply();
+ } else {
+ if (dialog == null) {
+ dialog = new SoftWarePerssionDialog(mycon);
+ }
+ dialog.show(mycon.getSupportFragmentManager(), "");
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return mylist.size();
+ }
+
+ public class ThirdVH extends RecyclerView.ViewHolder {
+ private ItemAppBinding appBinding;
+ public ThirdVH(@NonNull ItemAppBinding itemView) {
+ super(itemView.getRoot());
+ appBinding = itemView;
+ }
+ }
+}
diff --git a/app/src/main/java/com/example/applock/lockadapter/TopAdapter.java b/app/src/main/java/com/example/applock/lockadapter/TopAdapter.java
index b739499..e2f5f85 100644
--- a/app/src/main/java/com/example/applock/lockadapter/TopAdapter.java
+++ b/app/src/main/java/com/example/applock/lockadapter/TopAdapter.java
@@ -22,6 +22,7 @@ public class TopAdapter extends RecyclerView.Adapter {
public void onBindViewHolder(@NonNull TopViewHolder holder, int position) {
if(position ==0){
holder.topKeyViewBinding.topView.setVisibility(View.GONE);
+ holder.topKeyViewBinding.topImageKey.setVisibility(View.VISIBLE);
}else {
holder.topKeyViewBinding.topView.setVisibility(View.VISIBLE);
holder.topKeyViewBinding.topImageKey.setVisibility(View.VISIBLE);
diff --git a/app/src/main/java/com/example/applock/lockadapter/ViewPaperAdapter.java b/app/src/main/java/com/example/applock/lockadapter/ViewPaperAdapter.java
deleted file mode 100644
index 73d1e76..0000000
--- a/app/src/main/java/com/example/applock/lockadapter/ViewPaperAdapter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.example.applock.lockadapter;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentManager;
-import androidx.fragment.app.FragmentPagerAdapter;
-
-import java.util.List;
-
-public class ViewPaperAdapter extends FragmentPagerAdapter {
-
- private List fmlist;
- private String[] tabtitle;
- public ViewPaperAdapter(FragmentManager supportFragmentManager, List fragmentList, String[] tabTitle) {
- super(supportFragmentManager);
- fmlist = fragmentList;
- tabtitle = tabTitle;
-
- }
-
- @NonNull
- @Override
- public Fragment getItem(int position) {
- return fmlist.get(position);
- }
-
- @Override
- public int getCount() {
- return fmlist.size();
- }
-
- @Nullable
- @Override
- public CharSequence getPageTitle(int position) {
- return tabtitle[position];
- }
-}
diff --git a/app/src/main/java/com/example/applock/roombase/AppEntity.java b/app/src/main/java/com/example/applock/roombase/AppEntity.java
index 6294b92..f1cb32a 100644
--- a/app/src/main/java/com/example/applock/roombase/AppEntity.java
+++ b/app/src/main/java/com/example/applock/roombase/AppEntity.java
@@ -16,6 +16,7 @@ public class AppEntity {
private String applabel;
private boolean applocked;
+ private boolean appfrom;
public int getAppid() {
return appid;
@@ -48,4 +49,12 @@ public class AppEntity {
public void setApplocked(boolean applocked) {
this.applocked = applocked;
}
+
+ public boolean isAppfrom() {
+ return appfrom;
+ }
+
+ public void setAppfrom(boolean appfrom) {
+ this.appfrom = appfrom;
+ }
}
diff --git a/app/src/main/java/com/example/applock/roombase/AppEntityDao.java b/app/src/main/java/com/example/applock/roombase/AppEntityDao.java
index a09f7a9..a6c89a4 100644
--- a/app/src/main/java/com/example/applock/roombase/AppEntityDao.java
+++ b/app/src/main/java/com/example/applock/roombase/AppEntityDao.java
@@ -12,7 +12,8 @@ public interface AppEntityDao {
@Query("select * from app_table_name where apppackageName=:apppackageName")
AppEntity queryByPagName(String apppackageName);
-
+ @Query("SELECT * FROM app_table_name WHERE apppackageName LIKE '%' || :apppackageName || '%' ")
+ List QueryByInputName(String apppackageName);
@Update
void updateData(AppEntity entityApp);
@@ -22,4 +23,6 @@ public interface AppEntityDao {
@Query("select * from app_table_name where applocked=:isLock")
List queryApp(boolean isLock);
+ @Query("select * from app_table_name where appfrom=:appfrom")
+ List queryApplfrom(boolean appfrom);
}
diff --git a/app/src/main/java/com/example/applock/roombase/SoftWareLockRoom.java b/app/src/main/java/com/example/applock/roombase/SoftWareLockRoom.java
index 6652542..705f9ed 100644
--- a/app/src/main/java/com/example/applock/roombase/SoftWareLockRoom.java
+++ b/app/src/main/java/com/example/applock/roombase/SoftWareLockRoom.java
@@ -37,6 +37,9 @@ public class SoftWareLockRoom {
}
});
}
+ public static void RUNIO(Runnable runnable){
+ getMyUIServicePool().execute(runnable);
+ }
public static void insertRoom(Set list) {
getMyUIServicePool().execute(new Runnable() {
@Override
diff --git a/app/src/main/java/com/example/applock/value/MyAllValues.java b/app/src/main/java/com/example/applock/value/MyAllValues.java
index cbf6e70..5096202 100644
--- a/app/src/main/java/com/example/applock/value/MyAllValues.java
+++ b/app/src/main/java/com/example/applock/value/MyAllValues.java
@@ -13,6 +13,8 @@ public class MyAllValues {
public static String SP_KEY_COUNT = "sp_key_count";
public static final String APP_TABLE_NAME = "app_table_name";
public static String PASS_KEY_WORD = "pass_key_word";
+ public static String PASS_KEY_FROM = "pass_key_FROM";
+ public static String search_name = "search_name";
public static String PASS_WORD_TOP_KEY ="pass_word_top_key";
public static String FRAGMENT_TYPE = "fragment_type";
public static final int request_code_usage = 1;
diff --git a/app/src/main/java/com/example/applock/value/Mytool.java b/app/src/main/java/com/example/applock/value/Mytool.java
index 1b3174c..e7133d2 100644
--- a/app/src/main/java/com/example/applock/value/Mytool.java
+++ b/app/src/main/java/com/example/applock/value/Mytool.java
@@ -66,6 +66,7 @@ public class Mytool {
}
public static ATInterstitial onCache(List list) {
+ /*Collections.shuffle() 是 Java 中的一个方法,用于随机打乱指定列表中的元素1*/
Collections.shuffle(list);
for (ATInterstitial ad : list) {
if (ad.isAdReady()) {
@@ -95,7 +96,7 @@ public class Mytool {
}
});
- ad.load();
+// ad.load();
}
}
return adArrayList;
diff --git a/app/src/main/java/com/example/applock/viewmodel/SoftWareLockVM.java b/app/src/main/java/com/example/applock/viewmodel/SoftWareLockVM.java
index 95e910b..77b6963 100644
--- a/app/src/main/java/com/example/applock/viewmodel/SoftWareLockVM.java
+++ b/app/src/main/java/com/example/applock/viewmodel/SoftWareLockVM.java
@@ -23,7 +23,5 @@ public class SoftWareLockVM extends ViewModel {
mutableLiveDataApp.setValue(list);
}
});
-
-
}
}
diff --git a/app/src/main/res/drawable/btn_bg.xml b/app/src/main/res/drawable/btn_bg.xml
new file mode 100644
index 0000000..2a7a2df
--- /dev/null
+++ b/app/src/main/res/drawable/btn_bg.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/dialog_bg.xml b/app/src/main/res/drawable/dialog_bg.xml
new file mode 100644
index 0000000..e1f8350
--- /dev/null
+++ b/app/src/main/res/drawable/dialog_bg.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/go_reset.xml b/app/src/main/res/drawable/go_reset.xml
index 15ccc1d..162a5d6 100644
--- a/app/src/main/res/drawable/go_reset.xml
+++ b/app/src/main/res/drawable/go_reset.xml
@@ -4,6 +4,6 @@
android:viewportWidth="1024"
android:viewportHeight="1024">
\ No newline at end of file
diff --git a/app/src/main/res/drawable/item_app_bg.xml b/app/src/main/res/drawable/item_app_bg.xml
new file mode 100644
index 0000000..7a1b684
--- /dev/null
+++ b/app/src/main/res/drawable/item_app_bg.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/lock.xml b/app/src/main/res/drawable/lock.xml
index 3df7086..3d7986c 100644
--- a/app/src/main/res/drawable/lock.xml
+++ b/app/src/main/res/drawable/lock.xml
@@ -1,12 +1,9 @@
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
-
+ android:pathData="M9.366,10.06H6.672V6.917C6.672,6.233 6.808,5.595 7.078,5.004C7.349,4.412 7.723,3.892 8.201,3.443C8.678,2.994 9.241,2.641 9.89,2.385C10.538,2.128 11.247,2 12.017,2C12.701,2 13.36,2.128 13.994,2.385C14.629,2.641 15.191,2.994 15.683,3.443C16.175,3.892 16.567,4.412 16.859,5.004C17.151,5.595 17.297,6.233 17.297,6.917V10.06H14.71V7.516C14.71,6.618 14.461,5.923 13.962,5.431C13.464,4.94 12.786,4.694 11.931,4.694C11.162,4.694 10.542,4.94 10.071,5.431C9.601,5.923 9.366,6.618 9.366,7.516V10.06ZM18.58,11.342C18.965,11.342 19.296,11.481 19.574,11.759C19.852,12.037 19.991,12.368 19.991,12.753V19.381C19.991,19.765 19.923,20.125 19.788,20.46C19.653,20.795 19.467,21.087 19.232,21.337C18.997,21.586 18.719,21.782 18.398,21.925C18.078,22.067 17.725,22.138 17.34,22.138H6.544C6.159,22.138 5.81,22.067 5.496,21.925C5.183,21.782 4.916,21.593 4.695,21.358C4.474,21.123 4.303,20.848 4.182,20.535C4.061,20.221 4,19.886 4,19.53V12.753C4,12.368 4.135,12.037 4.406,11.759C4.677,11.481 5.005,11.342 5.39,11.342H6.672H9.366H14.71H17.297H18.58Z"
+ android:fillColor="#4584FF"/>
diff --git a/app/src/main/res/drawable/locked_src.xml b/app/src/main/res/drawable/locked_src.xml
new file mode 100644
index 0000000..819ca00
--- /dev/null
+++ b/app/src/main/res/drawable/locked_src.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/msg_dialog_bg.xml b/app/src/main/res/drawable/msg_dialog_bg.xml
new file mode 100644
index 0000000..81fc15d
--- /dev/null
+++ b/app/src/main/res/drawable/msg_dialog_bg.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/search_bg.xml b/app/src/main/res/drawable/search_bg.xml
new file mode 100644
index 0000000..889b024
--- /dev/null
+++ b/app/src/main/res/drawable/search_bg.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/search_image.xml b/app/src/main/res/drawable/search_image.xml
new file mode 100644
index 0000000..05fca5f
--- /dev/null
+++ b/app/src/main/res/drawable/search_image.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/setting_view_bg.xml b/app/src/main/res/drawable/setting_view_bg.xml
new file mode 100644
index 0000000..9f82a21
--- /dev/null
+++ b/app/src/main/res/drawable/setting_view_bg.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/system_src.xml b/app/src/main/res/drawable/system_src.xml
new file mode 100644
index 0000000..ccb0ff2
--- /dev/null
+++ b/app/src/main/res/drawable/system_src.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/third_src.xml b/app/src/main/res/drawable/third_src.xml
new file mode 100644
index 0000000..a4278a4
--- /dev/null
+++ b/app/src/main/res/drawable/third_src.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/unlock.xml b/app/src/main/res/drawable/unlock.xml
index 411241b..722de92 100644
--- a/app/src/main/res/drawable/unlock.xml
+++ b/app/src/main/res/drawable/unlock.xml
@@ -1,12 +1,9 @@
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
-
+ android:pathData="M16.981,2C17.661,2 18.316,2.128 18.946,2.383C19.577,2.638 20.136,2.988 20.625,3.434C21.114,3.881 21.507,4.401 21.805,4.996C22.102,5.591 22.251,6.229 22.251,6.909V10.054H19.68V7.504C19.68,6.611 19.428,5.917 18.925,5.421C18.422,4.926 17.746,4.678 16.896,4.678C16.131,4.678 15.514,4.926 15.047,5.421C14.579,5.917 14.346,6.611 14.346,7.504V10.097H11.668V6.909C11.668,6.229 11.803,5.591 12.072,4.996C12.341,4.401 12.713,3.881 13.187,3.434C13.662,2.988 14.222,2.638 14.866,2.383C15.511,2.128 16.216,2 16.981,2ZM16.938,16.493V18.321V19.319C16.938,19.702 16.871,20.063 16.736,20.403C16.602,20.743 16.417,21.034 16.184,21.275C15.95,21.515 15.674,21.707 15.355,21.848C15.036,21.99 14.686,22.061 14.303,22.061H3.55C3.168,22.061 2.82,21.994 2.509,21.859C2.197,21.724 1.928,21.54 1.701,21.306C1.475,21.073 1.301,20.8 1.181,20.488C1.06,20.177 1,19.844 1,19.49V12.732C1,12.335 1.138,12.002 1.414,11.733C1.691,11.464 2.013,11.329 2.381,11.329H15.536C15.932,11.329 16.265,11.464 16.534,11.733C16.804,12.002 16.938,12.335 16.938,12.732V16.493Z"
+ android:fillColor="#C4D8FF"/>
diff --git a/app/src/main/res/layout/activity_into.xml b/app/src/main/res/layout/activity_into.xml
index 4dba248..5818da2 100644
--- a/app/src/main/res/layout/activity_into.xml
+++ b/app/src/main/res/layout/activity_into.xml
@@ -18,7 +18,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
- android:textSize="40sp"
+ android:textSize="34sp"
android:layout_below="@id/lock_logo"
android:layout_centerHorizontal="true"
android:textStyle="italic"
diff --git a/app/src/main/res/layout/activity_key_word.xml b/app/src/main/res/layout/activity_key_word.xml
index f014bb4..3b16581 100644
--- a/app/src/main/res/layout/activity_key_word.xml
+++ b/app/src/main/res/layout/activity_key_word.xml
@@ -1,43 +1,66 @@
-
-
+
+
+
+
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 1a8211e..8808b15 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,141 +1,102 @@
-
-
-
-
-
-
+ android:paddingRight="20dp">
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
+ android:text="@string/locked"
+ android:layout_width="37dp" />
+
+
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_search.xml b/app/src/main/res/layout/activity_search.xml
new file mode 100644
index 0000000..47f2171
--- /dev/null
+++ b/app/src/main/res/layout/activity_search.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/activity_setting.xml
new file mode 100644
index 0000000..024285e
--- /dev/null
+++ b/app/src/main/res/layout/activity_setting.xml
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_permission.xml b/app/src/main/res/layout/dialog_permission.xml
index e9faac7..6f17a76 100644
--- a/app/src/main/res/layout/dialog_permission.xml
+++ b/app/src/main/res/layout/dialog_permission.xml
@@ -1,122 +1,134 @@
-
-
+ android:layout_width="328dp"
+ app:cardCornerRadius="24dp"
+ android:layout_gravity="center_horizontal"
+ tools:context=".activity.MainActivity"
+ android:background="@color/dialog_bg"
+ android:layout_height="wrap_content">
-
-
-
-
+ android:layout_below="@+id/title1"
+ android:text="@string/permission_text"
+ android:textStyle="bold"
+ android:textSize="20sp"
+ android:layout_centerHorizontal="true"/>
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
+
+
+
+
+
-
+ android:orientation="horizontal"
+ android:layout_marginBottom="20dp"
+ android:layout_marginTop="20dp">
+
+
+
+
+
+
+
-
+
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_locked.xml b/app/src/main/res/layout/fragment_locked.xml
new file mode 100644
index 0000000..c8d5d3f
--- /dev/null
+++ b/app/src/main/res/layout/fragment_locked.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_system.xml b/app/src/main/res/layout/fragment_system.xml
new file mode 100644
index 0000000..38c62b7
--- /dev/null
+++ b/app/src/main/res/layout/fragment_system.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_soft_ware_lock.xml b/app/src/main/res/layout/fragment_third.xml
similarity index 74%
rename from app/src/main/res/layout/fragment_soft_ware_lock.xml
rename to app/src/main/res/layout/fragment_third.xml
index 8194e2d..1a09a6d 100644
--- a/app/src/main/res/layout/fragment_soft_ware_lock.xml
+++ b/app/src/main/res/layout/fragment_third.xml
@@ -3,10 +3,12 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context=".fragment.SoftWareLockFragment">
+ tools:context=".fragment.ThirdFragment">
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_app.xml b/app/src/main/res/layout/item_app.xml
index 6df15ba..0b94274 100644
--- a/app/src/main/res/layout/item_app.xml
+++ b/app/src/main/res/layout/item_app.xml
@@ -1,41 +1,40 @@
-
-
-
-
-
-
-
-
-
+
+ android:background="@drawable/item_app_bg"
+ android:paddingLeft="12dp"
+ android:paddingRight="12dp"
+ android:layout_height="68dp">
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/locked_app.xml b/app/src/main/res/layout/locked_app.xml
new file mode 100644
index 0000000..fd61007
--- /dev/null
+++ b/app/src/main/res/layout/locked_app.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/msg_dialog.xml b/app/src/main/res/layout/msg_dialog.xml
new file mode 100644
index 0000000..1510f19
--- /dev/null
+++ b/app/src/main/res/layout/msg_dialog.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/recycle_search_view.xml b/app/src/main/res/layout/recycle_search_view.xml
new file mode 100644
index 0000000..d6c0b9d
--- /dev/null
+++ b/app/src/main/res/layout/recycle_search_view.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/top_key_view.xml b/app/src/main/res/layout/top_key_view.xml
index 08e360c..aed883b 100644
--- a/app/src/main/res/layout/top_key_view.xml
+++ b/app/src/main/res/layout/top_key_view.xml
@@ -11,6 +11,4 @@
android:layout_height="wrap_content"
android:id="@+id/top_image_key"
android:src="@drawable/top_image_key"/>
-
-
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 708cd6d..5984c20 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -6,4 +6,8 @@
#4584FF
#77A1F3
#00000000
+ #ECF2FF
+ #F5F5F5
+ #C4D8FF
+ #4584FF
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 0f7a1fb..f53c4d7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -12,7 +12,8 @@
V%s
Hello blank fragment
- Permissions. For normal use App Lock, please grant the following
+ Permissions
+ For normal use App Lock, please grant the following
Show Over Other Apps
Allow lock screen to show over other apps.
Permit to detect which app is launched bygranting access to usage statistics
@@ -21,7 +22,6 @@
The %s is Locked
The %s is Unlocked
Sorry,The password is not right!
- reset your key
Save
OK
NO
@@ -29,4 +29,16 @@
Locked
Reset successful
Unlocked
+ Reset password
+ Change Password
+ Setting
+ Privacy Policy
+ Rate Us
+ https://play.google.com/store/apps/details?id=com.soft.ware.lock.hd
+ Share App
+ https://miniwallpaper.bitbucket.io/privacy.html
+ System
+ Third
+ Lock Successful
+ Unlock Successful
\ No newline at end of file