fix shareTo feature

it was broken since ConversationsList was migrated to Activity

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
Marcel Hibbe 2023-05-01 17:40:27 +02:00
parent fe86e57f82
commit 6c2c15cd89
No known key found for this signature in database
GPG Key ID: C793F8B59F43CE7B
4 changed files with 84 additions and 70 deletions

View File

@ -54,8 +54,8 @@
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT"/> <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_PROFILE" /> <uses-permission android:name="android.permission.READ_PROFILE" />
@ -71,7 +71,8 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="29" android:maxSdkVersion="29"
tools:ignore="ScopedStorage" /> tools:ignore="ScopedStorage" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" <uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" /> android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
@ -89,7 +90,7 @@
<permission <permission
android:name="${applicationId}.${broadcastPermission}" android:name="${applicationId}.${broadcastPermission}"
android:protectionLevel="signature" /> android:protectionLevel="signature" />
<uses-permission android:name="${applicationId}.${broadcastPermission}"/> <uses-permission android:name="${applicationId}.${broadcastPermission}" />
<application <application
android:name=".application.NextcloudTalkApplication" android:name=".application.NextcloudTalkApplication"
@ -99,9 +100,9 @@
android:label="@string/nc_app_name" android:label="@string/nc_app_name"
android:largeHeap="true" android:largeHeap="true"
android:networkSecurityConfig="@xml/network_security_config" android:networkSecurityConfig="@xml/network_security_config"
android:requestLegacyExternalStorage="true"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme.Launcher" android:theme="@style/AppTheme.Launcher"
android:requestLegacyExternalStorage="true"
tools:ignore="UnusedAttribute" tools:ignore="UnusedAttribute"
tools:replace="label, icon, theme, name, allowBackup"> tools:replace="label, icon, theme, name, allowBackup">
@ -118,21 +119,10 @@
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
<intent-filter> <intent-filter>
<action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/vnd.com.nextcloud.talk2.chat" /> <data android:mimeType="vnd.android.cursor.item/vnd.com.nextcloud.talk2.chat" />
<data android:scheme="content" /> <data android:scheme="content" />
<data android:scheme="file" /> <data android:scheme="file" />
@ -141,41 +131,38 @@
<activity <activity
android:name=".activities.CallActivity" android:name=".activities.CallActivity"
android:theme="@style/AppTheme.CallLauncher"
android:supportsPictureInPicture="true"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation" android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
android:launchMode="singleTask"
android:taskAffinity=".call"
android:excludeFromRecents="true" android:excludeFromRecents="true"
android:showOnLockScreen="true"/> android:launchMode="singleTask"
android:showOnLockScreen="true"
android:supportsPictureInPicture="true"
android:taskAffinity=".call"
android:theme="@style/AppTheme.CallLauncher" />
<activity <activity
android:name=".activities.CallNotificationActivity" android:name=".activities.CallNotificationActivity"
android:theme="@style/AppTheme.CallLauncher"
android:supportsPictureInPicture="true"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation" android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
android:launchMode="singleTask"
android:taskAffinity=".call"
android:excludeFromRecents="true" android:excludeFromRecents="true"
android:showOnLockScreen="true" /> android:launchMode="singleTask"
android:showOnLockScreen="true"
android:supportsPictureInPicture="true"
android:taskAffinity=".call"
android:theme="@style/AppTheme.CallLauncher" />
<activity <activity
android:name=".activities.FullScreenImageActivity" android:name=".activities.FullScreenImageActivity"
android:theme="@style/FullScreenImageTheme" android:configChanges="orientation|keyboardHidden|screenSize"
android:configChanges="orientation|keyboardHidden|screenSize"> android:theme="@style/FullScreenImageTheme"></activity>
</activity>
<activity <activity
android:name=".activities.FullScreenMediaActivity" android:name=".activities.FullScreenMediaActivity"
android:theme="@style/FullScreenMediaTheme" android:configChanges="orientation|keyboardHidden|screenSize"
android:configChanges="orientation|keyboardHidden|screenSize"> android:theme="@style/FullScreenMediaTheme"></activity>
</activity>
<activity <activity
android:name=".activities.FullScreenTextViewerActivity" android:name=".activities.FullScreenTextViewerActivity"
android:theme="@style/FullScreenTextTheme" android:configChanges="orientation|keyboardHidden|screenSize"
android:configChanges="orientation|keyboardHidden|screenSize"> android:theme="@style/FullScreenTextTheme"></activity>
</activity>
<activity <activity
android:name=".activities.TakePhotoActivity" android:name=".activities.TakePhotoActivity"
@ -224,16 +211,31 @@
<activity <activity
android:name=".chat.ChatActivity" android:name=".chat.ChatActivity"
android:theme="@style/AppTheme"
android:launchMode="singleInstance" android:launchMode="singleInstance"
android:noHistory="true" android:noHistory="true"
android:screenOrientation="portrait" /> android:screenOrientation="portrait"
android:theme="@style/AppTheme" />
<activity <activity
android:name=".conversationlist.ConversationsListActivity" android:name=".conversationlist.ConversationsListActivity"
android:theme="@style/AppTheme" /> android:theme="@style/AppTheme"
android:exported="true">
<receiver android:name=".receivers.PackageReplacedReceiver" <intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
</activity>
<receiver
android:name=".receivers.PackageReplacedReceiver"
android:exported="false"> android:exported="false">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" /> <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
@ -260,7 +262,8 @@
android:resource="@xml/contacts" /> android:resource="@xml/contacts" />
</service> </service>
<service android:name=".utils.AuthenticatorService" <service
android:name=".utils.AuthenticatorService"
android:exported="false"> android:exported="false">
<intent-filter> <intent-filter>
<action android:name="android.accounts.AccountAuthenticator" /> <action android:name="android.accounts.AccountAuthenticator" />

View File

@ -110,7 +110,7 @@ class MainActivity : BaseActivity(), ActionBarProvider {
override fun onSuccess(users: List<User>) { override fun onSuccess(users: List<User>) {
if (users.isNotEmpty()) { if (users.isNotEmpty()) {
runOnUiThread { runOnUiThread {
setDefaultRootController() openConversationList()
} }
} else { } else {
runOnUiThread { runOnUiThread {
@ -166,33 +166,13 @@ class MainActivity : BaseActivity(), ActionBarProvider {
super.onStop() super.onStop()
} }
private fun setDefaultRootController() { private fun openConversationList() {
val intent = Intent(this, ConversationsListActivity::class.java) val intent = Intent(this, ConversationsListActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
intent.putExtras(Bundle()) intent.putExtras(Bundle())
startActivity(intent) startActivity(intent)
} }
fun resetConversationsList() {
userManager.users.subscribe(object : SingleObserver<List<User>> {
override fun onSubscribe(d: Disposable) {
// unused atm
}
override fun onSuccess(users: List<User>) {
if (users.isNotEmpty()) {
runOnUiThread {
setDefaultRootController()
}
}
}
override fun onError(e: Throwable) {
Log.e(TAG, "Error loading existing users", e)
}
})
}
fun addAccount() { fun addAccount() {
router!!.pushController( router!!.pushController(
RouterTransaction.with(ServerSelectionController()) RouterTransaction.with(ServerSelectionController())
@ -348,7 +328,7 @@ class MainActivity : BaseActivity(), ActionBarProvider {
if (intent.hasExtra(BundleKeys.KEY_FROM_NOTIFICATION_START_CALL)) { if (intent.hasExtra(BundleKeys.KEY_FROM_NOTIFICATION_START_CALL)) {
if (intent.getBooleanExtra(BundleKeys.KEY_FROM_NOTIFICATION_START_CALL, false)) { if (intent.getBooleanExtra(BundleKeys.KEY_FROM_NOTIFICATION_START_CALL, false)) {
if (!router!!.hasRootController()) { if (!router!!.hasRootController()) {
setDefaultRootController() openConversationList()
} }
val callNotificationIntent = Intent(this, CallNotificationActivity::class.java) val callNotificationIntent = Intent(this, CallNotificationActivity::class.java)
intent.extras?.let { callNotificationIntent.putExtras(it) } intent.extras?.let { callNotificationIntent.putExtras(it) }

View File

@ -374,10 +374,10 @@ class ConversationsListActivity :
if (showShareToScreen) { if (showShareToScreen) {
hideSearchBar() hideSearchBar()
actionBar?.setTitle(R.string.send_to_three_dots) supportActionBar?.setTitle(R.string.send_to_three_dots)
} else if (forwardMessage) { } else if (forwardMessage) {
hideSearchBar() hideSearchBar()
actionBar?.setTitle(R.string.nc_forward_to_three_dots) supportActionBar?.setTitle(R.string.nc_forward_to_three_dots)
} else { } else {
searchItem!!.isVisible = conversationItems.size > 0 searchItem!!.isVisible = conversationItems.size > 0
if (adapter!!.hasFilter()) { if (adapter!!.hasFilter()) {
@ -1010,8 +1010,7 @@ class ConversationsListActivity :
) )
} }
} else { } else {
// TODO UploadAndShareFilesWorker.requestStoragePermission(this)
// requestStoragePermission(this@ConversationsListController)
} }
} }

View File

@ -27,6 +27,7 @@ import android.annotation.SuppressLint
import android.app.Dialog import android.app.Dialog
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
@ -34,7 +35,6 @@ import androidx.fragment.app.DialogFragment
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import autodagger.AutoInjector import autodagger.AutoInjector
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.nextcloud.talk.activities.MainActivity
import com.nextcloud.talk.adapters.items.AdvancedUserItem import com.nextcloud.talk.adapters.items.AdvancedUserItem
import com.nextcloud.talk.application.NextcloudTalkApplication import com.nextcloud.talk.application.NextcloudTalkApplication
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
@ -46,6 +46,8 @@ import com.nextcloud.talk.ui.theme.ViewThemeUtils
import com.nextcloud.talk.users.UserManager import com.nextcloud.talk.users.UserManager
import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager
import io.reactivex.SingleObserver
import io.reactivex.disposables.Disposable
import java.net.CookieManager import java.net.CookieManager
import javax.inject.Inject import javax.inject.Inject
@ -160,7 +162,37 @@ class ChooseAccountShareToDialogFragment : DialogFragment() {
val user = userItems[position].user val user = userItems[position].user
if (userManager!!.setUserAsActive(user).blockingGet()) { if (userManager!!.setUserAsActive(user).blockingGet()) {
cookieManager!!.cookieStore.removeAll() cookieManager!!.cookieStore.removeAll()
activity?.runOnUiThread { (activity as MainActivity?)!!.resetConversationsList() } // activity?.runOnUiThread { (activity as MainActivity?)!!.resetConversationsList() }
userManager!!.users.subscribe(object : SingleObserver<List<User>> {
override fun onSubscribe(d: Disposable) {
// unused atm
}
override fun onSuccess(users: List<User>) {
if (users.isNotEmpty()) {
// runOnUiThread {
// setDefaultRootController()
// }
// val intent = Intent(activity, ConversationsListActivity::class.java)
//
// // val intent = Intent(context, ConversationsListActivity::class.java)
// intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
// activity?.intent?.extras?.let { intent.putExtras(it) }
// startActivity(intent)
// startActivity(activity?.intent)
activity?.recreate()
}
}
override fun onError(e: Throwable) {
Log.e(TAG, "Error loading existing users", e)
}
})
dismiss() dismiss()
} }
} }