Skip to content

✅️ Redesigned Export UI/UX, Add Git Commit, and UI Bug Fixes#1713

Merged
hasrat-ali merged 19 commits intoSketchware-Pro:mainfrom
TheRealAshik:main
Jul 3, 2025
Merged

✅️ Redesigned Export UI/UX, Add Git Commit, and UI Bug Fixes#1713
hasrat-ali merged 19 commits intoSketchware-Pro:mainfrom
TheRealAshik:main

Conversation

@TheRealAshik
Copy link
Contributor

@TheRealAshik TheRealAshik commented Jul 2, 2025

Features: Redesigned Export UI/UX, Add Git Commit, and UI Bug Fixes

Quick Overview

A major UX update for the Export Activity adds a powerful new Git integration feature and resolves a few outstanding UI issues & yml file modifications.

Flaw: Need Empty Repository (not forked and full of files & folders)

✅ Type of Change

  • Bug fix
  • New feature
  • UI/UX Improvement
  • Refactoring

✨ What has changed?

Detailed breakdown of the changes includes & shown below

1. All-New Refreshed Export UI/UX
The Export Activity has been redesigned for clarity and ease of use.

  • Consolidated Export Options: The separate buttons for AAB, APK, and Source Code have been removed. They are now consolidated into a single "Export Project" button that opens a clean dialogue, allowing the user to select their desired export format.
  • Project Context: To eliminate confusion, the screen now clearly displays information about the project being exported, including its App Name, Package Name, and Icon.

2. New Feature: "Commit to Git"
A new feature has been added to the Export Activity, allowing users to commit and push their project source code directly to a Git repository.

  • Direct Integration: A "Commit to Git" button is now available on the Export screen.
  • Configuration: A full-screen dialog allows users to configure their repository details:
    • Repository URL
    • Personal Access Token (PAT) for authentication
    • Branch Name
    • Commit Message
  • Current Support: This feature currently supports GitHub using a Personal Access Token (PAT).

3. Bug Fix: Dynamic Debug Error Button
The "Show Error" button in the compilation error dialog was not dynamic. It would show the error log but the button text would not update, which was unintuitive.

  • Fixed: The button is now a dynamic Expand/Collapse toggle. It changes from "Show Error" to "Hide Error" upon click, providing clear visual feedback to the user.

4. Material Library Manager UI Improvement
General UI/UX enhancements have been made to the Material Library Manager for a cleaner and more modern look, improving readability and interaction.


📸 Screenshots / Demos

ExportProject_01
ExportProject_02
ExportProject_03
ExportProject_04
M3LibManager_01
Debug_01
Debug_02

Debug Dialog Fix:
GIF showing the "Show/Hide Error" button working dynamically


🧪 How to Test?

  1. Test the new Export UI & Feature:

    • Open Sketchware Pro > Project Settings > Export/Sign
    • Verify that the project's icon, name, and package name are displayed correctly.
    • Click the "Export Project" button.
    • Verify that a dialog appears with options to export an APK, AAB, or Signed APK. Test that each option works as expected.
  2. Test the "Commit to Git" feature:

    • On the Export screen, click the "Commit to Git" button.
    • In the dialog, fill in a valid GitHub repository URL, a valid Personal Access Token (PAT) with repo scope, a branch name, and a commit message.
    • Click "Commit".
    • Check your GitHub repository to confirm that the project source code has been successfully committed and pushed.
  3. Test the Debug Dialog fix:

    • Intentionally create a compilation error in a project (e.g., add an invalid code block).
    • Attempt to run the project to trigger the error dialog.
    • In the dialog, click the "Show Error" button.
    • Confirm that the error log expands and the button text changes to "Hide Error".
    • Click it again and confirm the log collapses and the text reverts to "Show Error".
  4. Review the Library Manager UI:

    • Navigate to Project Settings -> Library Manager.
    • Review the UI for the visual improvements.

🧑‍💻 Credits & Contact

This contribution was developed by [Ashik].

Feel free to reach out if you have any questions or feedback:

@yoann256
Copy link
Contributor

yoann256 commented Jul 2, 2025

the sketchware logo in the export activity looks odd to me i think it's better if you remove it

@TheRealAshik
Copy link
Contributor Author

The sketchware logo in the export activity looks odd to me. I think it's better if you remove it

Thanks for the suggestion! I will update it.

@RoyTheReal
Copy link

DUDE, GITHUB SUPPORT?! YOU'RE INSANE!

@yoann256
Copy link
Contributor

yoann256 commented Jul 3, 2025

DUDE, GITHUB SUPPORT?! YOU'RE INSANE!

It's more Git support but yeah

TheRealAshik

This comment was marked as duplicate.

@hasrat-ali
Copy link
Contributor

Can you enable "Allow edits from maintainers"?

@TheRealAshik
Copy link
Contributor Author

TheRealAshik commented Jul 3, 2025

Can you enable "Allow edits and access to secrets by maintainers"?

Yes, Mr @hasrat-ali 🙀

@hasrat-ali
Copy link
Contributor

You were late. Now I'm ony work. If you have any un-pushed commits, push them.
will try to merge this tonight .

@hasrat-ali hasrat-ali self-assigned this Jul 3, 2025
@TheRealAshik
Copy link
Contributor Author

You were late. Now I'm ony work. If you have any un-pushed commits, push them.
I will try to merge this tonight .

✅️ OK! For sure!

<!-- Before -->
<style name="Widget.Studioasinc.Chip.Entry" parent="Widget.Material3.Chip.Entry">
    <item name="chipTextAppearance">@style/TextAppearance.Studioasinc.Label</item>
</style>

<!-- After -->
<style name="Widget.Studioasinc.Chip.Entry" parent="Widget.Material3.Chip.Entry">
    <item name="chipTextAppearance">?attr/textAppearanceLabelLarge</item>
</style>
Added `app/src/main/res/layout/dialog_git_config.xml` Full screen dialog.

Redesigned XML `app/src/main/res/layout/export_project.xml`

Added M3 ProgressBar
`progress_dialog_wave.xml`
I've overhauled the error handling for the Git export feature.

Before, if something went wrong during a Git export, the app would just show a long, confusing block of code (a stack trace). This wasn't helpful, especially for simple mistakes like a typo in the repository URL or using an old token.

Now, the app is smart enough to figure out *why* it failed. Instead of the raw code, it will show a simple message in plain English that explains the likely problem. For example, it can now tell you if:

- The repository URL is wrong or doesn't exist.
- Your username or token is incorrect.
- There's a problem with your internet connection.

This should make the feature much less frustrating and help everyone figure out and fix their Git setup on their own.
- Added missing `ic_settings_48dp` drawable used in export_project.xml
- Fixed Android resource linking failure during release build
Sketchware Pro v7.0.0-SNAPSHOT-d274d2a (150)
base.apk size: 128 MB (128239325 B)
Locale: en_GB
SDK version: 33
Brand: samsung
Manufacturer: samsung
Model: SM-M325F

```
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
	at android.view.LayoutInflater.from(LayoutInflater.java:294)
	at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:213)
	at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:207)
	at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:193)
	at com.besome.sketch.export.GitConfigDialogFragment.onUserAndReposFetched(GitConfigDialogFragment.java:244)
	at com.besome.sketch.export.GitConfigDialogFragment.lambda$authorize$7(GitConfigDialogFragment.java:180)
	at com.besome.sketch.export.GitConfigDialogFragment.$r8$lambda$n1Yhei0wqtzLtbbp0rWtCq24xW4(Unknown Source:0)
	at com.besome.sketch.export.GitConfigDialogFragment$$ExternalSyntheticLambda3.run(D8$$SyntheticClass:0)
	at android.os.Handler.handleCallback(Handler.java:942)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:226)
	at android.os.Looper.loop(Looper.java:313)
	at android.app.ActivityThread.main(ActivityThread.java:8779)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:604)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)

```
@hasrat-ali hasrat-ali merged commit 694bdb6 into Sketchware-Pro:main Jul 3, 2025
@TheRealAshik
Copy link
Contributor Author

Your code is giving many errors at runtime.

Send me error log

@TheRealAshik
Copy link
Contributor Author

I think that feature is totally useless.

The features will rarely be used, but it's not useless. Whatever, just a few lines of codes. BTW you are doing a great job ❤️

@RoyTheReal
Copy link

I see a ton of potential with all of these changes. I'm excited!

@TheRealAshik
Copy link
Contributor Author

TheRealAshik commented Jul 3, 2025

I see a ton of potential with all of these changes. I'm excited!

I want you to express your thoughts to me, personally or here! What are the scopes?

@FlappyRecreator
Copy link

I see a ton of potential with all of these changes. I'm excited!

I want you to express your thoughts to me, personally or here! What are the scopes?

I love this design and the GitHub support, I personally would love further GitHub integration. That's all I have for now. You're awesome!

@RoyTheReal
Copy link

RoyTheReal commented Jul 3, 2025 via email

@FlappyRecreator
Copy link

FlappyRecreator commented Jul 3, 2025

I see a ton of potential with all of these changes. I'm excited!

I want you to express your thoughts to me, personally or here! What are the scopes?

Could you change the code so it doesn't say Sketchware when I commit things to my repository? Everything says Sketchware AutoCommit even though I changed the Default Commit Message. I don't want it to say "Sketchware".
@StudioAsInc

@TheRealAshik
Copy link
Contributor Author

TheRealAshik commented Jul 3, 2025

Could you change the code so it doesn't say Sketchware when I commit things to my repository? Everything says Sketchware AutoCommit even though I changed the Default Commit Message.
@StudioAsInc

Possibly, a minor bug. Fixed in 7be664a43b48513ec028494ccf52f371d0c0cbcd

@FlappyRecreator
Copy link

Could you change the code so it doesn't say Sketchware when I commit things to my repository? Everything says Sketchware AutoCommit even though I changed the Default Commit Message.
@StudioAsInc

Possibly, a minor bug

Thanks!

@FlappyRecreator
Copy link

Could you change the code so it doesn't say Sketchware when I commit things to my repository? Everything says Sketchware AutoCommit even though I changed the Default Commit Message.
@StudioAsInc

Possibly, a minor bug

Also, when I delete files from my project and commit it to GitHub it seems sometimes it doesn't remove them from the GitHub repository

@TheRealAshik
Copy link
Contributor Author

Also, when I delete files from my project and commit it to GitHub, it seems sometimes it doesn't remove them from the GitHub repository.

Well, it's not possible, though! The logic retrieves the original exported project of Android Studio Source code and pushed it to git without zipping it.

Note: Previously, you mentioned a bug (Commit message related) that was fixed in commit: 7be664a43b48513ec028494ccf52f371d0c0cbcd

@FlappyRecreator
Copy link

Also, when I delete files from my project and commit it to GitHub, it seems sometimes it doesn't remove them from the GitHub repository.

Well, it's not possible, though! The logic retrieves the original exported project of Android Studio Source code and pushed it to git without zipping it.

Note: Previously, you mentioned a bug (Commit message related) that was fixed in commit: 7be664a43b48513ec028494ccf52f371d0c0cbcd

Thanks! What other features are you planning? Is it possible to add a setting for automatic GitHub commiting everytime you run/build the project?

@FlappyRecreator
Copy link

FlappyRecreator commented Jul 3, 2025 via email

@RoyTheReal
Copy link

RoyTheReal commented Jul 3, 2025 via email

@TheRealAshik
Copy link
Contributor Author

Thanks! What other features are you planning? Is it possible to add a setting for automatic GitHub commiting every time you run/build the project?

Possible: But IDT that collaborators will allow to do that, maybe it's nighly builds are just for bug fixes not for new features! Weird, but IDK why!!!

@TheRealAshik
Copy link
Contributor Author

Yay fix be in main soon?

Do you mean auto select the main branch as default?

aikrq added a commit that referenced this pull request Jul 6, 2025
Reverted because of unstability and some reasons.
@FlappyRecreator
Copy link

@StudioAsInc why was this reverted...? I was using the feature.

@TheRealAshik
Copy link
Contributor Author

TheRealAshik commented Jul 7, 2025

@StudioAsInc why was this reverted...? I was using the feature.

@aikrq mentioned that it was unstable!

@FlappyRecreator
Copy link

Ugh

@FlappyRecreator
Copy link

Bring it back

@TheRealAshik
Copy link
Contributor Author

Bring it back

I can't merge any commit by myself, needs Seniors permission! Ask them!

@FlappyRecreator
Copy link

Bring it back

I can't merge any commit by myself, needs Seniors permission! Ask them!

I know, that's who I'm speaking too.

@TheRealAshik
Copy link
Contributor Author

TheRealAshik commented Jul 7, 2025

I know, that's who I'm speaking to.

Okay! It was useful for me too, but nothing is in my hand ✋️

@aikrq
Copy link
Collaborator

aikrq commented Jul 7, 2025

Bring it back

I can't merge any commit by myself, needs Seniors permission! Ask them!

If you want to get that feature back you must optimize it and make it stable with beautiful UI, also following contribution guidelines.

@TheRealAshik
Copy link
Contributor Author

TheRealAshik commented Jul 7, 2025

If you want to get that feature back, you must optimize it and make it stable with beautiful UI, also following contribution guidelines.

I don't have a backup of it, so I can't do it again, Insted... I will work on another thing. But here are my points

Why reverting wasn't the right decision:

  • It was your right decision 🐸 A stupid unused feat. 😅🤥

@aikrq
Copy link
Collaborator

aikrq commented Jul 7, 2025

If you want to get that feature back, you must optimize it and make it stable with beautiful UI, also following contribution guidelines.

I don't have a backup of it, so I can't do it again, Insted... I will work on another thing. But here are my points

Why reverting wasn't the right decision:

  • It was your right decision 🐸

Okay, now don't wait anymore for your pull requests to be merged. 😇

@FlappyRecreator
Copy link

If you want to get that feature back, you must optimize it and make it stable with beautiful UI, also following contribution guidelines.

I don't have a backup of it, so I can't do it again, Insted... I will work on another thing. But here are my points

Why reverting wasn't the right decision:

  • It was your right decision 🐸 A stupid unused feat. 😅🤥

Please bring it back. I want you to know, I was using it and enjoyed it. Please, take the time to create the feature again. I support you ❤️

@laymintu
Copy link

laymintu commented Jul 9, 2025

Bring it again, i was using it 😓

@yoann256
Copy link
Contributor

yoann256 commented Jul 9, 2025

Bring it again, i was using it 😓

It's not him that removed it

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.

7 participants