Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| da18cd9ade | |||
| 802aa6d71a | |||
| 3fbca6c14d | |||
| 5a07255b95 | |||
| 9ed1d5c8b6 | |||
| f07a4845b8 | |||
| 922ffbe7b0 |
@@ -136,7 +136,7 @@ android {
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 1
|
||||
versionName "1.1.8"
|
||||
versionName "1.1.9"
|
||||
}
|
||||
splits {
|
||||
abi {
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "lnreader",
|
||||
"version": "1.1.8",
|
||||
"version": "1.1.9",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "lnreader",
|
||||
"version": "1.1.8",
|
||||
"version": "1.1.9",
|
||||
"dependencies": {
|
||||
"@react-native-async-storage/async-storage": "^1.15.11",
|
||||
"@react-native-community/masked-view": "^0.1.11",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "lnreader",
|
||||
"version": "1.1.8",
|
||||
"version": "1.1.9",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"android": "react-native run-android",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useState, useEffect } from 'react';
|
||||
import { appversion } from '../utils/utils';
|
||||
import { appVersion } from '../utils/versionUtils';
|
||||
|
||||
export const useGithubUpdateChecker = () => {
|
||||
const latestReleaseUrl =
|
||||
@@ -23,7 +23,7 @@ export const useGithubUpdateChecker = () => {
|
||||
};
|
||||
|
||||
const isNewVersion = versionTag => {
|
||||
let currentVersion = `${appversion}`;
|
||||
let currentVersion = `${appVersion}`;
|
||||
const regex = /[^\\d.]/;
|
||||
|
||||
let newVersion = versionTag.replace(regex, '');
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { useAppSelector } from '../redux/hooks';
|
||||
|
||||
const useNovelTrackerInfo = (novelId: number) => {
|
||||
const { trackedNovels } = useAppSelector(state => state.trackerReducer);
|
||||
const tracker = useAppSelector(state => state.trackerReducer) as any;
|
||||
|
||||
const isTracked = trackedNovels.find(
|
||||
const isTracked = tracker.trackedNovels.find(
|
||||
(novel: any) => novel.novelId === novelId,
|
||||
);
|
||||
|
||||
return { isTracked };
|
||||
return { isTracked, isTrackerAvailable: tracker.tracker };
|
||||
};
|
||||
|
||||
export default useNovelTrackerInfo;
|
||||
|
||||
@@ -100,13 +100,13 @@ const BrowseScreen = () => {
|
||||
theme={theme}
|
||||
rightIcons={searchbarActions}
|
||||
/>
|
||||
{allSources.length === 0 ? (
|
||||
{languageFilters.length === 0 ? (
|
||||
<EmptyView
|
||||
icon="(・Д・。"
|
||||
description={getString('browseScreen.listEmpty')}
|
||||
theme={theme}
|
||||
/>
|
||||
) : (
|
||||
) : allSources.length === 0 ? null : (
|
||||
<>
|
||||
{showMyAnimeList && (
|
||||
<>
|
||||
|
||||
@@ -7,7 +7,7 @@ import { useSelector } from 'react-redux';
|
||||
import { List } from '../../components/List';
|
||||
import { ScreenContainer } from '../../components/Common';
|
||||
import { MoreHeader } from './components/MoreHeader';
|
||||
import { appversion, releasedt } from '../../utils/utils';
|
||||
import { appVersion, releaseDate } from '../../utils/versionUtils';
|
||||
|
||||
const AboutScreen = ({ navigation }) => {
|
||||
const theme = useSelector(state => state.settingsReducer.theme);
|
||||
@@ -24,14 +24,14 @@ const AboutScreen = ({ navigation }) => {
|
||||
<List.Section>
|
||||
<List.Item
|
||||
title="Version"
|
||||
description={`Stable ${appversion} (${releasedt})`}
|
||||
description={`Stable ${appVersion} (${releaseDate})`}
|
||||
theme={theme}
|
||||
/>
|
||||
<List.Item
|
||||
title="What's new"
|
||||
onPress={() =>
|
||||
Linking.openURL(
|
||||
`https://github.com/LNReader/lnreader/releases/tag/v${appversion}`,
|
||||
`https://github.com/LNReader/lnreader/releases/tag/v${appVersion}`,
|
||||
)
|
||||
}
|
||||
theme={theme}
|
||||
|
||||
@@ -26,7 +26,11 @@ const NovelScreenButtonGroup: React.FC<NovelScreenButtonGroupProps> = ({
|
||||
const { navigate } = useNavigation();
|
||||
const followButtonColor = followed ? theme.colorAccent : theme.textColorHint;
|
||||
|
||||
const { isTracked } = useNovelTrackerInfo(novel.novelId);
|
||||
const { isTracked, isTrackerAvailable } = useNovelTrackerInfo(novel.novelId);
|
||||
|
||||
const trackerButtonColor = isTracked
|
||||
? theme.colorAccent
|
||||
: theme.textColorHint;
|
||||
|
||||
const handleOpenWebView = async () => {
|
||||
WebBrowser.openBrowserAsync(sourceUrl);
|
||||
@@ -61,7 +65,7 @@ const NovelScreenButtonGroup: React.FC<NovelScreenButtonGroupProps> = ({
|
||||
</Text>
|
||||
</Pressable>
|
||||
</View>
|
||||
{isTracked ? (
|
||||
{isTrackerAvailable ? (
|
||||
<View style={styles.buttonContainer}>
|
||||
<Pressable
|
||||
android_ripple={{ color: theme.rippleColor }}
|
||||
@@ -70,10 +74,10 @@ const NovelScreenButtonGroup: React.FC<NovelScreenButtonGroupProps> = ({
|
||||
>
|
||||
<MaterialCommunityIcons
|
||||
name={isTracked ? 'check' : 'sync'}
|
||||
color={theme.textColorHint}
|
||||
color={trackerButtonColor}
|
||||
size={24}
|
||||
/>
|
||||
<Text style={[styles.buttonLabel, { color: theme.textColorHint }]}>
|
||||
<Text style={[styles.buttonLabel, { color: trackerButtonColor }]}>
|
||||
{isTracked ? 'Tracked' : 'Tracking'}
|
||||
</Text>
|
||||
</Pressable>
|
||||
|
||||
@@ -3,7 +3,7 @@ import sanitizeHtml from 'sanitize-html';
|
||||
export const sanitizeChapterText = (html: string) => {
|
||||
const text = sanitizeHtml(html, {
|
||||
allowedTags: sanitizeHtml.defaults.allowedTags.concat(['img']),
|
||||
allowedAttributes: { 'img': ['src'] },
|
||||
allowedAttributes: { 'img': ['src'], 'a': ['href'] },
|
||||
allowedSchemes: ['data', 'http', 'https'],
|
||||
});
|
||||
|
||||
|
||||
@@ -48,6 +48,7 @@ const parseNovelAndChapters = async novelUrl => {
|
||||
sourceName,
|
||||
url,
|
||||
novelUrl,
|
||||
chapters: [],
|
||||
};
|
||||
|
||||
novel.novelName = loadedCheerio('p.booktitle').text().trim();
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
const app_version = '1.1.8';
|
||||
const release_dt = '31/12/21 10:00 PM';
|
||||
|
||||
export const releasedt = release_dt;
|
||||
export const appversion = app_version;
|
||||
@@ -0,0 +1,2 @@
|
||||
export const appVersion = '1.1.9';
|
||||
export const releaseDate = '03/05/22 7:00 PM';
|
||||
@@ -1,77 +1,77 @@
|
||||
{
|
||||
"library": "Library",
|
||||
"library": "Biblioteca",
|
||||
"libraryScreen": {
|
||||
"searchbar": "Search library",
|
||||
"empty": "Your library is empty. Add series to your library from Browse.",
|
||||
"searchbar": "Pesquisar na biblioteca",
|
||||
"empty": "Sua biblioteca está vazia. Adicione séries à sua biblioteca pelo Navegador.",
|
||||
"bottomSheet": {
|
||||
"filters": {
|
||||
"downloaded": "Downloaded",
|
||||
"unread": "Unread",
|
||||
"completed": "Completed"
|
||||
"downloaded": "Baixados",
|
||||
"unread": "Não lidos",
|
||||
"completed": "Concluídos"
|
||||
},
|
||||
"sortOrders": {
|
||||
"dateAdded": "Date added",
|
||||
"alphabetically": "Alphabetically",
|
||||
"totalChapters": "Total chapters"
|
||||
"dateAdded": "Data adicionado",
|
||||
"alphabetically": "Em Ordem Alfabética",
|
||||
"totalChapters": "Total de capítulos"
|
||||
},
|
||||
"display": {
|
||||
"displayMode": "Display mode",
|
||||
"compact": "Compact grid",
|
||||
"comfortable": "Comfortable grid",
|
||||
"noTitle": "No title grid",
|
||||
"list": "List",
|
||||
"badges": "Badges",
|
||||
"downloadBadges": "Download badges",
|
||||
"unreadBadges": "Unread badges",
|
||||
"showNoOfItems": "Show number of items"
|
||||
"displayMode": "Modo de exibição",
|
||||
"compact": "Grade compacta",
|
||||
"comfortable": "Grade confortável",
|
||||
"noTitle": "Grade sem títulos",
|
||||
"list": "Lista",
|
||||
"badges": "Emblemas",
|
||||
"downloadBadges": "Baixar emblemas",
|
||||
"unreadBadges": "Emblemas não lidos",
|
||||
"showNoOfItems": "Mostrar número de itens"
|
||||
}
|
||||
}
|
||||
},
|
||||
"updates": "Updates",
|
||||
"updates": "Atualizações",
|
||||
"updatesScreen": {
|
||||
"searchbar": "Search updates",
|
||||
"lastUpdatedAt": "Library last updated:"
|
||||
"searchbar": "Procurar por atualizações",
|
||||
"lastUpdatedAt": "Biblioteca atualizada pela última vez:"
|
||||
},
|
||||
"history": "History",
|
||||
"history": "Histórico",
|
||||
"historyScreen": {
|
||||
"searchbar": "Search history"
|
||||
"searchbar": "Histórico de pesquisa"
|
||||
},
|
||||
"browse": "Browse",
|
||||
"browse": "Navegar",
|
||||
"browseScreen": {
|
||||
"discover": "Discover",
|
||||
"searchbar": "Search sources",
|
||||
"globalSearch": "Global search",
|
||||
"listEmpty": "Enable languages from settings",
|
||||
"lastUsed": "Last used",
|
||||
"pinned": "Pinned",
|
||||
"all": "All"
|
||||
"discover": "Descubra",
|
||||
"searchbar": "Pesquisar nas fontes",
|
||||
"globalSearch": "Pesquisa global",
|
||||
"listEmpty": "Habilitar idiomas a partir das configurações",
|
||||
"lastUsed": "Usado por último",
|
||||
"pinned": "Fixado",
|
||||
"all": "Todos"
|
||||
},
|
||||
"novelScreen": {
|
||||
"addToLibaray": "Add to library",
|
||||
"inLibaray": "In library",
|
||||
"continueReading": "Continue reading",
|
||||
"chapters": "chapters",
|
||||
"migrate": "Migrate",
|
||||
"addToLibaray": "Adicionar à biblioteca",
|
||||
"inLibaray": "Na biblioteca",
|
||||
"continueReading": "Continuar lendo",
|
||||
"chapters": "Capítulos",
|
||||
"migrate": "Migrar",
|
||||
"bottomSheet": {
|
||||
"filter": "Filter",
|
||||
"sort": "Sort",
|
||||
"display": "Display"
|
||||
"filter": "Filtro",
|
||||
"sort": "Ordenar por",
|
||||
"display": "Exibir"
|
||||
}
|
||||
},
|
||||
"more": "More",
|
||||
"more": "Mais",
|
||||
"moreScreen": {
|
||||
"settings": "Settings",
|
||||
"settings": "Configurações",
|
||||
"settingsScreen": {
|
||||
"generalSettings": "General",
|
||||
"generalSettings": "Geral",
|
||||
"generalSettingsScreen": {},
|
||||
"readerSettings": "Reader",
|
||||
"readerSettings": "Leitor de texto",
|
||||
"readerSettingsScreen": {},
|
||||
"browseSettings": "Browse Settings",
|
||||
"browseSettings": "Configurações de navegação",
|
||||
"browseSettingsScreen": {
|
||||
"onlyShowPinnedSources": "Only show pinned sources",
|
||||
"languages": "Languages",
|
||||
"searchAllSources": "Search all sources",
|
||||
"searchAllWarning": "Searching a large number of sources may freeze the app till searching is finished."
|
||||
"onlyShowPinnedSources": "Mostrar apenas fontes fixadas",
|
||||
"languages": "Idiomas",
|
||||
"searchAllSources": "Pesquisar em todas as fontes",
|
||||
"searchAllWarning": "Procurar em um grande número de fontes pode congelar o aplicativo até que a procura termine."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"noTitle": "Başlıksız ızgara",
|
||||
"list": "Liste",
|
||||
"badges": "Rozetler",
|
||||
"downloadBadges": "Rozetleri indir",
|
||||
"downloadBadges": "İndirilen LN'ler için rozet göster",
|
||||
"unreadBadges": "Okunmamış rozetler",
|
||||
"showNoOfItems": "Öğelerin sayısını göster"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user