Skip to content

Commit

Permalink
Resolve merge conflict by incorporating both suggestions
Browse files Browse the repository at this point in the history
  • Loading branch information
nicked committed Mar 11, 2024
2 parents 77114d0 + b858bd1 commit fee0a02
Show file tree
Hide file tree
Showing 21 changed files with 782 additions and 201 deletions.
2 changes: 2 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion app/src/main/java/ceui/lisa/adapters/IAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ public void onItemClick(View v, int position, int viewType) {

Intent intent = new Intent(mContext, VActivity.class);
intent.putExtra(Params.POSITION, position);
intent.putExtra(Params.PAGE_UUID, pageData.getUUID());
intent.putExtra(Params.PAGE_UUID, uuid);
mContext.startActivity(intent);
}
});
Expand Down
72 changes: 69 additions & 3 deletions app/src/main/java/ceui/lisa/fragments/FragmentNovelHolder.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,11 @@
import com.zhy.view.flowlayout.TagAdapter;
import com.zhy.view.flowlayout.TagFlowLayout;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.function.Function;

import androidx.annotation.NonNull;
import androidx.appcompat.widget.Toolbar;
Expand All @@ -49,12 +52,19 @@
import ceui.lisa.models.NovelDetail;
import ceui.lisa.models.NovelSearchResponse;
import ceui.lisa.models.TagsBean;
import ceui.lisa.models.WebNovel;
import ceui.lisa.utils.Common;
import ceui.lisa.utils.Dev;
import ceui.lisa.utils.GlideUtil;
import ceui.lisa.utils.Params;
import ceui.lisa.utils.PixivOperate;
import ceui.lisa.view.ScrollChange;
import ceui.loxia.SpaceHolder;
import ceui.loxia.TextDescHolder;
import ceui.loxia.novel.NovelImageHolder;
import ceui.loxia.novel.NovelTextHolder;
import ceui.refactor.CommonAdapter;
import ceui.refactor.ListItemHolder;
import gdut.bsx.share2.Share2;
import gdut.bsx.share2.ShareContentType;
import io.reactivex.android.schedulers.AndroidSchedulers;
Expand All @@ -68,6 +78,7 @@ public class FragmentNovelHolder extends BaseFragment<FragmentNovelHolderBinding
private boolean isOpen = false;
private NovelBean mNovelBean;
private NovelDetail mNovelDetail;
private WebNovel mWebNovel;

public static FragmentNovelHolder newInstance(NovelBean novelBean) {
Bundle args = new Bundle();
Expand Down Expand Up @@ -239,7 +250,8 @@ public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response)
baseBind.progressRela.setVisibility(View.INVISIBLE);
new WebNovelParser(response) {
@Override
public void onNovelPrepared(@NonNull NovelDetail novelDetail) {
public void onNovelPrepared(@NonNull NovelDetail novelDetail, @NonNull WebNovel webNovel) {
mWebNovel = webNovel;
novelDetail.setParsedChapters(NovelParseHelper.tryParseChapters(novelDetail.getNovel_text()));
refreshDetail(novelDetail);
}
Expand Down Expand Up @@ -415,9 +427,63 @@ public void doSomething(Uri uri) {
private void setNovelAdapter() {
NovelDetail novelDetail = mNovelDetail;
// 如果解析成功,就使用新方式
String novelText = novelDetail.getNovel_text();
if (novelText == null || novelText.isEmpty()) {
novelText = "";
}
if(novelDetail.getParsedChapters() != null && novelDetail.getParsedChapters().size() > 0){

baseBind.viewPager.setAdapter(new VNewAdapter(novelDetail.getParsedChapters(), mContext));
String uploadedImageMark = "[uploadedimage:";
String pixivImageMark = "[pixivimage:";
if (novelText.contains(uploadedImageMark) || novelText.contains(pixivImageMark)) {
do {
novelText = novelText.replace("][", "]\n[");
} while (novelText.contains("]["));
String[] stringArray = novelText.split("\n");
List<String> textList = new ArrayList<>(Arrays.asList(stringArray));
List<ListItemHolder> holderList = new ArrayList<>();
holderList.add(new SpaceHolder());
for (String s : textList) {
if (s.contains(uploadedImageMark)) {
long id = 0L;
int startIndex = s.indexOf(uploadedImageMark) + uploadedImageMark.length();
int endIndex = s.indexOf("]");
try {
id = Long.parseLong(s.substring(startIndex, endIndex));
} catch (Exception exception) {
exception.printStackTrace();
}
holderList.add(new NovelImageHolder(NovelImageHolder.Type.UploadedImage, id, 0, mWebNovel));
} else if (s.contains(pixivImageMark)) {
long id = 0L;
int startIndex = s.indexOf(pixivImageMark) + pixivImageMark.length();
int endIndex = s.indexOf("]");
String result = s.substring(startIndex, endIndex);
int indexInIllust = 0;
try {
if (result.contains("-")) {
String[] ret = result.split("-");
indexInIllust = Integer.parseInt(ret[1]);
id = Long.parseLong(ret[0]);
} else {
id = Long.parseLong(result);
}
} catch (Exception exception) {
exception.printStackTrace();
}
holderList.add(new NovelImageHolder(NovelImageHolder.Type.PixivImage, id, indexInIllust, mWebNovel));
} else {
holderList.add(new NovelTextHolder(s, Common.getNovelTextColor()));
}
}
holderList.add(new SpaceHolder());
holderList.add(new TextDescHolder(getString(R.string.string_107)));
holderList.add(new SpaceHolder());
CommonAdapter commonAdapter = new CommonAdapter(getViewLifecycleOwner());
baseBind.viewPager.setAdapter(commonAdapter);
commonAdapter.submitList(holderList);
} else {
baseBind.viewPager.setAdapter(new VNewAdapter(novelDetail.getParsedChapters(), mContext));
}
if(novelDetail.getNovel_marker() != null){
int parsedSize = novelDetail.getParsedChapters().size();
int pageIndex = Math.min(novelDetail.getNovel_marker().getPage(),novelDetail.getParsedChapters().get(parsedSize-1).getChapterIndex());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import ceui.lisa.models.NovelDetail;
import ceui.lisa.models.NovelSeriesItem;
import ceui.lisa.models.UserBean;
import ceui.lisa.models.WebNovel;
import ceui.lisa.repo.NovelSeriesDetailRepo;
import ceui.lisa.utils.Common;
import ceui.lisa.utils.GlideUtil;
Expand Down Expand Up @@ -79,7 +80,7 @@ public boolean onMenuItemClick(MenuItem item) {
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
new WebNovelParser(response) {
@Override
public void onNovelPrepared(@NonNull NovelDetail novelDetail) {
public void onNovelPrepared(@NonNull NovelDetail novelDetail, @NonNull WebNovel webNovel) {
saveNovelToDownload(novelBean, novelDetail);
}
};
Expand Down Expand Up @@ -109,7 +110,7 @@ public void onFailure(Call<ResponseBody> call, Throwable t) {
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
new WebNovelParser(response) {
@Override
public void onNovelPrepared(@NonNull NovelDetail novelDetail) {
public void onNovelPrepared(@NonNull NovelDetail novelDetail, @NonNull WebNovel webNovel) {
String sb = lineSeparator + novelBean.getTitle() + " - " + novelBean.getId() + lineSeparator +
novelDetail.getNovel_text();
taskContainer.put(novelBean.getId(), sb);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,6 @@ public static FragmentSearchNovel newInstance() {
return fragment;
}

@Override
public void initLayout() {
mLayoutID = R.layout.fragment_base_scroll_list;
}

@Override
public void initModel() {
searchModel = new ViewModelProvider(requireActivity()).get(SearchModel.class);
Expand Down
7 changes: 5 additions & 2 deletions app/src/main/java/ceui/lisa/fragments/WebNovelParser.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package ceui.lisa.fragments

import ceui.lisa.models.NovelDetail
import ceui.lisa.models.WebNovel
import ceui.lisa.utils.Common
import com.google.gson.Gson
import okhttp3.ResponseBody
import retrofit2.Response
Expand All @@ -16,17 +17,19 @@ abstract class WebNovelParser(response: Response<ResponseBody>) {
val cleaned = it.trim()
val result = cleaned.substring(7, cleaned.length - 1)
val webNovel = Gson().fromJson(result, WebNovel::class.java)
Common.showLog("${webNovel.illusts}")
onNovelPrepared(NovelDetail().apply {
novel_text = webNovel.text
series_next = webNovel.seriesNavigation?.nextNovel
series_prev = webNovel.seriesNavigation?.prevNovel
})
novel_marker = webNovel.marker
}, webNovel)
}
}
} catch (ex: Exception) {
ex.printStackTrace()
}
}

abstract fun onNovelPrepared(novelDetail: NovelDetail)
abstract fun onNovelPrepared(novelDetail: NovelDetail, webNovel: WebNovel)
}

This file was deleted.

Loading

0 comments on commit fee0a02

Please sign in to comment.