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 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() { @Override public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition 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(); } } }