liuyuqi-dellpc 2 years ago
commit
2ee23948e5
100 changed files with 337 additions and 0 deletions
  1. 30 0
      .devcontainer/devcontainer.json
  2. 46 0
      .gitignore
  3. 10 0
      .metadata
  4. 4 0
      README-ZH.md
  5. 4 0
      README.md
  6. 11 0
      android/.gitignore
  7. 59 0
      android/app/build.gradle
  8. 7 0
      android/app/src/debug/AndroidManifest.xml
  9. 42 0
      android/app/src/main/AndroidManifest.xml
  10. 6 0
      android/app/src/main/kotlin/com/example/shuqi/MainActivity.kt
  11. 12 0
      android/app/src/main/res/drawable-v21/launch_background.xml
  12. 12 0
      android/app/src/main/res/drawable/launch_background.xml
  13. BIN
      android/app/src/main/res/mipmap-hdpi/ic_launcher.png
  14. BIN
      android/app/src/main/res/mipmap-mdpi/ic_launcher.png
  15. BIN
      android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
  16. BIN
      android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
  17. BIN
      android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
  18. 18 0
      android/app/src/main/res/values-night/styles.xml
  19. 18 0
      android/app/src/main/res/values/styles.xml
  20. 7 0
      android/app/src/profile/AndroidManifest.xml
  21. 31 0
      android/build.gradle
  22. 3 0
      android/gradle.properties
  23. 6 0
      android/gradle/wrapper/gradle-wrapper.properties
  24. 11 0
      android/settings.gradle
  25. BIN
      img/2.0x/actionbar_checkin.png
  26. BIN
      img/2.0x/actionbar_search.png
  27. BIN
      img/2.0x/aliuser_title_back_normal.9.png
  28. BIN
      img/2.0x/arrow_right.png
  29. BIN
      img/2.0x/bookshelf_add.png
  30. BIN
      img/2.0x/bookshelf_bg.png
  31. BIN
      img/2.0x/bookshelf_cloud_0.png
  32. BIN
      img/2.0x/bookshelf_cloud_1.png
  33. BIN
      img/2.0x/bookshelf_cloud_2.png
  34. BIN
      img/2.0x/bookshelf_cloud_3.png
  35. BIN
      img/2.0x/bookshelf_continue_read.png
  36. BIN
      img/2.0x/detail_chapter.png
  37. BIN
      img/2.0x/detail_down.png
  38. BIN
      img/2.0x/detail_fold_bg.png
  39. BIN
      img/2.0x/detail_latest.png
  40. BIN
      img/2.0x/detail_star.png
  41. BIN
      img/2.0x/detail_star_half.png
  42. BIN
      img/2.0x/detail_up.png
  43. BIN
      img/2.0x/detail_write_comment.png
  44. BIN
      img/2.0x/home_search.png
  45. BIN
      img/2.0x/home_tip.png
  46. BIN
      img/2.0x/icon_menu_catalog.png
  47. BIN
      img/2.0x/icon_menu_share.png
  48. BIN
      img/2.0x/me_action.png
  49. BIN
      img/2.0x/me_buy.png
  50. BIN
      img/2.0x/me_comment.png
  51. BIN
      img/2.0x/me_coupon.png
  52. BIN
      img/2.0x/me_date.png
  53. BIN
      img/2.0x/me_favorite.png
  54. BIN
      img/2.0x/me_feedback.png
  55. BIN
      img/2.0x/me_gift.png
  56. BIN
      img/2.0x/me_night.png
  57. BIN
      img/2.0x/me_record.png
  58. BIN
      img/2.0x/me_setting.png
  59. BIN
      img/2.0x/me_theme.png
  60. BIN
      img/2.0x/me_vip.png
  61. BIN
      img/2.0x/me_wallet.png
  62. BIN
      img/2.0x/menu_category.png
  63. BIN
      img/2.0x/menu_complete.png
  64. BIN
      img/2.0x/menu_publish.png
  65. BIN
      img/2.0x/menu_rank.png
  66. BIN
      img/2.0x/menu_vip.png
  67. BIN
      img/2.0x/placeholder_avatar.png
  68. BIN
      img/2.0x/pub_back_gray.png
  69. BIN
      img/2.0x/pub_back_white.png
  70. BIN
      img/2.0x/read_bg.png
  71. BIN
      img/2.0x/read_icon_brightness.png
  72. BIN
      img/2.0x/read_icon_catalog.png
  73. BIN
      img/2.0x/read_icon_chapter_next.png
  74. BIN
      img/2.0x/read_icon_chapter_previous.png
  75. BIN
      img/2.0x/read_icon_font.png
  76. BIN
      img/2.0x/read_icon_more.png
  77. BIN
      img/2.0x/read_icon_setting.png
  78. BIN
      img/2.0x/read_icon_vip.png
  79. BIN
      img/2.0x/read_icon_voice.png
  80. BIN
      img/2.0x/read_more_detail.png
  81. BIN
      img/2.0x/reader_battery.png
  82. BIN
      img/2.0x/tab_bookshelf_n.png
  83. BIN
      img/2.0x/tab_bookshelf_p.png
  84. BIN
      img/2.0x/tab_bookstore_n.png
  85. BIN
      img/2.0x/tab_bookstore_p.png
  86. BIN
      img/2.0x/tab_me_n.png
  87. BIN
      img/2.0x/tab_me_p.png
  88. BIN
      img/2.0x/tab_writer_n.png
  89. BIN
      img/2.0x/tab_writer_p.png
  90. BIN
      img/actionbar_checkin.png
  91. BIN
      img/actionbar_search.png
  92. BIN
      img/aliuser_title_back_normal.9.png
  93. BIN
      img/arrow_right.png
  94. BIN
      img/bookshelf_add.png
  95. BIN
      img/bookshelf_bg.png
  96. BIN
      img/bookshelf_cloud_0.png
  97. BIN
      img/bookshelf_cloud_1.png
  98. BIN
      img/bookshelf_cloud_2.png
  99. BIN
      img/bookshelf_cloud_3.png
  100. BIN
      img/bookshelf_continue_read.png

+ 30 - 0
.devcontainer/devcontainer.json

@@ -0,0 +1,30 @@
+// For format details, see https://aka.ms/devcontainer.json. For config options, see the
+// README at: https://github.com/devcontainers/templates/tree/main/src/java
+{
+	"name": "Java",
+	// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
+	"image": "mcr.microsoft.com/devcontainers/java:0-17",
+
+	"features": {
+		"ghcr.io/devcontainers/features/java:1": {
+			"version": "none",
+			"installMaven": "false",
+			"installGradle": "true"
+		},
+		"ghcr.io/akhildevelops/devcontainer-features/android-cli:0": {},
+		"ghcr.io/jarrodcolburn/features/android-sdk:0": {},
+		"ghcr.io/jarrodcolburn/features/flutter-sdk:0": {}
+	}
+
+	// Use 'forwardPorts' to make a list of ports inside the container available locally.
+	// "forwardPorts": [],
+
+	// Use 'postCreateCommand' to run commands after the container is created.
+	// "postCreateCommand": "java -version",
+
+	// Configure tool-specific properties.
+	// "customizations": {},
+
+	// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
+	// "remoteUser": "root"
+}

+ 46 - 0
.gitignore

@@ -0,0 +1,46 @@
+# Miscellaneous
+*.class
+*.log
+*.pyc
+*.swp
+.DS_Store
+.atom/
+.buildlog/
+.history
+.svn/
+
+# IntelliJ related
+*.iml
+*.ipr
+*.iws
+.idea/
+
+# The .vscode folder contains launch configuration and tasks you configure in
+# VS Code which you may wish to be included in version control, so this line
+# is commented out by default.
+#.vscode/
+
+# Flutter/Dart/Pub related
+**/doc/api/
+**/ios/Flutter/.last_build_id
+.dart_tool/
+.flutter-plugins
+.flutter-plugins-dependencies
+.packages
+.pub-cache/
+.pub/
+/build/
+
+# Web related
+lib/generated_plugin_registrant.dart
+
+# Symbolication related
+app.*.symbols
+
+# Obfuscation related
+app.*.map.json
+
+# Android Studio will place build artifacts here
+/android/app/debug
+/android/app/profile
+/android/app/release

+ 10 - 0
.metadata

@@ -0,0 +1,10 @@
+# This file tracks properties of this Flutter project.
+# Used by Flutter tool to assess capabilities and perform upgrades etc.
+#
+# This file should be version controlled and should not be manually edited.
+
+version:
+  revision: 4d7946a68d26794349189cf21b3f68cc6fe61dcb
+  channel: stable
+
+project_type: app

+ 4 - 0
README-ZH.md

@@ -0,0 +1,4 @@
+# 高仿书旗小说 Flutter 版
+
+Language: English | [中文](README-ZH.md)
+

+ 4 - 0
README.md

@@ -0,0 +1,4 @@
+# 高仿书旗小说 Flutter 版
+
+Language: English | [中文](README-ZH.md)
+

+ 11 - 0
android/.gitignore

@@ -0,0 +1,11 @@
+gradle-wrapper.jar
+/.gradle
+/captures/
+/gradlew
+/gradlew.bat
+/local.properties
+GeneratedPluginRegistrant.java
+
+# Remember to never publicly share your keystore.
+# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
+key.properties

+ 59 - 0
android/app/build.gradle

@@ -0,0 +1,59 @@
+def localProperties = new Properties()
+def localPropertiesFile = rootProject.file('local.properties')
+if (localPropertiesFile.exists()) {
+    localPropertiesFile.withReader('UTF-8') { reader ->
+        localProperties.load(reader)
+    }
+}
+
+def flutterRoot = localProperties.getProperty('flutter.sdk')
+if (flutterRoot == null) {
+    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
+}
+
+def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
+if (flutterVersionCode == null) {
+    flutterVersionCode = '1'
+}
+
+def flutterVersionName = localProperties.getProperty('flutter.versionName')
+if (flutterVersionName == null) {
+    flutterVersionName = '1.0'
+}
+
+apply plugin: 'com.android.application'
+apply plugin: 'kotlin-android'
+apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
+
+android {
+    compileSdkVersion 33
+
+    sourceSets {
+        main.java.srcDirs += 'src/main/kotlin'
+    }
+
+    defaultConfig {
+        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
+        applicationId "com.example.shuqi"
+        minSdkVersion 19
+        targetSdkVersion 33
+        versionCode flutterVersionCode.toInteger()
+        versionName flutterVersionName
+    }
+
+    buildTypes {
+        release {
+            // TODO: Add your own signing config for the release build.
+            // Signing with the debug keys for now, so `flutter run --release` works.
+            signingConfig signingConfigs.debug
+        }
+    }
+}
+
+flutter {
+    source '../..'
+}
+
+dependencies {
+    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+}

+ 7 - 0
android/app/src/debug/AndroidManifest.xml

@@ -0,0 +1,7 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.shuqi">
+    <!-- Flutter needs it to communicate with the running application
+         to allow setting breakpoints, to provide hot reload, etc.
+    -->
+    <uses-permission android:name="android.permission.INTERNET"/>
+</manifest>

+ 42 - 0
android/app/src/main/AndroidManifest.xml

@@ -0,0 +1,42 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.shuqi">
+   <application
+        android:label="书旗小说"
+        android:icon="@mipmap/ic_launcher">
+        <activity
+            android:name=".MainActivity"
+            android:exported="true"
+            android:launchMode="singleTop"
+            android:theme="@style/LaunchTheme"
+            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
+            android:hardwareAccelerated="true"
+            android:windowSoftInputMode="adjustResize">
+            <!-- Specifies an Android theme to apply to this Activity as soon as
+                 the Android process has started. This theme is visible to the user
+                 while the Flutter UI initializes. After that, this theme continues
+                 to determine the Window background behind the Flutter UI. -->
+            <meta-data
+              android:name="io.flutter.embedding.android.NormalTheme"
+              android:resource="@style/NormalTheme"
+              />
+            <!-- Displays an Android View that continues showing the launch screen
+                 Drawable until Flutter paints its first frame, then this splash
+                 screen fades out. A splash screen is useful to avoid any visual
+                 gap between the end of Android's launch screen and the painting of
+                 Flutter's first frame. -->
+            <meta-data
+              android:name="io.flutter.embedding.android.SplashScreenDrawable"
+              android:resource="@drawable/launch_background"
+              />
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+        </activity>
+        <!-- Don't delete the meta-data below.
+             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
+        <meta-data
+            android:name="flutterEmbedding"
+            android:value="2" />
+    </application>
+</manifest>

+ 6 - 0
android/app/src/main/kotlin/com/example/shuqi/MainActivity.kt

@@ -0,0 +1,6 @@
+package com.example.shuqi
+
+import io.flutter.embedding.android.FlutterActivity
+
+class MainActivity: FlutterActivity() {
+}

+ 12 - 0
android/app/src/main/res/drawable-v21/launch_background.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Modify this file to customize your launch splash screen -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="?android:colorBackground" />
+
+    <!-- You can insert your own image assets here -->
+    <!-- <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@mipmap/launch_image" />
+    </item> -->
+</layer-list>

+ 12 - 0
android/app/src/main/res/drawable/launch_background.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Modify this file to customize your launch splash screen -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@android:color/white" />
+
+    <!-- You can insert your own image assets here -->
+    <!-- <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@mipmap/launch_image" />
+    </item> -->
+</layer-list>

BIN
android/app/src/main/res/mipmap-hdpi/ic_launcher.png


BIN
android/app/src/main/res/mipmap-mdpi/ic_launcher.png


BIN
android/app/src/main/res/mipmap-xhdpi/ic_launcher.png


BIN
android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png


BIN
android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png


+ 18 - 0
android/app/src/main/res/values-night/styles.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
+    <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
+        <!-- Show a splash screen on the activity. Automatically removed when
+             Flutter draws its first frame -->
+        <item name="android:windowBackground">@drawable/launch_background</item>
+    </style>
+    <!-- Theme applied to the Android Window as soon as the process has started.
+         This theme determines the color of the Android Window while your
+         Flutter UI initializes, as well as behind your Flutter UI while its
+         running.
+         
+         This Theme is only used starting with V2 of Flutter's Android embedding. -->
+    <style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
+        <item name="android:windowBackground">?android:colorBackground</item>
+    </style>
+</resources>

+ 18 - 0
android/app/src/main/res/values/styles.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
+    <style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
+        <!-- Show a splash screen on the activity. Automatically removed when
+             Flutter draws its first frame -->
+        <item name="android:windowBackground">@drawable/launch_background</item>
+    </style>
+    <!-- Theme applied to the Android Window as soon as the process has started.
+         This theme determines the color of the Android Window while your
+         Flutter UI initializes, as well as behind your Flutter UI while its
+         running.
+         
+         This Theme is only used starting with V2 of Flutter's Android embedding. -->
+    <style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
+        <item name="android:windowBackground">?android:colorBackground</item>
+    </style>
+</resources>

+ 7 - 0
android/app/src/profile/AndroidManifest.xml

@@ -0,0 +1,7 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.shuqi">
+    <!-- Flutter needs it to communicate with the running application
+         to allow setting breakpoints, to provide hot reload, etc.
+    -->
+    <uses-permission android:name="android.permission.INTERNET"/>
+</manifest>

+ 31 - 0
android/build.gradle

@@ -0,0 +1,31 @@
+buildscript {
+    ext.kotlin_version = '1.6.10'
+    repositories {
+        google()
+        jcenter()
+    }
+
+    dependencies {
+        classpath 'com.android.tools.build:gradle:7.2.2'
+        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
+    }
+}
+
+allprojects {
+    repositories {
+        google()
+        jcenter()
+    }
+}
+
+rootProject.buildDir = '../build'
+subprojects {
+    project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
+    project.evaluationDependsOn(':app')
+}
+
+task clean(type: Delete) {
+    delete rootProject.buildDir
+}

+ 3 - 0
android/gradle.properties

@@ -0,0 +1,3 @@
+org.gradle.jvmargs=-Xmx1536M
+android.useAndroidX=true
+android.enableJetifier=true

+ 6 - 0
android/gradle/wrapper/gradle-wrapper.properties

@@ -0,0 +1,6 @@
+#Fri Jun 23 08:50:38 CEST 2017
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip

+ 11 - 0
android/settings.gradle

@@ -0,0 +1,11 @@
+include ':app'
+
+def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
+def properties = new Properties()
+
+assert localPropertiesFile.exists()
+localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
+
+def flutterSdkPath = properties.getProperty("flutter.sdk")
+assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
+apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"

BIN
img/2.0x/actionbar_checkin.png


BIN
img/2.0x/actionbar_search.png


BIN
img/2.0x/aliuser_title_back_normal.9.png


BIN
img/2.0x/arrow_right.png


BIN
img/2.0x/bookshelf_add.png


BIN
img/2.0x/bookshelf_bg.png


BIN
img/2.0x/bookshelf_cloud_0.png


BIN
img/2.0x/bookshelf_cloud_1.png


BIN
img/2.0x/bookshelf_cloud_2.png


BIN
img/2.0x/bookshelf_cloud_3.png


BIN
img/2.0x/bookshelf_continue_read.png


BIN
img/2.0x/detail_chapter.png


BIN
img/2.0x/detail_down.png


BIN
img/2.0x/detail_fold_bg.png


BIN
img/2.0x/detail_latest.png


BIN
img/2.0x/detail_star.png


BIN
img/2.0x/detail_star_half.png


BIN
img/2.0x/detail_up.png


BIN
img/2.0x/detail_write_comment.png


BIN
img/2.0x/home_search.png


BIN
img/2.0x/home_tip.png


BIN
img/2.0x/icon_menu_catalog.png


BIN
img/2.0x/icon_menu_share.png


BIN
img/2.0x/me_action.png


BIN
img/2.0x/me_buy.png


BIN
img/2.0x/me_comment.png


BIN
img/2.0x/me_coupon.png


BIN
img/2.0x/me_date.png


BIN
img/2.0x/me_favorite.png


BIN
img/2.0x/me_feedback.png


BIN
img/2.0x/me_gift.png


BIN
img/2.0x/me_night.png


BIN
img/2.0x/me_record.png


BIN
img/2.0x/me_setting.png


BIN
img/2.0x/me_theme.png


BIN
img/2.0x/me_vip.png


BIN
img/2.0x/me_wallet.png


BIN
img/2.0x/menu_category.png


BIN
img/2.0x/menu_complete.png


BIN
img/2.0x/menu_publish.png


BIN
img/2.0x/menu_rank.png


BIN
img/2.0x/menu_vip.png


BIN
img/2.0x/placeholder_avatar.png


BIN
img/2.0x/pub_back_gray.png


BIN
img/2.0x/pub_back_white.png


BIN
img/2.0x/read_bg.png


BIN
img/2.0x/read_icon_brightness.png


BIN
img/2.0x/read_icon_catalog.png


BIN
img/2.0x/read_icon_chapter_next.png


BIN
img/2.0x/read_icon_chapter_previous.png


BIN
img/2.0x/read_icon_font.png


BIN
img/2.0x/read_icon_more.png


BIN
img/2.0x/read_icon_setting.png


BIN
img/2.0x/read_icon_vip.png


BIN
img/2.0x/read_icon_voice.png


BIN
img/2.0x/read_more_detail.png


BIN
img/2.0x/reader_battery.png


BIN
img/2.0x/tab_bookshelf_n.png


BIN
img/2.0x/tab_bookshelf_p.png


BIN
img/2.0x/tab_bookstore_n.png


BIN
img/2.0x/tab_bookstore_p.png


BIN
img/2.0x/tab_me_n.png


BIN
img/2.0x/tab_me_p.png


BIN
img/2.0x/tab_writer_n.png


BIN
img/2.0x/tab_writer_p.png


BIN
img/actionbar_checkin.png


BIN
img/actionbar_search.png


BIN
img/aliuser_title_back_normal.9.png


BIN
img/arrow_right.png


BIN
img/bookshelf_add.png


BIN
img/bookshelf_bg.png


BIN
img/bookshelf_cloud_0.png


BIN
img/bookshelf_cloud_1.png


BIN
img/bookshelf_cloud_2.png


BIN
img/bookshelf_cloud_3.png


BIN
img/bookshelf_continue_read.png


Some files were not shown because too many files changed in this diff