allow toggling folder name visibility at the widget config screen

This commit is contained in:
tibbi 2018-12-16 19:54:15 +01:00
parent dd537c63f3
commit 536eeaeee8
4 changed files with 51 additions and 23 deletions

View file

@ -1048,18 +1048,13 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
} }
} }
val mediaTypes = curMedia.getDirMediaTypes()
val dirName = when (path) {
FAVORITES -> getString(R.string.favorites)
RECYCLE_BIN -> getString(R.string.recycle_bin)
else -> checkAppendingHidden(path, hiddenString, includedFolders)
}
val firstItem = curMedia.first() val firstItem = curMedia.first()
val lastItem = curMedia.last() val lastItem = curMedia.last()
val dirName = checkAppendingHidden(path, hiddenString, includedFolders)
val lastModified = if (isSortingAscending) Math.min(firstItem.modified, lastItem.modified) else Math.max(firstItem.modified, lastItem.modified) val lastModified = if (isSortingAscending) Math.min(firstItem.modified, lastItem.modified) else Math.max(firstItem.modified, lastItem.modified)
val dateTaken = if (isSortingAscending) Math.min(firstItem.taken, lastItem.taken) else Math.max(firstItem.taken, lastItem.taken) val dateTaken = if (isSortingAscending) Math.min(firstItem.taken, lastItem.taken) else Math.max(firstItem.taken, lastItem.taken)
val size = curMedia.sumByLong { it.size } val size = curMedia.sumByLong { it.size }
val mediaTypes = curMedia.getDirMediaTypes()
return Directory(null, path, thumbnail, dirName, curMedia.size, lastModified, dateTaken, size, getPathLocation(path), mediaTypes) return Directory(null, path, thumbnail, dirName, curMedia.size, lastModified, dateTaken, size, getPathLocation(path), mediaTypes)
} }

View file

@ -6,6 +6,7 @@ import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.graphics.drawable.ColorDrawable import android.graphics.drawable.ColorDrawable
import android.os.Bundle import android.os.Bundle
import android.widget.RelativeLayout
import android.widget.RemoteViews import android.widget.RemoteViews
import com.simplemobiletools.commons.dialogs.ColorPickerDialog import com.simplemobiletools.commons.dialogs.ColorPickerDialog
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
@ -45,7 +46,12 @@ class WidgetConfigureActivity : SimpleActivity() {
folder_picker_value.setOnClickListener { changeSelectedFolder() } folder_picker_value.setOnClickListener { changeSelectedFolder() }
config_image_holder.setOnClickListener { changeSelectedFolder() } config_image_holder.setOnClickListener { changeSelectedFolder() }
folder_picker_show_folder_name.isChecked = config.showWidgetFolderName folder_picker_show_folder_name.isChecked = config.showWidgetFolderName
folder_picker_show_folder_name_holder.setOnClickListener { toggleFolderNameDisplay() } handleFolderNameDisplay()
folder_picker_show_folder_name_holder.setOnClickListener {
folder_picker_show_folder_name.toggle()
handleFolderNameDisplay()
}
updateTextColors(folder_picker_holder) updateTextColors(folder_picker_holder)
folder_picker_holder.background = ColorDrawable(config.backgroundColor) folder_picker_holder.background = ColorDrawable(config.backgroundColor)
@ -124,6 +130,7 @@ class WidgetConfigureActivity : SimpleActivity() {
private fun updateTextColor() { private fun updateTextColor() {
config_save.setTextColor(mTextColor) config_save.setTextColor(mTextColor)
config_folder_name.setTextColor(mTextColor)
config_text_color.setFillWithStroke(mTextColor, Color.BLACK) config_text_color.setFillWithStroke(mTextColor, Color.BLACK)
} }
@ -146,13 +153,17 @@ class WidgetConfigureActivity : SimpleActivity() {
} }
private fun changeSelectedFolder() { private fun changeSelectedFolder() {
PickDirectoryDialog(this, mFolderPath, false) { PickDirectoryDialog(this, "", false) {
updateFolderImage(it) updateFolderImage(it)
} }
} }
private fun updateFolderImage(folderPath: String) { private fun updateFolderImage(folderPath: String) {
mFolderPath = folderPath mFolderPath = folderPath
runOnUiThread {
config_folder_name.text = getFolderNameFromPath(folderPath)
}
Thread { Thread {
val path = directoryDB.getDirectoryThumbnail(folderPath) val path = directoryDB.getDirectoryThumbnail(folderPath)
if (path != null) { if (path != null) {
@ -163,7 +174,9 @@ class WidgetConfigureActivity : SimpleActivity() {
}.start() }.start()
} }
private fun toggleFolderNameDisplay() { private fun handleFolderNameDisplay() {
folder_picker_show_folder_name.toggle() val showFolderName = folder_picker_show_folder_name.isChecked
config_folder_name.beVisibleIf(showFolderName)
(config_image.layoutParams as RelativeLayout.LayoutParams).bottomMargin = if (showFolderName) 0 else resources.getDimension(R.dimen.normal_margin).toInt()
} }
} }

View file

@ -241,10 +241,21 @@ fun Context.storeDirectoryItems(items: ArrayList<Directory>, directoryDao: Direc
} }
fun Context.checkAppendingHidden(path: String, hidden: String, includedFolders: MutableSet<String>): String { fun Context.checkAppendingHidden(path: String, hidden: String, includedFolders: MutableSet<String>): String {
val dirName = when (path) { val dirName = getFolderNameFromPath(path)
return if (File(path).doesThisOrParentHaveNoMedia() && !path.isThisOrParentIncluded(includedFolders)) {
"$dirName $hidden"
} else {
dirName
}
}
fun Context.getFolderNameFromPath(path: String): String {
return when (path) {
internalStoragePath -> getString(R.string.internal) internalStoragePath -> getString(R.string.internal)
sdCardPath -> getString(R.string.sd_card) sdCardPath -> getString(R.string.sd_card)
OTG_PATH -> getString(R.string.otg) OTG_PATH -> getString(R.string.otg)
FAVORITES -> getString(R.string.favorites)
RECYCLE_BIN -> getString(R.string.recycle_bin)
else -> { else -> {
if (path.startsWith(OTG_PATH)) { if (path.startsWith(OTG_PATH)) {
path.trimEnd('/').substringAfterLast('/') path.trimEnd('/').substringAfterLast('/')
@ -253,12 +264,6 @@ fun Context.checkAppendingHidden(path: String, hidden: String, includedFolders:
} }
} }
} }
return if (File(path).doesThisOrParentHaveNoMedia() && !path.isThisOrParentIncluded(includedFolders)) {
"$dirName $hidden"
} else {
dirName
}
} }
fun Context.loadImage(type: Int, path: String, target: MySquareImageView, horizontalScroll: Boolean, animateGifs: Boolean, cropThumbnails: Boolean) { fun Context.loadImage(type: Int, path: String, target: MySquareImageView, horizontalScroll: Boolean, animateGifs: Boolean, cropThumbnails: Boolean) {

View file

@ -2,6 +2,7 @@
<RelativeLayout <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/config_holder" android:id="@+id/config_holder"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -59,15 +60,29 @@
<RelativeLayout <RelativeLayout
android:id="@+id/config_image_holder" android:id="@+id/config_image_holder"
android:layout_width="134dp" android:layout_width="@dimen/widget_initial_size"
android:layout_height="134dp" android:layout_height="wrap_content"
android:layout_below="@+id/folder_picker_holder" android:layout_below="@+id/folder_picker_holder">
android:padding="@dimen/normal_margin">
<com.simplemobiletools.gallery.pro.views.MySquareImageView <com.simplemobiletools.gallery.pro.views.MySquareImageView
android:id="@+id/config_image" android:id="@+id/config_image"
android:layout_width="@dimen/widget_initial_size"
android:layout_height="@dimen/widget_initial_size"
android:layout_marginLeft="@dimen/normal_margin"
android:layout_marginTop="@dimen/normal_margin"
android:layout_marginRight="@dimen/normal_margin"/>
<com.simplemobiletools.commons.views.MyTextView
android:id="@+id/config_folder_name"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"/> android:layout_height="wrap_content"
android:layout_below="@+id/config_image"
android:ellipsize="end"
android:gravity="center"
android:lines="1"
android:padding="@dimen/tiny_margin"
android:textSize="@dimen/bigger_text_size"
tools:text="@string/internal"/>
</RelativeLayout> </RelativeLayout>