diff --git a/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryDetailParser.java b/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryDetailParser.java index f79fdce59..f7d195e26 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryDetailParser.java +++ b/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryDetailParser.java @@ -230,7 +230,7 @@ public class GalleryDetailParser { if (gdf != null) { final String favoriteName = StringUtils.trim(gdf.text()); if (favoriteName.equals("Add to Favorites")) { - gd.favoriteName = ""; + gd.favoriteName = null; } else { gd.favoriteName = StringUtils.trim(gdf.text()); } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/CommonOperations.java b/app/src/main/java/com/hippo/ehviewer/ui/CommonOperations.java index 1fd9a5b80..880dae0db 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/CommonOperations.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/CommonOperations.java @@ -191,15 +191,17 @@ public final class CommonOperations { String[] favCat = Settings.getFavCat(); System.arraycopy(favCat, 0, items, 1, 10); if (slot >= -1 && slot <= 9) { + String newFavoriteName = slot >= 0 ? items[slot + 1] : null; doAddToFavorites(activity, galleryInfo, slot, galleryInfo instanceof GalleryDetail - ? new UpdateFavoriteNameCallback(listener, (GalleryDetail) galleryInfo, items[slot+1]) + ? new UpdateFavoriteNameCallback(listener, (GalleryDetail) galleryInfo, newFavoriteName) : listener); } else { new ListCheckBoxDialogBuilder(activity, items, (builder, dialog, position) -> { int slot1 = position - 1; + String newFavoriteName = (slot1 >= 0 && slot1 <= 9) ? items[slot1+1] : null; doAddToFavorites(activity, galleryInfo, slot1, galleryInfo instanceof GalleryDetail - ? new UpdateFavoriteNameCallback(listener, (GalleryDetail) galleryInfo, items[position]) + ? new UpdateFavoriteNameCallback(listener, (GalleryDetail) galleryInfo, newFavoriteName) : listener); if (builder.isChecked()) { Settings.putDefaultFavSlot(slot1); @@ -220,7 +222,7 @@ public final class CommonOperations { request.setMethod(EhClient.METHOD_ADD_FAVORITES); request.setArgs(galleryInfo.gid, galleryInfo.token, -1, ""); request.setCallback(galleryInfo instanceof GalleryDetail - ? new UpdateFavoriteNameCallback(listener, (GalleryDetail) galleryInfo, "") + ? new UpdateFavoriteNameCallback(listener, (GalleryDetail) galleryInfo, null) : listener); client.execute(request); } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java index d29e3087a..e88add884 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java @@ -53,7 +53,6 @@ import android.widget.LinearLayout; import android.widget.ListView; import android.widget.RatingBar; import android.widget.TextView; - import com.hippo.beerbelly.BeerBelly; import com.hippo.drawable.RoundSideRectDrawable; import com.hippo.ehviewer.AppConfig; @@ -106,9 +105,6 @@ import com.hippo.yorozuya.IOUtils; import com.hippo.yorozuya.IntIdGenerator; import com.hippo.yorozuya.SimpleHandler; import com.hippo.yorozuya.ViewUtils; - -import junit.framework.Assert; - import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; @@ -116,6 +112,7 @@ import java.io.OutputStream; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.List; +import junit.framework.Assert; public class GalleryDetailScene extends BaseScene implements View.OnClickListener, com.hippo.ehviewer.download.DownloadManager.DownloadInfoListener, @@ -766,7 +763,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene if (gd.isFavorited || EhDB.containLocalFavorites(gd.gid)) { mHeart.setVisibility(View.VISIBLE); - if (gd.favoriteName == null || gd.favoriteName.isEmpty()) { + if (gd.favoriteName == null) { mHeart.setText(R.string.local_favorites); } else { mHeart.setText(gd.favoriteName); @@ -1538,7 +1535,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene private void onModifyFavoritesSuccess(boolean addOrRemove) { mModifingFavorites = false; if (mGalleryDetail != null) { - mGalleryDetail.isFavorited = !addOrRemove; + mGalleryDetail.isFavorited = !addOrRemove && mGalleryDetail.favoriteName != null; updateFavoriteDrawable(); } }