Skip to content

Conversation

@Miduo666
Copy link

@Miduo666 Miduo666 commented Dec 12, 2025

Pull Request Details

What issue does this PR address

  • [Description]

Associated Issue

  • This PR relates to issue #

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

Please describe the tests that you ran to verify your changes.

Checklist

Complete the check-list below to ensure your branch is ready for PR.

  • Screenshots included in linked issue #
  • Changes adhere to the style and coding guidelines
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • Any dependent changes have been merged and published in downstream modules
  • The update contains no confidential information
  • The update has no duplicated content
  • No lint check errors are related to these changes (make prep or flutter analyze lib)
  • Integration test dart test output or screenshot included in issue #
  • I tested the PR on these devices:
    • Android
    • iOS
    • Linux
    • MacOS
    • Windows
    • Web
  • I have identified reviewers
  • The PR has been approved by reviewers

Finalising

Once PR discussion is complete and reviewers have approved:

  • Merge dev into the this branch
  • Resolve any conflicts
  • Add a one line summary into the CHANGELOG.md
  • Push to the git repository and review
  • Merge the PR into dev

@Miduo666
Copy link
Author

Miduo666 commented Dec 13, 2025

Summary

This PR fixes critical login and authentication issues in the solidui package.

Key Fixes

  • Login Form State Loss: Fixed TextEditingController being recreated on every build, which caused user input to disappear.
  • Double-Slash Path Bug: Fixed file paths like //data/places.json when returning from guest mode by properly resetting appDirName.
  • Server Connection Errors: Added error handling with informative dialog when authentication server is unavailable.
  • Tab State Preservation: Switched to IndexedStack to prevent widget rebuilds and preserve scroll position.
  • Security Key Access: Added login check before showing security key manager.

@tonypioneer
Copy link
Collaborator

Hi @lambadajester50-byte, could you please describe in brief what issue have you fixed in this PR? Thank you very much.

@Miduo666
Copy link
Author

Hi @lambadajester50-byte, could you please describe in brief what issue have you fixed in this PR? Thank you very much.

Thank you! I‘ve fixed a login bug described in gjwgit/geopod#13

@tonypioneer
Copy link
Collaborator

Hi @lambadajester50-byte, I did a round of test.

image image

After I tapped Continue and Not logged in, the page jumped to the login page of SolidPod.

image

Then I clicked on Continue again, it showed Authentication required in red text, and the background is transparent.

image

@Miduo666
Copy link
Author

Hi Tony @tonypioneer ,
Thanks for the feedback. Regarding the "Authentication required" error and the UI issues, I believe this is due to version mismatches between the interdependent packages.
To fix this, we likely need to ensure all related packages are updated to their latest development versions. Could you try adding the following dependency_overrides at the end of your pubspec.yaml?
This will force the project to use the consistent dev branches for all Solid components:
dependency_overrides:
solidpod:
git:
url: https://github.com/lambadajester50-byte/solidpod.git
ref: dev
solid_auth:
git:
url: https://github.com/lambadajester50-byte/solid_auth.git
ref: dev
solidui:
git:
url: https://github.com/lambadajester50-byte/solidui.git
ref: dev
image

@tonypioneer
Copy link
Collaborator

Hi Tony @tonypioneer , Thanks for the feedback. Regarding the "Authentication required" error and the UI issues, I believe this is due to version mismatches between the interdependent packages. To fix this, we likely need to ensure all related packages are updated to their latest development versions. Could you try adding the following dependency_overrides at the end of your pubspec.yaml? This will force the project to use the consistent dev branches for all Solid components: dependency_overrides: solidpod: git: url: https://github.com/lambadajester50-byte/solidpod.git ref: dev solid_auth: git: url: https://github.com/lambadajester50-byte/solid_auth.git ref: dev solidui: git: url: https://github.com/lambadajester50-byte/solidui.git ref: dev image

Hi @lambadajester50-byte, thanks for the quick reply. I added the depedencies to the override section, and ran flutter pub get and flutter pub upgrade before running the app. But the issue is still there.

image

@tonypioneer tonypioneer self-requested a review December 16, 2025 12:39
@Miduo666
Copy link
Author

Miduo666 commented Dec 16, 2025

Hi @lambadajester50-byte, thanks for the quick reply. I added the depedencies to the override section, and ran flutter pub get and flutter pub upgrade before running the app. But the issue is still there.

Hi @tonypioneer
I apologize for the confusion. It turns out some specific configurations required for the UI were missing in the base packages—I had them locally in geopod when they actually should have been integrated into solidui.

I have now refactored the code, fixed the configuration issue, and pushed the updates to the repository. I’ve tested the entire flow on Web, and everything is now working perfectly on my end.

Please pull the latest changes, run flutter pub get again, and give it another try. Let me know if it works for you!

Copy link
Collaborator

@tonypioneer tonypioneer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @lambadajester50-byte. I did a round of test. The functionality works well now. Please resolve the conflicts against the dev branch, and lint the code. Because in the code style guidelines of the SII, a blank line before and after a comment is recommended. The exception is at the beginning of a block which lint usually enforces (https://survivor.togaware.com/gnulinux/flutter-style-comments.html).

@Miduo666 Miduo666 requested a review from tonypioneer December 19, 2025 09:31
@Miduo666
Copy link
Author

Thanks @lambadajester50-byte. I did a round of test. The functionality works well now. Please resolve the conflicts against the dev branch, and lint the code. Because in the code style guidelines of the SII, a blank line before and after a comment is recommended. The exception is at the beginning of a block which lint usually enforces (https://survivor.togaware.com/gnulinux/flutter-style-comments.html).

I‘ve done! Thank you Tony!

@tonypioneer
Copy link
Collaborator

Hi @Miduo666, I think there are some conflicts in the code with the dev branch.

@Miduo666
Copy link
Author

Hi @Miduo666, I think there are some conflicts in the code with the dev branch.

Thank you Tony, I 'll merge dev into this PR soon

@tonypioneer
Copy link
Collaborator

Hi @Miduo666, I think there are some conflicts in the code with the dev branch.

Thank you Tony, I 'll merge dev into this PR soon

Thanks @Miduo666.

Copy link
Collaborator

@tonypioneer tonypioneer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @Miduo666, thanks for the fix.

I did a round of test, the functionality works well on my machine. However, when I ran make prep to do the lint check, there were some minor issues as below.

Dart: FIX IMPORT ORDER
❌ Import ordering issues found in lib/src/widgets/solid_status_bar.dart:
   • Import 'package:solidpod/solidpod.dart' should come before 'package:gap/gap.dart' (alphabetical order)
   • Missing blank lines between different import groups

📝 Summary: Found import ordering issues in 1 file(s).
💡 To fix these issues, run the same command without --set-exit-if-changed

Successfully fixed import ordering in 202 file(s).
------------------------------------------------------------------------
Dart: REVIEW DEPENDENCIES.
dependency_validator

Validating dependencies for solidui...
These packages are used outside lib/ but are not dev_dependencies:
  * flutter_test
  * myapp
These packages may be unused, or you may be using assets from these packages:
  * web
make: [depend] Error 1 (ignored)

@Miduo666
Copy link
Author

Miduo666 commented Jan 12, 2026

Hi @Miduo666, thanks for the fix.

I did a round of test, the functionality works well on my machine. However, when I ran make prep to do the lint check, there were some minor issues as below.

Dart: FIX IMPORT ORDER
❌ Import ordering issues found in lib/src/widgets/solid_status_bar.dart:
   • Import 'package:solidpod/solidpod.dart' should come before 'package:gap/gap.dart' (alphabetical order)
   • Missing blank lines between different import groups

📝 Summary: Found import ordering issues in 1 file(s).
💡 To fix these issues, run the same command without --set-exit-if-changed

Successfully fixed import ordering in 202 file(s).
------------------------------------------------------------------------
Dart: REVIEW DEPENDENCIES.
dependency_validator

Validating dependencies for solidui...
These packages are used outside lib/ but are not dev_dependencies:
  * flutter_test
  * myapp
These packages may be unused, or you may be using assets from these packages:
  * web
make: [depend] Error 1 (ignored)

Hi Tony, it's fixed now. I've also enabled login support for the example project, so it's all good to go.

@gjwgit gjwgit self-requested a review January 12, 2026 23:06
@tonypioneer
Copy link
Collaborator

Hi @Miduo666, thanks for the fix.
I did a round of test, the functionality works well on my machine. However, when I ran make prep to do the lint check, there were some minor issues as below.

Dart: FIX IMPORT ORDER
❌ Import ordering issues found in lib/src/widgets/solid_status_bar.dart:
   • Import 'package:solidpod/solidpod.dart' should come before 'package:gap/gap.dart' (alphabetical order)
   • Missing blank lines between different import groups

📝 Summary: Found import ordering issues in 1 file(s).
💡 To fix these issues, run the same command without --set-exit-if-changed

Successfully fixed import ordering in 202 file(s).
------------------------------------------------------------------------
Dart: REVIEW DEPENDENCIES.
dependency_validator

Validating dependencies for solidui...
These packages are used outside lib/ but are not dev_dependencies:
  * flutter_test
  * myapp
These packages may be unused, or you may be using assets from these packages:
  * web
make: [depend] Error 1 (ignored)

Hi Tony, it's fixed now. I've also enabled login support for the example project, so it's all good to go.

Thanks @Miduo666. Please merge dev to your branch again. There are still some conflicts.

@Miduo666
Copy link
Author

Hi @Miduo666, thanks for the fix.
I did a round of test, the functionality works well on my machine. However, when I ran make prep to do the lint check, there were some minor issues as below.

Dart: FIX IMPORT ORDER
❌ Import ordering issues found in lib/src/widgets/solid_status_bar.dart:
   • Import 'package:solidpod/solidpod.dart' should come before 'package:gap/gap.dart' (alphabetical order)
   • Missing blank lines between different import groups

📝 Summary: Found import ordering issues in 1 file(s).
💡 To fix these issues, run the same command without --set-exit-if-changed

Successfully fixed import ordering in 202 file(s).
------------------------------------------------------------------------
Dart: REVIEW DEPENDENCIES.
dependency_validator

Validating dependencies for solidui...
These packages are used outside lib/ but are not dev_dependencies:
  * flutter_test
  * myapp
These packages may be unused, or you may be using assets from these packages:
  * web
make: [depend] Error 1 (ignored)

Hi Tony, it's fixed now. I've also enabled login support for the example project, so it's all good to go.

Thanks @Miduo666. Please merge dev to your branch again. There are still some conflicts.

Done. Thank you Tony!

@tonypioneer
Copy link
Collaborator

Hi @Miduo666, thanks for the fix.
I did a round of test, the functionality works well on my machine. However, when I ran make prep to do the lint check, there were some minor issues as below.

Dart: FIX IMPORT ORDER
❌ Import ordering issues found in lib/src/widgets/solid_status_bar.dart:
   • Import 'package:solidpod/solidpod.dart' should come before 'package:gap/gap.dart' (alphabetical order)
   • Missing blank lines between different import groups

📝 Summary: Found import ordering issues in 1 file(s).
💡 To fix these issues, run the same command without --set-exit-if-changed

Successfully fixed import ordering in 202 file(s).
------------------------------------------------------------------------
Dart: REVIEW DEPENDENCIES.
dependency_validator

Validating dependencies for solidui...
These packages are used outside lib/ but are not dev_dependencies:
  * flutter_test
  * myapp
These packages may be unused, or you may be using assets from these packages:
  * web
make: [depend] Error 1 (ignored)

Hi Tony, it's fixed now. I've also enabled login support for the example project, so it's all good to go.

Thanks @Miduo666. Please merge dev to your branch again. There are still some conflicts.

Done. Thank you Tony!

Thanks @Miduo666. I think there are still some conflicts. Maybe the dev branch is updated too frequently.

@Miduo666
Copy link
Author

Hi @Miduo666, thanks for the fix.
I did a round of test, the functionality works well on my machine. However, when I ran make prep to do the lint check, there were some minor issues as below.

Dart: FIX IMPORT ORDER
❌ Import ordering issues found in lib/src/widgets/solid_status_bar.dart:
   • Import 'package:solidpod/solidpod.dart' should come before 'package:gap/gap.dart' (alphabetical order)
   • Missing blank lines between different import groups

📝 Summary: Found import ordering issues in 1 file(s).
💡 To fix these issues, run the same command without --set-exit-if-changed

Successfully fixed import ordering in 202 file(s).
------------------------------------------------------------------------
Dart: REVIEW DEPENDENCIES.
dependency_validator

Validating dependencies for solidui...
These packages are used outside lib/ but are not dev_dependencies:
  * flutter_test
  * myapp
These packages may be unused, or you may be using assets from these packages:
  * web
make: [depend] Error 1 (ignored)

Hi Tony, it's fixed now. I've also enabled login support for the example project, so it's all good to go.

Thanks @Miduo666. Please merge dev to your branch again. There are still some conflicts.

Done. Thank you Tony!

Thanks @Miduo666. I think there are still some conflicts. Maybe the dev branch is updated too frequently.

Yeah it is. Fortunately I ve resolved the conflicts @tonypioneer

Copy link
Collaborator

@tonypioneer tonypioneer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works well on my machine. Thanks @Miduo666.

if (!fileName.endsWith('.enc.ttl') && !fileName.endsWith('.ttl')) {
// Skip ACL files and metadata files, but include all other file types
// (TTL, JSON, CSV, TXT, etc.)
if (fileName.endsWith('.acl') || fileName.endsWith('.meta')) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add an empty line after the comment. Ref: https://survivor.togaware.com/gnulinux/flutter-style-comments.html

_currentWebId != null && _currentWebId!.isNotEmpty;

if (isCurrentlyLoggedIn) {
// Logout scenario - don't recheck status as page will reload
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add an empty line after the comment. Ref: https://survivor.togaware.com/gnulinux/flutter-style-comments.html

SolidAuthHandler.instance.handleLogout(context);
}
} else {
// Login scenario - can delay status check
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add an empty line after the comment. Ref: https://survivor.togaware.com/gnulinux/flutter-style-comments.html

_checkLoginStatus();
}
});
// Only refresh status for login scenario
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add an empty line after the comment. Ref: https://survivor.togaware.com/gnulinux/flutter-style-comments.html

WidgetsBinding.instance.addObserver(this);
solidThemeNotifier.addListener(_onThemeChanged);

// Initialize the controller with the widget's webID
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

context,
// Use simple pushReplacement instead of pushAndRemoveUntil
// This preserves the navigation history and doesn't destroy all widgets
await Navigator.of(context).pushReplacement(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add an empty line after the comment. Ref: https://survivor.togaware.com/gnulinux/flutter-style-comments.html

if (await logoutPod()) {
// Navigate to login page after successful logout
// Works consistently across all platforms
if (context.mounted) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add an empty line after the comment. Ref: https://survivor.togaware.com/gnulinux/flutter-style-comments.html

) async {
// Import at top: import 'package:solidpod/solidpod.dart' show getWebId;
// Check if user is logged in first
try {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add an empty line after the comment. Ref: https://survivor.togaware.com/gnulinux/flutter-style-comments.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants