diff --git a/.gitignore b/.gitignore
index c698dd7..3400bfa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,3 +16,5 @@ local.properties
.idea/
app/release/minimalistwallpaper_v1.0.1(2)_07_22_17_54-release.apk
app/release/minimalistwallpaper_v1.0.1(2)_07_22_18_03-release.aab
+.safedk/
+app/release/minimalistwallpaper_v1.0.3(4)_08_19_14_22-release.apk
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 8b95fa6..90988b7 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -23,8 +23,8 @@ android {
applicationId = "com.tool.minimalistwallpaper"
minSdk = 23
targetSdk = 34
- versionCode = 3
- versionName = "1.0.2"
+ versionCode = 4
+ versionName = "1.0.3"
setProperty("archivesBaseName", "minimalistwallpaper_v" + versionName + "(${versionCode})_$timestamp")
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json
new file mode 100644
index 0000000..8ea1536
--- /dev/null
+++ b/app/release/output-metadata.json
@@ -0,0 +1,20 @@
+{
+ "version": 3,
+ "artifactType": {
+ "type": "APK",
+ "kind": "Directory"
+ },
+ "applicationId": "com.tool.minimalistwallpaper",
+ "variantName": "release",
+ "elements": [
+ {
+ "type": "SINGLE",
+ "filters": [],
+ "attributes": [],
+ "versionCode": 4,
+ "versionName": "1.0.3",
+ "outputFile": "minimalistwallpaper_v1.0.3(4)_08_19_14_22-release.apk"
+ }
+ ],
+ "elementType": "File"
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b311045..17c62a6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,6 +1,6 @@
+ xmlns:tools="http://schemas.android.com/tools">
@@ -18,10 +18,16 @@
android:roundIcon="@mipmap/logo"
android:supportsRtl="true"
android:theme="@style/AppTheme"
- tools:targetApi="31" >
+ tools:targetApi="31">
+
+
+ android:exported="true">
@@ -36,8 +42,7 @@
android:exported="false" />
-
+ android:exported="true" />
\ 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..9087b4b
--- /dev/null
+++ b/app/src/main/assets/privacy.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+ Privacy Policy
+
+
+
+Privacy Policy
+Date: August 19, 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
+ - 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: amithchamara832@gmail.com.
+
+
diff --git a/app/src/main/assets/wallpaper.json b/app/src/main/assets/wallpaper.json
index 1602e72..9233098 100644
--- a/app/src/main/assets/wallpaper.json
+++ b/app/src/main/assets/wallpaper.json
@@ -2135,7 +2135,7 @@
"source": "https://resource-sg-public.lux-ad.com/wallpaper/0a42a3b35cfb1a570a6fdb97fd20fb47.jpg"
}
],
- "name": "Editoru0027s Choice"
+ "name": "Editor'Choice"
},
{
"data": [
diff --git a/app/src/main/java/com/tool/minimalistwallpaper/activity/MainActivity.java b/app/src/main/java/com/tool/minimalistwallpaper/activity/MainActivity.java
index 6627d47..be36631 100644
--- a/app/src/main/java/com/tool/minimalistwallpaper/activity/MainActivity.java
+++ b/app/src/main/java/com/tool/minimalistwallpaper/activity/MainActivity.java
@@ -17,6 +17,7 @@ import com.tool.minimalistwallpaper.databinding.ActivityMainBinding;
public class MainActivity extends AppCompatActivity {
ActivityMainBinding binding;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -32,7 +33,7 @@ public class MainActivity extends AppCompatActivity {
binding.mainViewpager.setAdapter(new PageAdapter(getSupportFragmentManager()));
binding.mainTabLayout.setupWithViewPager(binding.mainViewpager);
- setmainTabIcons(binding.mainTabLayout);
+ setTabIcons(0);
binding.mainViewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
@@ -52,13 +53,14 @@ public class MainActivity extends AppCompatActivity {
}
+
private void setTabIcons(final int position) {
- for (int i = 0; i < binding.mainTabLayout.getTabCount(); i++) {
- final TabLayout.Tab tab = binding.mainTabLayout.getTabAt(i);
+ for (int i = 0; i < binding.mainTabLayout.getTabCount(); i++) {
+ final TabLayout.Tab tab = binding.mainTabLayout.getTabAt(i);
if (tab != null) {
switch (i) {
case 0:
- tab.setIcon(position == 0 ? R.drawable.home_check : R.drawable.home_uncheck);
+ tab.setIcon(position == 0 ? R.drawable.main_check : R.drawable.main_uncheck);
break;
case 1:
tab.setIcon(position == 1 ? R.drawable.class_check : R.drawable.class_uncheck);
@@ -72,26 +74,6 @@ public class MainActivity extends AppCompatActivity {
}
}
}
- private void setmainTabIcons(TabLayout tabLayout) {
- for (int i = 0; i < tabLayout.getTabCount(); i++) {
- TabLayout.Tab tab = tabLayout.getTabAt(i);
- if (tab != null) {
- switch (i) {
- case 0:
- tab.setIcon(R.drawable.home_check);
- break;
- case 1:
- tab.setIcon(R.drawable.class_uncheck);
- break;
- case 2:
- tab.setIcon(R.drawable.like_uncheck);
- break;
- default:
- break;
- }
- }
- }
- }
@Override
diff --git a/app/src/main/java/com/tool/minimalistwallpaper/activity/PreViewActivity.java b/app/src/main/java/com/tool/minimalistwallpaper/activity/PreViewActivity.java
index 5dfac3b..8b7954d 100644
--- a/app/src/main/java/com/tool/minimalistwallpaper/activity/PreViewActivity.java
+++ b/app/src/main/java/com/tool/minimalistwallpaper/activity/PreViewActivity.java
@@ -4,12 +4,16 @@ import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
import androidx.core.graphics.Insets;
import androidx.core.view.GestureDetectorCompat;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
+import android.Manifest;
import android.annotation.SuppressLint;
+import android.app.Dialog;
import android.app.WallpaperManager;
import android.content.ActivityNotFoundException;
import android.content.BroadcastReceiver;
@@ -20,6 +24,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
+import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Build;
@@ -29,8 +34,11 @@ import android.os.Handler;
import android.provider.MediaStore;
import android.util.Log;
import android.view.GestureDetector;
+import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
import android.widget.ProgressBar;
import android.widget.Toast;
@@ -74,6 +82,7 @@ public class PreViewActivity extends AppCompatActivity {
public static boolean KEY_Change = false;
private Otherdata checkdata = new Otherdata();
private static List adsList;
+ private Dialog dialog;
@SuppressLint("MissingInflatedId")
@Override
@@ -98,9 +107,10 @@ public class PreViewActivity extends AppCompatActivity {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_WALLPAPER_CHANGED.equals(intent.getAction())) {
+ unregisterReceiver(wallpaperChangedReceiver);
finish();
Toast.makeText(PreViewActivity.this, getString(R.string.set_successful), Toast.LENGTH_SHORT).show();
- unregisterReceiver(wallpaperChangedReceiver);
+
}
}
};
@@ -128,29 +138,7 @@ public class PreViewActivity extends AppCompatActivity {
binding.preSetwp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- binding.imgSetwallpaper.setVisibility(View.GONE);
- binding.pgSetwallpaper.setVisibility(View.VISIBLE);
- List permissions = new ArrayList<>();
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
- permissions.add(android.Manifest.permission.READ_MEDIA_IMAGES);
- }
- permissions.add(android.Manifest.permission.READ_EXTERNAL_STORAGE);
- permissions.add(android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
- }
- permissions.add(android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
- PermissionX.init(PreViewActivity.this)
- .permissions(permissions)
- .request((allGranted, grantedList, deniedList) -> {
- if (!allGranted) {
- binding.imgSetwallpaper.setVisibility(View.VISIBLE);
- binding.pgSetwallpaper.setVisibility(View.GONE);
- Toast.makeText(PreViewActivity.this, getString(R.string.permission_tips), Toast.LENGTH_SHORT).show();
- } else {
-
- showAd();
- }
- });
+ showDg();
}
});
@@ -212,14 +200,12 @@ public class PreViewActivity extends AppCompatActivity {
private void downWp() {
List permissions = new ArrayList<>();
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
- permissions.add(android.Manifest.permission.READ_MEDIA_IMAGES);
- }
- permissions.add(android.Manifest.permission.READ_EXTERNAL_STORAGE);
- permissions.add(android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+ permissions.add(Manifest.permission.READ_MEDIA_IMAGES);
+ } else {
+ permissions.add(Manifest.permission.READ_EXTERNAL_STORAGE);
+ permissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
- permissions.add(android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
PermissionX.init(PreViewActivity.this)
.permissions(permissions)
.request((allGranted, grantedList, deniedList) -> {
@@ -233,6 +219,69 @@ public class PreViewActivity extends AppCompatActivity {
});
}
+ private void showDg() {
+ dialog = new Dialog(this);
+ dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
+ dialog.setContentView(R.layout.dialog);
+ dialog.setCancelable(true);
+
+ dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
+
+ WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
+ lp.copyFrom(dialog.getWindow().getAttributes());
+ lp.width = WindowManager.LayoutParams.WRAP_CONTENT;
+ lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
+
+ dialog.findViewById(R.id.both_pg).setVisibility(View.GONE);
+ dialog.findViewById(R.id.lock_pg).setVisibility(View.GONE);
+ dialog.findViewById(R.id.home_pg).setVisibility(View.GONE);
+ dialog.findViewById(R.id.dialog_lock).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ dialog.findViewById(R.id.lock_pg).setVisibility(View.VISIBLE);
+ dialog.findViewById(R.id.lock_text).setVisibility(View.GONE);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ showAd(WallpaperManager.FLAG_LOCK);
+// Log.e("zzj", "---FLAG_LOCK---");
+ } else {
+ showAd(123);
+ }
+ }
+ });
+ dialog.findViewById(R.id.dialog_both).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ dialog.findViewById(R.id.both_pg).setVisibility(View.VISIBLE);
+ dialog.findViewById(R.id.both_text).setVisibility(View.GONE);
+// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+//// showAd(WallpaperManager.FLAG_LOCK | WallpaperManager.FLAG_SYSTEM);
+//// setWp(setmap, WallpaperManager.FLAG_LOCK | WallpaperManager.FLAG_SYSTEM);
+// Log.e("zzj", "---both---");
+// } else {
+// setALLWp(setmap);
+// }
+ showAd(123);
+ }
+ });
+ dialog.findViewById(R.id.dialog_home).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ dialog.findViewById(R.id.home_pg).setVisibility(View.VISIBLE);
+ dialog.findViewById(R.id.home_text).setVisibility(View.GONE);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ showAd(WallpaperManager.FLAG_SYSTEM);
+ } else {
+ showAd(123);
+ }
+
+ }
+ });
+
+ dialog.show();
+ dialog.getWindow().setAttributes(lp);
+
+ }
+
@SuppressLint("CheckResult")
private void downloadwp() {
if (downloadmap != null) {
@@ -304,31 +353,34 @@ public class PreViewActivity extends AppCompatActivity {
}
}
- private void setWp(Bitmap bitmap) {
+ private void setWp(Bitmap bitmap, int Flag) {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ wallpaperManager.setBitmap(bitmap, null, false, Flag);
+ } else {
+ wallpaperManager.setBitmap(bitmap);
+ }
+
+ } catch (IOException a) {
+ a.printStackTrace();
+ }
+ }
+ }).start();
+ }
+
+ private void setALLWp(Bitmap bitmap) {
new Thread(new Runnable() {
@Override
public void run() {
try {
wallpaperManager.setBitmap(bitmap);
} catch (IOException a) {
-// Toast.makeText(PreViewActivity.this, getString(R.string.set_failed), Toast.LENGTH_SHORT).show();
a.printStackTrace();
}
-// Intent intent = new Intent(Intent.ACTION_SET_WALLPAPER);
-//// intent.setData(getImageUri(PreViewActivity.this, bitmap));
-//// intent.setDataAndType(getImageUri(PreViewActivity.this, bitmap), "image/*");
-// try {
-// startActivity(intent);
-// } catch (ActivityNotFoundException e) {
-// try {
-// wallpaperManager.setBitmap(bitmap);
-// } catch (IOException a) {
-//// Toast.makeText(PreViewActivity.this, getString(R.string.set_failed), Toast.LENGTH_SHORT).show();
-// a.printStackTrace();
-// }
-// e.printStackTrace();
-// }
-
}
}).start();
}
@@ -445,21 +497,21 @@ public class PreViewActivity extends AppCompatActivity {
// unregisterReceiver(wallpaperChangedReceiver);
}
- private void showAd() {
+ private void showAd(int Flag) {
MaxInterstitialAd cachedAd = Mytools.onCache(adsList);
if (cachedAd == null) {
- setWp(setmap);
+ setWp(setmap, Flag);
} else {
Mytools.setCallBcak(cachedAd, new Adcallback() {
@Override
public void onShowFail(MaxAd ad) {
- setWp(setmap);
+ setWp(setmap, Flag);
}
@Override
public void onAdHidden() {
- setWp(setmap);
+ setWp(setmap, Flag);
}
});
cachedAd.showAd(this);
@@ -471,7 +523,6 @@ public class PreViewActivity extends AppCompatActivity {
protected void onStop() {
super.onStop();
if (binding.preImage != null) {
- Log.e("zzj", " ");
Glide.with(this)
.clear(binding.preImage);
}
diff --git a/app/src/main/java/com/tool/minimalistwallpaper/activity/SettingActivity.java b/app/src/main/java/com/tool/minimalistwallpaper/activity/SettingActivity.java
new file mode 100644
index 0000000..e48a544
--- /dev/null
+++ b/app/src/main/java/com/tool/minimalistwallpaper/activity/SettingActivity.java
@@ -0,0 +1,70 @@
+package com.tool.minimalistwallpaper.activity;
+
+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 android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.view.View;
+
+import com.tool.minimalistwallpaper.R;
+import com.tool.minimalistwallpaper.databinding.ActivitySettingBinding;
+
+public class SettingActivity extends AppCompatActivity {
+ ActivitySettingBinding binding;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ binding = ActivitySettingBinding.inflate(getLayoutInflater());
+ setContentView(binding.getRoot());
+
+ EdgeToEdge.enable(this);
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.activity_setting), (v, insets) -> {
+ Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
+ return insets;
+ });
+
+ initEvent();
+
+ }
+
+ private void initEvent() {
+ binding.privacy.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(SettingActivity.this, WebActivity.class);
+ startActivity(intent);
+ }
+ });
+ binding.settingBack.setOnClickListener(v -> finish());
+ binding.versionText.setText("1.0.2");
+ binding.rate.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ String url = "https://play.google.com/store/apps/details?id=com.tool.minimalistwallpaper";
+ Intent intent = new Intent(Intent.ACTION_VIEW);
+ intent.setData(Uri.parse(url));
+ startActivity(intent);
+ }
+ });
+
+ binding.share.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent share = new Intent(Intent.ACTION_SEND);
+ share.setType("text/plain");
+ share.putExtra(Intent.EXTRA_SUBJECT, R.string.app_name);
+ String text = getString(R.string.share_title);
+ text = text + "\n https://play.google.com/store/apps/details?id=" + "com.tool.minimalistwallpaper";
+ share.putExtra(Intent.EXTRA_TEXT, text);
+ startActivity(Intent.createChooser(share, "choose one"));
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/tool/minimalistwallpaper/activity/SplashActivity.java b/app/src/main/java/com/tool/minimalistwallpaper/activity/SplashActivity.java
index aa51856..423eed9 100644
--- a/app/src/main/java/com/tool/minimalistwallpaper/activity/SplashActivity.java
+++ b/app/src/main/java/com/tool/minimalistwallpaper/activity/SplashActivity.java
@@ -23,6 +23,7 @@ import com.applovin.sdk.AppLovinSdk;
import com.tool.minimalistwallpaper.MinimalistWPSkin;
import com.tool.minimalistwallpaper.R;
import com.tool.minimalistwallpaper.tools.Adcallback;
+import com.tool.minimalistwallpaper.tools.CustomProgressBar;
import com.tool.minimalistwallpaper.tools.Mytools;
import java.util.List;
@@ -31,6 +32,8 @@ public class SplashActivity extends AppCompatActivity {
private CountDownTimer countDownTimer;
private static List adsList;
public static boolean isAlreadyShow = false;
+ private float i = 0;
+
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -43,10 +46,12 @@ public class SplashActivity extends AppCompatActivity {
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
-
- countDownTimer = new CountDownTimer(11000, 100) {
+ CustomProgressBar customProgressBar = findViewById(R.id.splash_pg);
+ countDownTimer = new CountDownTimer(10100, 100) {
@Override
public void onTick(long millisUntilFinished) {
+ i++;
+ customProgressBar.setProgress(i);
if (!isAlreadyShow) {
showAdOrStartView(false);
}
@@ -61,6 +66,7 @@ public class SplashActivity extends AppCompatActivity {
};
registerBroadcastReceiver();
}
+
private void showAdOrStartView(boolean go) {
MaxInterstitialAd cachedAd = Mytools.onCache(adsList);
if (cachedAd == null) {
@@ -74,7 +80,7 @@ public class SplashActivity extends AppCompatActivity {
@Override
public void onShowFail(MaxAd ad) {
Log.e("zzj", "------------onShowFail--------fail");
- if(countDownTimer!=null){
+ if (countDownTimer != null) {
countDownTimer.cancel();
}
satrView();
@@ -112,6 +118,7 @@ public class SplashActivity extends AppCompatActivity {
adsList = Mytools.getAllAd();
countDownTimer.start();
}
+
private void satrView() {
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
startActivity(intent);
diff --git a/app/src/main/java/com/tool/minimalistwallpaper/activity/WebActivity.java b/app/src/main/java/com/tool/minimalistwallpaper/activity/WebActivity.java
new file mode 100644
index 0000000..8cc8e0a
--- /dev/null
+++ b/app/src/main/java/com/tool/minimalistwallpaper/activity/WebActivity.java
@@ -0,0 +1,34 @@
+package com.tool.minimalistwallpaper.activity;
+
+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 android.os.Bundle;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
+
+import com.tool.minimalistwallpaper.R;
+
+public class WebActivity extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_web);
+ EdgeToEdge.enable(this);
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.activity_web), (v, insets) -> {
+ Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
+ return insets;
+ });
+
+
+ WebView webView = findViewById(R.id.web);
+ webView.getSettings().setJavaScriptEnabled(true);
+ webView.setWebViewClient(new WebViewClient());
+ webView.loadUrl("file:///android_asset/privacy.html");
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/tool/minimalistwallpaper/adapter/CategoryRvAdapter.java b/app/src/main/java/com/tool/minimalistwallpaper/adapter/CategoryRvAdapter.java
index 40c1124..ec67dbb 100644
--- a/app/src/main/java/com/tool/minimalistwallpaper/adapter/CategoryRvAdapter.java
+++ b/app/src/main/java/com/tool/minimalistwallpaper/adapter/CategoryRvAdapter.java
@@ -72,22 +72,6 @@ public class CategoryRvAdapter extends RecyclerView.Adapter() {
- @Override
- public boolean onLoadFailed(@Nullable GlideException e, @Nullable Object model, @NonNull Target target, boolean isFirstResource) {
-
- return false;
- }
-
- @Override
- public boolean onResourceReady(@NonNull Drawable resource, @NonNull Object model, Target target, @NonNull DataSource dataSource, boolean isFirstResource) {
- Log.e("zzj", "load --------" + resource.toString());
- return false;
- }
- })
.transform(new RoundedCorners(Mytools.dp2Px(16)))
.into(holder.getImageViewThumb());
holder.getConstraintLayout().setOnClickListener(v -> {
diff --git a/app/src/main/java/com/tool/minimalistwallpaper/adapter/LikeAdapter.java b/app/src/main/java/com/tool/minimalistwallpaper/adapter/LikeAdapter.java
index 5073947..f545ffb 100644
--- a/app/src/main/java/com/tool/minimalistwallpaper/adapter/LikeAdapter.java
+++ b/app/src/main/java/com/tool/minimalistwallpaper/adapter/LikeAdapter.java
@@ -51,7 +51,7 @@ public class LikeAdapter extends RecyclerView.Adapter {
public void onViewRecycled(@NonNull MainRvVH holder) {
super.onViewRecycled(holder);
if (holder.getImage() != null) {
- Log.e("zzj", "===================");
+// Log.e("zzj", "===================");
Glide.with(mcontext)
.clear(holder.getImage());
}
diff --git a/app/src/main/java/com/tool/minimalistwallpaper/fragment/MainFragment.java b/app/src/main/java/com/tool/minimalistwallpaper/fragment/MainFragment.java
index 13db4aa..cbb9d96 100644
--- a/app/src/main/java/com/tool/minimalistwallpaper/fragment/MainFragment.java
+++ b/app/src/main/java/com/tool/minimalistwallpaper/fragment/MainFragment.java
@@ -16,6 +16,7 @@ import com.bumptech.glide.Glide;
import com.tool.minimalistwallpaper.MinimalistWPSkin;
import com.tool.minimalistwallpaper.R;
import com.tool.minimalistwallpaper.activity.PreViewActivity;
+import com.tool.minimalistwallpaper.activity.SettingActivity;
import com.tool.minimalistwallpaper.adapter.MainRvAdapter;
import com.tool.minimalistwallpaper.data.Otherdata;
import com.tool.minimalistwallpaper.databinding.FragmentMainBinding;
@@ -59,6 +60,15 @@ public class MainFragment extends Fragment {
binding.mainRv.addItemDecoration(spaceItem);
+
+ binding.setting.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(requireContext(), SettingActivity.class);
+ startActivity(intent);
+ }
+ });
+
return binding.getRoot();
}
diff --git a/app/src/main/java/com/tool/minimalistwallpaper/tools/CustomProgressBar.kt b/app/src/main/java/com/tool/minimalistwallpaper/tools/CustomProgressBar.kt
new file mode 100644
index 0000000..f562615
--- /dev/null
+++ b/app/src/main/java/com/tool/minimalistwallpaper/tools/CustomProgressBar.kt
@@ -0,0 +1,62 @@
+package com.tool.minimalistwallpaper.tools
+
+import android.content.Context
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.LinearGradient
+import android.graphics.Paint
+import android.graphics.RectF
+import android.graphics.Shader
+import android.util.AttributeSet
+import android.view.View
+
+class CustomProgressBar(context: Context, attrs: AttributeSet?) : View(context, attrs) {
+ private var progress = 0f // 当前进度
+ private val maxProgress = 100f // 最大进度
+ private val progressBarHeight = 20f // 进度条高度
+ private val cornerRadius = 10f // 圆角半径
+ private val backgroundColor = Color.parseColor("#26FFFFFF")
+ private val startColor = Color.parseColor("#FF9ce8ff") // 起始颜色
+ private val middleColor = Color.parseColor("#FFa4c4fb") // 中间颜色
+ private val endColor = Color.parseColor("#FFbfa4ee") // 结束颜色
+ private val paint = Paint()
+ private val paintTow = Paint()
+
+ init {
+ paint.style = Paint.Style.FILL
+ paint.isAntiAlias = true
+ paintTow.style = Paint.Style.FILL
+ paintTow.isAntiAlias = true
+ }
+
+ override fun onDraw(canvas: Canvas) {
+ super.onDraw(canvas)
+ // 绘制底色矩形
+ paint.shader = null // 重置着色器
+ paint.color = backgroundColor
+ val backgroundRect = RectF(0f, (height / 2 - progressBarHeight / 2), width.toFloat(), (height / 2 + progressBarHeight / 2))
+ canvas.drawRoundRect(backgroundRect, cornerRadius, cornerRadius, paint)
+
+
+ // 计算进度条的宽度
+ val progressBarWidth = (width * progress / maxProgress)
+
+ // 创建颜色渐变对象
+ val gradient = LinearGradient(0f, 0f, width.toFloat(), 0f, intArrayOf(startColor, middleColor, endColor), null, Shader.TileMode.CLAMP)
+ paintTow.shader = gradient
+
+ // 绘制带圆角的进度条矩形
+ val rect = RectF(0f, (height / 2 - progressBarHeight / 2), progressBarWidth.toFloat(), (height / 2 + progressBarHeight / 2))
+ canvas.drawRoundRect(rect, cornerRadius, cornerRadius, paintTow)
+ }
+
+ fun getProgress():Float{
+ return progress
+ }
+
+ // 设置进度
+ fun setProgress(progress: Float) {
+ this.progress = progress
+ invalidate() // 请求重绘
+ }
+}
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..ea12e45
--- /dev/null
+++ b/app/src/main/res/drawable/dialog_bg.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/icon_go.xml b/app/src/main/res/drawable/icon_go.xml
new file mode 100644
index 0000000..95d18f8
--- /dev/null
+++ b/app/src/main/res/drawable/icon_go.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/icon_menu.xml b/app/src/main/res/drawable/icon_menu.xml
new file mode 100644
index 0000000..4a44bb4
--- /dev/null
+++ b/app/src/main/res/drawable/icon_menu.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/icon_privacy.xml b/app/src/main/res/drawable/icon_privacy.xml
new file mode 100644
index 0000000..cf238b4
--- /dev/null
+++ b/app/src/main/res/drawable/icon_privacy.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/icon_rate.xml b/app/src/main/res/drawable/icon_rate.xml
new file mode 100644
index 0000000..a774ef8
--- /dev/null
+++ b/app/src/main/res/drawable/icon_rate.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/icon_share.xml b/app/src/main/res/drawable/icon_share.xml
new file mode 100644
index 0000000..64d1a3e
--- /dev/null
+++ b/app/src/main/res/drawable/icon_share.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/icon_version.xml b/app/src/main/res/drawable/icon_version.xml
new file mode 100644
index 0000000..239e6cd
--- /dev/null
+++ b/app/src/main/res/drawable/icon_version.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/like_check.xml b/app/src/main/res/drawable/like_check.xml
index 08995f6..e5a9ebb 100644
--- a/app/src/main/res/drawable/like_check.xml
+++ b/app/src/main/res/drawable/like_check.xml
@@ -1,13 +1,13 @@
+ android:width="25dp"
+ android:height="24dp"
+ android:viewportWidth="25"
+ android:viewportHeight="24">
+ android:pathData="M13.109,21.233C15.054,20.237 22.206,16.166 22.206,10.1C22.206,4.715 17.735,1.124 12.625,1.124C7.686,1.124 3.044,4.715 3.044,10.1C3.044,16.166 10.196,20.237 12.141,21.233C12.291,21.31 12.457,21.351 12.625,21.351C12.793,21.351 12.959,21.31 13.109,21.233Z"
+ android:fillColor="#000000"
+ android:fillType="evenOdd"/>
+
diff --git a/app/src/main/res/drawable/like_uncheck.xml b/app/src/main/res/drawable/like_uncheck.xml
index 2046974..da9fa33 100644
--- a/app/src/main/res/drawable/like_uncheck.xml
+++ b/app/src/main/res/drawable/like_uncheck.xml
@@ -1,13 +1,13 @@
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ android:pathData="M12.484,21.233C14.429,20.237 21.581,16.166 21.581,10.1C21.581,4.715 17.11,1.124 12,1.124C7.061,1.124 2.419,4.715 2.419,10.1C2.419,16.166 9.571,20.237 11.516,21.233C11.666,21.31 11.832,21.351 12,21.351C12.168,21.351 12.334,21.31 12.484,21.233Z"
+ android:fillColor="#CFCFCF"
+ android:fillType="evenOdd"/>
+
diff --git a/app/src/main/res/drawable/main_check.xml b/app/src/main/res/drawable/main_check.xml
new file mode 100644
index 0000000..4f2f83b
--- /dev/null
+++ b/app/src/main/res/drawable/main_check.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/main_uncheck.xml b/app/src/main/res/drawable/main_uncheck.xml
new file mode 100644
index 0000000..50405b4
--- /dev/null
+++ b/app/src/main/res/drawable/main_uncheck.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/setting_cons_bg.xml b/app/src/main/res/drawable/setting_cons_bg.xml
new file mode 100644
index 0000000..fcc0c3d
--- /dev/null
+++ b/app/src/main/res/drawable/setting_cons_bg.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
\ 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..b2935a6
--- /dev/null
+++ b/app/src/main/res/layout/activity_setting.xml
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml
index 49e49d4..5e738ac 100644
--- a/app/src/main/res/layout/activity_splash.xml
+++ b/app/src/main/res/layout/activity_splash.xml
@@ -2,9 +2,9 @@
@@ -38,11 +38,11 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/logo" />
-
diff --git a/app/src/main/res/layout/activity_web.xml b/app/src/main/res/layout/activity_web.xml
new file mode 100644
index 0000000..2607197
--- /dev/null
+++ b/app/src/main/res/layout/activity_web.xml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/category_list.xml b/app/src/main/res/layout/category_list.xml
index 5c80d14..5be03a5 100644
--- a/app/src/main/res/layout/category_list.xml
+++ b/app/src/main/res/layout/category_list.xml
@@ -21,7 +21,7 @@
android:layout_marginStart="20dp"
android:layout_marginTop="20dp"
android:textColor="@color/white"
- android:textSize="24sp"
+ android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
diff --git a/app/src/main/res/layout/dialog.xml b/app/src/main/res/layout/dialog.xml
new file mode 100644
index 0000000..786843c
--- /dev/null
+++ b/app/src/main/res/layout/dialog.xml
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_category.xml b/app/src/main/res/layout/fragment_category.xml
index 5a83f46..d1dfa10 100644
--- a/app/src/main/res/layout/fragment_category.xml
+++ b/app/src/main/res/layout/fragment_category.xml
@@ -13,7 +13,7 @@
android:layout_marginTop="6dp"
android:text="@string/category"
android:textColor="@color/black"
- android:textSize="24sp"
+ android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
diff --git a/app/src/main/res/layout/fragment_like.xml b/app/src/main/res/layout/fragment_like.xml
index 63f85f6..e35d924 100644
--- a/app/src/main/res/layout/fragment_like.xml
+++ b/app/src/main/res/layout/fragment_like.xml
@@ -13,7 +13,7 @@
android:layout_height="wrap_content"
android:text="@string/like_title"
android:textColor="@color/black"
- android:textSize="24sp"
+ android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -33,7 +33,7 @@
android:gravity="center"
android:text="@string/nolike_tips"
android:textColor="@color/gray"
- android:textSize="16sp"
+ android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml
index fd642b4..5f16d75 100644
--- a/app/src/main/res/layout/fragment_main.xml
+++ b/app/src/main/res/layout/fragment_main.xml
@@ -13,11 +13,23 @@
android:layout_marginTop="6dp"
android:text="@string/app_name"
android:textColor="@color/black"
- android:textSize="24sp"
+ android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
+
+
+
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 359cc74..ff304e2 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -4,4 +4,5 @@
#FFFFFFFF
#ffaaaaaa
#D9D9D9
+ #ABABAB
\ 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 329a92d..0bd5c5f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -10,4 +10,14 @@
Category
Wallpaper settings successful
Failed to set wallpaper
+ Settings
+ Privacy Policy
+ Share
+ Rate
+ Version
+ Here is a Minimalist Wallpaper
+ Set as wallpaper
+ Home Screen
+ Lock Screen
+ Both
\ No newline at end of file