Skip to content

Commit f9c0921

Browse files
authored
refactor code to prepare for Android (#35)
1. fix bugs after 0.0.4 developer 2. add flutter api for Android, and do some pre jobs of Android App development
1 parent a08e209 commit f9c0921

File tree

88 files changed

+3806
-1488
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+3806
-1488
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: fornet Android client build
2+
on:
3+
workflow_dispatch:
4+
inputs:
5+
version:
6+
required: true
7+
description: "version to release"
8+
jobs:
9+
build_android:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v3
13+
with:
14+
submodules: true
15+
- name: Install Rust
16+
uses: actions-rs/toolchain@v1
17+
with:
18+
toolchain: stable
19+
target: armv7-linux-androideabi, aarch64-linux-android
20+
profile: minimal
21+
- name: Set up JDK
22+
uses: actions/setup-java@v2
23+
with:
24+
java-version: '17'
25+
distribution: 'temurin'
26+
cache: gradle
27+
- name: Set up Android NDK
28+
uses: nttld/setup-ndk@v1
29+
with:
30+
ndk-version: 'r25b'
31+
local-cache: true
32+
- uses: subosito/flutter-action@v2
33+
with:
34+
flutter-version: '3.10.6'
35+
cache: true
36+
- name: Set up cargo cache
37+
uses: actions/cache@v3
38+
continue-on-error: false
39+
with:
40+
path: |
41+
~/.cargo/bin/
42+
~/.cargo/registry/index/
43+
~/.cargo/registry/cache/
44+
~/.cargo/git/db/
45+
client/target/
46+
key: ubuntu-android-cargo-${{ hashFiles('**/Cargo.lock') }}
47+
restore-keys: ubuntu-cargo-android
48+
- name: Download Android keystore
49+
id: android_keystore
50+
uses: timheuer/base64-to-file@v1.0.3
51+
with:
52+
fileName: upload-keystore.jks
53+
encodedString: ${{ secrets.KEYSTORE_BASE64 }}
54+
- name: Create key.properties
55+
run: |
56+
echo "storeFile=${{ steps.android_keystore.outputs.filePath }}" > app/android/sign.properties
57+
echo "storePassword=${{ secrets.STORE_PASSWORD }}" >> app/android/sign.properties
58+
echo "keyPassword=${{ secrets.KEY_PASSWORD }}" >> app/android/sign.properties
59+
echo "keyAlias=${{ secrets.KEY_ALIAS }}" >> app/android/sign.properties
60+
- name: Build
61+
run: make release-android
62+
- name: Upload artifact
63+
uses: actions/upload-artifact@v2
64+
with:
65+
name: android-apk.zip
66+
path: app/android/app/build/outputs/apk/*.apk
67+
if-no-files-found: error

Makefile

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This is for .github/workflows.
2-
.PHONY: release-mac-x86_64, release-mac-aarch64, release-linux, release-backend, release-linux-aarch64
2+
.PHONY: release-mac-x86_64, release-mac-aarch64, release-linux, release-backend, release-linux-aarch64, release-android
33

44
#base_dir := $(shell pwd)
55

@@ -54,4 +54,9 @@ release-backend:
5454
cd backend && sbt universal:packageBin && cd ../
5555
mkdir -p release
5656
cp backend/target/universal/app-*.zip release/
57-
cp backend/target/universal/app-*.zip command/docker/backend/app.zip && cd command/docker/backend && unzip app.zip && rm app.zip && mv app-* app
57+
cp backend/target/universal/app-*.zip command/docker/backend/app.zip && cd command/docker/backend && unzip app.zip && rm app.zip && mv app-* app
58+
59+
release-android:
60+
cargo install cargo-ndk
61+
cd app && flutter pub get && flutter build apk
62+

admin-web/config-overrides.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
const {
2+
override,
3+
addLessLoader,
4+
addWebpackAlias,
5+
adjustStyleLoaders,
6+
} = require('customize-cra')
7+
const path = require('path')
8+
9+
module.exports = override(
10+
addLessLoader({
11+
// lessOptions: {
12+
// javascriptEnabled: true,
13+
// },
14+
}),
15+
adjustStyleLoaders(({use: [, , postcss]}) => {
16+
const postcssOptions = postcss.options;
17+
postcss.options = {postcssOptions};
18+
}),
19+
addWebpackAlias({
20+
'@': path.resolve(__dirname, 'src'),
21+
}),
22+
)

admin-web/package-lock.json

Lines changed: 9 additions & 28 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

admin-web/package.json

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
"typescript": "^4.4.2"
2525
},
2626
"scripts": {
27-
"start": "dotenv -e .env.dev react-scripts start",
28-
"build:prod": "dotenv -e .env.prod react-scripts build",
27+
"start": "dotenv -e .env.dev react-app-rewired start",
28+
"build:prod": "dotenv -e .env.prod react-app-rewired build",
2929
"eject": "react-scripts eject"
3030
},
3131
"eslintConfig": {
@@ -48,7 +48,11 @@
4848
},
4949
"devDependencies": {
5050
"@types/lodash": "^4.14.186",
51+
"customize-cra": "^1.0.0",
5152
"dotenv-cli": "^7.2.1",
52-
"http-proxy-middleware": "^2.0.6"
53+
"http-proxy-middleware": "^2.0.6",
54+
"less": "^4.2.0",
55+
"less-loader": "^11.1.3",
56+
"react-app-rewired": "^2.2.1"
5357
}
5458
}

admin-web/src/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import './index.less';
44
import {Provider} from "react-redux";
55
import {store} from "./store";
66
import AppRouter from "./routes";
7-
import {ConfigProvider} from "antd";
7+
import {ConfigProvider, theme} from "antd";
88
import 'dayjs/locale/zh-cn'
99
import 'dayjs/locale/en'
1010
import {RawIntlProvider} from 'react-intl'
@@ -18,7 +18,7 @@ const root = ReactDOM.createRoot(
1818
);
1919
const render = () => root.render(
2020
<Provider store={store}>
21-
<ConfigProvider locale={antdLocale}>
21+
<ConfigProvider locale={antdLocale} theme={{algorithm: theme.darkAlgorithm}}>
2222
<RawIntlProvider value={intl}>
2323
<AppRouter/>
2424
</RawIntlProvider>

admin-web/src/layout/AppLayout.less

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
//padding: 24px;
44
overflow:auto;
55
height:100%;
6-
background: #0F1116;
6+
//background: #0F1116;
77
}

admin-web/src/view/login/LoginPage.less

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
.App {
22
text-align: center;
3+
background-color: #1f1f1f;
34
}
45

56
.App-logo {

app/README.md

Lines changed: 0 additions & 16 deletions
This file was deleted.

app/android/.gitignore

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
gradle-wrapper.jar
2+
/.gradle
3+
/captures/
4+
/gradlew
5+
/gradlew.bat
6+
/local.properties
7+
GeneratedPluginRegistrant.java
8+
9+
# Remember to never publicly share your keystore.
10+
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11+
key.properties
12+
**/*.keystore
13+
**/*.jks
14+
15+
app/src/main/jniLibs/*

0 commit comments

Comments
 (0)