Keyboard_Skins/app/src/main/java/com/exquisite/activity/PreviewActivity.java
2024-07-04 17:16:49 +08:00

183 lines
6.5 KiB
Java

package com.exquisite.activity;
import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import com.applovin.mediation.MaxAd;
import com.applovin.mediation.ads.MaxInterstitialAd;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.transition.Transition;
import com.exquisite.KeyboardSkin;
import com.exquisite.adapter.ThumAdapter;
import com.exquisite.callback.AdCallback;
import com.exquisite.callback.DownloadCallback;
import com.exquisite.callback.UnzipCallback;
import com.exquisite.data.StaticValue;
import com.exquisite.demo08.R;
import com.exquisite.tools.Mytools;
import com.exquisite.tools.SpaceItem;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class PreviewActivity extends AppCompatActivity implements View.OnClickListener {
private LinearLayout back, viewall, settings;
private RecyclerView previewrv;
private ImageView imageView;
private String name;
private String preview;
private String url;
private String unzipPath;
private TextView textView;
private ProgressBar progressBarPreview;
private ProgressBar progressBarDownload;
private static List<MaxInterstitialAd> adsList;
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_preview);
EdgeToEdge.enable(this);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.preview), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
intView();
adsList = Mytools.getAllAd();
imageView.setVisibility(View.GONE);
progressBarPreview.setVisibility(View.VISIBLE);
progressBarDownload.setVisibility(View.GONE);
SpaceItem spaceItem = new SpaceItem(10, 20, 10);
previewrv.setAdapter(new ThumAdapter(this, KeyboardSkin.getMyDataArrayList()));
previewrv.setLayoutManager(new GridLayoutManager(this, 2));
previewrv.addItemDecoration(spaceItem);
Intent intent = getIntent();
preview = intent.getStringExtra(StaticValue.KEY_PRE);
name = intent.getStringExtra(StaticValue.KEY_NAME);
url = intent.getStringExtra(StaticValue.KEY_URL);
Glide.with(this)
.asBitmap()
.load(preview)
.into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
imageView.setImageBitmap(resource);
imageView.setVisibility(View.VISIBLE);
textView.setText(name);
progressBarPreview.setVisibility(View.GONE);
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
File cacheDir = this.getCacheDir();
unzipPath = cacheDir + "/" + name;
intEvent();
}
private void intEvent() {
back.setOnClickListener(this);
viewall.setOnClickListener(this);
settings.setOnClickListener(this);
}
private void intView() {
back = findViewById(R.id.detail_back);
imageView = findViewById(R.id.preview_image);
viewall = findViewById(R.id.preview_all);
previewrv = findViewById(R.id.detail_rv);
textView = findViewById(R.id.image_text);
settings = findViewById(R.id.detail_setting);
progressBarPreview = findViewById(R.id.image_progress);
progressBarDownload = findViewById(R.id.download_progress);
}
@SuppressLint("NonConstantResourceId")
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.detail_back:
finish();
break;
case R.id.preview_all:
Intent intent = new Intent(PreviewActivity.this, AllActivity.class);
startActivity(intent);
break;
case R.id.detail_setting:
download();
break;
}
}
private void download() {
if (!Mytools.isStep1() || !Mytools.isStep2()) {
Toast.makeText(this, getString(R.string.text_hint), Toast.LENGTH_SHORT).show();
Intent intent = new Intent(this, KeyBoardSettingsActivity.class);
startActivity(intent);
} else {
progressBarDownload.setVisibility(View.VISIBLE);
Mytools.donwnZip(this, url, (successful, resource) -> {
if (successful) {
Mytools.unZip(this, unzipPath, resource, (successful1, resDirPath) -> {
if (successful1) {
StaticValue.PATH = resDirPath;
Toast.makeText(PreviewActivity.this, getString(R.string.set_successful), Toast.LENGTH_SHORT).show();
progressBarDownload.setVisibility(View.GONE);
showAd();
finish();
}
});
}
});
}
}
private void showAd() {
MaxInterstitialAd cachedAd = Mytools.onCache(adsList);
if (cachedAd == null) {
} else {
Mytools.setADCAllBack(cachedAd, new AdCallback() {
@Override
public void onShowFail(MaxAd ad) {
}
@Override
public void onAdHidden() {
}
});
cachedAd.showAd();
}
}
}