init pikapika
This commit is contained in:
parent
e9e875a4da
commit
d2b2265900
14
README.md
14
README.md
|
@ -1,13 +1,13 @@
|
||||||
PIKAPI - 漫画客户端
|
PIKAPIKA - 漫画客户端
|
||||||
========
|
========
|
||||||
[![license](https://img.shields.io/github/license/niuhuan/pikapi)](https://raw.githubusercontent.com/niuhuan/pikapi/master/LICENSE)
|
[![license](https://img.shields.io/github/license/niuhuan/pikapika)](https://raw.githubusercontent.com/niuhuan/pikapika/master/LICENSE)
|
||||||
[![releases](https://img.shields.io/github/v/release/niuhuan/pikapi)](https://github.com/niuhuan/pikapi/releases)
|
[![releases](https://img.shields.io/github/v/release/niuhuan/pikapika)](https://github.com/niuhuan/pikapika/releases)
|
||||||
[![downloads](https://img.shields.io/github/downloads/niuhuan/pikapi/total)](https://github.com/niuhuan/pikapi/releases)
|
[![downloads](https://img.shields.io/github/downloads/niuhuan/pikapika/total)](https://github.com/niuhuan/pikapika/releases)
|
||||||
|
|
||||||
- 美观易用且无广告的漫画客户端, 能运行在Windows/MacOS/Linux/Android/IOS中。
|
- 美观易用且无广告的漫画客户端, 能运行在Windows/MacOS/Linux/Android/IOS中。
|
||||||
- 本仓库仅作为学习交流使用, 请您遵守当地法律法规以及开源协议。
|
- 本仓库仅作为学习交流使用, 请您遵守当地法律法规以及开源协议。
|
||||||
- 您的star和issue是对开发者的莫大鼓励, 可以源仓库下载最新的源码/安装包, 表示支持/提出建议。
|
- 您的star和issue是对开发者的莫大鼓励, 可以源仓库下载最新的源码/安装包, 表示支持/提出建议。
|
||||||
- 源仓库地址 [https://github.com/niuhuan/pikapi](https://github.com/niuhuan/pikapi)
|
- 源仓库地址 [https://github.com/niuhuan/pikapika](https://github.com/niuhuan/pikapika)
|
||||||
|
|
||||||
## 界面 / 功能
|
## 界面 / 功能
|
||||||
|
|
||||||
|
@ -59,8 +59,8 @@ VPN->代理->分流, 这三个功能如果同时设置, 您会在您手机的VPN
|
||||||
|
|
||||||
- 在ios/android环境 数据文件将会保存在程序自身数据目录中, 删除就会清理
|
- 在ios/android环境 数据文件将会保存在程序自身数据目录中, 删除就会清理
|
||||||
- 在 windows 数据文件将会保存在程序同一目录
|
- 在 windows 数据文件将会保存在程序同一目录
|
||||||
- 在 macos 数据文件将会"~/Library/Application Support/pikapi"
|
- 在 macos 数据文件将会"~/Library/Application Support/pikapika"
|
||||||
- 在 linux 数据文件将会"~/.pikapi"
|
- 在 linux 数据文件将会"~/.pikapika"
|
||||||
|
|
||||||
## 运行 / 构建
|
## 运行 / 构建
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="niuhuan.pikapi">
|
package="niuhuan.pikapika">
|
||||||
<!-- Flutter needs it to communicate with the running application
|
<!-- Flutter needs it to communicate with the running application
|
||||||
to allow setting breakpoints, to provide hot reload, etc.
|
to allow setting breakpoints, to provide hot reload, etc.
|
||||||
-->
|
-->
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="niuhuan.pikapi">
|
package="niuhuan.pikapika">
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
android:requestLegacyExternalStorage="true">
|
android:requestLegacyExternalStorage="true">
|
||||||
<!-- requestLegacyExternalStorage="true" api29 down -->
|
<!-- requestLegacyExternalStorage="true" api29 down -->
|
||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name="niuhuan.pikapika.MainActivity"
|
||||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||||
android:hardwareAccelerated="true"
|
android:hardwareAccelerated="true"
|
||||||
android:launchMode="singleTop"
|
android:launchMode="singleTop"
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
package niuhuan.pikapi
|
package niuhuan.pikapika
|
||||||
|
|
||||||
import android.content.ContentValues
|
import android.content.ContentValues
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
import android.graphics.BitmapFactory
|
import android.graphics.BitmapFactory
|
||||||
import android.graphics.Matrix
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Environment
|
import android.os.Environment
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
|
@ -29,10 +28,7 @@ import java.io.ByteArrayOutputStream
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileInputStream
|
import java.io.FileInputStream
|
||||||
import java.io.FileOutputStream
|
import java.io.FileOutputStream
|
||||||
import java.lang.IllegalStateException
|
|
||||||
import java.nio.file.CopyOption
|
|
||||||
import java.nio.file.Files
|
import java.nio.file.Files
|
||||||
import java.nio.file.StandardCopyOption
|
|
||||||
import java.util.concurrent.Executors
|
import java.util.concurrent.Executors
|
||||||
|
|
||||||
class MainActivity : FlutterActivity() {
|
class MainActivity : FlutterActivity() {
|
|
@ -1,5 +1,5 @@
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="niuhuan.pikapi">
|
package="niuhuan.pikapika">
|
||||||
<!-- Flutter needs it to communicate with the running application
|
<!-- Flutter needs it to communicate with the running application
|
||||||
to allow setting breakpoints, to provide hot reload, etc.
|
to allow setting breakpoints, to provide hot reload, etc.
|
||||||
-->
|
-->
|
||||||
|
|
|
@ -7,7 +7,7 @@ import (
|
||||||
"path"
|
"path"
|
||||||
path2 "path"
|
path2 "path"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"pikapi/main/config"
|
"pikapika/main/config"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
@ -35,11 +35,11 @@ func init() {
|
||||||
if i < 0 {
|
if i < 0 {
|
||||||
panic(errors.New(" can't find \"/\" or \"\\\""))
|
panic(errors.New(" can't find \"/\" or \"\\\""))
|
||||||
}
|
}
|
||||||
applicationDir = path2.Join(path[0:i+1], "data", "pikapi")
|
applicationDir = path2.Join(path[0:i+1], "data")
|
||||||
case "darwin":
|
case "darwin":
|
||||||
applicationDir = path.Join(applicationDir, "Library", "Application Support", "pikapi")
|
applicationDir = path.Join(applicationDir, "Library", "Application Support", "pikapika")
|
||||||
case "linux":
|
case "linux":
|
||||||
applicationDir = path.Join(applicationDir, ".pikapi")
|
applicationDir = path.Join(applicationDir, ".pikapika")
|
||||||
default:
|
default:
|
||||||
panic(errors.New("not supported system"))
|
panic(errors.New("not supported system"))
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ import (
|
||||||
_ "image/png"
|
_ "image/png"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"pikapi/main/database/properties"
|
"pikapika/main/database/properties"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
|
@ -7,14 +7,14 @@ import (
|
||||||
"github.com/go-flutter-desktop/plugins/url_launcher"
|
"github.com/go-flutter-desktop/plugins/url_launcher"
|
||||||
"github.com/go-gl/glfw/v3.3/glfw"
|
"github.com/go-gl/glfw/v3.3/glfw"
|
||||||
"github.com/miguelpruivo/flutter_file_picker/go"
|
"github.com/miguelpruivo/flutter_file_picker/go"
|
||||||
"pikapi/main/controller"
|
"pikapika/main/controller"
|
||||||
"pikapi/main/database/properties"
|
"pikapika/main/database/properties"
|
||||||
"strconv"
|
"strconv"
|
||||||
"sync"
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
var options = []flutter.Option{
|
var options = []flutter.Option{
|
||||||
flutter.AddPlugin(&Plugin{}),
|
flutter.AddPlugin(&PikapikaPlugin{}),
|
||||||
flutter.AddPlugin(&file_picker.FilePickerPlugin{}),
|
flutter.AddPlugin(&file_picker.FilePickerPlugin{}),
|
||||||
flutter.AddPlugin(&url_launcher.UrlLauncherPlugin{}),
|
flutter.AddPlugin(&url_launcher.UrlLauncherPlugin{}),
|
||||||
}
|
}
|
||||||
|
@ -39,10 +39,10 @@ func (s *EventHandler) OnCancel(arguments interface{}) {
|
||||||
|
|
||||||
const channelName = "method"
|
const channelName = "method"
|
||||||
|
|
||||||
type Plugin struct {
|
type PikapikaPlugin struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Plugin) InitPlugin(messenger plugin.BinaryMessenger) error {
|
func (p *PikapikaPlugin) InitPlugin(messenger plugin.BinaryMessenger) error {
|
||||||
|
|
||||||
channel := plugin.NewMethodChannel(messenger, channelName, plugin.StandardMethodCodec{})
|
channel := plugin.NewMethodChannel(messenger, channelName, plugin.StandardMethodCodec{})
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ func (p *Plugin) InitPlugin(messenger plugin.BinaryMessenger) error {
|
||||||
return nil // no error
|
return nil // no error
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Plugin) InitPluginGLFW(window *glfw.Window) error {
|
func (p *PikapikaPlugin) InitPluginGLFW(window *glfw.Window) error {
|
||||||
window.SetSizeCallback(func(w *glfw.Window, width int, height int) {
|
window.SetSizeCallback(func(w *glfw.Window, width int, height int) {
|
||||||
go func() {
|
go func() {
|
||||||
properties.SaveProperty("window_width", strconv.Itoa(width))
|
properties.SaveProperty("window_width", strconv.Itoa(width))
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#application-name: "pikapi" # Uncomment to modify this value.
|
#application-name: "pikapi" # Uncomment to modify this value.
|
||||||
#executable-name: "pikapi" # Uncomment to modify this value. Only lowercase a-z, numbers, underscores and no spaces
|
#executable-name: "pikapi" # Uncomment to modify this value. Only lowercase a-z, numbers, underscores and no spaces
|
||||||
#package-name: "pikapi" # Uncomment to modify this value. Only lowercase a-z, numbers and no underscores or spaces
|
#package-name: "pikapi" # Uncomment to modify this value. Only lowercase a-z, numbers and no underscores or spaces
|
||||||
organization-name: "com.pikapi"
|
organization-name: "niuhuan"
|
||||||
license: "" # MANDATORY: Fill in your SPDX license name: https://spdx.org/licenses
|
license: "" # MANDATORY: Fill in your SPDX license name: https://spdx.org/licenses
|
||||||
target: lib/main_desktop.dart
|
target: lib/main_desktop.dart
|
||||||
# opengl: "none" # Uncomment this line if you have trouble with your OpenGL driver (https://github.com/go-flutter-desktop/go-flutter/issues/272)
|
# opengl: "none" # Uncomment this line if you have trouble with your OpenGL driver (https://github.com/go-flutter-desktop/go-flutter/issues/272)
|
||||||
|
|
|
@ -2,11 +2,11 @@ package config
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"path"
|
"path"
|
||||||
"pikapi/main/controller"
|
"pikapika/main/controller"
|
||||||
"pikapi/main/database/comic_center"
|
"pikapika/main/database/comic_center"
|
||||||
"pikapi/main/database/network_cache"
|
"pikapika/main/database/network_cache"
|
||||||
"pikapi/main/database/properties"
|
"pikapika/main/database/properties"
|
||||||
"pikapi/main/utils"
|
"pikapika/main/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
// InitApplication 由不同的平台直接调用, 根据提供的路径初始化数据库, 资料文件夹
|
// InitApplication 由不同的平台直接调用, 根据提供的路径初始化数据库, 资料文件夹
|
||||||
|
|
|
@ -9,9 +9,9 @@ import (
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"pikapi/main/database/comic_center"
|
"pikapika/main/database/comic_center"
|
||||||
"pikapi/main/database/network_cache"
|
"pikapika/main/database/network_cache"
|
||||||
"pikapi/main/database/properties"
|
"pikapika/main/database/properties"
|
||||||
"regexp"
|
"regexp"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
|
@ -2,7 +2,7 @@ package controller
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"pikapi/main/database/comic_center"
|
"pikapika/main/database/comic_center"
|
||||||
)
|
)
|
||||||
|
|
||||||
// EventNotify EventChannel 总线
|
// EventNotify EventChannel 总线
|
||||||
|
|
|
@ -8,8 +8,8 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"pikapi/main/database/comic_center"
|
"pikapika/main/database/comic_center"
|
||||||
"pikapi/main/utils"
|
"pikapika/main/utils"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
|
@ -12,8 +12,8 @@ import (
|
||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"pikapi/main/database/comic_center"
|
"pikapika/main/database/comic_center"
|
||||||
"pikapi/main/utils"
|
"pikapika/main/utils"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ import (
|
||||||
_ "image/png"
|
_ "image/png"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
"pikapi/main/database/comic_center"
|
"pikapika/main/database/comic_center"
|
||||||
"sync"
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -11,8 +11,8 @@ import (
|
||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
path2 "path"
|
path2 "path"
|
||||||
"pikapi/main/database/comic_center"
|
"pikapika/main/database/comic_center"
|
||||||
"pikapi/main/utils"
|
"pikapika/main/utils"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package controller
|
package controller
|
||||||
|
|
||||||
import "pikapi/main/database/comic_center"
|
import "pikapika/main/database/comic_center"
|
||||||
|
|
||||||
type DisplayImageData struct {
|
type DisplayImageData struct {
|
||||||
FileSize int64 `json:"fileSize"`
|
FileSize int64 `json:"fileSize"`
|
||||||
|
|
|
@ -10,10 +10,10 @@ import (
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
path2 "path"
|
path2 "path"
|
||||||
"pikapi/main/database/comic_center"
|
"pikapika/main/database/comic_center"
|
||||||
"pikapi/main/database/network_cache"
|
"pikapika/main/database/network_cache"
|
||||||
"pikapi/main/database/properties"
|
"pikapika/main/database/properties"
|
||||||
"pikapi/main/utils"
|
"pikapika/main/utils"
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
@ -513,6 +513,19 @@ func convertImageToJPEG100(params string) error {
|
||||||
return jpeg.Encode(stream, i, &jpeg.Options{Quality: 100})
|
return jpeg.Encode(stream, i, &jpeg.Options{Quality: 100})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func httpGet(url string) (string, error) {
|
||||||
|
rsp, err := client.Get(url)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
defer rsp.Body.Close()
|
||||||
|
buff, err := ioutil.ReadAll(rsp.Body)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
return string(buff), nil
|
||||||
|
}
|
||||||
|
|
||||||
func FlatInvoke(method string, params string) (string, error) {
|
func FlatInvoke(method string, params string) (string, error) {
|
||||||
switch method {
|
switch method {
|
||||||
case "saveProperty":
|
case "saveProperty":
|
||||||
|
@ -684,6 +697,8 @@ func FlatInvoke(method string, params string) (string, error) {
|
||||||
return strconv.Itoa(loadDownloadThreadCount()), nil
|
return strconv.Itoa(loadDownloadThreadCount()), nil
|
||||||
case "switchLikeComment":
|
case "switchLikeComment":
|
||||||
return switchLikeComment(params)
|
return switchLikeComment(params)
|
||||||
|
case "httpGet":
|
||||||
|
return httpGet(params)
|
||||||
}
|
}
|
||||||
return "", errors.New("method not found : " + method)
|
return "", errors.New("method not found : " + method)
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ import (
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"gorm.io/gorm/clause"
|
"gorm.io/gorm/clause"
|
||||||
"path"
|
"path"
|
||||||
"pikapi/main/utils"
|
"pikapika/main/utils"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
|
@ -6,7 +6,7 @@ import (
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"gorm.io/gorm/clause"
|
"gorm.io/gorm/clause"
|
||||||
"path"
|
"path"
|
||||||
"pikapi/main/utils"
|
"pikapika/main/utils"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
|
@ -6,7 +6,7 @@ import (
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"gorm.io/gorm/clause"
|
"gorm.io/gorm/clause"
|
||||||
"path"
|
"path"
|
||||||
"pikapi/main/utils"
|
"pikapika/main/utils"
|
||||||
"strconv"
|
"strconv"
|
||||||
"sync"
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
gomobile bind -target=ios -o lib/Pikapi.xcframework ./
|
gomobile bind -target=ios -o lib/Mobile.xcframework ./
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package mobile
|
package mobile
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"pikapi/main/config"
|
"pikapika/main/config"
|
||||||
"pikapi/main/controller"
|
"pikapika/main/controller"
|
||||||
)
|
)
|
||||||
|
|
||||||
func InitApplication(application string) {
|
func InitApplication(application string) {
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
||||||
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
|
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
|
||||||
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
|
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
|
||||||
DDE03DA827193C22000ABF7B /* Pikapi.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DDE03DA727193C22000ABF7B /* Pikapi.xcframework */; };
|
DD1F548D273CB9A900B04493 /* Mobile.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DD1F548C273CB9A900B04493 /* Mobile.xcframework */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXCopyFilesBuildPhase section */
|
/* Begin PBXCopyFilesBuildPhase section */
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||||
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
CA7EB5DA1FDE22BAC5B01D77 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
|
CA7EB5DA1FDE22BAC5B01D77 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
|
||||||
DDE03DA727193C22000ABF7B /* Pikapi.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Pikapi.xcframework; path = ../go/mobile/lib/Pikapi.xcframework; sourceTree = "<group>"; };
|
DD1F548C273CB9A900B04493 /* Mobile.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Mobile.xcframework; path = ../go/mobile/lib/Mobile.xcframework; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
@ -56,8 +56,8 @@
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
DDE03DA827193C22000ABF7B /* Pikapi.xcframework in Frameworks */,
|
|
||||||
0E44DEFD92B805627806403C /* Pods_Runner.framework in Frameworks */,
|
0E44DEFD92B805627806403C /* Pods_Runner.framework in Frameworks */,
|
||||||
|
DD1F548D273CB9A900B04493 /* Mobile.xcframework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -88,7 +88,7 @@
|
||||||
97C146E51CF9000F007C117D = {
|
97C146E51CF9000F007C117D = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
DDE03DA727193C22000ABF7B /* Pikapi.xcframework */,
|
DD1F548C273CB9A900B04493 /* Mobile.xcframework */,
|
||||||
9740EEB11CF90186004384FC /* Flutter */,
|
9740EEB11CF90186004384FC /* Flutter */,
|
||||||
97C146F01CF9000F007C117D /* Runner */,
|
97C146F01CF9000F007C117D /* Runner */,
|
||||||
97C146EF1CF9000F007C117D /* Products */,
|
97C146EF1CF9000F007C117D /* Products */,
|
||||||
|
@ -366,7 +366,7 @@
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = niuhuan.pikapi;
|
PRODUCT_BUNDLE_IDENTIFIER = niuhuan.pikapika;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
|
@ -496,7 +496,7 @@
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = niuhuan.pikapi;
|
PRODUCT_BUNDLE_IDENTIFIER = niuhuan.pikapika;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||||
|
@ -518,7 +518,7 @@
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = niuhuan.pikapi;
|
PRODUCT_BUNDLE_IDENTIFIER = niuhuan.pikapika;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import UIKit
|
import UIKit
|
||||||
import Flutter
|
import Flutter
|
||||||
import Pikapi
|
import Mobile
|
||||||
|
|
||||||
@UIApplicationMain
|
@UIApplicationMain
|
||||||
@objc class AppDelegate: FlutterAppDelegate {
|
@objc class AppDelegate: FlutterAppDelegate {
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<key>NSPhotoLibraryUsageDescription</key>
|
|
||||||
<string>Save images</string>
|
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
|
@ -13,7 +11,7 @@
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
<string>6.0</string>
|
<string>6.0</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>pikapi</string>
|
<string>pikapika</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
|
@ -24,6 +22,8 @@
|
||||||
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
||||||
<key>LSRequiresIPhoneOS</key>
|
<key>LSRequiresIPhoneOS</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
<key>NSPhotoLibraryUsageDescription</key>
|
||||||
|
<string>Save images</string>
|
||||||
<key>UILaunchStoryboardName</key>
|
<key>UILaunchStoryboardName</key>
|
||||||
<string>LaunchScreen</string>
|
<string>LaunchScreen</string>
|
||||||
<key>UIMainStoryboardFile</key>
|
<key>UIMainStoryboardFile</key>
|
||||||
|
|
|
@ -5,8 +5,8 @@ import 'package:clipboard/clipboard.dart';
|
||||||
import 'package:filesystem_picker/filesystem_picker.dart';
|
import 'package:filesystem_picker/filesystem_picker.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:permission_handler/permission_handler.dart';
|
import 'package:permission_handler/permission_handler.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/config/Platform.dart';
|
import 'package:pikapika/basic/config/Platform.dart';
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
import 'Method.dart';
|
import 'Method.dart';
|
||||||
import 'config/ChooserRoot.dart';
|
import 'config/ChooserRoot.dart';
|
||||||
|
|
|
@ -2,8 +2,8 @@ import 'dart:convert';
|
||||||
import 'dart:typed_data';
|
import 'dart:typed_data';
|
||||||
|
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/config/Quality.dart';
|
import 'package:pikapika/basic/config/Quality.dart';
|
||||||
|
|
||||||
/// 使用MethodChannel与平台通信
|
/// 使用MethodChannel与平台通信
|
||||||
|
|
||||||
|
@ -670,4 +670,10 @@ class Method {
|
||||||
Future<Uint8List> convertToPNG(String path) async {
|
Future<Uint8List> convertToPNG(String path) async {
|
||||||
return await _channel.invokeMethod("convertToPNG", {"path": path});
|
return await _channel.invokeMethod("convertToPNG", {"path": path});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// HTTP-GET-STRING
|
||||||
|
Future<String> httpGet(String url) async {
|
||||||
|
return await _flatInvoke("httpGet", url);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
|
|
||||||
import '../Common.dart';
|
import '../Common.dart';
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
|
|
||||||
|
|
||||||
const _autoCleanMap = {
|
const _autoCleanMap = {
|
||||||
|
|
|
@ -4,8 +4,8 @@ import 'dart:io';
|
||||||
|
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/Cross.dart';
|
import 'package:pikapika/basic/Cross.dart';
|
||||||
|
|
||||||
import '../Method.dart';
|
import '../Method.dart';
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
|
|
||||||
late int _downloadThreadCount;
|
late int _downloadThreadCount;
|
||||||
const _values = [1, 2, 3, 4, 5];
|
const _values = [1, 2, 3, 4, 5];
|
||||||
|
|
|
@ -4,7 +4,7 @@ import 'dart:convert';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
|
|
||||||
import '../Common.dart';
|
import '../Common.dart';
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/// 阅读器的方向
|
/// 阅读器的方向
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
|
|
||||||
enum ReaderDirection {
|
enum ReaderDirection {
|
||||||
TOP_TO_BOTTOM,
|
TOP_TO_BOTTOM,
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
import 'package:event/event.dart';
|
import 'package:event/event.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import '../Method.dart';
|
import '../Method.dart';
|
||||||
import 'Platform.dart';
|
import 'Platform.dart';
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
import 'dart:async' show Future;
|
import 'dart:async' show Future;
|
||||||
import 'package:flutter/services.dart' show rootBundle;
|
import 'package:flutter/services.dart' show rootBundle;
|
||||||
|
|
||||||
|
import '../Method.dart';
|
||||||
|
|
||||||
|
const _versionUrl =
|
||||||
|
"https://api.github.com/repos/niuhuan/pikapi-flutter/releases/latest";
|
||||||
const _versionAssets = 'lib/assets/version.txt';
|
const _versionAssets = 'lib/assets/version.txt';
|
||||||
RegExp _versionExp = RegExp(r"^v\d+\.\d+.\d+$");
|
RegExp _versionExp = RegExp(r"^v\d+\.\d+.\d+$");
|
||||||
|
|
||||||
late String _version;
|
late String _version;
|
||||||
|
var _latestVersion = "";
|
||||||
|
|
||||||
Future initVersion() async {
|
Future initVersion() async {
|
||||||
try {
|
try {
|
||||||
|
@ -14,10 +19,17 @@ Future initVersion() async {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future versionCheck() async {
|
Future autoCheckNewVersion() async {}
|
||||||
|
|
||||||
|
Future _versionCheck() async {
|
||||||
if (_versionExp.hasMatch(_version)) {
|
if (_versionExp.hasMatch(_version)) {
|
||||||
|
// exception
|
||||||
|
String latestVersion = (await method.httpGet(_versionUrl)).trim();
|
||||||
|
if (latestVersion != _version) {
|
||||||
|
// new Version
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// dirtyVersion
|
// dirtyVersion
|
||||||
}
|
}
|
||||||
// String latestVersion = (await method.httpGet(_versionAddress)).trim();
|
//
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:event/event.dart';
|
import 'package:event/event.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/screens/InitScreen.dart';
|
import 'package:pikapika/screens/InitScreen.dart';
|
||||||
import 'package:pikapi/basic/Navigatior.dart';
|
import 'package:pikapika/basic/Navigatior.dart';
|
||||||
|
|
||||||
import 'basic/config/Themes.dart';
|
import 'basic/config/Themes.dart';
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
import 'package:flutter/gestures.dart';
|
import 'package:flutter/gestures.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/config/Themes.dart';
|
import 'package:pikapika/basic/config/Themes.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'package:pikapi/basic/enum/ErrorTypes.dart';
|
import 'package:pikapika/basic/enum/ErrorTypes.dart';
|
||||||
import 'package:pikapi/screens/RegisterScreen.dart';
|
import 'package:pikapika/screens/RegisterScreen.dart';
|
||||||
import 'package:pikapi/screens/components/NetworkSetting.dart';
|
import 'package:pikapika/screens/components/NetworkSetting.dart';
|
||||||
|
|
||||||
import 'AppScreen.dart';
|
import 'AppScreen.dart';
|
||||||
import 'DownloadListScreen.dart';
|
import 'DownloadListScreen.dart';
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
import 'package:event/event.dart';
|
import 'package:event/event.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_search_bar/flutter_search_bar.dart';
|
import 'package:flutter_search_bar/flutter_search_bar.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/store/Categories.dart';
|
import 'package:pikapika/basic/store/Categories.dart';
|
||||||
import 'package:pikapi/basic/config/ShadowCategories.dart';
|
import 'package:pikapika/basic/config/ShadowCategories.dart';
|
||||||
import 'package:pikapi/screens/RankingsScreen.dart';
|
import 'package:pikapika/screens/RankingsScreen.dart';
|
||||||
import 'package:pikapi/screens/SearchScreen.dart';
|
import 'package:pikapika/screens/SearchScreen.dart';
|
||||||
import 'package:pikapi/screens/components/ContentError.dart';
|
import 'package:pikapika/screens/components/ContentError.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'ComicsScreen.dart';
|
import 'ComicsScreen.dart';
|
||||||
import 'GamesScreen.dart';
|
import 'GamesScreen.dart';
|
||||||
import 'RandomComicsScreen.dart';
|
import 'RandomComicsScreen.dart';
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Channels.dart';
|
import 'package:pikapika/basic/Channels.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'package:pikapi/screens/components/FitButton.dart';
|
import 'package:pikapika/screens/components/FitButton.dart';
|
||||||
import 'components/ContentLoading.dart';
|
import 'components/ContentLoading.dart';
|
||||||
|
|
||||||
// 清理
|
// 清理
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
import 'package:flutter/gestures.dart';
|
import 'package:flutter/gestures.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/Cross.dart';
|
import 'package:pikapika/basic/Cross.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/screens/ComicsScreen.dart';
|
import 'package:pikapika/screens/ComicsScreen.dart';
|
||||||
import 'package:pikapi/basic/Navigatior.dart';
|
import 'package:pikapika/basic/Navigatior.dart';
|
||||||
import 'package:pikapi/screens/components/CommentMainType.dart';
|
import 'package:pikapika/screens/components/CommentMainType.dart';
|
||||||
import 'package:pikapi/screens/components/ItemBuilder.dart';
|
import 'package:pikapika/screens/components/ItemBuilder.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'ComicReaderScreen.dart';
|
import 'ComicReaderScreen.dart';
|
||||||
import 'DownloadConfirmScreen.dart';
|
import 'DownloadConfirmScreen.dart';
|
||||||
import 'components/CommentList.dart';
|
import 'components/CommentList.dart';
|
||||||
|
|
|
@ -2,14 +2,14 @@ import 'dart:async';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'package:pikapi/basic/config/AutoFullScreen.dart';
|
import 'package:pikapika/basic/config/AutoFullScreen.dart';
|
||||||
import 'package:pikapi/basic/config/FullScreenUI.dart';
|
import 'package:pikapika/basic/config/FullScreenUI.dart';
|
||||||
import 'package:pikapi/basic/config/Quality.dart';
|
import 'package:pikapika/basic/config/Quality.dart';
|
||||||
import 'package:pikapi/basic/config/ReaderDirection.dart';
|
import 'package:pikapika/basic/config/ReaderDirection.dart';
|
||||||
import 'package:pikapi/basic/config/ReaderType.dart';
|
import 'package:pikapika/basic/config/ReaderType.dart';
|
||||||
import 'package:pikapi/screens/components/ContentBuilder.dart';
|
import 'package:pikapika/screens/components/ContentBuilder.dart';
|
||||||
import 'components/ImageReader.dart';
|
import 'components/ImageReader.dart';
|
||||||
|
|
||||||
// 在线阅读漫画
|
// 在线阅读漫画
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_search_bar/flutter_search_bar.dart';
|
import 'package:flutter_search_bar/flutter_search_bar.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/config/ShadowCategories.dart';
|
import 'package:pikapika/basic/config/ShadowCategories.dart';
|
||||||
import 'package:pikapi/basic/store/Categories.dart';
|
import 'package:pikapika/basic/store/Categories.dart';
|
||||||
import 'package:pikapi/basic/config/ListLayout.dart';
|
import 'package:pikapika/basic/config/ListLayout.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import '../basic/Entities.dart';
|
import '../basic/Entities.dart';
|
||||||
import 'SearchScreen.dart';
|
import 'SearchScreen.dart';
|
||||||
import 'components/ComicPager.dart';
|
import 'components/ComicPager.dart';
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart' as e;
|
import 'package:pikapika/basic/Entities.dart' as e;
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'package:pikapi/screens/components/CommentItem.dart';
|
import 'package:pikapika/screens/components/CommentItem.dart';
|
||||||
import 'package:pikapi/screens/components/CommentMainType.dart';
|
import 'package:pikapika/screens/components/CommentMainType.dart';
|
||||||
import 'package:pikapi/screens/components/ContentBuilder.dart';
|
import 'package:pikapika/screens/components/ContentBuilder.dart';
|
||||||
|
|
||||||
class _CommentChildPage extends e.Page {
|
class _CommentChildPage extends e.Page {
|
||||||
late List<ChildOfComment> docs;
|
late List<ChildOfComment> docs;
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/screens/components/ContentLoading.dart';
|
import 'package:pikapika/screens/components/ContentLoading.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
|
|
||||||
import 'components/ComicInfoCard.dart';
|
import 'components/ComicInfoCard.dart';
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,12 @@ import 'dart:io';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:permission_handler/permission_handler.dart';
|
import 'package:permission_handler/permission_handler.dart';
|
||||||
import 'package:pikapi/basic/Channels.dart';
|
import 'package:pikapika/basic/Channels.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/Cross.dart';
|
import 'package:pikapika/basic/Cross.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'package:pikapi/screens/DownloadExportToSocketScreen.dart';
|
import 'package:pikapika/screens/DownloadExportToSocketScreen.dart';
|
||||||
|
|
||||||
import 'components/ContentError.dart';
|
import 'components/ContentError.dart';
|
||||||
import 'components/ContentLoading.dart';
|
import 'components/ContentLoading.dart';
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Channels.dart';
|
import 'package:pikapika/basic/Channels.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
|
|
||||||
import 'components/ContentError.dart';
|
import 'components/ContentError.dart';
|
||||||
import 'components/ContentLoading.dart';
|
import 'components/ContentLoading.dart';
|
||||||
|
|
|
@ -4,10 +4,10 @@ import 'dart:io';
|
||||||
import 'package:filesystem_picker/filesystem_picker.dart';
|
import 'package:filesystem_picker/filesystem_picker.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:permission_handler/permission_handler.dart';
|
import 'package:permission_handler/permission_handler.dart';
|
||||||
import 'package:pikapi/basic/Channels.dart';
|
import 'package:pikapika/basic/Channels.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'package:pikapi/basic/config/ChooserRoot.dart';
|
import 'package:pikapika/basic/config/ChooserRoot.dart';
|
||||||
|
|
||||||
import 'components/ContentLoading.dart';
|
import 'components/ContentLoading.dart';
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/Navigatior.dart';
|
import 'package:pikapika/basic/Navigatior.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'ComicInfoScreen.dart';
|
import 'ComicInfoScreen.dart';
|
||||||
import 'DownloadExportToFileScreen.dart';
|
import 'DownloadExportToFileScreen.dart';
|
||||||
import 'DownloadReaderScreen.dart';
|
import 'DownloadReaderScreen.dart';
|
||||||
|
|
|
@ -2,10 +2,10 @@ import 'dart:async';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Channels.dart';
|
import 'package:pikapika/basic/Channels.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'DownloadImportScreen.dart';
|
import 'DownloadImportScreen.dart';
|
||||||
import 'DownloadInfoScreen.dart';
|
import 'DownloadInfoScreen.dart';
|
||||||
import 'components/ContentLoading.dart';
|
import 'components/ContentLoading.dart';
|
||||||
|
|
|
@ -2,13 +2,13 @@ import 'dart:async';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/config/AutoFullScreen.dart';
|
import 'package:pikapika/basic/config/AutoFullScreen.dart';
|
||||||
import 'package:pikapi/basic/config/FullScreenUI.dart';
|
import 'package:pikapika/basic/config/FullScreenUI.dart';
|
||||||
import 'package:pikapi/basic/config/ReaderDirection.dart';
|
import 'package:pikapika/basic/config/ReaderDirection.dart';
|
||||||
import 'package:pikapi/basic/config/ReaderType.dart';
|
import 'package:pikapika/basic/config/ReaderType.dart';
|
||||||
import 'package:pikapi/screens/components/ContentBuilder.dart';
|
import 'package:pikapika/screens/components/ContentBuilder.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'components/ImageReader.dart';
|
import 'components/ImageReader.dart';
|
||||||
|
|
||||||
// 阅读下载的内容
|
// 阅读下载的内容
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import '../basic/Entities.dart';
|
import '../basic/Entities.dart';
|
||||||
import 'components/ComicPager.dart';
|
import 'components/ComicPager.dart';
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:photo_view/photo_view.dart';
|
import 'package:photo_view/photo_view.dart';
|
||||||
import 'package:pikapi/basic/Cross.dart';
|
import 'package:pikapika/basic/Cross.dart';
|
||||||
import 'package:pikapi/screens/components/Images.dart';
|
import 'package:pikapika/screens/components/Images.dart';
|
||||||
|
|
||||||
// 预览图片
|
// 预览图片
|
||||||
class FilePhotoViewScreen extends StatelessWidget {
|
class FilePhotoViewScreen extends StatelessWidget {
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Cross.dart';
|
import 'package:pikapika/basic/Cross.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'package:pikapi/screens/components/ItemBuilder.dart';
|
import 'package:pikapika/screens/components/ItemBuilder.dart';
|
||||||
|
|
||||||
import 'components/GameTitleCard.dart';
|
import 'components/GameTitleCard.dart';
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'package:pikapi/screens/components/CommentMainType.dart';
|
import 'package:pikapika/screens/components/CommentMainType.dart';
|
||||||
import 'package:pikapi/screens/components/ContentError.dart';
|
import 'package:pikapika/screens/components/ContentError.dart';
|
||||||
import 'package:pikapi/screens/components/ContentLoading.dart';
|
import 'package:pikapika/screens/components/ContentLoading.dart';
|
||||||
import 'package:pikapi/screens/components/Images.dart';
|
import 'package:pikapika/screens/components/Images.dart';
|
||||||
|
|
||||||
import 'GameDownloadScreen.dart';
|
import 'GameDownloadScreen.dart';
|
||||||
import 'components/CommentList.dart';
|
import 'components/CommentList.dart';
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'package:pikapi/screens/components/ContentBuilder.dart';
|
import 'package:pikapika/screens/components/ContentBuilder.dart';
|
||||||
|
|
||||||
import 'GameInfoScreen.dart';
|
import 'GameInfoScreen.dart';
|
||||||
import 'components/Images.dart';
|
import 'components/Images.dart';
|
||||||
|
|
|
@ -1,30 +1,30 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/config/Address.dart';
|
import 'package:pikapika/basic/config/Address.dart';
|
||||||
import 'package:pikapi/basic/config/AndroidDisplayMode.dart';
|
import 'package:pikapika/basic/config/AndroidDisplayMode.dart';
|
||||||
import 'package:pikapi/basic/config/AndroidSecureFlag.dart';
|
import 'package:pikapika/basic/config/AndroidSecureFlag.dart';
|
||||||
import 'package:pikapi/basic/config/AutoClean.dart';
|
import 'package:pikapika/basic/config/AutoClean.dart';
|
||||||
import 'package:pikapi/basic/config/AutoFullScreen.dart';
|
import 'package:pikapika/basic/config/AutoFullScreen.dart';
|
||||||
import 'package:pikapi/basic/config/ChooserRoot.dart';
|
import 'package:pikapika/basic/config/ChooserRoot.dart';
|
||||||
import 'package:pikapi/basic/config/ContentFailedReloadAction.dart';
|
import 'package:pikapika/basic/config/ContentFailedReloadAction.dart';
|
||||||
import 'package:pikapi/basic/config/ConvertToPNG.dart';
|
import 'package:pikapika/basic/config/ConvertToPNG.dart';
|
||||||
import 'package:pikapi/basic/config/DownloadAndExportPath.dart';
|
import 'package:pikapika/basic/config/DownloadAndExportPath.dart';
|
||||||
import 'package:pikapi/basic/config/DownloadThreadCount.dart';
|
import 'package:pikapika/basic/config/DownloadThreadCount.dart';
|
||||||
import 'package:pikapi/basic/config/FullScreenAction.dart';
|
import 'package:pikapika/basic/config/FullScreenAction.dart';
|
||||||
import 'package:pikapi/basic/config/FullScreenUI.dart';
|
import 'package:pikapika/basic/config/FullScreenUI.dart';
|
||||||
import 'package:pikapi/basic/config/KeyboardController.dart';
|
import 'package:pikapika/basic/config/KeyboardController.dart';
|
||||||
import 'package:pikapi/basic/config/PagerAction.dart';
|
import 'package:pikapika/basic/config/PagerAction.dart';
|
||||||
import 'package:pikapi/basic/config/Platform.dart';
|
import 'package:pikapika/basic/config/Platform.dart';
|
||||||
import 'package:pikapi/basic/config/Proxy.dart';
|
import 'package:pikapika/basic/config/Proxy.dart';
|
||||||
import 'package:pikapi/basic/config/Quality.dart';
|
import 'package:pikapika/basic/config/Quality.dart';
|
||||||
import 'package:pikapi/basic/config/ReaderDirection.dart';
|
import 'package:pikapika/basic/config/ReaderDirection.dart';
|
||||||
import 'package:pikapi/basic/config/ReaderType.dart';
|
import 'package:pikapika/basic/config/ReaderType.dart';
|
||||||
import 'package:pikapi/basic/config/ShadowCategories.dart';
|
import 'package:pikapika/basic/config/ShadowCategories.dart';
|
||||||
import 'package:pikapi/basic/config/Themes.dart';
|
import 'package:pikapika/basic/config/Themes.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'package:pikapi/basic/config/ListLayout.dart';
|
import 'package:pikapika/basic/config/ListLayout.dart';
|
||||||
import 'package:pikapi/basic/config/TimeOffsetHour.dart';
|
import 'package:pikapika/basic/config/TimeOffsetHour.dart';
|
||||||
import 'package:pikapi/basic/config/Version.dart';
|
import 'package:pikapika/basic/config/Version.dart';
|
||||||
import 'package:pikapi/basic/config/VolumeController.dart';
|
import 'package:pikapika/basic/config/VolumeController.dart';
|
||||||
|
|
||||||
import 'AccountScreen.dart';
|
import 'AccountScreen.dart';
|
||||||
import 'AppScreen.dart';
|
import 'AppScreen.dart';
|
||||||
|
@ -71,6 +71,7 @@ class _InitScreenState extends State<InitScreen> {
|
||||||
await initDownloadThreadCount();
|
await initDownloadThreadCount();
|
||||||
await initConvertToPNG();
|
await initConvertToPNG();
|
||||||
await initVersion();
|
await initVersion();
|
||||||
|
await autoCheckNewVersion();
|
||||||
// 登录, 如果token失效重新登录, 网络不好的时候可能需要1分钟
|
// 登录, 如果token失效重新登录, 网络不好的时候可能需要1分钟
|
||||||
if (await method.preLogin()) {
|
if (await method.preLogin()) {
|
||||||
// 如果token或username+password有效则直接进入登录好的界面
|
// 如果token或username+password有效则直接进入登录好的界面
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'package:pikapi/screens/components/ContentBuilder.dart';
|
import 'package:pikapika/screens/components/ContentBuilder.dart';
|
||||||
import 'package:pikapi/screens/components/ContentLoading.dart';
|
import 'package:pikapika/screens/components/ContentLoading.dart';
|
||||||
|
|
||||||
// 数据迁移页面
|
// 数据迁移页面
|
||||||
class MigrateScreen extends StatefulWidget {
|
class MigrateScreen extends StatefulWidget {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/screens/components/NetworkSetting.dart';
|
import 'package:pikapika/screens/components/NetworkSetting.dart';
|
||||||
|
|
||||||
class NetworkSettingsScreen extends StatelessWidget {
|
class NetworkSettingsScreen extends StatelessWidget {
|
||||||
@override
|
@override
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'package:pikapi/basic/config/ListLayout.dart';
|
import 'package:pikapika/basic/config/ListLayout.dart';
|
||||||
import 'package:pikapi/basic/config/ShadowCategories.dart';
|
import 'package:pikapika/basic/config/ShadowCategories.dart';
|
||||||
|
|
||||||
import 'components/ComicListBuilder.dart';
|
import 'components/ComicListBuilder.dart';
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'package:pikapi/basic/config/ListLayout.dart';
|
import 'package:pikapika/basic/config/ListLayout.dart';
|
||||||
import 'package:pikapi/basic/config/ShadowCategories.dart';
|
import 'package:pikapika/basic/config/ShadowCategories.dart';
|
||||||
|
|
||||||
import 'components/ComicListBuilder.dart';
|
import 'components/ComicListBuilder.dart';
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
|
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'package:pikapi/screens/components/NetworkSetting.dart';
|
import 'package:pikapika/screens/components/NetworkSetting.dart';
|
||||||
|
|
||||||
import 'components/ContentLoading.dart';
|
import 'components/ContentLoading.dart';
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_search_bar/flutter_search_bar.dart';
|
import 'package:flutter_search_bar/flutter_search_bar.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/config/ShadowCategories.dart';
|
import 'package:pikapika/basic/config/ShadowCategories.dart';
|
||||||
import 'package:pikapi/basic/store/Categories.dart';
|
import 'package:pikapika/basic/store/Categories.dart';
|
||||||
import 'package:pikapi/basic/config/ListLayout.dart';
|
import 'package:pikapika/basic/config/ListLayout.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import '../basic/Entities.dart';
|
import '../basic/Entities.dart';
|
||||||
import 'components/ComicPager.dart';
|
import 'components/ComicPager.dart';
|
||||||
|
|
||||||
|
|
|
@ -2,28 +2,28 @@ import 'dart:convert';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/config/AndroidDisplayMode.dart';
|
import 'package:pikapika/basic/config/AndroidDisplayMode.dart';
|
||||||
import 'package:pikapi/basic/config/AndroidSecureFlag.dart';
|
import 'package:pikapika/basic/config/AndroidSecureFlag.dart';
|
||||||
import 'package:pikapi/basic/config/AutoClean.dart';
|
import 'package:pikapika/basic/config/AutoClean.dart';
|
||||||
import 'package:pikapi/basic/config/AutoFullScreen.dart';
|
import 'package:pikapika/basic/config/AutoFullScreen.dart';
|
||||||
import 'package:pikapi/basic/config/ChooserRoot.dart';
|
import 'package:pikapika/basic/config/ChooserRoot.dart';
|
||||||
import 'package:pikapi/basic/config/ContentFailedReloadAction.dart';
|
import 'package:pikapika/basic/config/ContentFailedReloadAction.dart';
|
||||||
import 'package:pikapi/basic/config/ConvertToPNG.dart';
|
import 'package:pikapika/basic/config/ConvertToPNG.dart';
|
||||||
import 'package:pikapi/basic/config/DownloadAndExportPath.dart';
|
import 'package:pikapika/basic/config/DownloadAndExportPath.dart';
|
||||||
import 'package:pikapi/basic/config/DownloadThreadCount.dart';
|
import 'package:pikapika/basic/config/DownloadThreadCount.dart';
|
||||||
import 'package:pikapi/basic/config/FullScreenAction.dart';
|
import 'package:pikapika/basic/config/FullScreenAction.dart';
|
||||||
import 'package:pikapi/basic/config/FullScreenUI.dart';
|
import 'package:pikapika/basic/config/FullScreenUI.dart';
|
||||||
import 'package:pikapi/basic/config/KeyboardController.dart';
|
import 'package:pikapika/basic/config/KeyboardController.dart';
|
||||||
import 'package:pikapi/basic/config/PagerAction.dart';
|
import 'package:pikapika/basic/config/PagerAction.dart';
|
||||||
import 'package:pikapi/basic/config/ReaderDirection.dart';
|
import 'package:pikapika/basic/config/ReaderDirection.dart';
|
||||||
import 'package:pikapi/basic/config/ReaderType.dart';
|
import 'package:pikapika/basic/config/ReaderType.dart';
|
||||||
import 'package:pikapi/basic/config/Quality.dart';
|
import 'package:pikapika/basic/config/Quality.dart';
|
||||||
import 'package:pikapi/basic/config/ShadowCategories.dart';
|
import 'package:pikapika/basic/config/ShadowCategories.dart';
|
||||||
import 'package:pikapi/basic/config/Themes.dart';
|
import 'package:pikapika/basic/config/Themes.dart';
|
||||||
import 'package:pikapi/basic/config/TimeOffsetHour.dart';
|
import 'package:pikapika/basic/config/TimeOffsetHour.dart';
|
||||||
import 'package:pikapi/basic/config/VolumeController.dart';
|
import 'package:pikapika/basic/config/VolumeController.dart';
|
||||||
import 'package:pikapi/screens/components/NetworkSetting.dart';
|
import 'package:pikapika/screens/components/NetworkSetting.dart';
|
||||||
|
|
||||||
import 'CleanScreen.dart';
|
import 'CleanScreen.dart';
|
||||||
import 'MigrateScreen.dart';
|
import 'MigrateScreen.dart';
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/config/Themes.dart';
|
import 'package:pikapika/basic/config/Themes.dart';
|
||||||
import 'package:pikapi/screens/AboutScreen.dart';
|
import 'package:pikapika/screens/AboutScreen.dart';
|
||||||
import 'package:pikapi/screens/AccountScreen.dart';
|
import 'package:pikapika/screens/AccountScreen.dart';
|
||||||
import 'package:pikapi/screens/DownloadListScreen.dart';
|
import 'package:pikapika/screens/DownloadListScreen.dart';
|
||||||
import 'package:pikapi/screens/FavouritePaperScreen.dart';
|
import 'package:pikapika/screens/FavouritePaperScreen.dart';
|
||||||
import 'package:pikapi/screens/ViewLogsScreen.dart';
|
import 'package:pikapika/screens/ViewLogsScreen.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
|
|
||||||
import 'SettingsScreen.dart';
|
import 'SettingsScreen.dart';
|
||||||
import 'components/UserProfileCard.dart';
|
import 'components/UserProfileCard.dart';
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
|
|
||||||
import 'ComicInfoScreen.dart';
|
import 'ComicInfoScreen.dart';
|
||||||
import 'components/Images.dart';
|
import 'components/Images.dart';
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import '../FilePhotoViewScreen.dart';
|
import '../FilePhotoViewScreen.dart';
|
||||||
import 'Images.dart';
|
import 'Images.dart';
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import 'package:flutter/gestures.dart';
|
import 'package:flutter/gestures.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Cross.dart';
|
import 'package:pikapika/basic/Cross.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'package:pikapi/screens/SearchScreen.dart';
|
import 'package:pikapika/screens/SearchScreen.dart';
|
||||||
import 'package:pikapi/basic/Navigatior.dart';
|
import 'package:pikapika/basic/Navigatior.dart';
|
||||||
import '../ComicsScreen.dart';
|
import '../ComicsScreen.dart';
|
||||||
import 'Images.dart';
|
import 'Images.dart';
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import 'package:event/event.dart';
|
import 'package:event/event.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/config/ShadowCategories.dart';
|
import 'package:pikapika/basic/config/ShadowCategories.dart';
|
||||||
import 'package:pikapi/basic/config/ListLayout.dart';
|
import 'package:pikapika/basic/config/ListLayout.dart';
|
||||||
|
|
||||||
import 'ComicInfoCard.dart';
|
import 'ComicInfoCard.dart';
|
||||||
import 'Images.dart';
|
import 'Images.dart';
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import 'package:event/event.dart';
|
import 'package:event/event.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/config/ShadowCategories.dart';
|
import 'package:pikapika/basic/config/ShadowCategories.dart';
|
||||||
import 'package:pikapi/screens/components/ComicList.dart';
|
import 'package:pikapika/screens/components/ComicList.dart';
|
||||||
import 'package:pikapi/screens/components/FitButton.dart';
|
import 'package:pikapika/screens/components/FitButton.dart';
|
||||||
import 'ContentBuilder.dart';
|
import 'ContentBuilder.dart';
|
||||||
|
|
||||||
class ComicListBuilder extends StatefulWidget {
|
class ComicListBuilder extends StatefulWidget {
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
import 'package:event/event.dart';
|
import 'package:event/event.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/config/PagerAction.dart';
|
import 'package:pikapika/basic/config/PagerAction.dart';
|
||||||
import 'package:pikapi/basic/config/ShadowCategories.dart';
|
import 'package:pikapika/basic/config/ShadowCategories.dart';
|
||||||
import 'package:pikapi/basic/enum/Sort.dart';
|
import 'package:pikapika/basic/enum/Sort.dart';
|
||||||
import 'package:pikapi/screens/components/ComicList.dart';
|
import 'package:pikapika/screens/components/ComicList.dart';
|
||||||
import 'package:pikapi/screens/components/ContentError.dart';
|
import 'package:pikapika/screens/components/ContentError.dart';
|
||||||
import 'package:pikapi/screens/components/FitButton.dart';
|
import 'package:pikapika/screens/components/FitButton.dart';
|
||||||
import 'ContentLoading.dart';
|
import 'ContentLoading.dart';
|
||||||
|
|
||||||
// 漫画列页
|
// 漫画列页
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/screens/ComicsScreen.dart';
|
import 'package:pikapika/screens/ComicsScreen.dart';
|
||||||
import 'package:pikapi/basic/Navigatior.dart';
|
import 'package:pikapika/basic/Navigatior.dart';
|
||||||
|
|
||||||
// 漫画tag
|
// 漫画tag
|
||||||
class ComicTagsCard extends StatelessWidget {
|
class ComicTagsCard extends StatelessWidget {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
|
|
||||||
import 'Avatar.dart';
|
import 'Avatar.dart';
|
||||||
import 'CommentMainType.dart';
|
import 'CommentMainType.dart';
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart' as e;
|
import 'package:pikapika/basic/Entities.dart' as e;
|
||||||
import 'package:pikapi/screens/CommentScreen.dart';
|
import 'package:pikapika/screens/CommentScreen.dart';
|
||||||
import 'package:pikapi/screens/components/ItemBuilder.dart';
|
import 'package:pikapika/screens/components/ItemBuilder.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'CommentItem.dart';
|
import 'CommentItem.dart';
|
||||||
import 'CommentMainType.dart';
|
import 'CommentMainType.dart';
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/config/ContentFailedReloadAction.dart';
|
import 'package:pikapika/basic/config/ContentFailedReloadAction.dart';
|
||||||
import 'dart:ui';
|
import 'dart:ui';
|
||||||
|
|
||||||
import 'package:pikapi/basic/enum/ErrorTypes.dart';
|
import 'package:pikapika/basic/enum/ErrorTypes.dart';
|
||||||
|
|
||||||
class ContentError extends StatelessWidget {
|
class ContentError extends StatelessWidget {
|
||||||
final Object? error;
|
final Object? error;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
|
|
||||||
// 继续阅读按钮
|
// 继续阅读按钮
|
||||||
class ContinueReadButton extends StatefulWidget {
|
class ContinueReadButton extends StatefulWidget {
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Cross.dart';
|
import 'package:pikapika/basic/Cross.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/screens/components/Images.dart';
|
import 'package:pikapika/screens/components/Images.dart';
|
||||||
|
|
||||||
import 'ComicInfoCard.dart';
|
import 'ComicInfoCard.dart';
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/svg.dart';
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
|
|
||||||
import 'Images.dart';
|
import 'Images.dart';
|
||||||
|
|
||||||
|
|
|
@ -6,15 +6,15 @@ import 'package:event/event.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:photo_view/photo_view_gallery.dart';
|
import 'package:photo_view/photo_view_gallery.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/Cross.dart';
|
import 'package:pikapika/basic/Cross.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'package:pikapi/basic/config/FullScreenAction.dart';
|
import 'package:pikapika/basic/config/FullScreenAction.dart';
|
||||||
import 'package:pikapi/basic/config/GalleryPreloadCount.dart';
|
import 'package:pikapika/basic/config/GalleryPreloadCount.dart';
|
||||||
import 'package:pikapi/basic/config/KeyboardController.dart';
|
import 'package:pikapika/basic/config/KeyboardController.dart';
|
||||||
import 'package:pikapi/basic/config/ReaderDirection.dart';
|
import 'package:pikapika/basic/config/ReaderDirection.dart';
|
||||||
import 'package:pikapi/basic/config/ReaderType.dart';
|
import 'package:pikapika/basic/config/ReaderType.dart';
|
||||||
import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';
|
import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';
|
||||||
import '../FilePhotoViewScreen.dart';
|
import '../FilePhotoViewScreen.dart';
|
||||||
import 'gesture_zoom_box.dart';
|
import 'gesture_zoom_box.dart';
|
||||||
|
|
|
@ -2,9 +2,9 @@ import 'dart:typed_data';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
import 'package:flutter_svg/svg.dart';
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:pikapi/basic/config/ConvertToPNG.dart';
|
import 'package:pikapika/basic/config/ConvertToPNG.dart';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'dart:ui' as ui show Codec;
|
import 'dart:ui' as ui show Codec;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Navigatior.dart';
|
import 'package:pikapika/basic/Navigatior.dart';
|
||||||
|
|
||||||
import '../ComicInfoScreen.dart';
|
import '../ComicInfoScreen.dart';
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/config/Address.dart';
|
import 'package:pikapika/basic/config/Address.dart';
|
||||||
import 'package:pikapi/basic/config/Proxy.dart';
|
import 'package:pikapika/basic/config/Proxy.dart';
|
||||||
|
|
||||||
// 网络设置
|
// 网络设置
|
||||||
class NetworkSetting extends StatefulWidget {
|
class NetworkSetting extends StatefulWidget {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/screens/ComicInfoScreen.dart';
|
import 'package:pikapika/screens/ComicInfoScreen.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
|
|
||||||
import 'ItemBuilder.dart';
|
import 'ItemBuilder.dart';
|
||||||
import 'Images.dart';
|
import 'Images.dart';
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
import 'dart:ui';
|
import 'dart:ui';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:pikapi/basic/Common.dart';
|
import 'package:pikapika/basic/Common.dart';
|
||||||
import 'package:pikapi/basic/Entities.dart';
|
import 'package:pikapika/basic/Entities.dart';
|
||||||
import 'package:pikapi/screens/components/ItemBuilder.dart';
|
import 'package:pikapika/screens/components/ItemBuilder.dart';
|
||||||
import 'package:pikapi/screens/components/Avatar.dart';
|
import 'package:pikapika/screens/components/Avatar.dart';
|
||||||
import 'package:pikapi/screens/components/Images.dart';
|
import 'package:pikapika/screens/components/Images.dart';
|
||||||
import 'package:pikapi/basic/Method.dart';
|
import 'package:pikapika/basic/Method.dart';
|
||||||
|
|
||||||
// 用户信息卡
|
// 用户信息卡
|
||||||
class UserProfileCard extends StatefulWidget {
|
class UserProfileCard extends StatefulWidget {
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
cmake_minimum_required(VERSION 3.10)
|
cmake_minimum_required(VERSION 3.10)
|
||||||
project(runner LANGUAGES CXX)
|
project(runner LANGUAGES CXX)
|
||||||
|
|
||||||
set(BINARY_NAME "pikapi")
|
set(BINARY_NAME "pikapika")
|
||||||
set(APPLICATION_ID "com.example.pikapi")
|
set(APPLICATION_ID "niuhuan.pikapika")
|
||||||
|
|
||||||
cmake_policy(SET CMP0063 NEW)
|
cmake_policy(SET CMP0063 NEW)
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
|
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
|
||||||
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
|
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
|
||||||
33CC10ED2044A3C60003C045 /* pikapi.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = pikapi.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
33CC10ED2044A3C60003C045 /* pikapika.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = pikapika.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||||
33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
|
33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
|
||||||
33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
|
@ -112,7 +112,7 @@
|
||||||
33CC10EE2044A3C60003C045 /* Products */ = {
|
33CC10EE2044A3C60003C045 /* Products */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
33CC10ED2044A3C60003C045 /* pikapi.app */,
|
33CC10ED2044A3C60003C045 /* pikapika.app */,
|
||||||
);
|
);
|
||||||
name = Products;
|
name = Products;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -159,7 +159,6 @@
|
||||||
B0D4B875C41B50DACC24CB89 /* Pods-Runner.release.xcconfig */,
|
B0D4B875C41B50DACC24CB89 /* Pods-Runner.release.xcconfig */,
|
||||||
6DDC9F2D722240B8A73326EB /* Pods-Runner.profile.xcconfig */,
|
6DDC9F2D722240B8A73326EB /* Pods-Runner.profile.xcconfig */,
|
||||||
);
|
);
|
||||||
name = Pods;
|
|
||||||
path = Pods;
|
path = Pods;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
@ -193,7 +192,7 @@
|
||||||
);
|
);
|
||||||
name = Runner;
|
name = Runner;
|
||||||
productName = Runner;
|
productName = Runner;
|
||||||
productReference = 33CC10ED2044A3C60003C045 /* pikapi.app */;
|
productReference = 33CC10ED2044A3C60003C045 /* pikapika.app */;
|
||||||
productType = "com.apple.product-type.application";
|
productType = "com.apple.product-type.application";
|
||||||
};
|
};
|
||||||
/* End PBXNativeTarget section */
|
/* End PBXNativeTarget section */
|
||||||
|
|
|
@ -5,10 +5,10 @@
|
||||||
// 'flutter create' template.
|
// 'flutter create' template.
|
||||||
|
|
||||||
// The application's name. By default this is also the title of the Flutter window.
|
// The application's name. By default this is also the title of the Flutter window.
|
||||||
PRODUCT_NAME = pikapi
|
PRODUCT_NAME = pikapika
|
||||||
|
|
||||||
// The application's bundle identifier
|
// The application's bundle identifier
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.example.pikapi
|
PRODUCT_BUNDLE_IDENTIFIER = niuhuan
|
||||||
|
|
||||||
// The copyright displayed in application information
|
// The copyright displayed in application information
|
||||||
PRODUCT_COPYRIGHT = Copyright © 2021 com.example. All rights reserved.
|
PRODUCT_COPYRIGHT = Copyright © 2021 com.example. All rights reserved.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
name: pikapi
|
name: pikapika
|
||||||
description: A cross platform comic client.
|
description: A cross platform comic client.
|
||||||
|
|
||||||
# The following line prevents the package from being accidentally published to
|
# The following line prevents the package from being accidentally published to
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
|
||||||
import 'package:pikapi/main.dart';
|
import 'package:pikapika/main.dart';
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
|
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
cmake_minimum_required(VERSION 3.15)
|
cmake_minimum_required(VERSION 3.15)
|
||||||
project(pikapi LANGUAGES CXX)
|
project(pikapi LANGUAGES CXX)
|
||||||
|
|
||||||
set(BINARY_NAME "pikapi")
|
set(BINARY_NAME "pikapika")
|
||||||
|
|
||||||
cmake_policy(SET CMP0063 NEW)
|
cmake_policy(SET CMP0063 NEW)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue