Skip to content

Commit

Permalink
Use binding
Browse files Browse the repository at this point in the history
Signed-off-by: alperozturk <[email protected]>
  • Loading branch information
alperozturk96 committed Dec 28, 2023
1 parent 43f4b1a commit 1d92784
Showing 1 changed file with 57 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,12 @@ import android.view.MenuItem
import android.view.View
import androidx.activity.OnBackPressedCallback
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import androidx.viewbinding.ViewBinding
import com.google.android.material.button.MaterialButton
import com.nextcloud.client.di.Injectable
import com.owncloud.android.R
import com.owncloud.android.databinding.FilesFolderPickerBinding
import com.owncloud.android.databinding.FilesPickerBinding
import com.owncloud.android.datamodel.OCFile
import com.owncloud.android.lib.common.operations.RemoteOperation
import com.owncloud.android.lib.common.operations.RemoteOperationResult
Expand Down Expand Up @@ -80,59 +83,78 @@ open class FolderPickerActivity :
private var mChooseBtn: MaterialButton? = null
private var mMoveBtn: MaterialButton? = null

private var caption: String? = null
private var captionText: String? = null

private var mAction: String? = null
private var mTargetFilePaths: ArrayList<String>? = null
private var action: String? = null
private var targetFilePaths: ArrayList<String>? = null

private lateinit var filesPickerBinding: FilesPickerBinding
private lateinit var folderPickerBinding: FilesFolderPickerBinding

@Inject
lateinit var localBroadcastManager: LocalBroadcastManager

private fun initBinding() {
if (this is FilePickerActivity) {
filesPickerBinding = FilesPickerBinding.inflate(layoutInflater)
} else {
folderPickerBinding = FilesFolderPickerBinding.inflate(layoutInflater)
}
}

private fun binding(): ViewBinding {
return if (this is FilePickerActivity) {
filesPickerBinding
} else {
folderPickerBinding
}
}

override fun onCreate(savedInstanceState: Bundle?) {
Log_OC.d(TAG, "onCreate() start")

super.onCreate(savedInstanceState)

if (this is FilePickerActivity) {
setContentView(R.layout.files_picker)
} else {
setContentView(R.layout.files_folder_picker)
initBinding()
setContentView(binding().root)
initControls()
setupToolbar()
setupActionBar()
setupAction()
initTargetFilesPath()

if (savedInstanceState == null) {
createFragments()
}

// sets callback listeners for UI elements
initControls()
updateActionBarTitleAndHomeButtonByString(captionText)
setBackgroundText()
handleOnBackPressed()
}

// Action bar setup
setupToolbar()
private fun setupActionBar() {
findViewById<View>(R.id.sort_list_button_group).visibility =
View.VISIBLE
findViewById<View>(R.id.switch_grid_view_button).visibility =
View.GONE
mAction = intent.getStringExtra(EXTRA_ACTION)
}

private fun setupAction() {
action = intent.getStringExtra(EXTRA_ACTION)

if (mAction != null && mAction == CHOOSE_LOCATION) {
if (action != null && action == CHOOSE_LOCATION) {
setupUIForChooseButton()
} else {
caption = themeUtils.getDefaultDisplayNameForRootFolder(this)
captionText = themeUtils.getDefaultDisplayNameForRootFolder(this)
}
}

mTargetFilePaths = intent.getStringArrayListExtra(EXTRA_FILE_PATHS)

if (savedInstanceState == null) {
createFragments()
}
updateActionBarTitleAndHomeButtonByString(caption)

// always AFTER setContentView(...) ; to work around bug in its implementation

// sets message for empty list of folders
setBackgroundText()
handleOnBackPressed()

Log_OC.d(TAG, "onCreate() end")
private fun initTargetFilesPath() {
targetFilePaths = intent.getStringArrayListExtra(EXTRA_FILE_PATHS)
}

private fun setupUIForChooseButton() {
caption = resources.getText(R.string.folder_picker_choose_caption_text).toString()
captionText = resources.getText(R.string.folder_picker_choose_caption_text).toString()
mSearchOnlyFolders = true
isDoNotEnterEncryptedFolder = true

Expand Down Expand Up @@ -374,13 +396,13 @@ open class FolderPickerActivity :
// for copy and move, disable selecting parent folder of target files
private fun checkFolderSelectable(): Boolean {
return when {
mAction != MOVE_OR_COPY -> true
mTargetFilePaths.isNullOrEmpty() -> true
action != MOVE_OR_COPY -> true
targetFilePaths.isNullOrEmpty() -> true
file?.isFolder != true -> true
// all of the target files are already in the selected directory
mTargetFilePaths!!.all { PathUtils.isDirectParent(file.remotePath, it) } -> false
targetFilePaths!!.all { PathUtils.isDirectParent(file.remotePath, it) } -> false
// some of the target files are parents of the selected folder
mTargetFilePaths!!.any { PathUtils.isAncestor(it, file.remotePath) } -> false
targetFilePaths!!.any { PathUtils.isAncestor(it, file.remotePath) } -> false
else -> true
}
}
Expand All @@ -392,7 +414,7 @@ open class FolderPickerActivity :
val atRoot = currentDir == null || currentDir.parentId == 0L
actionBar.setDisplayHomeAsUpEnabled(!atRoot)
actionBar.setHomeButtonEnabled(!atRoot)
val title = if (atRoot) caption ?: "" else currentDir!!.fileName
val title = if (atRoot) captionText ?: "" else currentDir!!.fileName
viewThemeUtils.files.themeActionBar(this, actionBar, title)
}
}
Expand Down Expand Up @@ -449,7 +471,7 @@ open class FolderPickerActivity :
resultData.putParcelableArrayListExtra(EXTRA_FILES, targetFiles)
}

mTargetFilePaths?.let {
targetFilePaths?.let {
if (v == mCopyBtn || v == mMoveBtn) {
moveOrCopyFiles(v, it)
}
Expand Down

0 comments on commit 1d92784

Please sign in to comment.