Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Develop #111

Merged
merged 143 commits into from
Jan 14, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
143 commits
Select commit Hold shift + click to select a range
5d067cc
Cleanup workspace
up2code May 6, 2020
10add9b
Add model barrel file
up2code May 6, 2020
85975c9
Cleanup main widget
up2code May 6, 2020
4fe56bb
Remove unused test
up2code May 6, 2020
837143f
Update constants
up2code May 6, 2020
8328aed
Add meta lib
up2code May 6, 2020
4f42ea5
Refactor api client
up2code May 6, 2020
ff13efb
Add login unit test
up2code May 6, 2020
f9198b1
Add song repository
up2code May 7, 2020
dea4fa2
PoC fluuter_bloc with auth
up2code May 14, 2020
d93fe3d
Add auth bloc unit tests
May 16, 2020
db1ef50
Add login bloc unit tests
May 17, 2020
7d14715
Add cookie and fix login
May 17, 2020
ef4fefe
Add logout
up2code May 24, 2020
31f1950
Add app directory class
up2code May 24, 2020
d0f84fb
Adjust login form widget
up2code Jun 6, 2020
829c7c3
Add guest login
up2code Jun 7, 2020
bf4f80c
Add main page tab and bloc
up2code Jun 8, 2020
f9238db
Create zh.json
LilligantMatsuri Jun 23, 2020
fc52415
Merge pull request #108 from LilligantMatsuri/develop
up2code Jun 25, 2020
8e7ce91
Add SongApiListView widget and using in home screen
up2code Jun 29, 2020
93bf8ed
Clean unused code
up2code Jun 29, 2020
49f3782
Add routes and song detail page
up2code Jul 12, 2020
3a08757
Revise request parameters
up2code Jul 12, 2020
9f26fff
Add menu page with auth
up2code Jul 14, 2020
393a3ba
Add default i18n and song page
up2code Jul 14, 2020
508184e
Update song list page
up2code Jul 18, 2020
8c9127e
Update song list page and infinite list bloc
up2code Jul 28, 2020
8b966af
Fix parse https when get image
up2code Aug 5, 2020
db983d6
Add single choice input widget
up2code Sep 1, 2020
d9fa7bb
Recreate project with flutter 1.22.2 and restructure code
up2code Dec 18, 2020
b85aa90
Add album widgets
up2code Dec 18, 2020
4b6646e
Mock ranking page
up2code Dec 18, 2020
0e3f672
Initial ranking filter page and search page
up2code Dec 18, 2020
d916a6c
Initial all pages
up2code Dec 18, 2020
ef6672c
Add artist tile and mock entry list view widget
Dec 19, 2020
c70437c
Add tag widgets and update mock entry list view
Dec 19, 2020
7c60617
Add release event tile widget and update mock entry list view
Dec 19, 2020
93f31a5
Add release event tile widget
Dec 20, 2020
50eef43
Update mock entry list view on search page
Dec 20, 2020
dc03944
Change data type release event date and migrate unit tests
Dec 20, 2020
dc3faad
Add info message view
Dec 21, 2020
e400284
Fix typo
up2code Dec 21, 2020
bda3220
Add mock entry filter search and custom widgets
up2code Dec 21, 2020
8a6e7ba
Update mock entry search filter page
up2code Dec 21, 2020
2642f4d
Add artist input and update mock filter page
up2code Dec 21, 2020
d222e57
Add artist list view
up2code Dec 21, 2020
178d109
Update artist search filter page
up2code Dec 21, 2020
dc19972
Update album filter page
up2code Dec 21, 2020
217d97f
Add mock data in release event search page
up2code Dec 22, 2020
3221847
Add custom date range input widget
up2code Dec 23, 2020
a4dfad1
Add tag category page and list
up2code Dec 23, 2020
147ce82
Update mock setting page and add custom radio button group widget
up2code Dec 23, 2020
33fb72c
Add comment document radio button group
up2code Dec 23, 2020
8e5391f
Update mock favorite each entry pages
up2code Dec 24, 2020
3069ea5
Add widget site tile and update contact us page
up2code Dec 24, 2020
d3a5416
Add mock release event list on home page
up2code Dec 24, 2020
9035d3a
Update mock song detail page
up2code Dec 24, 2020
8e66ca7
Add web link list and pv list widget on song detail page
up2code Dec 24, 2020
9ece173
Add feature tag group minimum display
up2code Dec 25, 2020
ba9c293
Update mock song detail page and add lyric content widget
up2code Dec 25, 2020
b0fc8f9
Update mock artist detail page
Dec 31, 2020
a7b0e8c
Update mock album detail
Dec 31, 2020
1a5ff26
Update mock release event detail page
Dec 31, 2020
dc3ecf5
Update tag detail page
Dec 31, 2020
ca3fb0a
PoC GetX state and dependency management
Jan 1, 2021
4088034
Migrate PoC auth
Jan 1, 2021
e77f65b
Bind repositories to home page
Jan 1, 2021
aedb8c9
Binding ranking controller to ranking page
Jan 1, 2021
94a8b6f
Binding song search page controller logic
Jan 1, 2021
e012001
Binding artist search page
Jan 1, 2021
8b202a2
Binding song search page and add artist selector page
Jan 2, 2021
2b561cb
Binding tag search page logic
Jan 4, 2021
4564555
Binding tag input widget logic
Jan 4, 2021
546b78e
Binding artist search controller to filter
Jan 4, 2021
52aa0ce
Binding album search logic
Jan 4, 2021
0244b49
Binding release event search logic
Jan 4, 2021
fb0883d
Binding entry search logic
Jan 4, 2021
df7b66e
Binding song detail page logic
Jan 4, 2021
c4930c0
Fix incorrect rebuild song detail page state for nested view
Jan 5, 2021
cf6f4e7
Add page builder widget
Jan 5, 2021
21f31f0
Add tag id for song detail page
Jan 5, 2021
6bc187d
Binding artist detail logic
up2code Jan 6, 2021
99e8c16
Add hero animation to song and artist
up2code Jan 7, 2021
3f1cd28
Binding album detail page logic and remove hero widget for now
up2code Jan 7, 2021
94d38d2
Binding tag detail page and entry click event to each detail page
up2code Jan 8, 2021
e358160
Binding release event detail page
up2code Jan 8, 2021
0f91072
Binding entry search click event
up2code Jan 8, 2021
3120293
Add playlist page and binding logic
up2code Jan 8, 2021
97c51b5
PoC login
up2code Jan 8, 2021
e079cfb
Binding favorite songs page logic
up2code Jan 9, 2021
dc42f2c
Fix artist input widget
up2code Jan 9, 2021
bf5a1f4
Binding favorite artists page logic
up2code Jan 9, 2021
ca43458
Binding favorite album page logic
up2code Jan 9, 2021
0f63f45
Add feature rated song
up2code Jan 10, 2021
1399540
Refresh favorite songs data if user rated song after open favorite so…
up2code Jan 10, 2021
4ba29e0
Fix center loading widget
up2code Jan 10, 2021
38411ce
Change api for get crruent user rated song
up2code Jan 10, 2021
11e20a1
Add infinite list view to song search page
up2code Jan 11, 2021
ca2c5a2
Add infinite list view to favorite song page
up2code Jan 11, 2021
e3b8c10
Fix infinite list view not work as expected in favorite song page
up2code Jan 11, 2021
a7d28bb
Fix infinite list view on song search page
up2code Jan 11, 2021
c355daa
Add infinite list view to album search page
up2code Jan 11, 2021
25b40eb
Update album list view widget for infinite view
up2code Jan 11, 2021
5d299c0
Add infinite list view to artist page
up2code Jan 11, 2021
731b60c
Add infinite list view to release event search page
up2code Jan 11, 2021
b4abc2f
Add infinite list view to tag search page
up2code Jan 11, 2021
899c71d
Initial language and locale preference
up2code Jan 11, 2021
996f5c0
Migrate translation files and applied on all pages
up2code Jan 11, 2021
939eb47
Add preference content language
up2code Jan 11, 2021
6a5cd33
Add theme preference
up2code Jan 11, 2021
213a7cd
Add lib themes
up2code Jan 11, 2021
88581d6
Change default android package name
up2code Jan 12, 2021
8b5a0b6
Update ui ranking to same as prod current version
up2code Jan 13, 2021
9b30a5c
Fix and cleanup
up2code Jan 13, 2021
9151855
Add autoplay option
up2code Jan 13, 2021
ce3a95c
Cleanup code
up2code Jan 13, 2021
232b2b8
Fix unit tests
up2code Jan 13, 2021
4b3c784
Add packageInfo for get version to display inside app
up2code Jan 13, 2021
eb7b602
Display search pv when no youtube pv exists in song detail page
up2code Jan 13, 2021
ef560a9
Display version number
up2code Jan 13, 2021
f2f973d
Add register button redirect to register page on website
up2code Jan 13, 2021
fc52068
Add firebase analytic on android
up2code Jan 13, 2021
213908a
Add infinite view to followed artist and album collections page
up2code Jan 13, 2021
7322e71
Add text query on favorite artist page
up2code Jan 13, 2021
690d7fd
Add play button for navigate from song list page to pv playlist page
up2code Jan 13, 2021
55b66c8
Fix button navigate to universal search page
up2code Jan 13, 2021
3e50c1d
Refactor code search page controller
up2code Jan 13, 2021
b4d04ba
Apply search page controller to album search page
up2code Jan 13, 2021
7777996
Apply search controller
up2code Jan 13, 2021
5506e5d
Apply search controller to tag page
up2code Jan 13, 2021
1b09f47
Apply search page controller to release event page
up2code Jan 13, 2021
3df062c
Apply search page controller to favorite song artist and album page
up2code Jan 13, 2021
99ab2d4
Add missing catch error
up2code Jan 13, 2021
2bf6175
Add missing translation
up2code Jan 13, 2021
9c27a60
Hide ExpandableContent if no content to display
up2code Jan 13, 2021
0b9b048
Sort weblinks
up2code Jan 13, 2021
9a7601e
Fix artist weblink not show
up2code Jan 13, 2021
7f60b3c
Reverse release event list on home page
up2code Jan 13, 2021
a5ef153
Add release event series detail page
up2code Jan 13, 2021
9c7bafe
Merge pull request #110 from VocaDB/feature/upgrade_and_poc
up2code Jan 14, 2021
eae2de8
Update doc
up2code Jan 14, 2021
805fff8
Merge branch 'master' into develop
up2code Jan 14, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
58 changes: 40 additions & 18 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,19 +1,41 @@
node_modules/
.expo/
npm-debug.*
package-lock.json
yarn.lock
.idea
.tmp
ios/Pods
ios/VocaDB/GoogleService-Info.plist
.packages
*.lock
build
android/key.local.properties
android/.gradle
android/**/*.iml
ios/Flutter/Generated.xconfig
ios/Runner/GeneratedPluginRegistrant.*
# 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
.dart_tool/*
.flutter-plugins-dependencies
.packages
.pub-cache/
.pub/
/build/

# Web related
lib2/generated_plugin_registrant.dart

# Symbolication related
app.*.symbols

# Obfuscation related
app.*.map.json
10 changes: 10 additions & 0 deletions .metadata
Original file line number Diff line number Diff line change
@@ -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: 78910062997c3a836feee883712c241a5fd22983
channel: stable

project_type: app
18 changes: 0 additions & 18 deletions .travis.yml

This file was deleted.

24 changes: 22 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,26 @@ VocaDB mobile version with [Flutter framework](https://flutter.dev/). Also this
- [Android Studio](https://developer.android.com/studio)
- [IntelliJ](https://www.jetbrains.com/idea/download/)

## Translation
## API Documentation
Use [dartdoc](https://dart.dev/tools/dartdoc) for generate documentation.

Translation files in _assets/i18n_. If anyone would like to update or add more language, You can add/edit and pull request to me.

### Installing dartdoc

Run `pub global activate dartdoc` to install the latest version of dartdoc compatible with your SDK.
```
$ pub global activate dartdoc
```
Then run `dartdoc` command to generate document.

```
$ dartdoc
```

Document generated result to {current_dir}/doc/api and can open index.html to view it in browser.

## UI Translation

Translation files in _lib/src/i18n_. File should be named with `{language code}.dart` or `{language_code}_{country_code}.dart`.

If anyone would like to update or add more language, You can add/edit and pull request to me.
11 changes: 11 additions & 0 deletions android/.gitignore
Original file line number Diff line number Diff line change
@@ -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
34 changes: 12 additions & 22 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,16 @@ if (flutterVersionName == null) {
flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
compileSdkVersion 29

Expand All @@ -45,30 +45,24 @@ android {
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.coolappz.Vocadb"
minSdkVersion 20
minSdkVersion 17
targetSdkVersion 29
versionCode 102339
versionName "3.0.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
versionName "3.1.0-beta.1"
versionCode flutterVersionCode.toInteger()
}

signingConfigs {
release {
keyAlias System.getenv("BITRISEIO_ANDROID_KEYSTORE_ALIAS")
keyPassword System.getenv("BITRISEIO_ANDROID_KEYSTORE_PRIVATE_KEY_PASSWORD")
storeFile file('release-key.keystore')
storePassword System.getenv("BITRISEIO_ANDROID_KEYSTORE_PASSWORD")
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}

buildTypes {
release {
signingConfig signingConfigs.release

minifyEnabled true
shrinkResources false
useProguard true

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
Expand All @@ -79,10 +73,6 @@ flutter {

dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}

apply plugin: 'io.fabric'
apply plugin: 'com.google.gms.google-services'
8 changes: 0 additions & 8 deletions android/app/proguard-rules.pro

This file was deleted.

7 changes: 7 additions & 0 deletions android/app/src/debug/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.coolappz.Vocadb">
<!-- 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>
35 changes: 23 additions & 12 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.coolappz.Vocadb">
package="com.coolappz.Vocadb">

<!-- The INTERNET permission is required for development. Specifically,
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"/>

<!-- io.flutter.app.FlutterApplication is an android.app.Application that
Expand All @@ -20,20 +16,35 @@
android:name=".MainActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<!-- This keeps the window background of the activity showing
until Flutter renders its first frame. It can be removed if
there is no splash screen (such as the default splash screen
defined in @style/LaunchTheme). -->
<!-- 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.app.android.SplashScreenUntilFirstFrame"
android:value="true" />
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>

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,13 +1,6 @@
package com.coolappz.Vocadb

import android.os.Bundle

import io.flutter.app.FlutterActivity
import io.flutter.plugins.GeneratedPluginRegistrant
import io.flutter.embedding.android.FlutterActivity

class MainActivity: FlutterActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
GeneratedPluginRegistrant.registerWith(this)
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
10 changes: 10 additions & 0 deletions android/app/src/main/res/values/styles.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting -->
<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:color/white</item>
</style>
</resources>
7 changes: 7 additions & 0 deletions android/app/src/profile/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.coolzapp.Vocadb">
<!-- 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>
11 changes: 3 additions & 8 deletions android/build.gradle
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
buildscript {
ext.kotlin_version = '1.3.30'
ext.kotlin_version = '1.3.50'
repositories {
google()
jcenter()

maven {
url 'https://maven.fabric.io/public'
}
}

dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'
classpath 'com.google.gms:google-services:4.2.0'
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'io.fabric.tools:gradle:1.26.1'
classpath 'com.google.gms:google-services:4.3.3'
}
}

Expand Down
2 changes: 0 additions & 2 deletions android/fastlane/Appfile

This file was deleted.

Loading