From 0057aa81dec3ac90cce1adea26d0ddd89e034f55 Mon Sep 17 00:00:00 2001 From: zhouzhijia Date: Mon, 19 Aug 2024 15:31:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20UI=201.0.3=EF=BC=884?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + app/build.gradle.kts | 4 +- app/release/output-metadata.json | 20 ++ app/src/main/AndroidManifest.xml | 15 +- app/src/main/assets/privacy.html | 122 ++++++++++ app/src/main/assets/wallpaper.json | 2 +- .../activity/MainActivity.java | 30 +-- .../activity/PreViewActivity.java | 157 ++++++++----- .../activity/SettingActivity.java | 70 ++++++ .../activity/SplashActivity.java | 13 +- .../activity/WebActivity.java | 34 +++ .../adapter/CategoryRvAdapter.java | 16 -- .../adapter/LikeAdapter.java | 2 +- .../fragment/MainFragment.java | 10 + .../tools/CustomProgressBar.kt | 62 +++++ app/src/main/res/drawable/dialog_bg.xml | 7 + app/src/main/res/drawable/icon_go.xml | 10 + app/src/main/res/drawable/icon_menu.xml | 15 ++ app/src/main/res/drawable/icon_privacy.xml | 9 + app/src/main/res/drawable/icon_rate.xml | 9 + app/src/main/res/drawable/icon_share.xml | 9 + app/src/main/res/drawable/icon_version.xml | 9 + app/src/main/res/drawable/like_check.xml | 20 +- app/src/main/res/drawable/like_uncheck.xml | 20 +- app/src/main/res/drawable/main_check.xml | 10 + app/src/main/res/drawable/main_uncheck.xml | 10 + app/src/main/res/drawable/setting_cons_bg.xml | 8 + app/src/main/res/layout/activity_setting.xml | 211 ++++++++++++++++++ app/src/main/res/layout/activity_splash.xml | 12 +- app/src/main/res/layout/activity_web.xml | 13 ++ app/src/main/res/layout/category_list.xml | 2 +- app/src/main/res/layout/dialog.xml | 134 +++++++++++ app/src/main/res/layout/fragment_category.xml | 2 +- app/src/main/res/layout/fragment_like.xml | 4 +- app/src/main/res/layout/fragment_main.xml | 16 +- app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/strings.xml | 10 + 37 files changed, 963 insertions(+), 137 deletions(-) create mode 100644 app/release/output-metadata.json create mode 100644 app/src/main/assets/privacy.html create mode 100644 app/src/main/java/com/tool/minimalistwallpaper/activity/SettingActivity.java create mode 100644 app/src/main/java/com/tool/minimalistwallpaper/activity/WebActivity.java create mode 100644 app/src/main/java/com/tool/minimalistwallpaper/tools/CustomProgressBar.kt create mode 100644 app/src/main/res/drawable/dialog_bg.xml create mode 100644 app/src/main/res/drawable/icon_go.xml create mode 100644 app/src/main/res/drawable/icon_menu.xml create mode 100644 app/src/main/res/drawable/icon_privacy.xml create mode 100644 app/src/main/res/drawable/icon_rate.xml create mode 100644 app/src/main/res/drawable/icon_share.xml create mode 100644 app/src/main/res/drawable/icon_version.xml create mode 100644 app/src/main/res/drawable/main_check.xml create mode 100644 app/src/main/res/drawable/main_uncheck.xml create mode 100644 app/src/main/res/drawable/setting_cons_bg.xml create mode 100644 app/src/main/res/layout/activity_setting.xml create mode 100644 app/src/main/res/layout/activity_web.xml create mode 100644 app/src/main/res/layout/dialog.xml 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:

+ + +

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:

+ +

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