Fuck you Jetbrains!

This commit is contained in:
tarsin committed 2023-01-06 09:55:09 +08:00
1 parent 13660cb70a
commit ec5e0c7b25
11 files changed
+141 -86

No files matched your search

@@ -15,8 +15,13 @@
*/
package com.hippo.ehviewer.client.data
// This is wrong Parcelize usage, TODO: use delegate and move galleryinfo to primary constructor
import kotlinx.parcelize.Parcelize
// @Parcelize
class GalleryDetail(
// @JvmField
// val galleryInfo: GalleryInfo,
@JvmField
var apiUid: Long = -1L,
@@ -67,4 +72,8 @@ class GalleryDetail(
@JvmField
var previewSet: PreviewSet? = null,
) : GalleryInfo()
) : GalleryInfoImpl()
// ) : GalleryInfo by galleryInfo
// Delegating 'Parcelable' is not allowed
// Fuck you Jetbrains!
@@ -16,84 +16,34 @@
package com.hippo.ehviewer.client.data
import android.os.Parcelable
import androidx.room.ColumnInfo
import androidx.room.Ignore
import androidx.room.PrimaryKey
import kotlinx.parcelize.Parcelize
import java.util.regex.Pattern
@Parcelize
open class GalleryInfo(
@PrimaryKey
@ColumnInfo(name = "GID")
var gid: Long = 0,
interface GalleryInfo : Parcelable {
var gid: Long
var token: String?
var title: String?
var titleJpn: String?
var thumb: String?
var category: Int
var posted: String?
var uploader: String?
var disowned: Boolean
var rating: Float
var rated: Boolean
var simpleTags: Array<String>?
var pages: Int
var thumbWidth: Int
var thumbHeight: Int
var spanSize: Int
var spanIndex: Int
var spanGroupIndex: Int
var simpleLanguage: String?
var favoriteSlot: Int
var favoriteName: String?
@ColumnInfo(name = "TOKEN")
var token: String? = null,
@ColumnInfo(name = "TITLE")
var title: String? = null,
@ColumnInfo(name = "TITLE_JPN")
var titleJpn: String? = null,
@ColumnInfo(name = "THUMB")
var thumb: String? = null,
@ColumnInfo(name = "CATEGORY")
var category: Int = 0,
@ColumnInfo(name = "POSTED")
var posted: String? = null,
@ColumnInfo(name = "UPLOADER")
var uploader: String? = null,
@Ignore
var disowned: Boolean = false,
@ColumnInfo(name = "RATING")
var rating: Float = 0f,
@Ignore
var rated: Boolean = false,
@Ignore
var simpleTags: Array<String>? = null,
@Ignore
var pages: Int = 0,
@Ignore
var thumbWidth: Int = 0,
@Ignore
var thumbHeight: Int = 0,
@Ignore
var spanSize: Int = 0,
@Ignore
var spanIndex: Int = 0,
@Ignore
var spanGroupIndex: Int = 0,
/**
* language from title
*/
@ColumnInfo(name = "SIMPLE_LANGUAGE")
var simpleLanguage: String? = null,
@Ignore
var favoriteSlot: Int = -2,
@Ignore
var favoriteName: String? = null
) : Parcelable {
fun generateSLang() {
simpleLanguage = simpleTags?.let { generateSLangFromTags(it) } ?: title?.let { generateSLangFromTitle(it) }
simpleLanguage = simpleTags?.let { generateSLangFromTags(it) }
?: title?.let { generateSLangFromTitle(it) }
}
private fun generateSLangFromTags(simpleTags: Array<String>): String? {
@@ -136,7 +86,6 @@ open class GalleryInfo(
const val S_LANG_TH = "TH"
const val S_LANG_VI = "VI"
@JvmField
val S_LANGS = arrayOf(
S_LANG_EN,
S_LANG_ZH,
@@ -0,0 +1,89 @@
/*
* Copyright 2016 Hippo Seven
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hippo.ehviewer.client.data
import androidx.room.ColumnInfo
import androidx.room.Ignore
import androidx.room.PrimaryKey
import kotlinx.parcelize.Parcelize
@Parcelize
open class GalleryInfoImpl(
@PrimaryKey
@ColumnInfo(name = "GID")
override var gid: Long = 0,
@ColumnInfo(name = "TOKEN")
override var token: String? = null,
@ColumnInfo(name = "TITLE")
override var title: String? = null,
@ColumnInfo(name = "TITLE_JPN")
override var titleJpn: String? = null,
@ColumnInfo(name = "THUMB")
override var thumb: String? = null,
@ColumnInfo(name = "CATEGORY")
override var category: Int = 0,
@ColumnInfo(name = "POSTED")
override var posted: String? = null,
@ColumnInfo(name = "UPLOADER")
override var uploader: String? = null,
@Ignore
override var disowned: Boolean = false,
@ColumnInfo(name = "RATING")
override var rating: Float = 0f,
@Ignore
override var rated: Boolean = false,
@Ignore
override var simpleTags: Array<String>? = null,
@Ignore
override var pages: Int = 0,
@Ignore
override var thumbWidth: Int = 0,
@Ignore
override var thumbHeight: Int = 0,
@Ignore
override var spanSize: Int = 0,
@Ignore
override var spanIndex: Int = 0,
@Ignore
override var spanGroupIndex: Int = 0,
@ColumnInfo(name = "SIMPLE_LANGUAGE")
override var simpleLanguage: String? = null,
@Ignore
override var favoriteSlot: Int = -2,
@Ignore
override var favoriteName: String? = null
) : GalleryInfo
@@ -26,6 +26,7 @@ import com.hippo.ehviewer.client.data.GalleryComment;
import com.hippo.ehviewer.client.data.GalleryCommentList;
import com.hippo.ehviewer.client.data.GalleryDetail;
import com.hippo.ehviewer.client.data.GalleryInfo;
import com.hippo.ehviewer.client.data.GalleryInfoImpl;
import com.hippo.ehviewer.client.data.GalleryTagGroup;
import com.hippo.ehviewer.client.data.LargePreviewSet;
import com.hippo.ehviewer.client.data.NormalPreviewSet;
@@ -124,7 +125,7 @@ public class GalleryDetailParser {
// Generate simpleLanguage for local favorites
for (int i = 0; i < LANGUAGES.length; i++) {
if (galleryDetail.language.equals(LANGUAGES[i])) {
galleryDetail.setSimpleLanguage(GalleryInfo.S_LANGS[i]);
galleryDetail.setSimpleLanguage(GalleryInfo.Companion.getS_LANGS()[i]);
break;
}
}
@@ -289,7 +290,7 @@ public class GalleryDetailParser {
Elements elements = gnd.select("a");
for (int i = 0; i < elements.size(); i++) {
Element element = elements.get(i);
GalleryInfo gi = new GalleryInfo();
GalleryInfo gi = new GalleryInfoImpl();
GalleryDetailUrlParser.Result result = GalleryDetailUrlParser.parse(element.attr("href"));
if (result != null) {
gi.setGid(result.gid);
@@ -24,6 +24,7 @@ import androidx.annotation.NonNull;
import com.hippo.ehviewer.EhDB;
import com.hippo.ehviewer.client.EhUtils;
import com.hippo.ehviewer.client.data.GalleryInfo;
import com.hippo.ehviewer.client.data.GalleryInfoImpl;
import com.hippo.ehviewer.client.exception.ParseException;
import com.hippo.util.ExceptionUtils;
import com.hippo.util.JsoupUtils;
@@ -110,7 +111,7 @@ public class GalleryListParser {
}
private static GalleryInfo parseGalleryInfo(Element e) {
GalleryInfo gi = new GalleryInfo();
GalleryInfo gi = new GalleryInfoImpl();
// Title, gid, token (required), tags
Element glname = JsoupUtils.getElementByClass(e, "glname");
@@ -3,9 +3,10 @@ package com.hippo.ehviewer.dao
import androidx.room.ColumnInfo
import androidx.room.Entity
import com.hippo.ehviewer.client.data.GalleryInfo
import com.hippo.ehviewer.client.data.GalleryInfoImpl
@Entity(tableName = "BOOKMARKS")
class BookmarkInfo : GalleryInfo() {
class BookmarkInfo : GalleryInfoImpl() {
@JvmField
@ColumnInfo(name = "PAGE")
var page = 0
@@ -4,9 +4,10 @@ import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.Ignore
import com.hippo.ehviewer.client.data.GalleryInfo
import com.hippo.ehviewer.client.data.GalleryInfoImpl
@Entity(tableName = "DOWNLOADS")
class DownloadInfo() : GalleryInfo() {
class DownloadInfo() : GalleryInfoImpl() {
@JvmField
@ColumnInfo(name = "STATE")
var state = 0
@@ -3,9 +3,10 @@ package com.hippo.ehviewer.dao
import androidx.room.ColumnInfo
import androidx.room.Entity
import com.hippo.ehviewer.client.data.GalleryInfo
import com.hippo.ehviewer.client.data.GalleryInfoImpl
@Entity(tableName = "HISTORY")
class HistoryInfo() : GalleryInfo() {
class HistoryInfo() : GalleryInfoImpl() {
@JvmField
@ColumnInfo(name = "TIME")
var time: Long = 0
@@ -3,9 +3,10 @@ package com.hippo.ehviewer.dao
import androidx.room.ColumnInfo
import androidx.room.Entity
import com.hippo.ehviewer.client.data.GalleryInfo
import com.hippo.ehviewer.client.data.GalleryInfoImpl
@Entity(tableName = "LOCAL_FAVORITES")
class LocalFavoriteInfo() : GalleryInfo() {
class LocalFavoriteInfo() : GalleryInfoImpl() {
@JvmField
@ColumnInfo(name = "TIME")
var time: Long = 0
@@ -25,6 +25,7 @@ import androidx.annotation.Nullable;
import com.hippo.ehviewer.EhDB;
import com.hippo.ehviewer.client.data.GalleryInfo;
import com.hippo.ehviewer.client.data.GalleryInfoImpl;
import com.hippo.ehviewer.dao.DownloadInfo;
import com.hippo.ehviewer.dao.DownloadLabel;
import com.hippo.ehviewer.spider.SpiderDen;
@@ -577,7 +578,7 @@ public class DownloadManager implements SpiderQueen.OnSpiderListener {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... voids) {
GalleryInfo galleryInfo = new GalleryInfo();
GalleryInfo galleryInfo = new GalleryInfoImpl();
for (DownloadInfo downloadInfo : list) {
galleryInfo.setGid(downloadInfo.getGid());
galleryInfo.setToken(downloadInfo.getToken());
@@ -27,6 +27,7 @@ import com.hippo.ehviewer.Settings
import com.hippo.ehviewer.client.EhEngine.fillGalleryListByApi
import com.hippo.ehviewer.client.EhUrl
import com.hippo.ehviewer.client.data.GalleryInfo
import com.hippo.ehviewer.client.data.GalleryInfoImpl
import com.hippo.ehviewer.download.DownloadManager
import com.hippo.ehviewer.spider.SpiderInfo
import com.hippo.ehviewer.spider.SpiderQueen
@@ -163,7 +164,7 @@ class RestoreDownloadPreference constructor(
}
}
private class RestoreItem : GalleryInfo() {
private class RestoreItem : GalleryInfoImpl() {
var dirname: String? = null
}
}