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

Migrate to .net 8 and Material 3 #2743

Merged
merged 48 commits into from
Jan 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
51902c9
fix build issues related to removal of deprecated OneDrive API jars. …
PhilippC Oct 8, 2024
73a8ec2
remove no-longer-needed jars from JavaFileStorageBindings
PhilippC Oct 8, 2024
f0fd21a
upgrade to Gradle version 8.6 (plugin version 8.4)
PhilippC Oct 8, 2024
669022d
update Newtonsoft.Json, FluentFTP and MegaApiClient to the latest ver…
PhilippC Oct 8, 2024
5ae718c
update targetframework for Guava libs
PhilippC Oct 8, 2024
4b55e2c
Bump checkout from v3 to v4
anttiharju Oct 13, 2024
a54444e
Bump gradle-build-action to v3
anttiharju Oct 13, 2024
84230b3
Bump gradle/actions/setup-gradle to v4
anttiharju Oct 13, 2024
247b372
Bump actions/cache to v4
anttiharju Oct 13, 2024
8bde5ed
Use actions/checkout for fetching submodules
anttiharju Oct 13, 2024
177b1fc
Update al-cheb/configure-pagefile-action to v1.4
anttiharju Oct 13, 2024
38e305b
Pin a third-party action
anttiharju Oct 13, 2024
5882263
Bump microsoft/setup-msbuild to v2 for node20
anttiharju Oct 13, 2024
8d354bb
Update actions/setup-java to v4
anttiharju Oct 13, 2024
7dcccf1
Bump artifact actions to v4
anttiharju Oct 13, 2024
e464c59
Downgrade setup-gradle to v3
anttiharju Oct 15, 2024
65092dc
Switch okhttp-digest source to github
anttiharju Oct 15, 2024
a98cd33
updating OkHttp, okhttp-digest and dropbox sdk. Removing no longer ne…
PhilippC Oct 22, 2024
9494f28
Merge branch 'anttiharju/master' into update-libs-and-tools
PhilippC Oct 22, 2024
b2b0b8d
switch to Java 17 in build.yml
PhilippC Oct 22, 2024
dad9b0e
update minSdk of offline version to 21 (Android 5.0) to simplify the …
PhilippC Oct 22, 2024
43f6064
towards sdk-style projects. As of now, all code/resources etc. is dup…
PhilippC Nov 5, 2024
c32a6ea
make app-style app compilable
PhilippC Nov 19, 2024
b153ea2
remove unused stuff from PluginSDK project
PhilippC Nov 19, 2024
e873ed4
+ theme test for testing material design stuff (because old theming i…
PhilippC Nov 19, 2024
52a62df
migrate preferences to AndroidX, separate one large settings fragment…
PhilippC Dec 1, 2024
b101bf8
rename apk of PluginSdk to avoid a weird binding error
PhilippC Dec 7, 2024
95d7ecd
first steps towards Material3 design
PhilippC Dec 7, 2024
f974b0f
remove bad named folder
PhilippC Dec 7, 2024
83d076c
fix bottom bar in QuickUnlock and Password activity
PhilippC Dec 7, 2024
c3c1f1e
add database filename on password activity again
PhilippC Dec 10, 2024
9194436
start replacing some icons
PhilippC Dec 10, 2024
add8209
change encoding to utf8
PhilippC Dec 10, 2024
ed9cd71
replace icons by vector drawables to fix color issues with day/night …
PhilippC Dec 10, 2024
e14cd62
changes to implement material design/fix flaws and issues in the majo…
PhilippC Dec 10, 2024
bf5411b
minor modifications to improve Material UI. Change dialog to Material…
PhilippC Dec 17, 2024
f0d9c81
improve behavior when changing the theme
PhilippC Dec 31, 2024
33c1f5d
mask password textedit before assigning password. This ensures that t…
PhilippC Dec 31, 2024
2ad073c
fix layout of password activity
PhilippC Dec 31, 2024
0e3ef76
recreate group activity when list text size was changed
PhilippC Dec 31, 2024
a672e9b
reactivate QR scanning capabilities by using GMS CodeScanner (instead…
PhilippC Jan 7, 2025
4d129c5
add filtered resources to java project files
PhilippC Jan 7, 2025
9a95691
remove no-longe-used testing project
PhilippC Jan 7, 2025
63836de
add svgs for two custom icons
PhilippC Jan 7, 2025
738d59d
remove old (pre-sdk-style) projects, rename sdk style projects to hav…
PhilippC Jan 7, 2025
409f6b9
rename folder keepass2android => keepass2android-app
PhilippC Jan 7, 2025
0cae15a
port AutofillParser unit tests to .net 8
PhilippC Jan 7, 2025
29fc0fe
adjust Makefile to hardlink the appropriate Manifest file from the Ma…
PhilippC Jan 14, 2025
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
  •  
  •  
  •  
63 changes: 30 additions & 33 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,15 @@ jobs:
# runs-on: macos-12

# steps:
# - uses: actions/checkout@v3

# - name: Fetch submodules
# run: git submodule init && git submodule update
# - uses: actions/checkout@v4
# with:
# submodules: true

# - name: Setup Gradle
# uses: gradle/gradle-build-action@v2
# uses: gradle/actions/setup-gradle@v3

# - name: Cache NuGet packages
# uses: actions/cache@v3
# uses: actions/cache@v4
# with:
# path: ~/.nuget/packages
# key: ${{ runner.os }}-nuget-${{ hashFiles('src/**/*.csproj', 'src/**/packages.config') }}
Expand Down Expand Up @@ -52,7 +51,7 @@ jobs:
# # $VM_ASSETS/select-xamarin-sdk-v2.sh --mono=6.12 --android=11.2

# - name: Switch to JDK-11
# uses: actions/setup-java@v3
# uses: actions/setup-java@v4
# with:
# java-version: '11'
# distribution: 'temurin'
Expand Down Expand Up @@ -82,7 +81,7 @@ jobs:
# make apk Flavor=Net

# - name: Archive production artifacts (net)
# uses: actions/upload-artifact@v3
# uses: actions/upload-artifact@v4
# with:
# name: signed APK ('net' built on ${{ github.job }})
# path: |
Expand All @@ -100,7 +99,7 @@ jobs:
# make apk Flavor=NoNet

# - name: Archive production artifacts (nonet)
# uses: actions/upload-artifact@v3
# uses: actions/upload-artifact@v4
# with:
# name: signed APK ('nonet' built on ${{ github.job }})
# path: |
Expand Down Expand Up @@ -130,16 +129,15 @@ jobs:
# # Build Artifact of xamarin.android-oss dated 2022-02-16, master branch (= version 12.2.99)
# xamarin_url: https://artprodcus3.artifacts.visualstudio.com/Ad0adf05a-e7d7-4b65-96fe-3f3884d42038/6fd3d886-57a5-4e31-8db7-52a1b47c07a8/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL3hhbWFyaW4vcHJvamVjdElkLzZmZDNkODg2LTU3YTUtNGUzMS04ZGI3LTUyYTFiNDdjMDdhOC9idWlsZElkLzU0OTUzL2FydGlmYWN0TmFtZS9pbnN0YWxsZXJzLXVuc2lnbmVkKy0rTGludXg1/content?format=zip
# steps:
# - uses: actions/checkout@v3

# - name: Fetch submodules
# run: git submodule init && git submodule update
# - uses: actions/checkout@v4
# with:
# submodules: true

# - name: Setup Gradle
# uses: gradle/gradle-build-action@v2
# uses: gradle/actions/setup-gradle@v3

# - name: Cache NuGet packages
# uses: actions/cache@v3
# uses: actions/cache@v4
# with:
# path: ~/.nuget/packages
# key: ${{ runner.os }}-nuget-${{ hashFiles('src/**/*.csproj', 'src/**/packages.config') }}
Expand All @@ -148,7 +146,7 @@ jobs:

# - name: Cache Xamarin.Android packages
# id: xamarin_cache
# uses: actions/cache@v3
# uses: actions/cache@v4
# with:
# path: ~/xamarin.android-oss
# key: ${{ runner.os }}-xamarin.android-oss-${{ env.xamarin_url }}
Expand Down Expand Up @@ -183,7 +181,7 @@ jobs:
# echo "$HOME/xamarin.android-oss/bin/Release/bin" >> $GITHUB_PATH

# - name: Switch to JDK-11
# uses: actions/setup-java@v3
# uses: actions/setup-java@v4
# with:
# java-version: '11'
# distribution: 'temurin'
Expand Down Expand Up @@ -217,7 +215,7 @@ jobs:
# make apk Flavor=Net

# - name: Archive production artifacts (net)
# uses: actions/upload-artifact@v3
# uses: actions/upload-artifact@v4
# with:
# name: signed APK ('net' built on ${{ github.job }})
# path: |
Expand All @@ -235,7 +233,7 @@ jobs:
# make apk Flavor=NoNet

# - name: Archive production artifacts (nonet)
# uses: actions/upload-artifact@v3
# uses: actions/upload-artifact@v4
# with:
# name: signed APK ('nonet' built on ${{ github.job }})
# path: |
Expand All @@ -254,39 +252,38 @@ jobs:
runs-on: windows-2022

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: true

- name: Setup Gradle
uses: gradle/gradle-build-action@v2
uses: gradle/actions/setup-gradle@v3

- name: Cache NuGet packages
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-nuget-${{ hashFiles('src/**/*.csproj', 'src/**/packages.config') }}
restore-keys: |
${{ runner.os }}-nuget-

- name: Fetch submodules
run: git submodule init && git submodule update

# Workaround an issue when building on windows-2022. Error was
# D8 : OpenJDK 64-Bit Server VM warning : INFO: os::commit_memory(0x00000000ae400000, 330301440, 0) failed; error='The paging file is too small for this operation to complete' (DOS error/errno=1455) [D:\a\keepass2android\keepass2android\src\keepass2android\keepass2android-app.csproj]
# C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.D8.targets(81,5): error MSB6006: "java.exe" exited with code 1. [D:\a\keepass2android\keepass2android\src\keepass2android\keepass2android-app.csproj]
- name: Configure Pagefile
uses: al-cheb/configure-pagefile-action@v1.3
uses: al-cheb/configure-pagefile-action@a3b6ebd6b634da88790d9c58d4b37a7f4a7b8708 # v1.4
with:
minimum-size: 8GB

- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.1
uses: microsoft/setup-msbuild@v2
# If we want to also have nmake, use this instead
#uses: ilammy/msvc-dev-cmd@v1

- name: Switch to JDK-11
uses: actions/setup-java@v3
- name: Switch to JDK-17
uses: actions/setup-java@v4
with:
java-version: '11'
java-version: '17'
distribution: 'temurin'

- name: Display java version
Expand Down Expand Up @@ -320,7 +317,7 @@ jobs:
make apk Flavor=Net

- name: Archive production artifacts (net)
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: signed APK ('net' built on ${{ github.job }})
path: |
Expand All @@ -333,15 +330,15 @@ jobs:
run: |
make msbuild Flavor=NoNet
- name: Test Autofill
working-directory: ./src/Kp2aAutofillParserTest
working-directory: ./src/Kp2aAutofillParser.Tests
run: dotnet test

- name: Build APK (nonet)
run: |
make apk Flavor=NoNet

- name: Archive production artifacts (nonet)
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: signed APK ('nonet' built on ${{ github.job }})
path: |
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -176,3 +176,5 @@ src/java/Keepass2AndroidPluginSDK2/build/generated/mockable-Google-Inc.-Google-A
/src/ActionViewFilterTest
/docs/gdrive-verification
/src/MegaTest
*.dtbcache.json
/src/keepass2android-app/AndroidManifest.xml
37 changes: 33 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -120,14 +120,38 @@ ifneq ($(Configuration),)
else
$(warning Configuration environment variable not set.)
endif

DELETE_MANIFEST_LINK :=
CREATE_MANIFEST_LINK :=

MANIFEST_FILE :=
ifneq ($(Flavor),)
MSBUILD_PARAM += -p:Flavor="$(Flavor)"
ifneq ($(Flavor),)
ifeq ($(Flavor),Debug)
MANIFEST_FILE := AndroidManifest_debug.xml
endif
ifeq ($(Flavor),Net)
MANIFEST_FILE := AndroidManifest_net.xml
endif
ifeq ($(Flavor),NoNet)
MANIFEST_FILE := AndroidManifest_nonet.xml
endif
ifeq ($(detected_OS),Windows)
DELETE_MANIFEST_LINK := @cmd /c del src\keepass2android-app\AndroidManifest.xml
CREATE_MANIFEST_LINK := @cmd /c mklink /h src\keepass2android-app\AndroidManifest.xml src\keepass2android-app\Manifests\$(MANIFEST_FILE)
else
DELETE_MANIFEST_LINK := rm -f src/keepass2android-app/AndroidManifest.xml
CREATE_MANIFEST_LINK := ln -f src/keepass2android-app/Manifests/$(MANIFEST_FILE) src/keepass2android-app/AndroidManifest.xml
endif

endif
else
$(warning Flavor environment variable not set.)
endif

ifneq ($(KeyStore),)
MSBUILD_PARAM += -p:AndroidKeyStore=True -p:AndroidSigningKeyStore="$(KeyStore)" -p:AndroidSigningStorePass=env:MyAndroidSigningStorePass -p:AndroidSigningKeyPass=env:MyAndroidSigningKeyPass
MSBUILD_PARAM += -p:AndroidKeyStore=True -p:AndroidSigningKeyStore="$(KeyStore)" -p:AndroidSigningStorePass=env:MyAndroidSigningStorePass -p:AndroidSigningKeyPass=env:MyAndroidSigningKeyPass -p:AndroidSigningKeyAlias="kp2a"
endif

ifeq ($(detected_OS),Windows)
Expand Down Expand Up @@ -281,6 +305,11 @@ endif
$(MSBUILD) src/KeePass.sln -t:restore $(MSBUILD_PARAM) -p:RestorePackagesConfig=true
@echo "" > stamp.nuget_$(Flavor)

manifestlink:
$(info Creating hardlink for manifest of Flavor: $(Flavor))
$(DELETE_MANIFEST_LINK)
$(CREATE_MANIFEST_LINK)

#####
src/Kp2aBusinessLogic/Io/DropboxFileStorageKeys.cs:
ifeq ($(detected_OS),Windows)
Expand All @@ -289,11 +318,11 @@ else
$(CP) src/Kp2aBusinessLogic/Io/DropboxFileStorageKeysDummy.cs $@
endif

msbuild: native java nuget src/Kp2aBusinessLogic/Io/DropboxFileStorageKeys.cs
msbuild: manifestlink native java nuget src/Kp2aBusinessLogic/Io/DropboxFileStorageKeys.cs
$(MSBUILD) src/KeePass.sln -target:keepass2android-app -p:AndroidSdkDirectory="$(ANDROID_SDK_ROOT)" -p:BuildProjectReferences=true $(MSBUILD_PARAM) -p:Platform="Any CPU" -m

apk: msbuild
$(MSBUILD) src/keepass2android/keepass2android-app.csproj -p:AndroidSdkDirectory="$(ANDROID_SDK_ROOT)" -t:SignAndroidPackage $(MSBUILD_PARAM) -p:Platform=AnyCPU -m
apk: msbuild
$(MSBUILD) src/keepass2android-app/keepass2android-app.csproj -p:AndroidSdkDirectory="$(ANDROID_SDK_ROOT)" -t:SignAndroidPackage $(MSBUILD_PARAM) -p:Platform=AnyCPU -m

build_all: msbuild

Expand Down
39 changes: 39 additions & 0 deletions graphics/add_key.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
41 changes: 41 additions & 0 deletions graphics/donate_beer.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading