Commit Graph

42 Commits

Author SHA1 Message Date
Marcel Hibbe
8e6072bbc7
extract blink method, move server notification app hint to gplay block
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-26 15:24:49 +01:00
Marcel Hibbe
6f6c1896ed
add check if server notification app is installed for current user
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-26 15:24:49 +01:00
Marcel Hibbe
c559c6b0b4
blink notification channels
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-26 15:24:48 +01:00
Marcel Hibbe
fa70cffd83
blink items when opened by notification warning
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-26 15:24:48 +01:00
Marcel Hibbe
c2b99c591f
disable sound notification settings when main notification permission is is not permitted.
Otherwise user can't enable them anyway

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-26 15:24:48 +01:00
Marcel Hibbe
b63325ae8d
open full notification settings from talk settings as fallback if dialog for asking direct permission was not shown by android
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-26 15:24:48 +01:00
Marcel Hibbe
b1e550b049
Show a warning if notifications are not allowed or battery optimization is enabled
Open notification settings when click on warning

Also, still offer to enable notifications and disable battery optimization on first install

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-26 15:24:47 +01:00
Marcel Hibbe
716dfa6577
Add permanent hint when battery optimization is not ignored
Also add an option to not show the hint, when user doesn't want to ignore battery optimization.

Only show these features when gplay services are available. Otherwise don't show them as it would pretend notifications would be possible without gplay.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-11-26 15:24:47 +01:00
sowjanyakch
f1d03e235a
ktlintFormat
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-21 11:34:24 +01:00
sowjanyakch
9b3a11569a
bump minSdkVersion to 26 and remove old checks
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-21 11:34:23 +01:00
sowjanyakch
4439da9bd1
use lifecycleScope
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-18 20:51:07 +01:00
sowjanyakch
240bdd6771
handle errors
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-18 20:51:07 +01:00
sowjanyakch
9f3bbf6ebf
refactor code
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-18 20:51:07 +01:00
sowjanyakch
99d73e15e0
migration to coroutines
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
2024-11-18 20:51:06 +01:00
Marcel Hibbe
8876718677
open links for files app from any screen.
With this change, all links that target files in the same nextcloud instance will be opened in the files app, no matter on which screen the link was.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-05-24 15:38:53 +02:00
Marcel Hibbe
3d9c1d2ca9
avoid NPE when serverVersion is not known
NPE without this fix:

Exception java.lang.RuntimeException:
  at android.app.ActivityThread.performResumeActivity (ActivityThread.java:4975)
  at android.app.ActivityThread.handleResumeActivity (ActivityThread.java:5008)
  at android.app.servertransaction.ResumeActivityItem.execute (ResumeActivityItem.java:54)
  at android.app.servertransaction.ActivityTransactionItem.execute (ActivityTransactionItem.java:45)
  at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:176)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2386)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loopOnce (Looper.java:210)
  at android.os.Looper.loop (Looper.java:299)
  at android.app.ActivityThread.main (ActivityThread.java:8252)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:559)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:954)
Caused by java.lang.NullPointerException:
  at com.nextcloud.talk.conversationlist.ConversationsListActivity.onResume (ConversationsListActivity.kt:287)
  at android.app.Instrumentation.callActivityOnResume (Instrumentation.java:1565)
  at android.app.Activity.performResume (Activity.java:8668)
  at android.app.ActivityThread.performResumeActivity (ActivityThread.java:4965)

 The root cause may be that the CapabilitiesWorker is not finished so the serverVersion was not added to the user.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-04-04 16:09:15 +02:00
Andy Scherzinger
c2683e0ed0
Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-03-23 17:18:18 +01:00
Parneet Singh
6c52e73b9c
use DialogFragment to retain state
Signed-off-by: Parneet Singh <gurayaparneet@gmail.com>
2024-03-22 12:56:30 +01:00
Marcel Hibbe
754b825096
pass spreedCapabilities instead user to CapabilitiesUtil
To support federated rooms, capabilities have to be checked from the room which now also has capabilities.
If room is not federated, capabilities fromuser are still checked.
This is why CapabilitiesUtil had to be refactored to accept SpreedCapabilities which can come from room or user.

Other than that, many other changes were made as a result of this change.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-03-01 11:25:11 +01:00
Marcel Hibbe
c7a72aaf4a
add diagnose screen and permission warnings in settings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2024-01-12 09:54:28 +01:00
Marcel Hibbe
f6b481cea8
translate "no proxy" in settings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-11-29 11:43:18 +01:00
Marcel Hibbe
591d6dc3e8
remove conductor
- replace remaining controllers with activities
- remove conductor lib
- modify some code related to account management and conductor

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-11-23 13:26:01 +01:00
Julius Linus
11f1d5fc7e
Migrating away from StoreBox to DataStore
- Added DataStore dependencies
- Created AppPreferencesImpl

Signed-off-by: Julius Linus <julius.linus@nextcloud.com>
2023-10-24 14:35:19 +02:00
Julius Linus
22cba480f4 Small bug fix + cleaned up SettingsActivity a bit because it was annoying me
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2023-10-05 09:50:09 -05:00
Julius Linus
79af073d5a
handling error 429 in phonebook sync
Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
2023-09-29 10:30:19 +02:00
Marcel Hibbe
ba8df45bc7
avoid falsely shown "Account scheduled for deletion" info
...by setting the correct context.

In removeCurrentAccount
the

WorkManager.getInstance(this) (introduced with commit 943286dd)

must be

WorkManager.getInstance(applicationContext)

because otherwise the worker is dropped when the activity is finished and might not do it's work beforehand (race condition?).
This results in users that keep the

scheduledForDeletion = true

so the next time someone tries to login with this user,

userManager.checkIfUserIsScheduledForDeletion(loginData.username!!, baseUrl!!).blockingGet()

in WebViewLoginController#parseAndLoginFromWebView

is true and

ApplicationWideMessageHolder.getInstance().messageType
is set to

ApplicationWideMessageHolder.MessageType.ACCOUNT_SCHEDULED_FOR_DELETION

which results in the "The account is scheduled for deletion, and cannot be changed" message in ServerSelectionController.

This is just a guess and i was not able to reproduce it.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-08-25 11:24:28 +02:00
Smarshall
a447196257 Replaced all the Toasts with Snackbar 2023-08-19 17:38:52 +05:30
Andy Scherzinger
dcbc1771c6
remove ports from translatable strings
Resolves #3187

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-07-14 17:19:51 +02:00
Marcel Hibbe
5974278e84 fix IllegalArgumentException caused by missing theming
Exception java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.AppCompat (or a descendant).
  at com.google.android.material.internal.ThemeEnforcement.checkTheme (ThemeEnforcement.java:247)
  at com.google.android.material.internal.ThemeEnforcement.checkAppCompatTheme (ThemeEnforcement.java:212)
  at com.google.android.material.internal.ThemeEnforcement.checkCompatibleTheme (ThemeEnforcement.java:147)
  at com.google.android.material.internal.ThemeEnforcement.obtainTintedStyledAttributes (ThemeEnforcement.java:114)
  at com.google.android.material.textfield.TextInputLayout.<init> (TextInputLayout.java:472)
  at com.google.android.material.textfield.TextInputLayout.<init> (TextInputLayout.java:451)
  at com.google.android.material.textfield.TextInputLayout.<init> (TextInputLayout.java:447)
  at com.nextcloud.talk.settings.SettingsActivity.askForPhoneNumber (SettingsActivity.kt:935)
  at com.nextcloud.talk.settings.SettingsActivity.access$askForPhoneNumber (SettingsActivity.kt:105)
  at com.nextcloud.talk.settings.SettingsActivity$checkForPhoneNumber$1.onNext (SettingsActivity.kt:915)
  at com.nextcloud.talk.settings.SettingsActivity$checkForPhoneNumber$1.onNext (SettingsActivity.kt:908)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal (ObservableObserveOn.java:201)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run (ObservableObserveOn.java:255)
  at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run (HandlerScheduler.java:124)
  at android.os.Handler.handleCallback (Handler.java:942)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:211)
  at android.os.Looper.loop (Looper.java:300)
  at android.app.ActivityThread.main (ActivityThread.java:8294)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:580)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1028)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-07-06 21:39:28 +02:00
rapterjet2004
943286ddd6 migrating from material preferences to native, squashed commit
Signed-off-by: Julius Linus julius.linus@nextcloud.com
2023-06-27 14:53:18 +02:00
rapterjet2004
76f5fe91f6 migrating from material preferences to native, squashed commit
Signed-off-by: Julius Linus julius.linus@nextcloud.com
2023-06-27 14:53:18 +02:00
Marcel Hibbe
cc391d889a
check if talk is available at server selection and if version is valid
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-06-12 09:49:25 +02:00
Marcel Hibbe
7f51d45e9a
Align typing indicator to new concept
# Send start/stop typing
Send "Typing" every 10 sec when there was a change

Send stop typing:
- when input is deleted
- when there was no input during the 10s timer
- when on leaving room

# Receive start/stop typing
Clear typing for participant after 15s if no start typing-message was received.
Use userId instead sessionId to manage typing participants. This ensures participants are not shown multiple times when using multiple devices with the same user (multisession). To get the userId via websocket, SignalingMessageReceiver and WebSocketInstance had to be modified to pass the CallWebSocketMessage in case the signalingMessage.type is related to typing. Not sure if this is the best solution but didn't find any other way.

Typing is not handled when the userId is of the own user (this could happen when using multiple devices)

In case userId is null (which happens for guests), their sessionId is used as key for the typingParticipants map.

# Other
Disable setting for typing indicator when no HPB is used + Avoid crash in chat when no HPB is used.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-06-02 15:35:16 +02:00
Marcel Hibbe
d127c5401a
fix new onBackPressed handling
this commit fixes bugs from d3056ff2825e53040ca49b86b84f91f73a3eb11c and 1185dcf17a99ca62efd32f8a53c298ec4fd6c4d0

fix onBackPressed handling to use OnBackPressedCallback

remove unnecessary onBackPressedCallback's when they only finished the activity

replaced some finishAffinity methods with finish

...

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-05-24 15:42:09 +02:00
Ezhil Shanmugham
7b5caf5007
fixed deprecated onBackPressed Issue-#2961
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-05-24 15:42:04 +02:00
Andy Scherzinger
5ec013143f
Migrate theme API calls - away from deprecated ones
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-05-24 09:08:18 +02:00
Marcel Hibbe
d3d8e2abef
add setting to toggle typing status privacy
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-05-23 10:49:30 +02:00
Marcel Hibbe
0d6e971c38
fix to use newest capabilities to update settings.
Without this refreshing of capabilites, depending settings (for now read privacy) were never updated until app was started again because the user still contained old capabilities.

This fix will also be necessary for the typing indicator setting.

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-05-23 10:49:30 +02:00
Andy Scherzinger
584947c8e3
Improve theming for toolbars
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2023-04-09 21:38:05 +02:00
Marcel Hibbe
5e0e4ee54f
Fix to open profile view
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-30 10:37:43 +02:00
Marcel Hibbe
fdf76e260b
Remove reauthorize setting
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-30 10:34:07 +02:00
Marcel Hibbe
b5febb7e3d
Replace Controller with Activity for settings
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2023-03-30 10:33:35 +02:00