Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 2 additions & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[versions]
androidGradlePlugin = "8.7.2"
androidxActivity = "1.6.1"
androidxActivity = "1.8.0"
androidxAnnotation = "1.6.0"
androidxAppCompat = "1.6.1"
androidxArch = "2.2.0"
Expand Down Expand Up @@ -47,6 +47,7 @@ stetho = "1.6.0"
timber = "5.0.1"

[libraries]
androidx-activity = { group = "androidx.activity", name = "activity", version.ref = "androidxActivity" }
androidx-annotation = { group = "androidx.annotation", name = "annotation", version.ref = "androidxAnnotation" }
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidxAppCompat" }
androidx-arch-core-testing = { group = "androidx.arch.core", name = "core-testing", version.ref = "androidxArch" }
Expand Down
1 change: 1 addition & 0 deletions opencloudApp/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ dependencies {
implementation libs.kotlinx.coroutines.core

// Android X
implementation libs.androidx.activity
implementation libs.androidx.annotation
implementation libs.androidx.appcompat
implementation libs.androidx.biometric
Expand Down
12 changes: 5 additions & 7 deletions opencloudApp/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,8 @@
android:name=".presentation.settings.privacypolicy.PrivacyPolicyActivity"
android:label="@string/actionbar_privacy_policy" />
<activity android:name=".presentation.settings.SettingsActivity" />
<activity android:name=".presentation.migration.StorageMigrationActivity" />
<activity android:name=".presentation.migration.StorageMigrationActivity"
android:theme="@style/Theme.openCloud.Toolbar.Fill" />
<activity
android:name=".ui.activity.SplashActivity"
android:exported="true"
Expand Down Expand Up @@ -193,11 +194,9 @@
<activity
android:name=".presentation.security.passcode.PassCodeActivity"
android:label="@string/passcode_label"
android:screenOrientation="portrait"
android:theme="@style/Theme.openCloud" />
android:screenOrientation="portrait" />
<activity
android:name=".presentation.conflicts.ConflictsResolveActivity"
android:theme="@style/Theme.openCloud" />
android:name=".presentation.conflicts.ConflictsResolveActivity" />
<activity
android:name=".presentation.logging.LogsListActivity"
android:label="@string/prefs_log_open_logs_list_view"
Expand Down Expand Up @@ -235,8 +234,7 @@
<activity
android:name=".presentation.security.pattern.PatternActivity"
android:screenOrientation="portrait"
android:label="@string/pattern_label"
android:theme="@style/Theme.openCloud" />
android:label="@string/pattern_label" />
<activity android:name=".presentation.security.biometric.BiometricActivity" />
<activity
android:name=".presentation.authentication.LoginActivity"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.net.toUri
import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import androidx.core.widget.doAfterTextChanged
import eu.opencloud.android.BuildConfig
import eu.opencloud.android.MainApp.Companion.accountType
Expand Down Expand Up @@ -80,6 +81,8 @@ import eu.opencloud.android.presentation.settings.SettingsActivity
import eu.opencloud.android.providers.ContextProvider
import eu.opencloud.android.providers.MdmProvider
import eu.opencloud.android.ui.activity.FileDisplayActivity
import eu.opencloud.android.ui.activity.enableEdgeToEdgePostSetContentView
import eu.opencloud.android.ui.activity.enableEdgeToEdgePreSetContentView
import eu.opencloud.android.ui.dialog.SslUntrustedCertDialog
import eu.opencloud.android.utils.CONFIGURATION_OAUTH2_OPEN_ID_PROMPT
import eu.opencloud.android.utils.CONFIGURATION_OAUTH2_OPEN_ID_SCOPE
Expand Down Expand Up @@ -164,11 +167,19 @@ class LoginActivity : AppCompatActivity(), SslUntrustedCertDialog.OnSslUntrusted
savedInstanceState.getString(KEY_OIDC_STATE)?.let { authenticationViewModel.oidcState = it }
}

// edge-to-edge
enableEdgeToEdgePreSetContentView(true)

// UI initialization
binding = AccountSetupBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)

// edge-to-edge
enableEdgeToEdgePostSetContentView { inset ->
binding.root.updatePadding(top = inset.top, bottom = inset.bottom)
}

if (loginAction != ACTION_CREATE) {
binding.accountUsername.isEnabled = false
binding.accountUsername.isFocusable = false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,13 @@ package eu.opencloud.android.presentation.conflicts

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.updatePadding
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import eu.opencloud.android.databinding.ActivityConflictsResolveBinding
import eu.opencloud.android.ui.activity.enableEdgeToEdgePostSetContentView
import eu.opencloud.android.ui.activity.enableEdgeToEdgePreSetContentView
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
import org.koin.androidx.viewmodel.ext.android.viewModel
Expand All @@ -36,6 +40,9 @@ import timber.log.Timber

class ConflictsResolveActivity : AppCompatActivity(), ConflictsResolveDialogFragment.OnConflictDecisionMadeListener {

private var _binding: ActivityConflictsResolveBinding? = null
val binding get() = _binding!!

private val conflictsResolveViewModel by viewModel<ConflictsResolveViewModel> {
parametersOf(
intent.getParcelableExtra(
Expand All @@ -47,6 +54,19 @@ class ConflictsResolveActivity : AppCompatActivity(), ConflictsResolveDialogFrag
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

// edge-to-edge
enableEdgeToEdgePreSetContentView(true)

_binding = ActivityConflictsResolveBinding.inflate(layoutInflater)
setContentView(binding.root)
setSupportActionBar(binding.toolbar)

// edge-to-edge
enableEdgeToEdgePostSetContentView { insets ->
binding.toolbar.updatePadding(top = insets.top)
binding.root.updatePadding(bottom = insets.bottom)
}

lifecycleScope.launch {
repeatOnLifecycle(Lifecycle.State.STARTED) {
conflictsResolveViewModel.currentFile.collectLatest { updatedOCFile ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager
Expand All @@ -45,6 +46,8 @@ import eu.opencloud.android.extensions.showMessageInSnackbar
import eu.opencloud.android.presentation.settings.logging.SettingsLogsViewModel
import eu.opencloud.android.providers.LogsProvider
import eu.opencloud.android.providers.MdmProvider
import eu.opencloud.android.ui.activity.enableEdgeToEdgePostSetContentView
import eu.opencloud.android.ui.activity.enableEdgeToEdgePreSetContentView
import org.koin.androidx.viewmodel.ext.android.viewModel
import timber.log.Timber
import java.io.File
Expand Down Expand Up @@ -86,10 +89,20 @@ class LogsListActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

// edge-to-edge
enableEdgeToEdgePreSetContentView(false)

_binding = LogsListActivityBinding.inflate(layoutInflater)
setContentView(binding.root)
initToolbar()
initList()

// edge-to-edge
enableEdgeToEdgePostSetContentView { insets ->
binding.toolbarActivityLogsList.root.updatePadding(top = insets.top)
binding.recyclerViewActivityLogsList.updatePadding(bottom = insets.bottom)
}
}

private fun initToolbar() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,16 @@ package eu.opencloud.android.presentation.migration
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.updatePadding
import androidx.fragment.app.Fragment
import eu.opencloud.android.MainApp
import eu.opencloud.android.R
import eu.opencloud.android.data.providers.implementation.OCSharedPreferencesProvider
import eu.opencloud.android.data.providers.LegacyStorageProvider
import eu.opencloud.android.data.providers.implementation.OCSharedPreferencesProvider
import eu.opencloud.android.ui.activity.enableEdgeToEdgePostSetContentView
import eu.opencloud.android.ui.activity.enableEdgeToEdgePreSetContentView
import org.koin.androidx.viewmodel.ext.android.viewModel
import timber.log.Timber
import java.io.File
Expand All @@ -43,8 +47,21 @@ class StorageMigrationActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

// edge-to-edge
enableEdgeToEdgePreSetContentView(true)

setContentView(R.layout.activity_storage_migration)

// edge-to-edge
enableEdgeToEdgePostSetContentView { insets ->
findViewById<View>(android.R.id.content).updatePadding(
top = insets.top,
bottom = insets.bottom
)
}
supportActionBar?.elevation = 0f

migrationViewModel.migrationState.observe(this) {
navigateToNextMigrationScreen(it.peekContent())
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ import android.content.Context
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.updateLayoutParams
import androidx.core.view.updatePadding
import androidx.recyclerview.widget.LinearLayoutManager
import eu.opencloud.android.BuildConfig
import eu.opencloud.android.MainApp
Expand All @@ -31,6 +33,8 @@ import eu.opencloud.android.R
import eu.opencloud.android.databinding.ReleaseNotesActivityBinding
import eu.opencloud.android.presentation.authentication.LoginActivity
import eu.opencloud.android.ui.activity.FileDisplayActivity
import eu.opencloud.android.ui.activity.enableEdgeToEdgePostSetContentView
import eu.opencloud.android.ui.activity.enableEdgeToEdgePreSetContentView
import org.koin.androidx.viewmodel.ext.android.viewModel

class ReleaseNotesActivity : AppCompatActivity() {
Expand All @@ -45,10 +49,23 @@ class ReleaseNotesActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

// edge-to-edge
enableEdgeToEdgePreSetContentView(false)

_binding = ReleaseNotesActivityBinding.inflate(layoutInflater)
setContentView(binding.root)
setData()
initView()

// edge-to-edge
enableEdgeToEdgePostSetContentView { insets ->
binding.topSpacer.updateLayoutParams {
height = insets.top
}
binding.root.updatePadding(bottom = insets.bottom)
}
supportActionBar?.elevation = 0f;
}

private fun initView() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ import android.view.WindowManager
import android.widget.EditText
import android.widget.LinearLayout
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.updatePadding
import eu.opencloud.android.BuildConfig
import eu.opencloud.android.R
import eu.opencloud.android.databinding.PasscodelockBinding
Expand All @@ -51,6 +52,8 @@ import eu.opencloud.android.presentation.security.biometric.BiometricStatus
import eu.opencloud.android.presentation.security.biometric.BiometricViewModel
import eu.opencloud.android.presentation.security.biometric.EnableBiometrics
import eu.opencloud.android.presentation.settings.security.SettingsSecurityFragment.Companion.EXTRAS_LOCK_ENFORCED
import eu.opencloud.android.ui.activity.enableEdgeToEdgePostSetContentView
import eu.opencloud.android.ui.activity.enableEdgeToEdgePreSetContentView
import eu.opencloud.android.utils.PreferenceUtils
import org.koin.androidx.viewmodel.ext.android.viewModel
import org.koin.core.parameter.parametersOf
Expand Down Expand Up @@ -94,8 +97,19 @@ class PassCodeActivity : AppCompatActivity(), NumberKeyboardListener, EnableBiom
window.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
} // else, let it go, or taking screenshots & testing will not be possible

setSupportActionBar(binding.toolbar)

// edge-to-edge
enableEdgeToEdgePreSetContentView(false)

setContentView(binding.root)

// edge-to-edge
enableEdgeToEdgePostSetContentView { insets ->
binding.toolbar?.updatePadding(top = insets.top)
binding.root.updatePadding(bottom = insets.bottom)
}

if (intent.getBooleanExtra(BIOMETRIC_HAS_FAILED, false)) {
showMessageInSnackbar(message = getString(R.string.biometric_not_available))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import android.view.View
import android.view.WindowManager
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import com.andrognito.patternlockview.PatternLockView.Dot
import com.andrognito.patternlockview.listener.PatternLockViewListener
import com.andrognito.patternlockview.utils.PatternLockUtils
Expand All @@ -49,6 +50,8 @@ import eu.opencloud.android.presentation.security.biometric.BiometricStatus
import eu.opencloud.android.presentation.security.biometric.BiometricViewModel
import eu.opencloud.android.presentation.security.biometric.EnableBiometrics
import eu.opencloud.android.presentation.settings.security.SettingsSecurityFragment.Companion.EXTRAS_LOCK_ENFORCED
import eu.opencloud.android.ui.activity.enableEdgeToEdgePostSetContentView
import eu.opencloud.android.ui.activity.enableEdgeToEdgePreSetContentView
import eu.opencloud.android.utils.PreferenceUtils
import org.koin.androidx.viewmodel.ext.android.viewModel
import timber.log.Timber
Expand Down Expand Up @@ -77,8 +80,19 @@ class PatternActivity : AppCompatActivity(), EnableBiometrics {

_binding = ActivityPatternLockBinding.inflate(layoutInflater)

setSupportActionBar(binding.toolbar)

// edge-to-edge
enableEdgeToEdgePreSetContentView(false)

setContentView(binding.root)

// edge-to-edge
enableEdgeToEdgePostSetContentView { insets ->
binding.toolbar?.updatePadding(top = insets.top)
binding.root.updatePadding(bottom = insets.bottom)
}

if (intent.getBooleanExtra(BIOMETRIC_HAS_FAILED, false)) {
showMessageInSnackbar(message = getString(R.string.biometric_not_available))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,12 @@ package eu.opencloud.android.presentation.settings
import android.content.Intent
import android.os.Bundle
import android.view.MenuItem
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import eu.opencloud.android.R
import eu.opencloud.android.presentation.settings.advanced.SettingsAdvancedFragment
import eu.opencloud.android.presentation.settings.automaticuploads.SettingsPictureUploadsFragment
Expand All @@ -37,11 +39,17 @@ import eu.opencloud.android.presentation.settings.logging.SettingsLogsFragment
import eu.opencloud.android.presentation.settings.more.SettingsMoreFragment
import eu.opencloud.android.presentation.settings.security.SettingsSecurityFragment
import eu.opencloud.android.ui.activity.FileDisplayActivity
import eu.opencloud.android.ui.activity.enableEdgeToEdgePostSetContentView
import eu.opencloud.android.ui.activity.enableEdgeToEdgePreSetContentView

class SettingsActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

// edge-to-edge
enableEdgeToEdgePreSetContentView(false)

setContentView(R.layout.activity_settings)

val toolbar = findViewById<Toolbar>(R.id.standard_toolbar).apply {
Expand All @@ -56,6 +64,12 @@ class SettingsActivity : AppCompatActivity() {

supportFragmentManager.addOnBackStackChangedListener { updateToolbarTitle() }

// edge-to-edge
enableEdgeToEdgePostSetContentView { insets ->
findViewById<View>(R.id.toolbar).updatePadding(top = insets.top)
findViewById<View>(android.R.id.content).updatePadding(bottom = insets.bottom)
}

if (savedInstanceState != null) return

redirectToSubsection(intent)
Expand Down
Loading