-
-
Notifications
You must be signed in to change notification settings - Fork 2k
Expand file tree
/
Copy pathTestActivity.kt
More file actions
156 lines (132 loc) · 5.45 KB
/
TestActivity.kt
File metadata and controls
156 lines (132 loc) · 5.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
/*
* Nextcloud - Android Client
*
* SPDX-FileCopyrightText: 2020 Tobias Kaminsky <tobias@kaminsky.me>
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH
* SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only
*/
package com.nextcloud.test
import android.os.Bundle
import android.view.View
import androidx.fragment.app.Fragment
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import com.nextcloud.client.database.NextcloudDatabase
import com.nextcloud.client.jobs.download.FileDownloadWorker
import com.nextcloud.client.jobs.upload.FileUploadHelper
import com.nextcloud.client.network.Connectivity
import com.nextcloud.client.network.ConnectivityService
import com.nextcloud.client.network.NetworkChangeListener
import com.nextcloud.utils.EditorUtils
import com.owncloud.android.R
import com.owncloud.android.databinding.TestLayoutBinding
import com.owncloud.android.datamodel.ArbitraryDataProviderImpl
import com.owncloud.android.datamodel.FileDataStorageManager
import com.owncloud.android.datamodel.OCFile
import com.owncloud.android.lib.resources.status.OCCapability
import com.owncloud.android.lib.resources.status.OwnCloudVersion
import com.owncloud.android.services.OperationsService
import com.owncloud.android.ui.activity.FileActivity
import com.owncloud.android.ui.activity.OnEnforceableRefreshListener
import com.owncloud.android.ui.fragment.FileFragment
import com.owncloud.android.ui.helpers.FileOperationsHelper
class TestActivity :
FileActivity(),
FileFragment.ContainerActivity,
SwipeRefreshLayout.OnRefreshListener,
OnEnforceableRefreshListener {
lateinit var fragment: Fragment
lateinit var secondaryFragment: Fragment
private lateinit var storage: FileDataStorageManager
private lateinit var fileOperation: FileOperationsHelper
private lateinit var binding: TestLayoutBinding
val connectivityServiceMock: ConnectivityService = object : ConnectivityService {
override fun addListener(listener: NetworkChangeListener) = Unit
override fun removeListener(listener: NetworkChangeListener) = Unit
override fun isNetworkAndServerAvailable(callback: ConnectivityService.GenericCallback<Boolean>) = Unit
override fun isConnected(): Boolean = false
override fun isInternetWalled(): Boolean = false
override fun getConnectivity(): Connectivity = Connectivity.CONNECTED_WIFI
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = TestLayoutBinding.inflate(layoutInflater)
setContentView(binding.root)
}
fun addFragment(fragment: Fragment) {
this.fragment = fragment
val transaction = supportFragmentManager.beginTransaction()
transaction.replace(R.id.main_fragment, fragment)
transaction.commit()
}
/**
* Adds a secondary fragment to the activity with the given tag.
*
* If you have to use this, your Fragments are coupled, and you should feel bad.
*/
fun addSecondaryFragment(fragment: Fragment, tag: String) {
this.secondaryFragment = fragment
val transaction = supportFragmentManager.beginTransaction()
transaction.replace(R.id.secondary_fragment, fragment, tag)
transaction.commit()
}
/**
* Adds a View to the activity.
*
* If you have to use this, your Fragment is coupled to your Activity and you should feel bad.
*/
fun addView(view: View) {
handler.post {
binding.rootLayout.addView(view)
}
}
override fun onBrowsedDownTo(folder: OCFile?) {
TODO("Not yet implemented")
}
override fun getOperationsServiceBinder(): OperationsService.OperationsServiceBinder? = null
override fun showSortListGroup(show: Boolean) {
// not needed
}
override fun showDetails(file: OCFile?) {
TODO("Not yet implemented")
}
override fun showDetails(file: OCFile?, activeTab: Int) {
TODO("Not yet implemented")
}
override fun getFileUploaderHelper(): FileUploadHelper = FileUploadHelper.instance()
override fun getFileDownloadProgressListener(): FileDownloadWorker.FileDownloadProgressListener? = null
override fun getStorageManager(): FileDataStorageManager {
if (!this::storage.isInitialized) {
storage = FileDataStorageManager(user.get(), contentResolver)
if (!storage.capabilityExistsForAccount(account.name)) {
val ocCapability = OCCapability()
ocCapability.versionMayor = OwnCloudVersion.nextcloud_20.majorVersionNumber
storage.saveCapabilities(ocCapability)
}
}
return storage
}
override fun getFileOperationsHelper(): FileOperationsHelper {
if (!this::fileOperation.isInitialized) {
fileOperation = FileOperationsHelper(
this,
userAccountManager,
connectivityServiceMock,
EditorUtils(
ArbitraryDataProviderImpl(
NextcloudDatabase.getInstance(baseContext).arbitraryDataDao()
)
)
)
}
return fileOperation
}
override fun onTransferStateChanged(file: OCFile?, downloading: Boolean, uploading: Boolean) {
TODO("Not yet implemented")
}
override fun onRefresh(enforced: Boolean) {
TODO("Not yet implemented")
}
override fun onRefresh() {
TODO("Not yet implemented")
}
}