diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 20fd412..b1911be 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -8,19 +8,24 @@ plugins { alias(libs.plugins.android.application) id("org.jetbrains.kotlin.android") kotlin("kapt") + id("com.google.gms.google-services") + id("com.google.firebase.crashlytics") + id("applovin-quality-service") +} +applovin{ + apiKey = "yatmRma9RKlsVe1if4NVbCKUizbmnIgxrtP84RJ2FMcQ5IfcZmuauBmU10zf9CTTaOJrzeIoGCmgT7uTlyigFN" } - android { namespace = "com.app.wallpaper" compileSdk = 34 defaultConfig { //com.wallpapers.gallery - applicationId = "com.wallpapers.gallery.test" + applicationId = "com.wallpapers.gallery" minSdk = 23 targetSdk = 34 - versionCode = 2 - versionName = "1.0.1" + versionCode = 3 + versionName = "1.0.2" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" setProperty("archivesBaseName", "Wallpapers Gallery_V" + versionName + "(${versionCode})_$timestamp") } @@ -64,4 +69,16 @@ dependencies { implementation("com.github.bumptech.glide:glide:4.16.0") implementation("com.google.code.gson:gson:2.10.1") kapt("androidx.room:room-compiler:2.5.0") + + + //----------------firebase + implementation(platform("com.google.firebase:firebase-bom:33.1.1")) + implementation("com.google.firebase:firebase-crashlytics") + implementation("com.google.firebase:firebase-analytics") + + implementation("com.applovin:applovin-sdk:+") + implementation("com.applovin.mediation:vungle-adapter:+") + implementation("com.applovin.mediation:mintegral-adapter:+") + implementation("com.applovin.mediation:bytedance-adapter:+") + implementation("com.applovin.mediation:unityads-adapter:+") } diff --git a/app/google-services.json b/app/google-services.json new file mode 100644 index 0000000..69fd46f --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,29 @@ +{ + "project_info": { + "project_number": "304045442827", + "project_id": "wallpapers-gallery-c67ad", + "storage_bucket": "wallpapers-gallery-c67ad.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:304045442827:android:1dce401517ecf5ac7e040e", + "android_client_info": { + "package_name": "com.wallpapers.gallery" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyA8nyGCajR1zisI1bc-Do9LevbhXmyAz3w" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/app/src/main/java/com/app/wallpaper/donwload/ImageDownloadTask.java b/app/src/main/java/com/app/wallpaper/donwload/ImageDownloadTask.java index f6ee8dd..d6f3b9f 100644 --- a/app/src/main/java/com/app/wallpaper/donwload/ImageDownloadTask.java +++ b/app/src/main/java/com/app/wallpaper/donwload/ImageDownloadTask.java @@ -33,7 +33,7 @@ public class ImageDownloadTask extends AsyncTask { int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { InputStream inputStream = connection.getInputStream(); - Uri uri = a.saveToGallery(SetData.getContext(), inputStream); + Uri uri = a.saveToGallery(SetData.context, inputStream); if(uri == null){ return false; } diff --git a/app/src/main/java/com/app/wallpaper/getdata/SetData.java b/app/src/main/java/com/app/wallpaper/getdata/SetData.java index b3ad93b..f96ed97 100644 --- a/app/src/main/java/com/app/wallpaper/getdata/SetData.java +++ b/app/src/main/java/com/app/wallpaper/getdata/SetData.java @@ -4,11 +4,18 @@ import android.app.AlertDialog; import android.app.Application; import android.content.Context; import android.content.DialogInterface; +import android.content.Intent; import android.view.LayoutInflater; import android.view.View; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + import com.app.wallpaper.R; +import com.applovin.sdk.AppLovinMediationProvider; +import com.applovin.sdk.AppLovinSdk; +import com.applovin.sdk.AppLovinSdkConfiguration; +import com.applovin.sdk.AppLovinSdkInitializationConfiguration; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; @@ -22,21 +29,22 @@ import java.util.List; public class SetData extends Application { - private static final List AllWalls=new ArrayList<>(); - private static final List dataUrls=new ArrayList<>(); - static Context context; - public static final String abc="app_database"; - public static final int vs=1; + private static final List AllWalls = new ArrayList<>(); + private static final List dataUrls = new ArrayList<>(); + public static Context context; + public static final String abc = "app_database"; + public static final int vs = 1; - - public static Context getContext() { - return context; - } + public static final String TAG = "Wallpaper Gallery"; + public static boolean initSDkOK = false; + public static String initAction = "ACTION_INIT"; + private String SDK_KEY = "Kwbl2wDLdNgp3kE8gk7WW_CCEBAee8xOIUJZQtEdNZX1iwclqFHlbgrUJt_g4zzSHJosSKIN13gv5Lqoe0bPvg"; @Override public void onCreate() { super.onCreate(); context = getBaseContext(); + initMAxSDk(); try { InputStream open = getAssets().open("test_new.json"); String covertStr = ReadFile.getCovertStr(open); @@ -44,12 +52,12 @@ public class SetData extends Application { Gson gson = new Gson(); Type type = new TypeToken>() { }.getType(); - List catas=gson.fromJson(covertStr,type); - for (GetWalls categories:catas){ + List catas = gson.fromJson(covertStr, type); + for (GetWalls categories : catas) { AllWalls.add(categories); - for (Urldata urldata:categories.getList()){ - dataUrls.add(urldata); - } + for (Urldata urldata : categories.getList()) { + dataUrls.add(urldata); + } } @@ -68,4 +76,19 @@ public class SetData extends Application { public static List getCataDatas() { return AllWalls; } + + + private void initMAxSDk() { + + AppLovinSdkInitializationConfiguration initConfig = AppLovinSdkInitializationConfiguration.builder(SDK_KEY, this) + .setMediationProvider(AppLovinMediationProvider.MAX) + .build(); + AppLovinSdk.getInstance(this).initialize(initConfig, new AppLovinSdk.SdkInitializationListener() { + @Override + public void onSdkInitialized(AppLovinSdkConfiguration appLovinSdkConfiguration) { + initSDkOK = true; + LocalBroadcastManager.getInstance(SetData.this).sendBroadcast(new Intent(initAction)); + } + }); + } } diff --git a/app/src/main/java/com/app/wallpaper/max/MaxListener.java b/app/src/main/java/com/app/wallpaper/max/MaxListener.java new file mode 100644 index 0000000..af5b23d --- /dev/null +++ b/app/src/main/java/com/app/wallpaper/max/MaxListener.java @@ -0,0 +1,11 @@ +package com.app.wallpaper.max; + +import com.applovin.mediation.MaxAd; + +public interface MaxListener { + void onFail(MaxAd ad); + + void onShowSuccess(MaxAd ad); + + void onHidden(); +} diff --git a/app/src/main/java/com/app/wallpaper/max/MaxManager.java b/app/src/main/java/com/app/wallpaper/max/MaxManager.java new file mode 100644 index 0000000..0762b4d --- /dev/null +++ b/app/src/main/java/com/app/wallpaper/max/MaxManager.java @@ -0,0 +1,178 @@ +package com.app.wallpaper.max; + +import android.app.Activity; +import android.util.Log; + +import androidx.annotation.NonNull; + +import com.app.wallpaper.getdata.SetData; +import com.app.wallpaper.myact.ViewActivity; +import com.applovin.mediation.MaxAd; +import com.applovin.mediation.MaxAdListener; +import com.applovin.mediation.MaxError; +import com.applovin.mediation.ads.MaxInterstitialAd; + + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class MaxManager { + /** + * 56c10d02546aeb64 + * 977383f7d5ee3ef6 + * b49eb7193c367a07 + */ + private static final String one_AD = "56c10d02546aeb64"; + private static final String two_Ad = "977383f7d5ee3ef6"; + private static final String three_ad = "b49eb7193c367a07"; + + + public static final int type_no_cache = 0; + public static final int type_has_cache = 1; + public static final int type_show_success = 2; + public static final int type_show_close = 3; + public static final int type_show_fail = 4; + + private static List adList = new ArrayList<>(); + + public static MaxInterstitialAd getAd(List list) { + Collections.shuffle(list); + for (MaxInterstitialAd ad : list) { + if (ad.isReady()) { + return ad; + } + } + return null; + } + + public static List onLoadAd() { + if (adList.isEmpty()) { + MaxInterstitialAd AdT = new MaxInterstitialAd(two_Ad, SetData.context); + MaxInterstitialAd AdOne = new MaxInterstitialAd(one_AD, SetData.context); + MaxInterstitialAd AdThree = new MaxInterstitialAd(three_ad, SetData.context); + adList.add(AdOne); + adList.add(AdT); + adList.add(AdThree); + } + + for (MaxInterstitialAd ad : adList) { + if (!ad.isReady()) { + setMyListener(ad, new MaxListener() { + @Override + public void onFail(MaxAd ad) { + + } + + @Override + public void onShowSuccess(MaxAd ad) { + + } + + @Override + public void onHidden() { + + } + }); + ad.loadAd(); + } + + } + + return adList; + } + + public static void setMyListener(MaxInterstitialAd ad, MaxListener maxListener) { + ad.setListener(new MaxAdListener() { + @Override + public void onAdLoaded(@NonNull MaxAd maxAd) { + Log.d(SetData.TAG, "-------onAdLoaded-----maxAd=" + maxAd.getAdUnitId()); + } + + @Override + public void onAdDisplayed(@NonNull MaxAd maxAd) { + Log.d(SetData.TAG, "-------onAdDisplayed-----maxAd=" + maxAd.getAdUnitId()); + maxListener.onShowSuccess(maxAd); + } + + @Override + public void onAdHidden(@NonNull MaxAd maxAd) { + Log.d(SetData.TAG, "-------onAdHidden-----maxAd=" + maxAd.getAdUnitId()); + maxListener.onHidden(); + setMyListener(ad, new MaxListener() { + @Override + public void onFail(MaxAd ad) { + + } + + @Override + public void onShowSuccess(MaxAd ad) { + + } + + @Override + public void onHidden() { + + } + }); + ad.loadAd(); + } + + @Override + public void onAdClicked(@NonNull MaxAd maxAd) { + + } + + @Override + public void onAdLoadFailed(@NonNull String s, @NonNull MaxError maxError) { + Log.d(SetData.TAG, "-------onAdLoadFailed-----s=" + s+"----maxError="+maxError.getMessage()); + } + + @Override + public void onAdDisplayFailed(@NonNull MaxAd maxAd, @NonNull MaxError maxError) { + maxListener.onFail(maxAd); + } + }); + + } + + protected static void ShowAd(Activity activity, onAdStatusListener listener) { + MaxInterstitialAd ad = MaxManager.getAd(adList); + if (ad == null) { + listener.onAdStatus(type_no_cache); + } else { + listener.onAdStatus(type_has_cache); + MaxManager.setMyListener(ad, new MaxListener() { + @Override + public void onFail(MaxAd ad) { + listener.onAdStatus(type_show_fail); + } + + @Override + public void onShowSuccess(MaxAd ad) { + listener.onAdStatus(type_show_success); + } + + @Override + public void onHidden() { + listener.onAdStatus(type_show_close); + } + }); + ad.showAd(activity); + } + } + + + public static void startShowMaxAd(Activity activity, onAdAfterAction listener) { + MaxManager.ShowAd(activity, new onAdStatusListener() { + @Override + public void onAdStatus(int type) { + if (type == MaxManager.type_show_close || type == MaxManager.type_show_fail || type == MaxManager.type_no_cache) { + if (listener != null) + listener.onAction(); + } + } + }); + } + +} diff --git a/app/src/main/java/com/app/wallpaper/max/WelComManager.kt b/app/src/main/java/com/app/wallpaper/max/WelComManager.kt new file mode 100644 index 0000000..4d50659 --- /dev/null +++ b/app/src/main/java/com/app/wallpaper/max/WelComManager.kt @@ -0,0 +1,77 @@ +package com.app.wallpaper.max + +import android.app.Activity +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.content.IntentFilter +import android.os.CountDownTimer +import android.util.Log +import androidx.localbroadcastmanager.content.LocalBroadcastManager +import com.app.wallpaper.getdata.SetData +import com.applovin.mediation.ads.MaxInterstitialAd + + + +object WelComManager { + + private lateinit var timer: CountDownTimer + + private var need_Show = true + + private lateinit var lists: List + + @JvmStatic + fun initTimer(activity: Activity, countTime: Long,countAction: (Long) -> Unit, goMainAction: () -> Unit): CountDownTimer { + need_Show = true + timer = object : CountDownTimer(countTime, 100) { + override fun onTick(millisUntilFinished: Long) { + countAction.invoke(millisUntilFinished) + if (need_Show) { + MaxManager.ShowAd(activity) { + Log.d(SetData.TAG, "--onTick----------it=$it") + if (it == MaxManager.type_has_cache) { + need_Show = false + } + if (it == MaxManager.type_show_close || it == MaxManager.type_show_fail) { + Log.d(SetData.TAG, "--onTick---------enter") + goMainAction.invoke() + } + } + } + } + + override fun onFinish() { + if (need_Show) { + MaxManager.ShowAd(activity) { + if (it == MaxManager.type_show_close || it == MaxManager.type_show_fail || it == MaxManager.type_no_cache) { + Log.d(SetData.TAG, "--onFinish---------enter") + goMainAction.invoke() + } + } + } + } + } + startAd(activity) + return timer + } + + private fun startAd(activity: Activity) { + if (!SetData.initSDkOK) { + LocalBroadcastManager.getInstance(activity) + .registerReceiver(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + lists = MaxManager.onLoadAd() + timer.start() + Log.d(SetData.TAG, "------------1sucess") + } + }, IntentFilter(SetData.initAction)) + } else { + lists = MaxManager.onLoadAd() + timer.start() + Log.d(SetData.TAG, "------------2sucess") + } + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/app/wallpaper/max/onAdAfterAction.java b/app/src/main/java/com/app/wallpaper/max/onAdAfterAction.java new file mode 100644 index 0000000..d8d5cea --- /dev/null +++ b/app/src/main/java/com/app/wallpaper/max/onAdAfterAction.java @@ -0,0 +1,6 @@ +package com.app.wallpaper.max; + +public interface onAdAfterAction { + + void onAction(); +} diff --git a/app/src/main/java/com/app/wallpaper/max/onAdStatusListener.java b/app/src/main/java/com/app/wallpaper/max/onAdStatusListener.java new file mode 100644 index 0000000..bdbf2fe --- /dev/null +++ b/app/src/main/java/com/app/wallpaper/max/onAdStatusListener.java @@ -0,0 +1,6 @@ +package com.app.wallpaper.max; + +public interface onAdStatusListener { + + void onAdStatus(int type); +} diff --git a/app/src/main/java/com/app/wallpaper/myact/LoginActivity.java b/app/src/main/java/com/app/wallpaper/myact/LoginActivity.java index 3616a05..c827295 100644 --- a/app/src/main/java/com/app/wallpaper/myact/LoginActivity.java +++ b/app/src/main/java/com/app/wallpaper/myact/LoginActivity.java @@ -3,57 +3,70 @@ package com.app.wallpaper.myact; import android.animation.ValueAnimator; import android.content.Intent; import android.os.Bundle; +import android.os.CountDownTimer; import android.os.Handler; import android.os.Looper; +import android.util.Log; import android.view.animation.DecelerateInterpolator; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; + import com.app.wallpaper.databinding.ActivityLogin2Binding; +import com.app.wallpaper.max.WelComManager; + +import kotlin.Unit; +import kotlin.jvm.functions.Function0; +import kotlin.jvm.functions.Function1; public class LoginActivity extends AppCompatActivity { private ActivityLogin2Binding binding; private Handler handler = new Handler(); + private CountDownTimer countDownTimer; + + private long time = 10000; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = ActivityLogin2Binding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); EdgeToEdge.enable(this); - handler.postDelayed(new Runnable() { + + countDownTimer = WelComManager.initTimer(LoginActivity.this, time, new Function1() { @Override - public void run() { - // 使用 ValueAnimator 创建进度条动画 - ValueAnimator animation = ValueAnimator.ofInt(0, binding.progressBar.getMax()); - animation.setDuration(2500); // 动画时长 - animation.setInterpolator(new DecelerateInterpolator()); // 减速插值器 - animation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { - @Override - public void onAnimationUpdate(ValueAnimator animation) { - binding.progressBar.setProgress((int) animation.getAnimatedValue()); - } - }); - animation.start(); - // 动画结束后跳转到新页面 - animation.addListener(new android.animation.Animator.AnimatorListener() { - @Override - public void onAnimationStart(android.animation.Animator animation) {} - - @Override - public void onAnimationEnd(android.animation.Animator animation) { - Intent intent = new Intent(LoginActivity.this, MainActivity.class); - startActivity(intent); - finish(); // 可选:结束当前 Activity - } - @Override - public void onAnimationCancel(android.animation.Animator animation) {} - - @Override - public void onAnimationRepeat(android.animation.Animator animation) {} - }); + public Unit invoke(Long aLong) { + float percentage = 100 - ((float) aLong / time) * 100; + int round = Math.round(percentage); + binding.progressBar.setProgress(round); + return null; } - }, 1000); + }, new Function0() { + @Override + public Unit invoke() { + binding.progressBar.setProgress(100); + goMain(); + return null; + } + }); + + + } + + + @Override + protected void onDestroy() { + super.onDestroy(); + if (countDownTimer != null) { + countDownTimer.cancel(); + } + } + + private void goMain() { + Intent intent = new Intent(LoginActivity.this, MainActivity.class); + startActivity(intent); + finish(); // 可选:结束当前 Activity } } \ No newline at end of file diff --git a/app/src/main/java/com/app/wallpaper/myact/MainActivity.java b/app/src/main/java/com/app/wallpaper/myact/MainActivity.java index ff13b1e..468002b 100644 --- a/app/src/main/java/com/app/wallpaper/myact/MainActivity.java +++ b/app/src/main/java/com/app/wallpaper/myact/MainActivity.java @@ -22,6 +22,7 @@ import androidx.viewpager.widget.ViewPager; import com.app.wallpaper.R; import com.app.wallpaper.databinding.ActivityMainBinding; +import com.app.wallpaper.max.MaxManager; import com.app.wallpaper.myada.MainFragmentAddapter; import com.app.wallpaper.myfra.HomeFragment; import com.app.wallpaper.myfra.MyfavFragment; @@ -44,6 +45,7 @@ public class MainActivity extends AppCompatActivity { binding = ActivityMainBinding.inflate(getLayoutInflater()); binding.getRoot(); setContentView(binding.getRoot()); + MaxManager.onLoadAd(); checkPermission(this, STORAGE_PERMISSION_CODE); mfragmentList.add(new HomeFragment()); mfragmentList.add(new MyfavFragment()); diff --git a/app/src/main/java/com/app/wallpaper/myact/ViewActivity.java b/app/src/main/java/com/app/wallpaper/myact/ViewActivity.java index 895e006..0dd0f5c 100644 --- a/app/src/main/java/com/app/wallpaper/myact/ViewActivity.java +++ b/app/src/main/java/com/app/wallpaper/myact/ViewActivity.java @@ -32,6 +32,9 @@ import com.app.wallpaper.R; import com.app.wallpaper.databinding.ActivityViewBinding; import com.app.wallpaper.donwload.ImageDownloadTask; import com.app.wallpaper.getdata.SetData; +import com.app.wallpaper.max.MaxManager; +import com.app.wallpaper.max.onAdAfterAction; +import com.app.wallpaper.max.onAdStatusListener; import com.app.wallpaper.mydao.AppDatabase; import com.app.wallpaper.mydao.InterfaceDao; import com.app.wallpaper.mydao.MyEntity; @@ -47,9 +50,10 @@ import java.io.OutputStream; public class ViewActivity extends AppCompatActivity { private ActivityViewBinding binding; - private int position, cataId, Id,position1; + private int position, cataId, Id, position1; private WallpaperManager wallpaperManager; private String sourUrl; + private String thmbeUrl; private InterfaceDao interfaceDao; private AppDatabase appDatabase; private MyEntity myEntitys = new MyEntity(); @@ -62,6 +66,8 @@ public class ViewActivity extends AppCompatActivity { EdgeToEdge.enable(this); binding = ActivityViewBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); + MaxManager.onLoadAd(); + binding.progressbar1.setVisibility(View.VISIBLE); intenttData(); wallpaperManager = WallpaperManager.getInstance(this); appDatabase = AppDatabase.getDatabase(this); @@ -73,15 +79,35 @@ public class ViewActivity extends AppCompatActivity { showView(); interfaceDao = appDatabase.interfaceDao(); initJudge(); - binding.back.setOnClickListener(view -> finish()); + binding.back.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + MaxManager.startShowMaxAd(ViewActivity.this, new onAdAfterAction() { + @Override + public void onAction() { + finish(); + } + }); + } + }); setButtonLisenner(); } + @Override + public void onBackPressed() { + super.onBackPressed(); + MaxManager.startShowMaxAd(ViewActivity.this, new onAdAfterAction() { + @Override + public void onAction() { + } + }); + } + private void intenttData() { position1 = getIntent().getIntExtra("position1", 0); if (position1 != 0) { position = position1; - }else { + } else { position = getIntent().getIntExtra("position", 0); } cataId = getIntent().getIntExtra("cataId", 0); @@ -107,14 +133,20 @@ public class ViewActivity extends AppCompatActivity { }).start(); } + private void setButtonLisenner() { binding.donwload.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (sourUrl != null) { - downloadTask = new ImageDownloadTask(getBaseContext(), ViewActivity.this); - downloadTask.execute(sourUrl); - binding.progressbar1.setVisibility(View.VISIBLE); + MaxManager.startShowMaxAd(ViewActivity.this, new onAdAfterAction() { + @Override + public void onAction() { + downloadTask = new ImageDownloadTask(getBaseContext(), ViewActivity.this); + downloadTask.execute(sourUrl); + binding.progressbar1.setVisibility(View.VISIBLE); + } + }); } else { Toast.makeText(ViewActivity.this, "Failed to download image...", Toast.LENGTH_SHORT).show(); } @@ -123,8 +155,15 @@ public class ViewActivity extends AppCompatActivity { binding.apply.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - loadPreview(sourUrl); - binding.progressbar1.setVisibility(View.VISIBLE); + MaxManager.startShowMaxAd(ViewActivity.this, new onAdAfterAction() { + @Override + public void onAction() { + binding.progressbar1.setVisibility(View.VISIBLE); + loadPreview(sourUrl); + binding.progressbar1.setVisibility(View.VISIBLE); + } + }); + } }); binding.like.setOnClickListener(new View.OnClickListener() { @@ -136,12 +175,12 @@ public class ViewActivity extends AppCompatActivity { if (myEntitys == null) { MyEntity myEntity1 = interfaceDao.getImageSou(sourUrl); if (myEntity1 == null) { - if (cataId==0) { + if (cataId == 0) { MyEntity myEntity = new MyEntity(); myEntity.setImagePre(SetData.getDataUrls().get(position).getPreUrl()); myEntity.setImageSou(sourUrl); new InsertImageTask().execute(myEntity); - }else { + } else { MyEntity myEntity = new MyEntity(); myEntity.setImagePre(SetData.getCataDatas().get(cataId).getList().get(position).getPreUrl()); myEntity.setImageSou(sourUrl); @@ -164,8 +203,7 @@ public class ViewActivity extends AppCompatActivity { } }); } - } else - { + } else { MyEntity myEntity2 = myEntitys; interfaceDao.deleteUser(myEntity2); runOnUiThread(new Runnable() { @@ -205,32 +243,44 @@ public class ViewActivity extends AppCompatActivity { } } - private void showView() { - ViewFragment viewFragment; - if (myEntitys == null) { - if (cataId == 0) { - viewFragment = ViewFragment.newInstance(SetData - .getDataUrls().get(position).getSourceUrl()); - } else { - viewFragment = ViewFragment.newInstance(SetData. - getCataDatas().get(cataId).getList(). - get(position).getSourceUrl()); - } - } else { - viewFragment = ViewFragment.newInstance(myEntitys.getImageUrl2()); - } - binding.viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { - @NonNull - @Override - public Fragment getItem(int position) { - return viewFragment; - } - @Override - public int getCount() { - return 1; + private void showView() { + String sourceUrl; + if (myEntitys == null) { + if (cataId == 0) { + sourceUrl = SetData + .getDataUrls().get(position).getSourceUrl(); + } else { + sourceUrl = SetData. + getCataDatas().get(cataId).getList(). + get(position).getSourceUrl(); } - }); + } else { + sourceUrl = myEntitys.getImageUrl2(); + } + Glide.with(this) + .asDrawable() + .load(sourceUrl) + .into(new CustomTarget() { + @Override + public void onResourceReady(@NonNull Drawable resource, @Nullable Transition transition) { + binding.progressbar1.setVisibility(View.GONE); + binding.imageView.setImageDrawable(resource); + } + + @Override + public void onLoadFailed(@Nullable Drawable errorDrawable) { + super.onLoadFailed(errorDrawable); + binding.progressbar1.setVisibility(View.GONE); + } + + @Override + public void onLoadCleared(@Nullable Drawable placeholder) { + binding.progressbar1.setVisibility(View.GONE); + } + }); + + } private void loadPreview(String preURl) { @@ -240,15 +290,22 @@ public class ViewActivity extends AppCompatActivity { .into(new CustomTarget() { @Override public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition transition) { - binding.progressbar1.setVisibility(View.VISIBLE); setPhoneWallpaper(resource); } + + @Override + public void onLoadFailed(@Nullable Drawable errorDrawable) { + super.onLoadFailed(errorDrawable); + binding.progressbar1.setVisibility(View.GONE); + } + @Override public void onLoadCleared(@Nullable Drawable placeholder) { binding.progressbar1.setVisibility(View.GONE); } }); } + private void setPhoneWallpaper(Bitmap bitmap) { try { wallpaperManager.setBitmap(bitmap); @@ -257,6 +314,7 @@ public class ViewActivity extends AppCompatActivity { binding.progressbar1.setVisibility(View.GONE); } catch (IOException ioException) { Toast.makeText(this, "Setting failed, ", Toast.LENGTH_SHORT).show(); + binding.progressbar1.setVisibility(View.GONE); } } @@ -269,4 +327,5 @@ public class ViewActivity extends AppCompatActivity { } } + } \ No newline at end of file diff --git a/app/src/main/java/com/app/wallpaper/myfra/HomeFragment.java b/app/src/main/java/com/app/wallpaper/myfra/HomeFragment.java index f2669e5..e7dc056 100644 --- a/app/src/main/java/com/app/wallpaper/myfra/HomeFragment.java +++ b/app/src/main/java/com/app/wallpaper/myfra/HomeFragment.java @@ -4,6 +4,8 @@ import android.annotation.SuppressLint; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; import android.net.Uri; import android.os.Bundle; @@ -54,6 +56,7 @@ public class HomeFragment extends Fragment implements OnItemHome { Bundle savedInstanceState) { binding = FragmentHomeBinding.inflate(getLayoutInflater()); binding.tablay.setupWithViewPager(binding.viewPagerTab); + urldata = SetData.getDataUrls(); drawerLayout = requireActivity().findViewById(R.id.drawer_layout); navigationView = requireActivity().findViewById(R.id.nav_view); @@ -117,7 +120,12 @@ public class HomeFragment extends Fragment implements OnItemHome { LayoutInflater inflater = getLayoutInflater(); View dialogView = inflater.inflate(R.layout.alterdialog, null); builder.setCustomTitle(dialogView); - builder.setMessage("The current version is 1.0.0") + String version = "1.0.1"; + PackageInfo info = getInfo(); + if (info != null) { + version = info.versionName; + } + builder.setMessage("The current version is " + version) .setPositiveButton("Confirm", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { @@ -127,6 +135,16 @@ public class HomeFragment extends Fragment implements OnItemHome { dialog.show(); } + private PackageInfo getInfo() { + try { + PackageInfo packageInfo = SetData.context.getPackageManager().getPackageInfo(SetData.context.getPackageName(), 0); + return packageInfo; + } catch (PackageManager.NameNotFoundException e) { + + return null; + } + } + @Override public void OnitemClick(int position) { Intent intent = new Intent(getContext(), ViewActivity.class); diff --git a/app/src/main/java/com/app/wallpaper/myfra/LoadDataFragment.java b/app/src/main/java/com/app/wallpaper/myfra/LoadDataFragment.java index 6cc69fa..fbe0f9e 100644 --- a/app/src/main/java/com/app/wallpaper/myfra/LoadDataFragment.java +++ b/app/src/main/java/com/app/wallpaper/myfra/LoadDataFragment.java @@ -56,7 +56,7 @@ public class LoadDataFragment extends Fragment implements OnItemHome, OnLoaditem StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL); binding.contentRe.setLayoutManager(staggeredGridLayoutManager); LoadDataAdapter loadDataAdapter = new LoadDataAdapter(SetData.getCataDatas(), getContext(), position, SetData.getDataUrls()); - binding.contentRe.addItemDecoration(new MyItemDecoration(SetData.getContext(), 20, 20, 15)); + binding.contentRe.addItemDecoration(new MyItemDecoration(SetData.context, 20, 20, 15)); loadDataAdapter.setInfoWallPaperListener((OnItemHome) this, (OnLoaditem) this); binding.contentRe.setAdapter(loadDataAdapter); return binding.getRoot(); diff --git a/app/src/main/java/com/app/wallpaper/myfra/MyfavFragment.java b/app/src/main/java/com/app/wallpaper/myfra/MyfavFragment.java index 42de316..3ea9103 100644 --- a/app/src/main/java/com/app/wallpaper/myfra/MyfavFragment.java +++ b/app/src/main/java/com/app/wallpaper/myfra/MyfavFragment.java @@ -125,7 +125,7 @@ public class MyfavFragment extends Fragment implements OnFavority { binding.myfra.setLayoutManager(staggeredGridLayoutManager); myfavorityAdapter = new MyfavorityAdapter(getContext(), datas); myfavorityAdapter.setInfoWallPaperListener((OnFavority) this); - binding.myfra.addItemDecoration(new MyItemDecoration(SetData.getContext(),20,20,15)); + binding.myfra.addItemDecoration(new MyItemDecoration(SetData.context,20,20,15)); binding.myfra.setAdapter(myfavorityAdapter); } @Override diff --git a/app/src/main/res/drawable/about.png b/app/src/main/res/drawable/about.png deleted file mode 100644 index 2234199..0000000 Binary files a/app/src/main/res/drawable/about.png and /dev/null differ diff --git a/app/src/main/res/drawable/faceback.png b/app/src/main/res/drawable/faceback.png deleted file mode 100644 index d4f3992..0000000 Binary files a/app/src/main/res/drawable/faceback.png and /dev/null differ diff --git a/app/src/main/res/drawable/icon_about.xml b/app/src/main/res/drawable/icon_about.xml new file mode 100644 index 0000000..2dc2d1b --- /dev/null +++ b/app/src/main/res/drawable/icon_about.xml @@ -0,0 +1,35 @@ + + + + + + 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..ec463a3 --- /dev/null +++ b/app/src/main/res/drawable/icon_version.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/nav_back.xml b/app/src/main/res/drawable/nav_back.xml index 5271e2a..741775e 100644 --- a/app/src/main/res/drawable/nav_back.xml +++ b/app/src/main/res/drawable/nav_back.xml @@ -1,5 +1,4 @@ - + - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_view.xml b/app/src/main/res/layout/activity_view.xml index 29a0e6e..0dcf1a2 100644 --- a/app/src/main/res/layout/activity_view.xml +++ b/app/src/main/res/layout/activity_view.xml @@ -6,8 +6,9 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - @@ -17,7 +18,7 @@ android:layout_height="50dp" android:layout_centerInParent="true" android:scrollbarSize="5dp" - android:indeterminateTint="@color/white" + android:indeterminateTint="@color/pink" android:visibility="gone"/> @@ -118,7 +119,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" - android:text="@string/aplly" + android:text="@string/apply" android:textColor="@color/white" android:textSize="15sp" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 4879a91..09fd637 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -51,6 +51,7 @@ android:layout_marginTop="20dp" android:layout_marginEnd="24dp" android:background="#00000000" + app:tabIndicatorHeight="0dp" android:scrollbarSize="32dp" app:tabBackground="@drawable/tab_back" app:tabGravity="center" diff --git a/app/src/main/res/menu/nav_menu.xml b/app/src/main/res/menu/nav_menu.xml index 8158cc3..b9c93fc 100644 --- a/app/src/main/res/menu/nav_menu.xml +++ b/app/src/main/res/menu/nav_menu.xml @@ -1,14 +1,14 @@ - + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b7a37ed..8212d84 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -8,7 +8,7 @@ Privacy policy Feedback Save - Aplly + apply Like Share No favorite wallpapers have been added yet diff --git a/build.gradle.kts b/build.gradle.kts index 5bfe0cf..18ddbd2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,4 +3,11 @@ plugins { alias(libs.plugins.android.application) apply false id("org.jetbrains.kotlin.android") version "1.9.0" apply false kotlin("kapt") version "1.9.0" + id("com.google.gms.google-services") version "4.3.15" apply false + id ("com.google.firebase.crashlytics") version "2.9.2" apply false +} +buildscript { + dependencies { + classpath("com.applovin.quality:AppLovinQualityServiceGradlePlugin:+") + } } \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 057dac8..6cf92b3 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -9,6 +9,7 @@ pluginManagement { } mavenCentral() gradlePluginPortal() + maven { url = uri("https://artifacts.applovin.com/android") } } } dependencyResolutionManagement { @@ -16,9 +17,11 @@ dependencyResolutionManagement { repositories { google() mavenCentral() + maven { url = uri("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea") } + maven { url = uri("https://artifact.bytedance.com/repository/pangle") } } } -rootProject.name = "Wallpaper" +rootProject.name = "Wallpapers Gallery" include(":app") \ No newline at end of file