V1.0.2(3) Max集成

This commit is contained in:
litingting 2024-08-02 09:54:58 +08:00
parent 3604fa40c9
commit fd2a78e8d8
26 changed files with 614 additions and 102 deletions

View File

@ -8,19 +8,24 @@ plugins {
alias(libs.plugins.android.application) alias(libs.plugins.android.application)
id("org.jetbrains.kotlin.android") id("org.jetbrains.kotlin.android")
kotlin("kapt") kotlin("kapt")
id("com.google.gms.google-services")
id("com.google.firebase.crashlytics")
id("applovin-quality-service")
}
applovin{
apiKey = "yatmRma9RKlsVe1if4NVbCKUizbmnIgxrtP84RJ2FMcQ5IfcZmuauBmU10zf9CTTaOJrzeIoGCmgT7uTlyigFN"
} }
android { android {
namespace = "com.app.wallpaper" namespace = "com.app.wallpaper"
compileSdk = 34 compileSdk = 34
defaultConfig { defaultConfig {
//com.wallpapers.gallery //com.wallpapers.gallery
applicationId = "com.wallpapers.gallery.test" applicationId = "com.wallpapers.gallery"
minSdk = 23 minSdk = 23
targetSdk = 34 targetSdk = 34
versionCode = 2 versionCode = 3
versionName = "1.0.1" versionName = "1.0.2"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
setProperty("archivesBaseName", "Wallpapers Gallery_V" + versionName + "(${versionCode})_$timestamp") setProperty("archivesBaseName", "Wallpapers Gallery_V" + versionName + "(${versionCode})_$timestamp")
} }
@ -64,4 +69,16 @@ dependencies {
implementation("com.github.bumptech.glide:glide:4.16.0") implementation("com.github.bumptech.glide:glide:4.16.0")
implementation("com.google.code.gson:gson:2.10.1") implementation("com.google.code.gson:gson:2.10.1")
kapt("androidx.room:room-compiler:2.5.0") 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:+")
} }

29
app/google-services.json Normal file
View File

@ -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"
}

View File

@ -33,7 +33,7 @@ public class ImageDownloadTask extends AsyncTask<String, Void, Boolean> {
int responseCode = connection.getResponseCode(); int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) { if (responseCode == HttpURLConnection.HTTP_OK) {
InputStream inputStream = connection.getInputStream(); InputStream inputStream = connection.getInputStream();
Uri uri = a.saveToGallery(SetData.getContext(), inputStream); Uri uri = a.saveToGallery(SetData.context, inputStream);
if(uri == null){ if(uri == null){
return false; return false;
} }

View File

@ -4,11 +4,18 @@ import android.app.AlertDialog;
import android.app.Application; import android.app.Application;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.app.wallpaper.R; 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.Gson;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
@ -24,19 +31,20 @@ public class SetData extends Application {
private static final List<GetWalls> AllWalls = new ArrayList<>(); private static final List<GetWalls> AllWalls = new ArrayList<>();
private static final List<Urldata> dataUrls = new ArrayList<>(); private static final List<Urldata> dataUrls = new ArrayList<>();
static Context context; public static Context context;
public static final String abc = "app_database"; public static final String abc = "app_database";
public static final int vs = 1; public static final int vs = 1;
public static final String TAG = "Wallpaper Gallery";
public static Context getContext() { public static boolean initSDkOK = false;
return context; public static String initAction = "ACTION_INIT";
} private String SDK_KEY = "Kwbl2wDLdNgp3kE8gk7WW_CCEBAee8xOIUJZQtEdNZX1iwclqFHlbgrUJt_g4zzSHJosSKIN13gv5Lqoe0bPvg";
@Override @Override
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
context = getBaseContext(); context = getBaseContext();
initMAxSDk();
try { try {
InputStream open = getAssets().open("test_new.json"); InputStream open = getAssets().open("test_new.json");
String covertStr = ReadFile.getCovertStr(open); String covertStr = ReadFile.getCovertStr(open);
@ -68,4 +76,19 @@ public class SetData extends Application {
public static List<GetWalls> getCataDatas() { public static List<GetWalls> getCataDatas() {
return AllWalls; 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));
}
});
}
} }

View File

@ -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();
}

View File

@ -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<MaxInterstitialAd> adList = new ArrayList<>();
public static MaxInterstitialAd getAd(List<MaxInterstitialAd> list) {
Collections.shuffle(list);
for (MaxInterstitialAd ad : list) {
if (ad.isReady()) {
return ad;
}
}
return null;
}
public static List<MaxInterstitialAd> 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();
}
}
});
}
}

View File

@ -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<MaxInterstitialAd>
@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")
}
}
}

View File

@ -0,0 +1,6 @@
package com.app.wallpaper.max;
public interface onAdAfterAction {
void onAction();
}

View File

@ -0,0 +1,6 @@
package com.app.wallpaper.max;
public interface onAdStatusListener {
void onAdStatus(int type);
}

View File

@ -3,57 +3,70 @@ package com.app.wallpaper.myact;
import android.animation.ValueAnimator; import android.animation.ValueAnimator;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.util.Log;
import android.view.animation.DecelerateInterpolator; import android.view.animation.DecelerateInterpolator;
import androidx.activity.EdgeToEdge; import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import com.app.wallpaper.databinding.ActivityLogin2Binding; 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 { public class LoginActivity extends AppCompatActivity {
private ActivityLogin2Binding binding; private ActivityLogin2Binding binding;
private Handler handler = new Handler(); private Handler handler = new Handler();
private CountDownTimer countDownTimer;
private long time = 10000;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
binding = ActivityLogin2Binding.inflate(getLayoutInflater()); binding = ActivityLogin2Binding.inflate(getLayoutInflater());
setContentView(binding.getRoot()); setContentView(binding.getRoot());
EdgeToEdge.enable(this); EdgeToEdge.enable(this);
handler.postDelayed(new Runnable() {
countDownTimer = WelComManager.initTimer(LoginActivity.this, time, new Function1<Long, Unit>() {
@Override @Override
public void run() { public Unit invoke(Long aLong) {
// 使用 ValueAnimator 创建进度条动画 float percentage = 100 - ((float) aLong / time) * 100;
ValueAnimator animation = ValueAnimator.ofInt(0, binding.progressBar.getMax()); int round = Math.round(percentage);
animation.setDuration(2500); // 动画时长 binding.progressBar.setProgress(round);
animation.setInterpolator(new DecelerateInterpolator()); // 减速插值器 return null;
animation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { }
}, new Function0<Unit>() {
@Override @Override
public void onAnimationUpdate(ValueAnimator animation) { public Unit invoke() {
binding.progressBar.setProgress((int) animation.getAnimatedValue()); binding.progressBar.setProgress(100);
goMain();
return null;
} }
}); });
animation.start();
// 动画结束后跳转到新页面
animation.addListener(new android.animation.Animator.AnimatorListener() { }
@Override
public void onAnimationStart(android.animation.Animator animation) {}
@Override @Override
public void onAnimationEnd(android.animation.Animator animation) { protected void onDestroy() {
super.onDestroy();
if (countDownTimer != null) {
countDownTimer.cancel();
}
}
private void goMain() {
Intent intent = new Intent(LoginActivity.this, MainActivity.class); Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent); startActivity(intent);
finish(); // 可选结束当前 Activity finish(); // 可选结束当前 Activity
} }
@Override
public void onAnimationCancel(android.animation.Animator animation) {}
@Override
public void onAnimationRepeat(android.animation.Animator animation) {}
});
}
}, 1000);
}
} }

View File

@ -22,6 +22,7 @@ import androidx.viewpager.widget.ViewPager;
import com.app.wallpaper.R; import com.app.wallpaper.R;
import com.app.wallpaper.databinding.ActivityMainBinding; import com.app.wallpaper.databinding.ActivityMainBinding;
import com.app.wallpaper.max.MaxManager;
import com.app.wallpaper.myada.MainFragmentAddapter; import com.app.wallpaper.myada.MainFragmentAddapter;
import com.app.wallpaper.myfra.HomeFragment; import com.app.wallpaper.myfra.HomeFragment;
import com.app.wallpaper.myfra.MyfavFragment; import com.app.wallpaper.myfra.MyfavFragment;
@ -44,6 +45,7 @@ public class MainActivity extends AppCompatActivity {
binding = ActivityMainBinding.inflate(getLayoutInflater()); binding = ActivityMainBinding.inflate(getLayoutInflater());
binding.getRoot(); binding.getRoot();
setContentView(binding.getRoot()); setContentView(binding.getRoot());
MaxManager.onLoadAd();
checkPermission(this, STORAGE_PERMISSION_CODE); checkPermission(this, STORAGE_PERMISSION_CODE);
mfragmentList.add(new HomeFragment()); mfragmentList.add(new HomeFragment());
mfragmentList.add(new MyfavFragment()); mfragmentList.add(new MyfavFragment());

View File

@ -32,6 +32,9 @@ import com.app.wallpaper.R;
import com.app.wallpaper.databinding.ActivityViewBinding; import com.app.wallpaper.databinding.ActivityViewBinding;
import com.app.wallpaper.donwload.ImageDownloadTask; import com.app.wallpaper.donwload.ImageDownloadTask;
import com.app.wallpaper.getdata.SetData; 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.AppDatabase;
import com.app.wallpaper.mydao.InterfaceDao; import com.app.wallpaper.mydao.InterfaceDao;
import com.app.wallpaper.mydao.MyEntity; import com.app.wallpaper.mydao.MyEntity;
@ -50,6 +53,7 @@ public class ViewActivity extends AppCompatActivity {
private int position, cataId, Id, position1; private int position, cataId, Id, position1;
private WallpaperManager wallpaperManager; private WallpaperManager wallpaperManager;
private String sourUrl; private String sourUrl;
private String thmbeUrl;
private InterfaceDao interfaceDao; private InterfaceDao interfaceDao;
private AppDatabase appDatabase; private AppDatabase appDatabase;
private MyEntity myEntitys = new MyEntity(); private MyEntity myEntitys = new MyEntity();
@ -62,6 +66,8 @@ public class ViewActivity extends AppCompatActivity {
EdgeToEdge.enable(this); EdgeToEdge.enable(this);
binding = ActivityViewBinding.inflate(getLayoutInflater()); binding = ActivityViewBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot()); setContentView(binding.getRoot());
MaxManager.onLoadAd();
binding.progressbar1.setVisibility(View.VISIBLE);
intenttData(); intenttData();
wallpaperManager = WallpaperManager.getInstance(this); wallpaperManager = WallpaperManager.getInstance(this);
appDatabase = AppDatabase.getDatabase(this); appDatabase = AppDatabase.getDatabase(this);
@ -73,10 +79,30 @@ public class ViewActivity extends AppCompatActivity {
showView(); showView();
interfaceDao = appDatabase.interfaceDao(); interfaceDao = appDatabase.interfaceDao();
initJudge(); 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(); setButtonLisenner();
} }
@Override
public void onBackPressed() {
super.onBackPressed();
MaxManager.startShowMaxAd(ViewActivity.this, new onAdAfterAction() {
@Override
public void onAction() {
}
});
}
private void intenttData() { private void intenttData() {
position1 = getIntent().getIntExtra("position1", 0); position1 = getIntent().getIntExtra("position1", 0);
if (position1 != 0) { if (position1 != 0) {
@ -107,14 +133,20 @@ public class ViewActivity extends AppCompatActivity {
}).start(); }).start();
} }
private void setButtonLisenner() { private void setButtonLisenner() {
binding.donwload.setOnClickListener(new View.OnClickListener() { binding.donwload.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
if (sourUrl != null) { if (sourUrl != null) {
MaxManager.startShowMaxAd(ViewActivity.this, new onAdAfterAction() {
@Override
public void onAction() {
downloadTask = new ImageDownloadTask(getBaseContext(), ViewActivity.this); downloadTask = new ImageDownloadTask(getBaseContext(), ViewActivity.this);
downloadTask.execute(sourUrl); downloadTask.execute(sourUrl);
binding.progressbar1.setVisibility(View.VISIBLE); binding.progressbar1.setVisibility(View.VISIBLE);
}
});
} else { } else {
Toast.makeText(ViewActivity.this, "Failed to download image...", Toast.LENGTH_SHORT).show(); Toast.makeText(ViewActivity.this, "Failed to download image...", Toast.LENGTH_SHORT).show();
} }
@ -123,10 +155,17 @@ public class ViewActivity extends AppCompatActivity {
binding.apply.setOnClickListener(new View.OnClickListener() { binding.apply.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
MaxManager.startShowMaxAd(ViewActivity.this, new onAdAfterAction() {
@Override
public void onAction() {
binding.progressbar1.setVisibility(View.VISIBLE);
loadPreview(sourUrl); loadPreview(sourUrl);
binding.progressbar1.setVisibility(View.VISIBLE); binding.progressbar1.setVisibility(View.VISIBLE);
} }
}); });
}
});
binding.like.setOnClickListener(new View.OnClickListener() { binding.like.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
@ -164,8 +203,7 @@ public class ViewActivity extends AppCompatActivity {
} }
}); });
} }
} else } else {
{
MyEntity myEntity2 = myEntitys; MyEntity myEntity2 = myEntitys;
interfaceDao.deleteUser(myEntity2); interfaceDao.deleteUser(myEntity2);
runOnUiThread(new Runnable() { runOnUiThread(new Runnable() {
@ -205,32 +243,44 @@ public class ViewActivity extends AppCompatActivity {
} }
} }
private void showView() { private void showView() {
ViewFragment viewFragment; String sourceUrl;
if (myEntitys == null) { if (myEntitys == null) {
if (cataId == 0) { if (cataId == 0) {
viewFragment = ViewFragment.newInstance(SetData sourceUrl = SetData
.getDataUrls().get(position).getSourceUrl()); .getDataUrls().get(position).getSourceUrl();
} else { } else {
viewFragment = ViewFragment.newInstance(SetData. sourceUrl = SetData.
getCataDatas().get(cataId).getList(). getCataDatas().get(cataId).getList().
get(position).getSourceUrl()); get(position).getSourceUrl();
} }
} else { } else {
viewFragment = ViewFragment.newInstance(myEntitys.getImageUrl2()); sourceUrl = myEntitys.getImageUrl2();
} }
binding.viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { Glide.with(this)
@NonNull .asDrawable()
.load(sourceUrl)
.into(new CustomTarget<Drawable>() {
@Override @Override
public Fragment getItem(int position) { public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
return viewFragment; binding.progressbar1.setVisibility(View.GONE);
binding.imageView.setImageDrawable(resource);
} }
@Override @Override
public int getCount() { public void onLoadFailed(@Nullable Drawable errorDrawable) {
return 1; 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) { private void loadPreview(String preURl) {
@ -240,15 +290,22 @@ public class ViewActivity extends AppCompatActivity {
.into(new CustomTarget<Bitmap>() { .into(new CustomTarget<Bitmap>() {
@Override @Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) { public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
binding.progressbar1.setVisibility(View.VISIBLE);
setPhoneWallpaper(resource); setPhoneWallpaper(resource);
} }
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
super.onLoadFailed(errorDrawable);
binding.progressbar1.setVisibility(View.GONE);
}
@Override @Override
public void onLoadCleared(@Nullable Drawable placeholder) { public void onLoadCleared(@Nullable Drawable placeholder) {
binding.progressbar1.setVisibility(View.GONE); binding.progressbar1.setVisibility(View.GONE);
} }
}); });
} }
private void setPhoneWallpaper(Bitmap bitmap) { private void setPhoneWallpaper(Bitmap bitmap) {
try { try {
wallpaperManager.setBitmap(bitmap); wallpaperManager.setBitmap(bitmap);
@ -257,6 +314,7 @@ public class ViewActivity extends AppCompatActivity {
binding.progressbar1.setVisibility(View.GONE); binding.progressbar1.setVisibility(View.GONE);
} catch (IOException ioException) { } catch (IOException ioException) {
Toast.makeText(this, "Setting failed, ", Toast.LENGTH_SHORT).show(); Toast.makeText(this, "Setting failed, ", Toast.LENGTH_SHORT).show();
binding.progressbar1.setVisibility(View.GONE);
} }
} }
@ -269,4 +327,5 @@ public class ViewActivity extends AppCompatActivity {
} }
} }
} }

View File

@ -4,6 +4,8 @@ import android.annotation.SuppressLint;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
@ -54,6 +56,7 @@ public class HomeFragment extends Fragment implements OnItemHome {
Bundle savedInstanceState) { Bundle savedInstanceState) {
binding = FragmentHomeBinding.inflate(getLayoutInflater()); binding = FragmentHomeBinding.inflate(getLayoutInflater());
binding.tablay.setupWithViewPager(binding.viewPagerTab); binding.tablay.setupWithViewPager(binding.viewPagerTab);
urldata = SetData.getDataUrls(); urldata = SetData.getDataUrls();
drawerLayout = requireActivity().findViewById(R.id.drawer_layout); drawerLayout = requireActivity().findViewById(R.id.drawer_layout);
navigationView = requireActivity().findViewById(R.id.nav_view); navigationView = requireActivity().findViewById(R.id.nav_view);
@ -117,7 +120,12 @@ public class HomeFragment extends Fragment implements OnItemHome {
LayoutInflater inflater = getLayoutInflater(); LayoutInflater inflater = getLayoutInflater();
View dialogView = inflater.inflate(R.layout.alterdialog, null); View dialogView = inflater.inflate(R.layout.alterdialog, null);
builder.setCustomTitle(dialogView); 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() { .setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
@ -127,6 +135,16 @@ public class HomeFragment extends Fragment implements OnItemHome {
dialog.show(); 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 @Override
public void OnitemClick(int position) { public void OnitemClick(int position) {
Intent intent = new Intent(getContext(), ViewActivity.class); Intent intent = new Intent(getContext(), ViewActivity.class);

View File

@ -56,7 +56,7 @@ public class LoadDataFragment extends Fragment implements OnItemHome, OnLoaditem
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL); StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
binding.contentRe.setLayoutManager(staggeredGridLayoutManager); binding.contentRe.setLayoutManager(staggeredGridLayoutManager);
LoadDataAdapter loadDataAdapter = new LoadDataAdapter(SetData.getCataDatas(), getContext(), position, SetData.getDataUrls()); 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); loadDataAdapter.setInfoWallPaperListener((OnItemHome) this, (OnLoaditem) this);
binding.contentRe.setAdapter(loadDataAdapter); binding.contentRe.setAdapter(loadDataAdapter);
return binding.getRoot(); return binding.getRoot();

View File

@ -125,7 +125,7 @@ public class MyfavFragment extends Fragment implements OnFavority {
binding.myfra.setLayoutManager(staggeredGridLayoutManager); binding.myfra.setLayoutManager(staggeredGridLayoutManager);
myfavorityAdapter = new MyfavorityAdapter(getContext(), datas); myfavorityAdapter = new MyfavorityAdapter(getContext(), datas);
myfavorityAdapter.setInfoWallPaperListener((OnFavority) this); 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); binding.myfra.setAdapter(myfavorityAdapter);
} }
@Override @Override

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 636 B

View File

@ -0,0 +1,35 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<path
android:pathData="M2.5,15.833V4.167C2.5,3.246 3.246,2.5 4.167,2.5H17.5V14.167V17.5H4.167C3.246,17.5 2.5,16.754 2.5,15.833Z"
android:strokeLineJoin="round"
android:strokeWidth="1.66667"
android:fillColor="#00000000"
android:fillType="evenOdd"
android:strokeColor="#2A2E33"
android:strokeLineCap="round"/>
<path
android:pathData="M7.5,6.667H12.5"
android:strokeLineJoin="round"
android:strokeWidth="1.66667"
android:fillColor="#00000000"
android:strokeColor="#2A2E33"
android:strokeLineCap="round"/>
<path
android:pathData="M7.5,10.003H10.833"
android:strokeLineJoin="round"
android:strokeWidth="1.66667"
android:fillColor="#00000000"
android:strokeColor="#2A2E33"
android:strokeLineCap="round"/>
<path
android:pathData="M2.5,14.167H17.5"
android:strokeLineJoin="round"
android:strokeWidth="1.66667"
android:fillColor="#00000000"
android:strokeColor="#2A2E33"
android:strokeLineCap="round"/>
</vector>

View File

@ -0,0 +1,27 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<path
android:pathData="M10,10m-7.5,0a7.5,7.5 0,1 1,15 0a7.5,7.5 0,1 1,-15 0"
android:strokeLineJoin="round"
android:strokeWidth="1.66667"
android:fillColor="#00000000"
android:strokeColor="#2A2E33"
android:strokeLineCap="round"/>
<path
android:pathData="M10,14.457V9.457"
android:strokeLineJoin="round"
android:strokeWidth="1.66667"
android:fillColor="#00000000"
android:strokeColor="#2A2E33"
android:strokeLineCap="round"/>
<path
android:pathData="M10,6.669L10,5.836"
android:strokeLineJoin="round"
android:strokeWidth="1.66667"
android:fillColor="#00000000"
android:strokeColor="#2A2E33"
android:strokeLineCap="round"/>
</vector>

View File

@ -1,5 +1,4 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#4DFFFFFF" /> <!-- 你可以设置边框内的颜色 --> <solid android:color="#4D000000" /> <!-- 你可以设置边框内的颜色 -->
<corners android:radius="42dp"/> <!-- 设置圆角的半径 --> <corners android:radius="42dp"/> <!-- 设置圆角的半径 -->
<stroke android:width="1dp" android:color="#00000000"/>
</shape> </shape>

View File

@ -6,8 +6,9 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<androidx.viewpager.widget.ViewPager <ImageView
android:id="@+id/view_pager" android:id="@+id/image_view"
android:scaleType="centerCrop"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent" />
@ -17,7 +18,7 @@
android:layout_height="50dp" android:layout_height="50dp"
android:layout_centerInParent="true" android:layout_centerInParent="true"
android:scrollbarSize="5dp" android:scrollbarSize="5dp"
android:indeterminateTint="@color/white" android:indeterminateTint="@color/pink"
android:visibility="gone"/> android:visibility="gone"/>
@ -118,7 +119,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="6dp" android:layout_marginTop="6dp"
android:text="@string/aplly" android:text="@string/apply"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="15sp" android:textSize="15sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

View File

@ -51,6 +51,7 @@
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:background="#00000000" android:background="#00000000"
app:tabIndicatorHeight="0dp"
android:scrollbarSize="32dp" android:scrollbarSize="32dp"
app:tabBackground="@drawable/tab_back" app:tabBackground="@drawable/tab_back"
app:tabGravity="center" app:tabGravity="center"

View File

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:tools="http://schemas.android.com/tools" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"> xmlns:tools="http://schemas.android.com/tools">
<item <item
android:id="@+id/about" android:id="@+id/about"
android:icon="@drawable/about" android:icon="@drawable/icon_about"
android:title="@string/about" /> android:title="@string/about" />
<item <item
android:id="@+id/feedback" android:id="@+id/feedback"
android:icon="@drawable/faceback" android:icon="@drawable/icon_version"
android:title="@string/feedback" /> android:title="@string/feedback" />

View File

@ -8,7 +8,7 @@
<string name="privacy_policy">Privacy policy</string> <string name="privacy_policy">Privacy policy</string>
<string name="feedback">Feedback</string> <string name="feedback">Feedback</string>
<string name="save">Save</string> <string name="save">Save</string>
<string name="aplly">Aplly</string> <string name="apply">apply</string>
<string name="like">Like</string> <string name="like">Like</string>
<string name="share">Share</string> <string name="share">Share</string>
<string name="no_favorite_wallpapers_have_been_added_yet">No favorite wallpapers have been added yet</string> <string name="no_favorite_wallpapers_have_been_added_yet">No favorite wallpapers have been added yet</string>

View File

@ -3,4 +3,11 @@ plugins {
alias(libs.plugins.android.application) apply false alias(libs.plugins.android.application) apply false
id("org.jetbrains.kotlin.android") version "1.9.0" apply false id("org.jetbrains.kotlin.android") version "1.9.0" apply false
kotlin("kapt") version "1.9.0" 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:+")
}
} }

View File

@ -9,6 +9,7 @@ pluginManagement {
} }
mavenCentral() mavenCentral()
gradlePluginPortal() gradlePluginPortal()
maven { url = uri("https://artifacts.applovin.com/android") }
} }
} }
dependencyResolutionManagement { dependencyResolutionManagement {
@ -16,9 +17,11 @@ dependencyResolutionManagement {
repositories { repositories {
google() google()
mavenCentral() 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") include(":app")