Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
125 commits
Select commit Hold shift + click to select a range
53a01fc
feat: unified share
alperozturk96 Apr 20, 2026
1d043c8
add api models
alperozturk96 Apr 21, 2026
03cab78
adopt mock models to api models
alperozturk96 Apr 21, 2026
f0c3122
add translations, bind ui actions
alperozturk96 Apr 21, 2026
c5aaf02
add translations, bind ui actions
alperozturk96 Apr 21, 2026
3a00759
wip
alperozturk96 Apr 21, 2026
028e211
wip
alperozturk96 May 5, 2026
0690eed
add test ocs call
alperozturk96 Apr 24, 2026
0f1b8d3
fix test call
alperozturk96 May 5, 2026
2fe8f3e
use client
alperozturk96 May 5, 2026
3f7db02
wip
alperozturk96 May 5, 2026
ebe6400
wip
alperozturk96 May 5, 2026
0c70b78
wip
alperozturk96 May 5, 2026
e474ca6
wip
alperozturk96 May 6, 2026
18c599b
wip
alperozturk96 May 6, 2026
504999a
wip
alperozturk96 May 27, 2026
e7ce079
wip
alperozturk96 May 27, 2026
784803d
wip
alperozturk96 May 27, 2026
f621f1a
add empty view state
alperozturk96 May 27, 2026
6fb9a6c
wip
alperozturk96 May 27, 2026
ff44f4b
wip
alperozturk96 May 28, 2026
e7ff879
wip
alperozturk96 May 28, 2026
3cd34bc
wip
alperozturk96 May 28, 2026
bb9738e
wip
alperozturk96 May 29, 2026
ab64d69
wip
alperozturk96 May 29, 2026
8bd7b13
wip
alperozturk96 May 29, 2026
e34fcd9
wip
alperozturk96 May 29, 2026
ede7239
wip
alperozturk96 May 29, 2026
522f51a
wip
alperozturk96 May 29, 2026
4adb975
wip
alperozturk96 May 29, 2026
1e96e87
wip
alperozturk96 Jun 1, 2026
6cabb9b
wip
alperozturk96 Jun 1, 2026
7189593
wip
alperozturk96 Jun 1, 2026
7d46cc6
wip
alperozturk96 Jun 1, 2026
31e551c
wip
alperozturk96 Jun 1, 2026
87c3319
wip
alperozturk96 Jun 1, 2026
c9eeb6f
wip
alperozturk96 Jun 1, 2026
78e54cc
wip
alperozturk96 Jun 1, 2026
cb66d5e
wip
alperozturk96 Jun 1, 2026
15b3394
wip
alperozturk96 Jun 1, 2026
899bc22
wip
alperozturk96 Jun 9, 2026
b0e4754
wip
alperozturk96 Jun 9, 2026
05e1636
wip
alperozturk96 Jun 9, 2026
d5ac881
wip
alperozturk96 Jun 9, 2026
d79e4a3
wip
alperozturk96 Jun 9, 2026
c00ec4f
disable multi recipients
alperozturk96 Jun 10, 2026
1b4aebd
disable multi recipients
alperozturk96 Jun 10, 2026
d500a2d
add secret and buttons
alperozturk96 Jun 10, 2026
5099fe6
add secret and buttons
alperozturk96 Jun 10, 2026
cf3aab5
fix enabled
alperozturk96 Jun 10, 2026
a26ec5c
use ISO8601
alperozturk96 Jun 10, 2026
0d91013
adopt latest open api
alperozturk96 Jun 10, 2026
56be34f
property updates
alperozturk96 Jun 10, 2026
066359a
add anyone recipient
alperozturk96 Jun 10, 2026
e3308b9
better error handling
alperozturk96 Jun 10, 2026
4e9920e
better error handling
alperozturk96 Jun 10, 2026
ef15890
fix issues
alperozturk96 Jun 10, 2026
ccaab96
fix issues
alperozturk96 Jun 10, 2026
8dcd8f8
wip
alperozturk96 Jun 22, 2026
fe6ed09
wip
alperozturk96 Jul 2, 2026
597c21f
wip
alperozturk96 Jul 2, 2026
b40b147
wip
alperozturk96 Jul 2, 2026
6f78645
add PermissionPresetDropdown
alperozturk96 Jul 2, 2026
0a6e8f9
remove unused strings
alperozturk96 Jul 2, 2026
dbe4728
wip
alperozturk96 Jul 2, 2026
59b4e3c
wip
alperozturk96 Jul 2, 2026
74f67ca
wip
alperozturk96 Jul 2, 2026
2db56f1
wip
alperozturk96 Jul 2, 2026
2b7375e
wip
alperozturk96 Jul 3, 2026
96dfac8
wip
alperozturk96 Jul 3, 2026
e80c549
wip
alperozturk96 Jul 3, 2026
76b3b8b
wip
alperozturk96 Jul 3, 2026
e65fc5e
wip
alperozturk96 Jul 3, 2026
8083126
wip
alperozturk96 Jul 3, 2026
e28f64b
wip
alperozturk96 Jul 3, 2026
30c6836
wip
alperozturk96 Jul 3, 2026
8791cb7
wip
alperozturk96 Jul 3, 2026
4d3a701
wip
alperozturk96 Jul 3, 2026
ffa52cb
wip
alperozturk96 Jul 3, 2026
90f4f54
wip
alperozturk96 Jul 3, 2026
6ee7032
wip
alperozturk96 Jul 3, 2026
34d538d
wip
alperozturk96 Jul 3, 2026
29f812f
wip
alperozturk96 Jul 3, 2026
9e59cf9
wip
alperozturk96 Jul 6, 2026
6f186a1
wip
alperozturk96 Jul 6, 2026
1312b44
wip
alperozturk96 Jul 6, 2026
dd14e1b
wip
alperozturk96 Jul 6, 2026
5bd1def
wip
alperozturk96 Jul 6, 2026
74156b1
wip
alperozturk96 Jul 6, 2026
da0df8f
wip
alperozturk96 Jul 6, 2026
e002b55
wip
alperozturk96 Jul 6, 2026
b40c527
wip
alperozturk96 Jul 8, 2026
e444b50
wip
alperozturk96 Jul 8, 2026
f6b87a2
wip
alperozturk96 Jul 8, 2026
8f06bf6
wip
alperozturk96 Jul 8, 2026
9306702
wip
alperozturk96 Jul 9, 2026
5ef1bbe
wip
alperozturk96 Jul 9, 2026
962547e
wip
alperozturk96 Jul 9, 2026
f065b00
wip
alperozturk96 Jul 9, 2026
55f4159
wip
alperozturk96 Jul 9, 2026
e8dd46b
wip
alperozturk96 Jul 9, 2026
6113c44
wip
alperozturk96 Jul 13, 2026
7a2ed03
wip
alperozturk96 Jul 13, 2026
a433975
wip
alperozturk96 Jul 13, 2026
7b2dcca
wip
alperozturk96 Jul 14, 2026
125d3e5
wip
alperozturk96 Jul 14, 2026
271b3fd
wip
alperozturk96 Jul 14, 2026
f7b468d
wip
alperozturk96 Jul 14, 2026
9133b64
wip
alperozturk96 Jul 14, 2026
198af25
wip
alperozturk96 Jul 24, 2026
eaf7a33
wip
alperozturk96 Jul 24, 2026
c8f5420
wip
alperozturk96 Jul 24, 2026
ae5a40a
wip
alperozturk96 Jul 24, 2026
50fd837
wip
alperozturk96 Jul 24, 2026
3c7029f
wip
alperozturk96 Jul 24, 2026
8b47cbd
wip
alperozturk96 Jul 29, 2026
4b383d3
wip
alperozturk96 Jul 29, 2026
9eba372
wip
alperozturk96 Jul 29, 2026
48e7485
wip
alperozturk96 Jul 29, 2026
5047ec1
wip
alperozturk96 Jul 29, 2026
30665c2
wip
alperozturk96 Jul 29, 2026
e974ae0
wip
alperozturk96 Jul 29, 2026
d409b62
wip
alperozturk96 Jul 29, 2026
e54809e
wip
alperozturk96 Jul 29, 2026
e5fc6fe
wip
alperozturk96 Jul 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ buildscript {
ext {
daggerVersion = "2.60.1"
kotlinVersion = "2.4.10"
lifecycleVersion = "2.11.0"
jUnitVersion = "4.13.2"
androidXTestVersion = "1.3.0"
androidXEspressoTestVersion = "3.7.0"
Expand Down
31 changes: 31 additions & 0 deletions gradle/verification-metadata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@
<trusting group="androidx.customview" name="customview" version="1.2.0"/>
<trusting group="androidx.databinding"/>
<trusting group="androidx.dynamicanimation" name="dynamicanimation" version="1.1.0"/>
<trusting group="androidx.exifinterface" name="exifinterface" version="1.4.2"/>
<trusting group="androidx.lifecycle"/>
<trusting group="androidx.savedstate"/>
<trusting group="androidx.swiperefreshlayout" name="swiperefreshlayout" version="1.2.0"/>
Expand All @@ -98,13 +99,19 @@
<trusted-key id="19BEAB2D799C020F17C69126B16698A4ADF4D638" group="org.checkerframework"/>
<trusted-key id="1A55F091AD28C07F831FA44D7905DE25C78AD456" group="com.google.protobuf"/>
<trusted-key id="1D0A8B5E77C678A7C724445ABF984B4145EA13F7" group="com.squareup" name="javapoet" version="1.13.0"/>
<trusted-key id="1D217F8475EEE9F19AB8DD6B793FD5751A0F0780" group="^com[.]squareup($|([.].*))" regex="true"/>
<trusted-key id="1D2C7EF8ADA0F794B58C7C63436902AF59EDF60E">
<trusting group="dev.equo.ide" name="solstice" version="1.7.5"/>
<trusting group="dev.equo.ide" name="solstice" version="1.8.0"/>
<trusting group="dev.equo.ide" name="solstice" version="1.8.1"/>
<trusting group="dev.equo.ide" name="solstice" version="1.8.2"/>
</trusted-key>
<trusted-key id="1D85469D8559C2E1DF5F925131D2D79DF7E85DD3" group="org.jcommander" name="jcommander" version="1.85"/>
<trusted-key id="20723A6399BC060154283B37CFAE163B64AC9189">
<trusting group="org.jetbrains.androidx.lifecycle"/>
<trusting group="org.jetbrains.androidx.savedstate"/>
<trusting group="^org[.]jetbrains[.]compose($|([.].*))" regex="true"/>
</trusted-key>
<trusted-key id="24D04176586361FDA94EE0315F7786DF73E61F56">
<trusting group="com.google.devtools.ksp" name="symbol-processing-api" version="1.9.20-1.0.14"/>
<trusting group="com.google.devtools.ksp" name="symbol-processing-api" version="1.9.24-1.0.20"/>
Expand Down Expand Up @@ -174,6 +181,7 @@
<trusting group="org.slf4j"/>
</trusted-key>
<trusted-key id="635EE627345F3C1DD422B2E207D3516820BCF6B1" group="com.github.ben-manes.caffeine" name="caffeine" version="2.9.3"/>
<trusted-key id="64B9B09F164AA0BF88742EB61188B69F6D6259CA" group="com.google.accompanist" name="accompanist-drawablepainter" version="0.37.3"/>
<trusted-key id="694621A7227D8D5289699830ABE9F3126BB741C1" group="^com[.]google($|([.].*))" regex="true"/>
<trusted-key id="696B6199A2A9D8C29CE78CC0D041CAD2E452550F" group="com.google.protobuf"/>
<trusted-key id="6DD3B8C64EF75253BEB2C53AD908A43FB7EC07AC">
Expand Down Expand Up @@ -245,6 +253,7 @@
<trusting group="androidx.graphics" name="graphics-path" version="1.0.1"/>
<trusting group="androidx.lifecycle"/>
<trusting group="androidx.profileinstaller"/>
<trusting group="androidx.startup" name="startup-runtime" version="1.2.0"/>
<trusting group="androidx.transition" name="transition" version="1.5.0"/>
<trusting group="androidx.webkit"/>
<trusting group="^androidx[.]compose($|([.].*))" regex="true"/>
Expand Down Expand Up @@ -281,6 +290,7 @@
<trusted-key id="D6F1BC78607808EC8E9F69437A8860944FAD5F62" group="org.apache.commons" name="commons-parent"/>
<trusted-key id="DB0597E3144342256BC81E3EC727D053C4481CF5" group="org.tensorflow" name="tensorflow-lite-metadata" version="0.1.0-rc2"/>
<trusted-key id="DBD744ACE7ADE6AA50DD591F66B50994442D2D40" group="^com[.]squareup($|([.].*))" regex="true"/>
<trusted-key id="DF25D3C4868FEC177182FAD64D176DC503FB4267" group="io.coil-kt.coil3"/>
<trusted-key id="E52F07877A5805F9AF4AB0ACD46C5610D06E7001" group="com.ibm.icu" name="icu4j" version="77.1"/>
<trusted-key id="E77417AC194160A3FABD04969A259C7EE636C5ED" group="^com[.]google($|([.].*))" regex="true"/>
<trusted-key id="E7DC75FC24FB3C8DFE8086AD3D5839A2262CBBFB" group="org.jetbrains.kotlinx"/>
Expand All @@ -296,6 +306,7 @@
<trusting group="org.apache" name="apache" version="13"/>
<trusting group="org.codehaus.mojo"/>
</trusted-key>
<trusted-key id="F3BD845679DD6A30F3F50F91597852B0B140F0BC" group="com.caverock" name="androidsvg-aar" version="1.4"/>
<trusted-key id="F4DD59C90148BDC52BEB90A4530AA5F25C25011F" group="commons-codec"/>
<trusted-key id="FA77DCFEF2EE6EB2DEBEDD2C012579464D01C06A" group="org.apache" name="apache"/>
<trusted-key id="FA7929F83AD44C4590F6CC6815C71C0A4E0B8EDD" group="net.java.dev.jna"/>
Expand Down Expand Up @@ -335,6 +346,11 @@
<sha256 value="c8923871e556cd5467addabac6773e778f3a4d3da19bfc8153bbaee0d145298f" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.activity" name="activity-compose" version="1.7.0">
<artifact name="activity-compose-1.7.0.module">
<sha256 value="f7a29bcba338575dcf89a553cff9cfad3f140340eaf2b56fd0193244da602c0a" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="androidx.activity" name="activity-compose" version="1.8.2">
<artifact name="activity-compose-1.8.2.aar">
<sha256 value="5a67e984f14ed2afc585aa3a23edff1c1791c80caa2bf68a0f799c1b11a39038" origin="Generated by Gradle"/>
Expand Down Expand Up @@ -14904,6 +14920,11 @@
<sha256 value="41858c84753fd96a6b7c51122fccef39558c91cc08264e08506bcf20e0e63733" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.guava" name="guava" version="33.4.0-jre">
<artifact name="guava-33.4.0-jre.module">
<sha256 value="820e817e86c493aa7affd6cbb991ee60925b6c8b74541f742cb22070f6f20459" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.guava" name="guava" version="33.4.8-jre">
<artifact name="guava-33.4.8-android.jar">
<sha256 value="a1f8a4bafe5a77232d333356843e194599b30837574a7f4be1063daaaaab102c" origin="Generated by Gradle" reason="Artifact is not signed"/>
Expand Down Expand Up @@ -19369,6 +19390,11 @@
<sha256 value="2a4f7b44a3d0ac7aec7dbf5b1aa88db938bf542f7351561fb1d3b5cf81b60d05" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-gradle-plugins-bom" version="2.4.10">
<artifact name="kotlin-gradle-plugins-bom-2.4.10.pom">
<sha256 value="733fccda03ae34773e7b5c85d0e278c897df283370059cb39825f7c0381e49b6" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin" name="kotlin-klib-abi-reader" version="2.3.0">
<artifact name="kotlin-klib-abi-reader-2.3.0.jar">
<sha256 value="41e31422eb5eb224b9a475fe80eb8d06eb21ad34fb7d0a408d2c972a7abb8cbb" origin="Generated by Gradle"/>
Expand Down Expand Up @@ -20874,6 +20900,11 @@
<sha256 value="0c101ab316081659050fe9c0144b1b4bf725ebf9aa9943113bc221e923473d04" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="org.jetbrains.kotlin.plugin.serialization" name="org.jetbrains.kotlin.plugin.serialization.gradle.plugin" version="2.4.10">
<artifact name="org.jetbrains.kotlin.plugin.serialization.gradle.plugin-2.4.10.pom">
<sha256 value="184a49315caada3d13c1bdc24a6b70d786b004c92d4aa8a9f2fe46d4e7f15116" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="org.jetbrains.kotlinx" name="atomicfu" version="0.17.3">
<artifact name="atomicfu-0.17.3.module">
<sha256 value="854a75a9ebf30cb588e8ceda7da1b7089d4272a12324d3cffcaf5b62902738bd" origin="Generated by Gradle"/>
Expand Down
1 change: 1 addition & 0 deletions material-color-utilities/build.gradle
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

/*
* Nextcloud Android Common Library
*
Expand Down
1 change: 1 addition & 0 deletions sample/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ dependencies {
implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.11.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.11.0'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0'
implementation project(path: ':ui')
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.3.0'
Expand Down
1 change: 1 addition & 0 deletions sample/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:usesCleartextTraffic="true"
android:theme="@style/Theme.Androidcommon">
<activity
android:name=".MainActivity"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,17 @@ class MainActivity : AppCompatActivity() {
material.colorMaterialButtonPrimaryBorderless(negativeButton)
}

binding.testApiBtn.setOnClickListener {
val baseUrl = binding.baseUrl.text?.toString().orEmpty()
val username = binding.username.text?.toString().orEmpty()
val token = binding.token.text?.toString().orEmpty()
mainViewModel.testPredefinedStatuses(baseUrl, username, token)
}

mainViewModel.apiTestResult.observe(this) { result ->
Toast.makeText(this, result, Toast.LENGTH_LONG).show()
}

setSupportActionBar(binding.toolbar)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
mainViewModel.color.observe(this) { applyTheme(it) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,41 @@ package com.nextcloud.android.common.sample

import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.nextcloud.android.common.ui.network.auth.ServerCredentials
import com.nextcloud.android.common.ui.network.model.NetworkResult
import com.nextcloud.android.common.ui.network.http.NextcloudHttpClient
import com.nextcloud.android.common.ui.network.UserStatusRepository
import kotlinx.coroutines.launch

class MainViewModel : ViewModel() {
val color = MutableLiveData<Int>()
val apiTestResult = MutableLiveData<String>()

fun testPredefinedStatuses(
baseUrl: String,
username: String,
token: String
) {
viewModelScope.launch {
val credentials = ServerCredentials(baseUrl, username, token)
val client = NextcloudHttpClient.create(credentials)
val service = UserStatusRepository(client)

when (val result = service.fetchPredefinedStatuses()) {
is NetworkResult.Success ->
apiTestResult.value =
"✅ Success (${result.data.size} statuses):\n" +
result.data.joinToString("\n") { "${it.icon} ${it.message}" }

is NetworkResult.ServerError ->
apiTestResult.value =
"❌ Error ${result.response.ocs.meta.statusCode}: ${result.response.ocs.meta.message}"

is NetworkResult.NetworkException ->
apiTestResult.value =
"❌ Exception: ${result.throwable.message}"
}
}
}
}
61 changes: 61 additions & 0 deletions sample/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,67 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/circular_progress_bar" />

<com.google.android.material.textfield.TextInputLayout
android:id="@+id/baseUrlTil"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:hint="@string/hint_base_url"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/dialogBtn">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/baseUrl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textUri"
android:text="https://cloud.example.com" />

</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputLayout
android:id="@+id/usernameTil"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:hint="@string/hint_username"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/baseUrlTil">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text" />

</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tokenTil"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:hint="@string/hint_token"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/usernameTil">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/token"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword" />

</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.button.MaterialButton
android:id="@+id/testApiBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/test_user_status_api"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tokenTil" />

</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>

Expand Down
4 changes: 4 additions & 0 deletions sample/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@
<string name="suggestion_chip">Suggestion Chip</string>
<string name="filter_chip">Filter Chip</string>
<string name="hint_color">Color</string>
<string name="hint_base_url">Base URL</string>
<string name="hint_username">Username</string>
<string name="hint_token">App token</string>
<string name="test_user_status_api">Test User Status API</string>
<string name="headline_theming">Theming</string>
<string name="headline_ui_module">UI Module</string>
</resources>
27 changes: 26 additions & 1 deletion ui/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

plugins {
id 'org.jetbrains.kotlin.plugin.compose'
id 'org.jetbrains.kotlin.plugin.serialization' version "$kotlinVersion"
id 'com.android.library'
id 'com.android.built-in-kotlin'
id 'com.android.legacy-kapt'
Expand All @@ -15,14 +16,15 @@ plugins {

android {
defaultConfig {
minSdk = 21
minSdk = 26
compileSdk = 37

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildFeatures {
compose = true
buildConfig = true
}

compileOptions {
Expand All @@ -45,12 +47,27 @@ android {
}

dependencies {
// region Jetpack Compose
implementation 'androidx.compose.ui:ui-tooling-preview:1.11.4'
debugImplementation 'androidx.compose.ui:ui-tooling:1.11.4'
kapt "org.jetbrains.kotlin:kotlin-metadata-jvm:${kotlinVersion}"

implementation(platform("androidx.compose:compose-bom:2026.06.01"))
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.ui:ui-graphics")
implementation("androidx.compose.material3:material3")
implementation("androidx.compose.material:material-icons-core")
// endregion

// region lifecycle
api "androidx.lifecycle:lifecycle-viewmodel:$lifecycleVersion"
api "androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycleVersion"
implementation "androidx.lifecycle:lifecycle-runtime-compose:$lifecycleVersion"
// endregion

implementation("io.coil-kt.coil3:coil-compose:3.5.0")
implementation("io.coil-kt.coil3:coil-network-okhttp:3.5.0")
implementation("io.coil-kt.coil3:coil-svg:3.5.0")

implementation("com.vanniktech:ui:0.10.0")

Expand All @@ -60,6 +77,14 @@ dependencies {
androidTestImplementation 'androidx.test.ext:junit:1.3.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.7.0'

// region okhttp
implementation(platform("com.squareup.okhttp3:okhttp-bom:5.4.0"))
implementation("com.squareup.okhttp3:okhttp")
implementation("com.squareup.okhttp3:logging-interceptor")
// endregion

implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.11.0")

implementation project(':core')
api project(':material-color-utilities')

Expand Down
2 changes: 1 addition & 1 deletion ui/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@
~ SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
~ SPDX-License-Identifier: MIT
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<manifest>

</manifest>
Loading
Loading