183 lines
6.5 KiB
Java
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();
|
|
}
|
|
}
|
|
} |