From ec8b2cab60096433593718f0ae2b05888d869344 Mon Sep 17 00:00:00 2001 From: Spaso1 Date: Tue, 15 Apr 2025 22:08:48 +0800 Subject: [PATCH] =?UTF-8?q?=20=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=B8=A5=E9=87=8D=E6=80=A7Bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../findmaimaiultra/adapter/PhotoAdapter.java | 7 ++++- .../findmaimaiultra/adapter/PixivAdapter.java | 7 +++++ .../astral/findmaimaiultra/ui/JMActivity.java | 4 ++- .../ui/pixiv/PixivFragment.java | 28 +++++++++++++------ app/src/main/res/values/strings.xml | 2 +- 5 files changed, 36 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/astral/findmaimaiultra/adapter/PhotoAdapter.java b/app/src/main/java/org/astral/findmaimaiultra/adapter/PhotoAdapter.java index cc2171c..88d1866 100644 --- a/app/src/main/java/org/astral/findmaimaiultra/adapter/PhotoAdapter.java +++ b/app/src/main/java/org/astral/findmaimaiultra/adapter/PhotoAdapter.java @@ -63,9 +63,14 @@ public class PhotoAdapter extends RecyclerView.Adapter public void onBindViewHolder(@NonNull ViewHolder holder, int position) { IllustData data = dataList.get(position); holder.title.setText(data.getTitle()); + + // 清除之前的图片和状态 + holder.backgroundLayout.setImageBitmap(null); + holder.backgroundLayout.setScaleType(ImageView.ScaleType.CENTER_CROP); + holder.backgroundLayout.setOnLongClickListener(null); + + // Load image using a library like Glide or Picasso if (data.getUrl().startsWith("JM:")) { holder.title.setText("[" + data.getId() + "] " +data.getTitle()); diff --git a/app/src/main/java/org/astral/findmaimaiultra/ui/JMActivity.java b/app/src/main/java/org/astral/findmaimaiultra/ui/JMActivity.java index 4dc76ce..949d90f 100644 --- a/app/src/main/java/org/astral/findmaimaiultra/ui/JMActivity.java +++ b/app/src/main/java/org/astral/findmaimaiultra/ui/JMActivity.java @@ -16,6 +16,7 @@ import androidx.constraintlayout.widget.ConstraintLayout; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.google.android.material.bottomsheet.BottomSheetBehavior; +import com.google.android.material.snackbar.Snackbar; import com.google.gson.Gson; import org.astral.findmaimaiultra.R; import org.astral.findmaimaiultra.adapter.PhotoAdapter; @@ -36,11 +37,12 @@ public class JMActivity extends AppCompatActivity { initRecyclerView(); } - @SuppressLint({"ClickableViewAccessibility", "SetTextI18n"}) + @SuppressLint({"ClickableViewAccessibility", "SetTextI18n", "ResourceType"}) private void initRecyclerView() { Intent intent = getIntent(); String res = intent.getStringExtra("album"); Album a = new Gson().fromJson(res, Album.class); + Toast.makeText(this,"加载中", Toast.LENGTH_SHORT).show(); RecyclerView recyclerView = findViewById(R.id.recyclerView); recyclerView.setLayoutManager(new LinearLayoutManager(this)); photoAdapter = new PhotoAdapter(this, a.getImage_urls(), a.getNums(), a); diff --git a/app/src/main/java/org/astral/findmaimaiultra/ui/pixiv/PixivFragment.java b/app/src/main/java/org/astral/findmaimaiultra/ui/pixiv/PixivFragment.java index 60f2f62..78addf1 100644 --- a/app/src/main/java/org/astral/findmaimaiultra/ui/pixiv/PixivFragment.java +++ b/app/src/main/java/org/astral/findmaimaiultra/ui/pixiv/PixivFragment.java @@ -54,6 +54,7 @@ import org.jetbrains.annotations.NotNull; import java.io.*; import java.lang.reflect.Type; import java.net.URL; +import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.TimeUnit; @@ -486,23 +487,25 @@ public class PixivFragment extends Fragment { startActivity(intent); } - private void openJM(IllustData illustData,Snackbar snackbar) { + private void openJM(IllustData illustData, Snackbar snackbar) { MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireContext()); builder.setTitle(illustData.getTitle()); //snackbar长显示 - snackbar = Snackbar.make(requireView(), "正在加载", Snackbar.LENGTH_INDEFINITE); + Date date = new Date(); + //如果超过9点 + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH"); + if (Integer.parseInt(simpleDateFormat.format(date))>=21) { + snackbar = Snackbar.make(requireView(), "正在加载(夜晚时间段服务器压力较大)", Snackbar.LENGTH_INDEFINITE); + } else { + snackbar = Snackbar.make(requireView(), "正在加载", Snackbar.LENGTH_INDEFINITE); + } snackbar.show(); - OkHttpClient httpClient = new OkHttpClient(); - //配置超时 - httpClient.newBuilder().connectTimeout(120, TimeUnit.SECONDS); - httpClient.newBuilder().readTimeout(120, TimeUnit.SECONDS); - httpClient.newBuilder().writeTimeout(120, TimeUnit.SECONDS); + OkHttpClient httpClient = createOkHttpClient(); // 使用 createOkHttpClient 方法创建 OkHttpClient Request request = new Request.Builder() .url("http://jm.godserver.cn:35621/album/" + illustData.getId() + "/") .build(); Log.d("MainLaunch", "http://jm.godserver.cn:35621/album/" + illustData.getId() + "/"); - //配置超时 Snackbar finalSnackbar = snackbar; httpClient.newCall(request).enqueue(new Callback() { @@ -515,12 +518,18 @@ public class PixivFragment extends Fragment { finalSnackbar.dismiss(); Album a = new Gson().fromJson(res, Album.class); openJMProject(a); + } else { + Log.d("PixivFragment", "onResponse: 请求失败,状态码: " + response.code()); + handler.post(() -> { + Toast.makeText(requireContext(), "请求失败: " + response.code(), Toast.LENGTH_SHORT).show(); + finalSnackbar.dismiss(); + }); } } @Override public void onFailure(@NotNull Call call, @NotNull IOException e) { - handler.post(()->{ + handler.post(() -> { Toast.makeText(requireContext(), e.getMessage(), Toast.LENGTH_SHORT).show(); finalSnackbar.dismiss(); }); @@ -528,6 +537,7 @@ public class PixivFragment extends Fragment { } }); } + private Bitmap decodeImage(Bitmap imgSrc, int num) { if (num == 0) { return imgSrc; diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9695eb7..5e54100 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -39,7 +39,7 @@ FindMaimaiDX Reisa 设置 - Image + Engine \ No newline at end of file