Add some tests to test Android-only features: `MainActivityTest` (just start the activity), `AppUtilTest` (some Android-related methods), `ToastyTest` (only to test if toasts are working). Actually, this doesn't really test something, but just as a first step.
https://codeberg.org/gitnex/GitNex/issues/1098
I think it's REALLY hard to write tests that really work well in testing features. Starting activities is possible, but it's hard to test it. Also, this will run with the same database and tinydb the real app uses - it's hard for us to make this usable, we have to replace the DB and TinyDB and then add values again.
Co-authored-by: qwerty287 <ndev@web.de>
Co-authored-by: 6543 <6543@obermui.de>
Reviewed-on: https://codeberg.org/gitnex/GitNex/pulls/1105
Reviewed-by: 6543 <6543@noreply.codeberg.org>
Co-authored-by: qwerty287 <qwerty287@noreply.codeberg.org>
Co-committed-by: qwerty287 <qwerty287@noreply.codeberg.org>
Try to fix our issues with gitlab ci.
# DISCLAIMER
I don't really know if this will work. I pulled the image locally and ran it, `apksigner` is available, `./gradlew assembleFreeRelease` runs without issues, but I don't know if this will behave differently on gitlab. However, this took a long time to run because it is installing an emulator and sdk tools, don't know why.
Co-authored-by: qwerty287 <ndev@web.de>
Reviewed-on: https://codeberg.org/gitnex/GitNex/pulls/1103
Reviewed-by: M M Arif <mmarif@noreply.codeberg.org>
Co-authored-by: qwerty287 <qwerty287@noreply.codeberg.org>
Co-committed-by: qwerty287 <qwerty287@noreply.codeberg.org>
I would also like to remove `jcenter()` but right now two repositories are using it.
`com.pes.materialcolorpicker:library` `com.amulyakhare:com.amulyakhare.textdrawable`
Co-authored-by: M M Arif <mmarif@swatian.com>
Reviewed-on: https://codeberg.org/gitnex/GitNex/pulls/1097
This PR mostly intend to improve and re visualize the UI across the app including clean up of layouts and strings.
Some UI changes are experimental like bottom sheet grid layout for repo items and can be extended once mature enough for use.
Few screen shots attached.
Closes#1077Closes#976
Co-authored-by: M M Arif <mmarif@swatian.com>
Reviewed-on: https://codeberg.org/gitnex/GitNex/pulls/1074
Reviewed-by: qwerty287 <qwerty287@noreply.codeberg.org>
Do not use TinyDB as a cache or a way to send data between activities.
### How is this working
Instead of saving everything into the TinyDB, I created three `Context`s (a `RepositoryContext`, an `IssueContext` and an `AccountContext`). All are used to store things like API or database values/models and additional data, e.g. the `RepositoryContext` also contains information about the current filter state of a repository (issues, pull requests, releases/tags and milestones). These are sent using `Intent`s and `Bundle`s between activities and fragments. Changing a field (e.g. filter state) in any fragment changes it also for the whole repository (or at least it should do so).
Due to the size of the changes (after https://codeberg.org/gitnex/GitNex/commit/c9172f85efafd9f25739fdd8385e1904b711ea41, Git says `154 files changed, 3318 insertions(+), 3835 deletions(-)`) **I highly recommend you to create a beta/pre release before releasing a stable version**.
Additional changes:
* after logging out, the account remains in the account list (with a note) and you can log in again (you can't switch to this account)
* repositories and organizations are clickable on user profiles
* deleted two unused classes
Once finished, hopefully
* closes#354
* replaces #897
* fixes#947
* closes#1001
* closes#1015
* marks #876 and #578 as `Wontfix` since they are not necessary at this point
* and all the other TinyDB issues
Co-authored-by: qwerty287 <ndev@web.de>
Co-authored-by: M M Arif <mmarif@noreply.codeberg.org>
Co-authored-by: 6543 <6543@obermui.de>
Reviewed-on: https://codeberg.org/gitnex/GitNex/pulls/1034
Reviewed-by: 6543 <6543@noreply.codeberg.org>
Co-authored-by: qwerty287 <qwerty287@noreply.codeberg.org>
Co-committed-by: qwerty287 <qwerty287@noreply.codeberg.org>
closes#919
TODO
- [X] repo and file actions (create release, label...)
- [X] allow for repo admins
- [x] label actions (edit, delete)
- [x] allow for repo admins
- [X] issue/pr action that are available for creators (close...)
- [X] allow for creator
- [X] allow for repo admins
- [x] pr actions that are allowed when having push access to pr source (there was a bug in Gitea that makes that this was not working and these features were not accessible -> https://github.com/go-gitea/gitea/issues/17181)
- [x] allow deleting of head branch/updates only if you can do this
- [x] issue/pr action that are available for repo admins (merge)
- [x] allow for repo admins
- [x] milestone actions (close/reopen)
- [x] allow for repo admins
- [x] comment actions (delete, edit...)
- [X] allow for creators
- [x] allow for repo admins
- [x] org actions (create label, team, repo; req gitea 1.16.0)
- [x] actions when creating/editing issues
- [x] delete head when merging
- [x] All actions available to instance admins? (handled through API)
Maybe as extras:
- [x] Allow close/reopen also for PRs
- [x] Improve handling of these (multiple btns for the same action)
Co-authored-by: qwerty287 <ndev@web.de>
Co-authored-by: M M Arif <mmarif@noreply.codeberg.org>
Reviewed-on: https://codeberg.org/gitnex/GitNex/pulls/977
Reviewed-by: M M Arif <mmarif@noreply.codeberg.org>
Co-authored-by: qwerty287 <qwerty287@noreply.codeberg.org>
Co-committed-by: qwerty287 <qwerty287@noreply.codeberg.org>
Adds support for Custom Tabs (at laest supported by Chrome and Firefox).
This is also useful if you set the app as default app for links from the supported Gitea instances.
If you then try to use the "Open in browser" buttons, this will just open the link in GitNex itself.
With Custom Tabs, the links are opened as Custom Tabs (only if the default browser supports them).
I also deleted the unused `OpenRepoInBrowserActivity` and added the mechanism to open an URL in the browser to the `AppUtil`.
I also improved the setting switches:
* hide settings if required settings are disabled (only notification settings)
* allow click on full layouts
Co-authored-by: qwerty287 <ndev@web.de>
Reviewed-on: https://codeberg.org/gitnex/GitNex/pulls/1019
Reviewed-by: 6543 <6543@noreply.codeberg.org>
Co-authored-by: qwerty287 <qwerty287@noreply.codeberg.org>
Co-committed-by: qwerty287 <qwerty287@noreply.codeberg.org>