mirror of
https://github.com/FossifyOrg/Gallery.git
synced 2024-11-26 22:47:59 +01:00
commit
e4da7ae89b
37 changed files with 312 additions and 447 deletions
|
@ -1,6 +1,15 @@
|
|||
Changelog
|
||||
==========
|
||||
|
||||
Version 2.16.1 *(2017-10-24)*
|
||||
----------------------------
|
||||
|
||||
* Added a toggle for hiding folder media count on the main screen
|
||||
* Fixed SD card folders not being visible on some devices
|
||||
* Fixed videos not playing properly in some cases
|
||||
* Do not modify last_modified at copy/move/rename
|
||||
* Added support for 3gpp videos
|
||||
|
||||
Version 2.16.0 *(2017-10-19)*
|
||||
----------------------------
|
||||
|
||||
|
|
|
@ -10,8 +10,8 @@ android {
|
|||
applicationId "com.simplemobiletools.gallery"
|
||||
minSdkVersion 16
|
||||
targetSdkVersion 23
|
||||
versionCode 136
|
||||
versionName "2.16.0"
|
||||
versionCode 137
|
||||
versionName "2.16.1"
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
|
@ -37,7 +37,7 @@ android {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
compile 'com.simplemobiletools:commons:2.30.6'
|
||||
compile 'com.simplemobiletools:commons:2.31.11'
|
||||
compile 'com.davemorrissey.labs:subsampling-scale-image-view:3.6.0'
|
||||
compile 'com.theartofdev.edmodo:android-image-cropper:2.4.0'
|
||||
compile 'com.bignerdranch.android:recyclerview-multiselect:0.2'
|
||||
|
|
|
@ -10,14 +10,10 @@ import android.provider.MediaStore
|
|||
import android.util.Log
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import com.simplemobiletools.commons.extensions.getCompressionFormat
|
||||
import com.simplemobiletools.commons.extensions.getFileOutputStream
|
||||
import com.simplemobiletools.commons.extensions.scanPath
|
||||
import com.simplemobiletools.commons.extensions.toast
|
||||
import com.simplemobiletools.commons.extensions.*
|
||||
import com.simplemobiletools.gallery.R
|
||||
import com.simplemobiletools.gallery.dialogs.ResizeDialog
|
||||
import com.simplemobiletools.gallery.dialogs.SaveAsDialog
|
||||
import com.simplemobiletools.gallery.extensions.getRealPathFromURI
|
||||
import com.simplemobiletools.gallery.extensions.openEditor
|
||||
import com.theartofdev.edmodo.cropper.CropImageView
|
||||
import kotlinx.android.synthetic.main.view_crop_image.*
|
||||
|
|
|
@ -56,6 +56,7 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
|
|||
private var mStoredAnimateGifs = true
|
||||
private var mStoredCropThumbnails = true
|
||||
private var mStoredScrollHorizontally = true
|
||||
private var mStoredShowMediaCount = true
|
||||
private var mStoredTextColor = 0
|
||||
private var mLoadedInitialPhotos = false
|
||||
private var mLatestMediaId = 0L
|
||||
|
@ -80,10 +81,7 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
|
|||
removeTempFolder()
|
||||
directories_refresh_layout.setOnRefreshListener({ getDirectories() })
|
||||
mDirs = ArrayList()
|
||||
mStoredAnimateGifs = config.animateGifs
|
||||
mStoredCropThumbnails = config.cropThumbnails
|
||||
mStoredScrollHorizontally = config.scrollHorizontally
|
||||
mStoredTextColor = config.textColor
|
||||
storeStateVariables()
|
||||
checkWhatsNewDialog()
|
||||
|
||||
directories_empty_text.setOnClickListener {
|
||||
|
@ -134,6 +132,13 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
|
|||
directories_grid.adapter?.notifyDataSetChanged()
|
||||
}
|
||||
|
||||
if (mStoredShowMediaCount != config.showMediaCount) {
|
||||
(directories_grid.adapter as? DirectoryAdapter)?.apply {
|
||||
showMediaCount = config.showMediaCount
|
||||
notifyDataSetChanged()
|
||||
}
|
||||
}
|
||||
|
||||
if (mStoredScrollHorizontally != config.scrollHorizontally) {
|
||||
(directories_grid.adapter as? DirectoryAdapter)?.apply {
|
||||
scrollVertically = config.viewTypeFolders == VIEW_TYPE_LIST || !config.scrollHorizontally
|
||||
|
@ -157,10 +162,7 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
|
|||
storeDirectories()
|
||||
directories_refresh_layout.isRefreshing = false
|
||||
mIsGettingDirs = false
|
||||
mStoredAnimateGifs = config.animateGifs
|
||||
mStoredCropThumbnails = config.cropThumbnails
|
||||
mStoredScrollHorizontally = config.scrollHorizontally
|
||||
mStoredTextColor = config.textColor
|
||||
storeStateVariables()
|
||||
directories_grid.listener = null
|
||||
mLastMediaHandler.removeCallbacksAndMessages(null)
|
||||
|
||||
|
@ -175,6 +177,16 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
|
|||
removeTempFolder()
|
||||
}
|
||||
|
||||
private fun storeStateVariables() {
|
||||
config.apply {
|
||||
mStoredAnimateGifs = animateGifs
|
||||
mStoredCropThumbnails = cropThumbnails
|
||||
mStoredScrollHorizontally = scrollHorizontally
|
||||
mStoredShowMediaCount = showMediaCount
|
||||
mStoredTextColor = textColor
|
||||
}
|
||||
}
|
||||
|
||||
private fun removeTempFolder() {
|
||||
val newFolder = File(config.tempFolderPath)
|
||||
if (newFolder.exists() && newFolder.isDirectory) {
|
||||
|
@ -188,10 +200,11 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
|
|||
private fun tryloadGallery() {
|
||||
handlePermission(PERMISSION_WRITE_STORAGE) {
|
||||
if (it) {
|
||||
if (config.showAll)
|
||||
if (config.showAll) {
|
||||
showAllMedia()
|
||||
else
|
||||
} else {
|
||||
getDirectories()
|
||||
}
|
||||
|
||||
setupLayoutManager()
|
||||
checkIfColorChanged()
|
||||
|
@ -305,10 +318,11 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
|
|||
private fun getRecyclerAdapter() = (directories_grid.adapter as DirectoryAdapter)
|
||||
|
||||
private fun setupLayoutManager() {
|
||||
if (config.viewTypeFolders == VIEW_TYPE_GRID)
|
||||
if (config.viewTypeFolders == VIEW_TYPE_GRID) {
|
||||
setupGridLayoutManager()
|
||||
else
|
||||
} else {
|
||||
setupListLayoutManager()
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupGridLayoutManager() {
|
||||
|
@ -466,7 +480,7 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
|
|||
private fun fillIntentPath(resultData: Intent, resultIntent: Intent) {
|
||||
val path = resultData.data.path
|
||||
val uri = Uri.fromFile(File(path))
|
||||
val type = File(path).getMimeType("image/jpeg")
|
||||
val type = path.getMimeTypeFromPath()
|
||||
resultIntent.setDataAndTypeAndNormalize(uri, type)
|
||||
resultIntent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION
|
||||
}
|
||||
|
@ -624,6 +638,7 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
|
|||
add(Release(127, R.string.release_127))
|
||||
add(Release(133, R.string.release_133))
|
||||
add(Release(136, R.string.release_136))
|
||||
add(Release(137, R.string.release_137))
|
||||
checkWhatsNew(this, BuildConfig.VERSION_CODE)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ import android.provider.MediaStore
|
|||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import com.simplemobiletools.commons.extensions.getRealPathFromURI
|
||||
import com.simplemobiletools.commons.extensions.scanPath
|
||||
import com.simplemobiletools.commons.extensions.toast
|
||||
import com.simplemobiletools.commons.helpers.PERMISSION_WRITE_STORAGE
|
||||
|
|
|
@ -49,6 +49,7 @@ class SettingsActivity : SimpleActivity() {
|
|||
setupPasswordProtection()
|
||||
setupDeleteEmptyFolders()
|
||||
setupAllowVideoGestures()
|
||||
setupShowMediaCount()
|
||||
setupShowExtendedDetails()
|
||||
setupManageExtendedDetails()
|
||||
updateTextColors(settings_holder)
|
||||
|
@ -198,6 +199,14 @@ class SettingsActivity : SimpleActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
private fun setupShowMediaCount() {
|
||||
settings_show_media_count.isChecked = config.showMediaCount
|
||||
settings_show_media_count_holder.setOnClickListener {
|
||||
settings_show_media_count.toggle()
|
||||
config.showMediaCount = settings_show_media_count.isChecked
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupScreenRotation() {
|
||||
settings_screen_rotation.text = getScreenRotationText()
|
||||
settings_screen_rotation_holder.setOnClickListener {
|
||||
|
|
|
@ -273,7 +273,6 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
|||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1 || !isDestroyed) {
|
||||
view_pager.apply {
|
||||
adapter = pagerAdapter
|
||||
adapter!!.notifyDataSetChanged()
|
||||
currentItem = mPos
|
||||
addOnPageChangeListener(this@ViewPagerActivity)
|
||||
}
|
||||
|
@ -731,10 +730,11 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
|||
}
|
||||
|
||||
private fun getCurrentMedium(): Medium? {
|
||||
return if (getCurrentMedia().isEmpty() || mPos == -1)
|
||||
return if (getCurrentMedia().isEmpty() || mPos == -1) {
|
||||
null
|
||||
else
|
||||
} else {
|
||||
getCurrentMedia()[Math.min(mPos, getCurrentMedia().size - 1)]
|
||||
}
|
||||
}
|
||||
|
||||
private fun getCurrentMedia() = if (mAreSlideShowMediaVisible) mSlideshowMedia else mMedia
|
||||
|
@ -743,9 +743,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
|||
|
||||
private fun getCurrentFile() = File(getCurrentPath())
|
||||
|
||||
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
|
||||
|
||||
}
|
||||
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {}
|
||||
|
||||
override fun onPageSelected(position: Int) {
|
||||
if (view_pager.offscreenPageLimit == 1) {
|
||||
|
@ -759,7 +757,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
|||
}
|
||||
|
||||
override fun onPageScrollStateChanged(state: Int) {
|
||||
if (state == ViewPager.SCROLL_STATE_IDLE) {
|
||||
if (state == ViewPager.SCROLL_STATE_IDLE && getCurrentMedium() != null) {
|
||||
checkOrientation()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,22 +30,25 @@ import java.util.*
|
|||
class DirectoryAdapter(val activity: SimpleActivity, var dirs: MutableList<Directory>, val listener: DirOperationsListener?, val isPickIntent: Boolean,
|
||||
val itemClick: (Directory) -> Unit) : RecyclerView.Adapter<DirectoryAdapter.ViewHolder>() {
|
||||
|
||||
val multiSelector = MultiSelector()
|
||||
val config = activity.config
|
||||
val isListViewType = config.viewTypeFolders == VIEW_TYPE_LIST
|
||||
|
||||
var actMode: ActionMode? = null
|
||||
var itemViews = SparseArray<View>()
|
||||
val selectedPositions = HashSet<Int>()
|
||||
var primaryColor = config.primaryColor
|
||||
var textColor = config.textColor
|
||||
var pinnedFolders = config.pinnedFolders
|
||||
var scrollVertically = !config.scrollHorizontally
|
||||
var showMediaCount = config.showMediaCount
|
||||
|
||||
private val multiSelector = MultiSelector()
|
||||
private val isListViewType = config.viewTypeFolders == VIEW_TYPE_LIST
|
||||
private var itemViews = SparseArray<View>()
|
||||
private val selectedPositions = HashSet<Int>()
|
||||
private var textColor = config.textColor
|
||||
private var pinnedFolders = config.pinnedFolders
|
||||
|
||||
fun toggleItemSelection(select: Boolean, pos: Int) {
|
||||
if (select) {
|
||||
itemViews[pos]?.dir_check?.background?.setColorFilter(primaryColor, PorterDuff.Mode.SRC_IN)
|
||||
selectedPositions.add(pos)
|
||||
if (itemViews[pos] != null) {
|
||||
itemViews[pos].dir_check?.background?.setColorFilter(primaryColor, PorterDuff.Mode.SRC_IN)
|
||||
selectedPositions.add(pos)
|
||||
}
|
||||
} else {
|
||||
selectedPositions.remove(pos)
|
||||
}
|
||||
|
@ -350,7 +353,7 @@ class DirectoryAdapter(val activity: SimpleActivity, var dirs: MutableList<Direc
|
|||
|
||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||
val dir = dirs[position]
|
||||
itemViews.put(position, holder.bindView(dir, pinnedFolders.contains(dir.path), scrollVertically, isListViewType, textColor))
|
||||
itemViews.put(position, holder.bindView(dir, pinnedFolders.contains(dir.path), scrollVertically, isListViewType, textColor, showMediaCount))
|
||||
toggleItemSelection(selectedPositions.contains(position), position)
|
||||
holder.itemView.tag = holder
|
||||
}
|
||||
|
@ -415,7 +418,7 @@ class DirectoryAdapter(val activity: SimpleActivity, var dirs: MutableList<Direc
|
|||
class ViewHolder(val view: View, val adapterListener: MyAdapterListener, val activity: SimpleActivity, val multiSelectorCallback: ModalMultiSelectorCallback,
|
||||
val multiSelector: MultiSelector, val listener: DirOperationsListener?, val isPickIntent: Boolean, val itemClick: (Directory) -> (Unit)) :
|
||||
SwappingHolder(view, MultiSelector()) {
|
||||
fun bindView(directory: Directory, isPinned: Boolean, scrollVertically: Boolean, isListView: Boolean, textColor: Int): View {
|
||||
fun bindView(directory: Directory, isPinned: Boolean, scrollVertically: Boolean, isListView: Boolean, textColor: Int, showMediaCount: Boolean): View {
|
||||
itemView.apply {
|
||||
dir_name.text = directory.name
|
||||
dir_path?.text = "${directory.path.substringBeforeLast("/")}/"
|
||||
|
@ -423,6 +426,7 @@ class DirectoryAdapter(val activity: SimpleActivity, var dirs: MutableList<Direc
|
|||
activity.loadImage(directory.tmb, dir_thumbnail, scrollVertically)
|
||||
dir_pin.beVisibleIf(isPinned)
|
||||
dir_sd_card.beVisibleIf(activity.isPathOnSD(directory.path))
|
||||
photo_cnt.beVisibleIf(showMediaCount)
|
||||
|
||||
if (isListView) {
|
||||
dir_name.setTextColor(textColor)
|
||||
|
|
|
@ -42,8 +42,10 @@ class MediaAdapter(val activity: SimpleActivity, var media: MutableList<Medium>,
|
|||
|
||||
fun toggleItemSelection(select: Boolean, pos: Int) {
|
||||
if (select) {
|
||||
itemViews[pos]?.medium_check?.background?.setColorFilter(primaryColor, PorterDuff.Mode.SRC_IN)
|
||||
selectedPositions.add(pos)
|
||||
if (itemViews[pos] != null) {
|
||||
itemViews[pos].medium_check?.background?.setColorFilter(primaryColor, PorterDuff.Mode.SRC_IN)
|
||||
selectedPositions.add(pos)
|
||||
}
|
||||
} else {
|
||||
selectedPositions.remove(pos)
|
||||
}
|
||||
|
|
|
@ -65,7 +65,7 @@ fun Activity.shareMedia(media: List<Medium>) {
|
|||
|
||||
Intent().apply {
|
||||
action = Intent.ACTION_SEND_MULTIPLE
|
||||
type = "image/* video/*"
|
||||
type = uris.getMimeType()
|
||||
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
|
||||
putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris)
|
||||
startActivity(Intent.createChooser(this, shareTitle))
|
||||
|
@ -88,7 +88,7 @@ fun Activity.setAs(uri: Uri, file: File, showToast: Boolean = true): Boolean {
|
|||
var success = false
|
||||
Intent().apply {
|
||||
action = Intent.ACTION_ATTACH_DATA
|
||||
setDataAndType(uri, file.getMimeType("image/*"))
|
||||
setDataAndType(uri, file.getMimeType())
|
||||
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
|
||||
val chooser = Intent.createChooser(this, getString(R.string.set_as))
|
||||
|
||||
|
@ -261,7 +261,6 @@ fun SimpleActivity.toggleFileVisibility(oldFile: File, hide: Boolean, callback:
|
|||
}
|
||||
val newFile = File(path, filename)
|
||||
renameFile(oldFile, newFile) {
|
||||
newFile.setLastModified(System.currentTimeMillis())
|
||||
callback(newFile)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,12 +3,9 @@ package com.simplemobiletools.gallery.extensions
|
|||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.res.Configuration
|
||||
import android.database.Cursor
|
||||
import android.graphics.Point
|
||||
import android.media.AudioManager
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.provider.MediaStore
|
||||
import android.view.WindowManager
|
||||
import com.simplemobiletools.commons.extensions.humanizePath
|
||||
import com.simplemobiletools.gallery.activities.SettingsActivity
|
||||
|
@ -44,22 +41,6 @@ val Context.realScreenSize: Point
|
|||
return size
|
||||
}
|
||||
|
||||
fun Context.getRealPathFromURI(uri: Uri): String? {
|
||||
var cursor: Cursor? = null
|
||||
try {
|
||||
val projection = arrayOf(MediaStore.Images.Media.DATA)
|
||||
cursor = contentResolver.query(uri, projection, null, null, null)
|
||||
if (cursor?.moveToFirst() == true) {
|
||||
val index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA)
|
||||
return cursor.getString(index)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
} finally {
|
||||
cursor?.close()
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
fun Context.getHumanizedFilename(path: String): String {
|
||||
val humanized = humanizePath(path)
|
||||
return humanized.substring(humanized.lastIndexOf("/") + 1)
|
||||
|
|
|
@ -275,7 +275,7 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
view.photo_details.apply {
|
||||
text = getMediumExtendedDetails(medium)
|
||||
setTextColor(context.config.textColor)
|
||||
beVisible()
|
||||
beVisibleIf(text.isNotEmpty())
|
||||
onGlobalLayout {
|
||||
if (height != 0) {
|
||||
val smallMargin = resources.getDimension(R.dimen.small_margin)
|
||||
|
|
|
@ -9,7 +9,6 @@ import android.os.Bundle
|
|||
import android.os.Handler
|
||||
import android.provider.Settings
|
||||
import android.util.DisplayMetrics
|
||||
import android.util.Log
|
||||
import android.view.*
|
||||
import android.view.animation.AnimationUtils
|
||||
import android.widget.SeekBar
|
||||
|
@ -21,11 +20,11 @@ import com.simplemobiletools.gallery.extensions.*
|
|||
import com.simplemobiletools.gallery.helpers.MEDIUM
|
||||
import com.simplemobiletools.gallery.models.Medium
|
||||
import kotlinx.android.synthetic.main.pager_video_item.view.*
|
||||
import java.io.IOException
|
||||
|
||||
class VideoFragment : ViewPagerFragment(), SurfaceHolder.Callback, SeekBar.OnSeekBarChangeListener {
|
||||
private val CLICK_MAX_DURATION = 150
|
||||
private val SLIDE_INFO_FADE_DELAY = 1000L
|
||||
private val PROGRESS = "progress"
|
||||
|
||||
private var mMediaPlayer: MediaPlayer? = null
|
||||
private var mSurfaceView: SurfaceView? = null
|
||||
|
@ -40,6 +39,7 @@ class VideoFragment : ViewPagerFragment(), SurfaceHolder.Callback, SeekBar.OnSee
|
|||
private var mIsFragmentVisible = false
|
||||
private var mPlayOnPrepare = false
|
||||
private var mStoredShowExtendedDetails = false
|
||||
private var wasInit = false
|
||||
private var mStoredExtendedDetails = 0
|
||||
private var mCurrTime = 0
|
||||
private var mDuration = 0
|
||||
|
@ -59,11 +59,6 @@ class VideoFragment : ViewPagerFragment(), SurfaceHolder.Callback, SeekBar.OnSee
|
|||
lateinit var medium: Medium
|
||||
lateinit var mTimeHolder: View
|
||||
|
||||
companion object {
|
||||
private val TAG = VideoFragment::class.java.simpleName
|
||||
private val PROGRESS = "progress"
|
||||
}
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
mView = inflater.inflate(R.layout.pager_video_item, container, false)
|
||||
mTimeHolder = mView.video_time_holder
|
||||
|
@ -76,6 +71,7 @@ class VideoFragment : ViewPagerFragment(), SurfaceHolder.Callback, SeekBar.OnSee
|
|||
|
||||
mIsFullscreen = activity.window.decorView.systemUiVisibility and View.SYSTEM_UI_FLAG_FULLSCREEN == View.SYSTEM_UI_FLAG_FULLSCREEN
|
||||
checkFullscreen()
|
||||
wasInit = true
|
||||
|
||||
return mView
|
||||
}
|
||||
|
@ -129,21 +125,21 @@ class VideoFragment : ViewPagerFragment(), SurfaceHolder.Callback, SeekBar.OnSee
|
|||
|
||||
initTimeHolder()
|
||||
checkExtendedDetails()
|
||||
initMediaPlayer()
|
||||
}
|
||||
|
||||
override fun setMenuVisibility(menuVisible: Boolean) {
|
||||
super.setMenuVisibility(menuVisible)
|
||||
if (mIsFragmentVisible && !menuVisible) {
|
||||
pauseVideo()
|
||||
releaseMediaPlayer()
|
||||
}
|
||||
mIsFragmentVisible = menuVisible
|
||||
if (menuVisible) {
|
||||
if (mSurfaceView != null && mSurfaceHolder!!.surface.isValid) {
|
||||
initMediaPlayer()
|
||||
}
|
||||
|
||||
if (menuVisible && wasInit) {
|
||||
initMediaPlayer()
|
||||
if (context?.config?.autoplayVideos == true) {
|
||||
playVideo()
|
||||
}
|
||||
} else if (mIsPlaying) {
|
||||
pauseVideo()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -356,6 +352,8 @@ class VideoFragment : ViewPagerFragment(), SurfaceHolder.Callback, SeekBar.OnSee
|
|||
if (activity == null || !isAdded)
|
||||
return
|
||||
|
||||
initMediaPlayer()
|
||||
|
||||
mIsPlaying = !mIsPlaying
|
||||
if (mIsPlaying) {
|
||||
playVideo()
|
||||
|
@ -383,8 +381,9 @@ class VideoFragment : ViewPagerFragment(), SurfaceHolder.Callback, SeekBar.OnSee
|
|||
}
|
||||
|
||||
private fun initMediaPlayer() {
|
||||
if (mMediaPlayer != null)
|
||||
if (mMediaPlayer != null || !mIsFragmentVisible) {
|
||||
return
|
||||
}
|
||||
|
||||
try {
|
||||
mMediaPlayer = MediaPlayer().apply {
|
||||
|
@ -394,10 +393,9 @@ class VideoFragment : ViewPagerFragment(), SurfaceHolder.Callback, SeekBar.OnSee
|
|||
setOnVideoSizeChangedListener({ mediaPlayer, width, height -> setVideoSize() })
|
||||
setOnPreparedListener { videoPrepared(it) }
|
||||
setAudioStreamType(AudioManager.STREAM_MUSIC)
|
||||
prepareAsync()
|
||||
prepare()
|
||||
}
|
||||
} catch (e: IOException) {
|
||||
Log.e(TAG, "init media player failed $e")
|
||||
} catch (e: Exception) {
|
||||
releaseMediaPlayer()
|
||||
}
|
||||
}
|
||||
|
@ -447,7 +445,9 @@ class VideoFragment : ViewPagerFragment(), SurfaceHolder.Callback, SeekBar.OnSee
|
|||
}
|
||||
|
||||
override fun surfaceCreated(holder: SurfaceHolder) {
|
||||
|
||||
mSurfaceHolder = holder
|
||||
if (mIsFragmentVisible)
|
||||
initMediaPlayer()
|
||||
}
|
||||
|
||||
override fun surfaceChanged(holder: SurfaceHolder, format: Int, width: Int, height: Int) {
|
||||
|
@ -468,7 +468,6 @@ class VideoFragment : ViewPagerFragment(), SurfaceHolder.Callback, SeekBar.OnSee
|
|||
|
||||
initMediaPlayer()
|
||||
if (mMediaPlayer == null) {
|
||||
activity.toast(R.string.unknown_error_occurred)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -506,7 +505,7 @@ class VideoFragment : ViewPagerFragment(), SurfaceHolder.Callback, SeekBar.OnSee
|
|||
mView.video_details.apply {
|
||||
text = getMediumExtendedDetails(medium)
|
||||
setTextColor(context.config.textColor)
|
||||
beVisible()
|
||||
beVisibleIf(text.isNotEmpty())
|
||||
onGlobalLayout {
|
||||
if (height != 0) {
|
||||
val smallMargin = resources.getDimension(R.dimen.small_margin)
|
||||
|
|
|
@ -245,6 +245,10 @@ class Config(context: Context) : BaseConfig(context) {
|
|||
get() = prefs.getBoolean(ALLOW_VIDEO_GESTURES, true)
|
||||
set(allowVideoGestures) = prefs.edit().putBoolean(ALLOW_VIDEO_GESTURES, allowVideoGestures).apply()
|
||||
|
||||
var showMediaCount: Boolean
|
||||
get() = prefs.getBoolean(SHOW_MEDIA_COUNT, true)
|
||||
set(showMediaCount) = prefs.edit().putBoolean(SHOW_MEDIA_COUNT, showMediaCount).apply()
|
||||
|
||||
var slideshowInterval: Int
|
||||
get() = prefs.getInt(SLIDESHOW_INTERVAL, SLIDESHOW_DEFAULT_INTERVAL)
|
||||
set(slideshowInterval) = prefs.edit().putInt(SLIDESHOW_INTERVAL, slideshowInterval).apply()
|
||||
|
|
|
@ -36,6 +36,7 @@ val HIDE_SYSTEM_UI = "hide_system_ui"
|
|||
val REPLACE_SHARE_WITH_ROTATE = "replace_share_with_rotate"
|
||||
val DELETE_EMPTY_FOLDERS = "delete_empty_folders"
|
||||
val ALLOW_VIDEO_GESTURES = "allow_video_gestures"
|
||||
val SHOW_MEDIA_COUNT = "show_media_count"
|
||||
val TEMP_FOLDER_PATH = "temp_folder_path"
|
||||
val VIEW_TYPE_FOLDERS = "view_type_folders"
|
||||
val VIEW_TYPE_FILES = "view_type_files"
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
package com.simplemobiletools.gallery.models
|
||||
|
||||
import com.simplemobiletools.commons.extensions.getMimeType
|
||||
import com.simplemobiletools.commons.extensions.getMimeTypeFromPath
|
||||
import com.simplemobiletools.commons.extensions.isGif
|
||||
import com.simplemobiletools.commons.extensions.isPng
|
||||
import com.simplemobiletools.commons.helpers.*
|
||||
import java.io.File
|
||||
import java.io.Serializable
|
||||
|
||||
data class Medium(var name: String, var path: String, val video: Boolean, val modified: Long, val taken: Long, val size: Long) : Serializable, Comparable<Medium> {
|
||||
|
@ -21,7 +20,7 @@ data class Medium(var name: String, var path: String, val video: Boolean, val mo
|
|||
|
||||
fun isImage() = !isGif() && !video
|
||||
|
||||
fun getMimeType() = File(path).getMimeType()
|
||||
fun getMimeType() = path.getMimeTypeFromPath()
|
||||
|
||||
override fun compareTo(other: Medium): Int {
|
||||
var result: Int
|
||||
|
|
|
@ -328,6 +328,26 @@
|
|||
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/settings_show_media_count_holder"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/medium_margin"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:padding="@dimen/activity_margin">
|
||||
|
||||
<com.simplemobiletools.commons.views.MySwitchCompat
|
||||
android:id="@+id/settings_show_media_count"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@null"
|
||||
android:clickable="false"
|
||||
android:paddingLeft="@dimen/medium_margin"
|
||||
android:paddingStart="@dimen/medium_margin"
|
||||
android:text="@string/show_media_count"/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/settings_show_extended_details_holder"
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
@ -125,6 +125,7 @@
|
|||
<string name="hide_system_ui_at_fullscreen">Automatically hide system UI at fullscreen media</string>
|
||||
<string name="delete_empty_folders">Delete empty folders after deleting their content</string>
|
||||
<string name="allow_video_gestures">Allow controlling video volume and brightness with vertical gestures</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Replace Share with Rotate at fullscreen menu</string>
|
||||
<string name="show_extended_details">Show extended details over fullscreen media</string>
|
||||
<string name="manage_extended_details">Manage extended details</string>
|
||||
|
|
|
@ -125,6 +125,7 @@
|
|||
<string name="hide_system_ui_at_fullscreen">Automatically hide system UI at fullscreen media</string>
|
||||
<string name="delete_empty_folders">Delete empty folders after deleting their content</string>
|
||||
<string name="allow_video_gestures">Allow controlling video volume and brightness with vertical gestures</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Replace Share with Rotate at fullscreen menu</string>
|
||||
<string name="show_extended_details">Show extended details over fullscreen media</string>
|
||||
<string name="manage_extended_details">Manage extended details</string>
|
||||
|
|
|
@ -125,6 +125,7 @@
|
|||
<string name="hide_system_ui_at_fullscreen">Systemleisten ausblenden im Vollbild</string>
|
||||
<string name="delete_empty_folders">Nach Löschen leere Ordner löschen</string>
|
||||
<string name="allow_video_gestures">Gesten für Videolautstärke/Helligkeit</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Teilen/Drehen im Vollbild-Menü vertauschen</string>
|
||||
<string name="show_extended_details">Eigenschaften anzeigen im Vollbild</string>
|
||||
<string name="manage_extended_details">Eigenschaften auswählen</string>
|
||||
|
|
|
@ -125,6 +125,7 @@
|
|||
<string name="hide_system_ui_at_fullscreen">Ocultar automáticamente la interfaz de usuario del sistema en medios de pantalla completa</string>
|
||||
<string name="delete_empty_folders">Delete empty folders after deleting their content</string>
|
||||
<string name="allow_video_gestures">Allow controlling video volume and brightness with vertical gestures</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Reemplazar Compartir con Girar en el menú de pantalla completa</string>
|
||||
<string name="show_extended_details">Show extended details over fullscreen media</string>
|
||||
<string name="manage_extended_details">Manage extended details</string>
|
||||
|
|
|
@ -125,6 +125,7 @@
|
|||
<string name="hide_system_ui_at_fullscreen">Piilota järjestelmän UI automaattisesti koko näytön mediassa</string>
|
||||
<string name="delete_empty_folders">Poista tyhjät kansiot kansion tyhjennyksen jälkeen</string>
|
||||
<string name="allow_video_gestures">Salli videon äänenvoimakkuuden ja kirkkauden säätö pystysuorilla eleillä</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Korvaa jakaminen kääntämisellä koko näytön tilassa</string>
|
||||
<string name="show_extended_details">Show extended details over fullscreen media</string>
|
||||
<string name="manage_extended_details">Manage extended details</string>
|
||||
|
|
|
@ -125,6 +125,7 @@
|
|||
<string name="hide_system_ui_at_fullscreen">Masquer automatiquement l\'interface utilisateur si média plein écran</string>
|
||||
<string name="delete_empty_folders">Supprimer les dossiers vides après avoir supprimé leur contenu</string>
|
||||
<string name="allow_video_gestures">Permettre le contrôle du volume vidéo et de la luminosité avec des gestes verticaux</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Remplacer Partager par Pivoter si menu en plein écran</string>
|
||||
<string name="show_extended_details">Afficher les détails supplémentaires par dessus le média en plein écran</string>
|
||||
<string name="manage_extended_details">Gérer les détails supplémentaires</string>
|
||||
|
|
|
@ -125,6 +125,7 @@
|
|||
<string name="hide_system_ui_at_fullscreen">Automatically hide system UI at fullscreen media</string>
|
||||
<string name="delete_empty_folders">Delete empty folders after deleting their content</string>
|
||||
<string name="allow_video_gestures">Allow controlling video volume and brightness with vertical gestures</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Replace Share with Rotate at fullscreen menu</string>
|
||||
<string name="show_extended_details">Show extended details over fullscreen media</string>
|
||||
<string name="manage_extended_details">Manage extended details</string>
|
||||
|
|
|
@ -125,6 +125,7 @@
|
|||
<string name="hide_system_ui_at_fullscreen">Nascondi UI di sistema con media a schermo intero</string>
|
||||
<string name="delete_empty_folders">Elimina cartelle vuote dopo averne eliminato il contenuto</string>
|
||||
<string name="allow_video_gestures">Gestisci il volume e la luminosità dei video con gesti verticali</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Sostituisci Condividi con Ruota a schermo intero</string>
|
||||
<string name="show_extended_details">Show extended details over fullscreen media</string>
|
||||
<string name="manage_extended_details">Manage extended details</string>
|
||||
|
|
|
@ -125,6 +125,7 @@
|
|||
<string name="hide_system_ui_at_fullscreen">フルスクリーン時にシステムUIを非表示にする</string>
|
||||
<string name="delete_empty_folders">メディアの削除後にフォルダーが空になった場合、そのフォルダーを削除する</string>
|
||||
<string name="allow_video_gestures">ビデオ再生中に、音量と明るさを縦方向のジェスチャーで変更する</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">フルスクリーンメニューの「共有」を「回転」に置き換える</string>
|
||||
<string name="show_extended_details">Show extended details over fullscreen media</string>
|
||||
<string name="manage_extended_details">Manage extended details</string>
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
<string name="set_as">Ustaw jako</string>
|
||||
<string name="volume">Głośność</string>
|
||||
<string name="brightness">Jasność</string>
|
||||
<string name="do_not_ask_again">Do not ask again in this session</string>
|
||||
<string name="do_not_ask_again">Nie pytaj więcej w tej sesji</string>
|
||||
|
||||
<!-- Filter -->
|
||||
<string name="filter_media">Filtruj multimedia</string>
|
||||
|
@ -125,9 +125,10 @@
|
|||
<string name="hide_system_ui_at_fullscreen">Ukrywaj interfejs przy pełnoekranowym podglądzie</string>
|
||||
<string name="delete_empty_folders">Usuwaj puste foldery po usunięciu ich zawartości</string>
|
||||
<string name="allow_video_gestures">Zezwalaj na kontrolę jasności i głośności filmów pionowymi gestami</string>
|
||||
<string name="show_media_count">Pokazuj liczbę elementów w folderach w głównym widoku</string>
|
||||
<string name="replace_share_with_rotate">Zamień funkcję udostępniania na obracanie w menu pełnoekranowym</string>
|
||||
<string name="show_extended_details">Show extended details over fullscreen media</string>
|
||||
<string name="manage_extended_details">Manage extended details</string>
|
||||
<string name="show_extended_details">Dodatkowe szczegóły przy podglądzie pełnoekranowym</string>
|
||||
<string name="manage_extended_details">Zarządzaj dodatkowymi szczegółami</string>
|
||||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
|
|
|
@ -22,18 +22,18 @@
|
|||
<string name="change_cover_image">Trocar imagem de capa</string>
|
||||
<string name="select_photo">Selecionar foto</string>
|
||||
<string name="use_default">Usar padrão</string>
|
||||
<string name="set_as">Set as</string>
|
||||
<string name="set_as">Definir como</string>
|
||||
<string name="volume">Volume</string>
|
||||
<string name="brightness">Brightness</string>
|
||||
<string name="do_not_ask_again">Do not ask again in this session</string>
|
||||
<string name="brightness">Brilho</string>
|
||||
<string name="do_not_ask_again">Não perguntar novamente por enquanto</string>
|
||||
|
||||
<!-- Filter -->
|
||||
<string name="filter_media">Filter media</string>
|
||||
<string name="images">Images</string>
|
||||
<string name="videos">Videos</string>
|
||||
<string name="filter_media">Filtrar mídia</string>
|
||||
<string name="images">Imagens</string>
|
||||
<string name="videos">Vídeos</string>
|
||||
<string name="gifs">GIFs</string>
|
||||
<string name="no_media_with_filters">No media files have been found with the selected filters.</string>
|
||||
<string name="change_filters_underlined"><u>Change filters</u></string>
|
||||
<string name="no_media_with_filters">Nenhum arquivo de mídia encontrado a partir dos filtros selecionados.</string>
|
||||
<string name="change_filters_underlined"><u>Mudar filtros</u></string>
|
||||
|
||||
<!-- Hide / Exclude -->
|
||||
<string name="hide_folder_description">Esta opção oculta uma pasta com a adição de um arquivo \'.nomedia\' dentro dela, e irá ocultar todas as subpastas que estejam dentro da mesma. Você poderá rever essas pastas com a opção \'Mostrar pastas ocultas\'. Continuar?</string>
|
||||
|
@ -77,7 +77,7 @@
|
|||
<string name="flip">Inverter</string>
|
||||
<string name="flip_horizontally">Horizontalmente</string>
|
||||
<string name="flip_vertically">Verticalmente</string>
|
||||
<string name="edit_with">Edit with</string>
|
||||
<string name="edit_with">Editar com</string>
|
||||
|
||||
<!-- Set wallpaper -->
|
||||
<string name="simple_wallpaper">Simple Wallpaper</string>
|
||||
|
@ -92,21 +92,21 @@
|
|||
|
||||
<!-- Slideshow -->
|
||||
<string name="slideshow">Slideshow</string>
|
||||
<string name="interval">Interval (seconds):</string>
|
||||
<string name="include_photos">Include photos</string>
|
||||
<string name="include_videos">Include videos</string>
|
||||
<string name="include_gifs">Include GIFs</string>
|
||||
<string name="random_order">Random order</string>
|
||||
<string name="use_fade">Use fade animations</string>
|
||||
<string name="move_backwards">Move backwards</string>
|
||||
<string name="loop_slideshow">Loop slideshow</string>
|
||||
<string name="slideshow_ended">The slideshow ended</string>
|
||||
<string name="no_media_for_slideshow">No media for the slideshow have been found</string>
|
||||
<string name="interval">Intervalo (segundos):</string>
|
||||
<string name="include_photos">Incluir fotos</string>
|
||||
<string name="include_videos">Incluir videos</string>
|
||||
<string name="include_gifs">Incluir GIFs</string>
|
||||
<string name="random_order">Ordem aleatória</string>
|
||||
<string name="use_fade">Usar animação de esmaecimento</string>
|
||||
<string name="move_backwards">Retroceder</string>
|
||||
<string name="loop_slideshow">Apresentação em ciclo</string>
|
||||
<string name="slideshow_ended">Fim da apresentação</string>
|
||||
<string name="no_media_for_slideshow">Nenhuma mídia encontrada para a apresentação</string>
|
||||
|
||||
<!-- View types -->
|
||||
<string name="change_view_type">Change view type</string>
|
||||
<string name="grid">Grid</string>
|
||||
<string name="list">List</string>
|
||||
<string name="change_view_type">Alterar modo de visualização</string>
|
||||
<string name="grid">Grade</string>
|
||||
<string name="list">Lista</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="show_hidden_media">Mostrar pastas ocultas</string>
|
||||
|
@ -122,12 +122,13 @@
|
|||
<string name="screen_rotation_aspect_ratio">Proporção da mídia</string>
|
||||
<string name="dark_background_at_fullscreen">Fundo de tela escuro em mídia tela cheia</string>
|
||||
<string name="scroll_thumbnails_horizontally">Rolar miniaturas horizontalmente</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Automatically hide system UI at fullscreen media</string>
|
||||
<string name="delete_empty_folders">Delete empty folders after deleting their content</string>
|
||||
<string name="allow_video_gestures">Allow controlling video volume and brightness with vertical gestures</string>
|
||||
<string name="replace_share_with_rotate">Replace Share with Rotate at fullscreen menu</string>
|
||||
<string name="show_extended_details">Show extended details over fullscreen media</string>
|
||||
<string name="manage_extended_details">Manage extended details</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Esconder interface do sistema automaticamente quando em tela cheia</string>
|
||||
<string name="delete_empty_folders">Apagar pastas vazias após deleter seu conteúdo</string>
|
||||
<string name="allow_video_gestures">Permitir controle do volume e brilho com gestos na vertical</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Substituir botão "Compartilhar" por "Rotação de tela" quando em tela cheia</string>
|
||||
<string name="show_extended_details">Exibir detalhes extendidos quando em tela cheia</string>
|
||||
<string name="manage_extended_details">Gerenciar detalhes extendidos</string>
|
||||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
|
|
|
@ -125,6 +125,7 @@
|
|||
<string name="hide_system_ui_at_fullscreen">Ocultar interface do sistema se em ecrã completo</string>
|
||||
<string name="delete_empty_folders">Apagar as pastas vazias depois de remover o seu conteúdo</string>
|
||||
<string name="allow_video_gestures">Permitir controlo do volume e brilho dos vídeos através de gestos verticais</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Substituir a opção Partilhar pela opção Rodar se em ecrã completo</string>
|
||||
<string name="show_extended_details">Show extended details over fullscreen media</string>
|
||||
<string name="manage_extended_details">Manage extended details</string>
|
||||
|
|
|
@ -125,6 +125,7 @@
|
|||
<string name="hide_system_ui_at_fullscreen">Автоматически скрывать системный интерфейс в полноэкранном режиме</string>
|
||||
<string name="delete_empty_folders">Удалять пустые папки после удаления их содержимого</string>
|
||||
<string name="allow_video_gestures">Управлять громкостью и яркостью видео с помощью вертикальных жестов</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Заменить \'Поделиться\' на \'Повернуть\' в меню полноэкранного режима</string>
|
||||
<string name="show_extended_details">Show extended details over fullscreen media</string>
|
||||
<string name="manage_extended_details">Manage extended details</string>
|
||||
|
|
|
@ -125,6 +125,7 @@
|
|||
<string name="hide_system_ui_at_fullscreen">Automaticky skrývať systémové lišty pri celoobrazovkových médiách</string>
|
||||
<string name="delete_empty_folders">Odstrániť prázdne priečinky po vymazaní ich obsahu</string>
|
||||
<string name="allow_video_gestures">Povoliť ovládanie hlasitosti a jasu videí vertikálnymi ťahmi</string>
|
||||
<string name="show_media_count">Zobraziť počet médií v priečinku na hlavnej obrazovke</string>
|
||||
<string name="replace_share_with_rotate">Nahradiť Zdieľanie s Otočením v celoobrazovkovom menu</string>
|
||||
<string name="show_extended_details">Zobraziť rozšírené vlastnosti ponad celoobrazovkové médiá</string>
|
||||
<string name="manage_extended_details">Spravovať rozšírené vlastnosti</string>
|
||||
|
|
|
@ -125,6 +125,7 @@
|
|||
<string name="hide_system_ui_at_fullscreen">Dölj systemanvändargränssnittet automatiskt när media visas i helskärmsläge</string>
|
||||
<string name="delete_empty_folders">Ta bort tomma mappar när deras innehåll tas bort</string>
|
||||
<string name="allow_video_gestures">Tillåt styrning av videovolym och videoljusstyrka med vertikala gester</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Ersätt Dela med Rotera i helskärmsmenyn</string>
|
||||
<string name="show_extended_details">Show extended details over fullscreen media</string>
|
||||
<string name="manage_extended_details">Manage extended details</string>
|
||||
|
|
|
@ -125,6 +125,7 @@
|
|||
<string name="hide_system_ui_at_fullscreen">Automatically hide system UI at fullscreen media</string>
|
||||
<string name="delete_empty_folders">Delete empty folders after deleting their content</string>
|
||||
<string name="allow_video_gestures">Allow controlling video volume and brightness with vertical gestures</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Replace Share with Rotate at fullscreen menu</string>
|
||||
<string name="show_extended_details">Show extended details over fullscreen media</string>
|
||||
<string name="manage_extended_details">Manage extended details</string>
|
||||
|
|
|
@ -1,341 +1,150 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="abc_action_bar_home_description">转到主屏幕</string>
|
||||
<string name="abc_action_bar_home_description_format">%1$s:%2$s</string>
|
||||
<string name="abc_action_bar_home_subtitle_description_format">%1$s - %2$s:%3$s</string>
|
||||
<string name="abc_action_bar_up_description">转到上一层级</string>
|
||||
<string name="abc_action_menu_overflow_description">更多选项</string>
|
||||
<string name="abc_action_mode_done">完成</string>
|
||||
<string name="abc_activity_chooser_view_see_all">查看全部</string>
|
||||
<string name="abc_activitychooserview_choose_application">选择应用</string>
|
||||
<string name="abc_capital_off">关闭</string>
|
||||
<string name="abc_capital_on">开启</string>
|
||||
<string name="abc_search_hint">搜索…</string>
|
||||
<string name="abc_searchview_description_clear">清除查询</string>
|
||||
<string name="abc_searchview_description_query">搜索查询</string>
|
||||
<string name="abc_searchview_description_search">搜索</string>
|
||||
<string name="abc_searchview_description_submit">提交查询</string>
|
||||
<string name="abc_searchview_description_voice">语音搜索</string>
|
||||
<string name="abc_shareactionprovider_share_with">分享方式</string>
|
||||
<string name="abc_shareactionprovider_share_with_application">通过%s分享</string>
|
||||
<string name="abc_toolbar_collapse_description">收起</string>
|
||||
<string name="fingerprint_acquired_imager_dirty">指纹传感器有脏污。请擦拭干净,然后重试。</string>
|
||||
<string name="fingerprint_acquired_insufficient">无法处理指纹,请重试。</string>
|
||||
<string name="fingerprint_acquired_partial">仅检测到部分指纹,请重试。</string>
|
||||
<string name="fingerprint_acquired_too_fast">手指移动太快,请重试。</string>
|
||||
<string name="fingerprint_acquired_too_slow">手指移动太慢,请重试。</string>
|
||||
<string name="fingerprint_error_canceled">指纹操作已取消。</string>
|
||||
<string name="fingerprint_error_hw_not_available">指纹硬件无法使用。</string>
|
||||
<string name="fingerprint_error_lockout">尝试次数过多,请稍后重试。</string>
|
||||
<string name="fingerprint_error_no_space">无法存储指纹。请移除一个现有的指纹。</string>
|
||||
<string name="fingerprint_error_timeout">指纹录入操作超时,请重试。</string>
|
||||
<string name="fingerprint_error_unable_to_process">请重试。</string>
|
||||
<string name="fingerprint_not_recognized">无法识别</string>
|
||||
<string name="fingerprints">指纹:</string>
|
||||
<string name="search_menu_title">搜索</string>
|
||||
<string name="status_bar_notification_info_overflow">999+</string>
|
||||
<string name="about">关于</string>
|
||||
<string name="add_fingerprint">添加指纹</string>
|
||||
<string name="add_folder">添加目录</string>
|
||||
<string name="additional_info">额外信息</string>
|
||||
<string name="album">专辑</string>
|
||||
<string name="all_folders">所有目录</string>
|
||||
<string name="allow_video_gestures">使用纵向滑动手势控制视频音量和亮度</string>
|
||||
<string name="an_error_occurred">啊哦,出错啦: %s</string>
|
||||
<string name="animate_gifs">GIF 缩略图</string>
|
||||
<string name="app_launcher_name">简约图库</string>
|
||||
<string name="app_long_description">一个观看照片和视频的简单实用工具。项目可以根据日期、大小、名称来递增或递减排序,照片可以缩放。媒体文件根据屏幕的大小排列在多个方格中,您可以使用缩放手势来调整每一列的方格数量。媒体文件可以被重命名、分享、删除、复制以及移动。照片亦可被剪切、旋转或是直接在应用中设为壁纸。 相册亦提供能让第三方应用预览图片/视频、向电子邮件客户端添加附件等的功能。非常适合日常使用。 应用不包含广告与不必要的权限。它是完全开放源代码的,并内置自定义颜色主题。 这个应用只是一系列应用中的一小部份。您可以在 http://www.simplemobiletools.com 找到其余的应用。</string>
|
||||
<string name="app_name">简约图库</string>
|
||||
<string name="app_short_description">一个没有广告,用来观看照片及视频的相册。</string>
|
||||
<string name="app_version">应用版本:%1$s</string>
|
||||
<string name="append">"应用到 '_1'"</string>
|
||||
<string name="apply_to_all">应用到全部冲突项</string>
|
||||
<string name="artist">艺术家</string>
|
||||
<string name="ascending">递增</string>
|
||||
<string name="authentication_blocked">验证已被阻止,请稍后再试</string>
|
||||
<string name="authentication_failed">验证失败</string>
|
||||
<string name="autoplay_videos">自动播放</string>
|
||||
<string name="background_color">背景色</string>
|
||||
<string name="brightness">亮度</string>
|
||||
<string name="camera">相机</string>
|
||||
<string name="cancel">取消</string>
|
||||
<string name="change_cover_image">更改封面图片</string>
|
||||
<string name="change_filters_underlined"><u>更改过滤器</u></string>
|
||||
<string name="change_view_type">更改视图类型</string>
|
||||
<string name="changing_color_description">更改颜色将切换到自定义主题</string>
|
||||
<string name="click_select_destination">点击此处以设置目标路径</string>
|
||||
<string name="confirm_selection">确认选择</string>
|
||||
<string name="confirm_storage_access_text">请选择 SD 卡根目录并授予写权限</string>
|
||||
<string name="confirm_storage_access_text_sd">如果您未找到 SD 卡目录,请尝试</string>
|
||||
<string name="confirm_storage_access_title">确认外部存储器访问权限</string>
|
||||
<string name="copy">复制</string>
|
||||
<string name="copy_failed">无法复制文件</string>
|
||||
<string name="copy_move">复制/移动</string>
|
||||
<string name="copy_move_failed">操作失败</string>
|
||||
<string name="copy_to">复制到</string>
|
||||
<string name="copying">正在复制…</string>
|
||||
<string name="copying_success">复制成功</string>
|
||||
<string name="copying_success_partial">无法复制相同文件</string>
|
||||
<string name="copyright">v %1$s Copyright © Simple Mobile Tools %2$d</string>
|
||||
<string name="could_not_create_file">创建文件 %s 失败</string>
|
||||
<string name="could_not_create_folder">创建文件夹 %s 失败</string>
|
||||
<string name="create_new">新建</string>
|
||||
<string name="create_new_folder">新建文件夹</string>
|
||||
<string name="crop_thumbnails">裁剪缩略图</string>
|
||||
<string name="cropper_title">Android Image Cropper(图像裁剪和旋转)</string>
|
||||
<string name="custom">自定义</string>
|
||||
<string name="customize_colors">自定义颜色</string>
|
||||
<string name="dark_background_at_fullscreen">全屏时黑色背景</string>
|
||||
<string name="dark_theme">深色主题</string>
|
||||
<string name="date_taken">拍摄日期</string>
|
||||
<string name="delete">删除</string>
|
||||
<string name="delete_empty_folders">删除没有内容的空文件夹</string>
|
||||
<string name="descending">递减</string>
|
||||
<string name="destination">目标路径</string>
|
||||
<string name="device_os">设备系统:%1$s</string>
|
||||
<string name="direct_children_count">子目录数</string>
|
||||
<string name="discard">丢弃</string>
|
||||
<string name="do_not_ask_again">不再询问</string>
|
||||
<string name="donate">捐赠</string>
|
||||
<string name="donate_please">"您已使用此应用一段时间了。
|
||||
|
||||
可您知道么,我并不就职于一个大公司。开发应用耗时耗力,且我想依旧保持免费,您的捐赠会给我更多动力。
|
||||
|
||||
您可以通过购买付费应用 Simple Thank You 或捐赠比特币来支持我。
|
||||
|
||||
更多信息请查阅 http://simplemobiletools.com/donate.
|
||||
|
||||
非常感谢!"</string>
|
||||
<string name="donate_underlined"><u>捐赠</u></string>
|
||||
<string name="duration">时长</string>
|
||||
<string name="app_launcher_name">简约图库</string>
|
||||
<string name="edit">编辑</string>
|
||||
<string name="edit_image_with">编辑方式:</string>
|
||||
<string name="edit_with">编辑方式</string>
|
||||
<string name="editor">编辑器</string>
|
||||
<string name="email_label">发送反馈</string>
|
||||
<string name="empty_name">请输入名称</string>
|
||||
<string name="enter_pin">输入密码</string>
|
||||
<string name="error_saving_file">不能覆盖源文件</string>
|
||||
<string name="exclude">排除</string>
|
||||
<string name="exclude_folder_description">目录及其子目录中的媒体将不会在 Simple Gallery 中显示,您可以在设置更改。</string>
|
||||
<string name="exclude_folder_parent">是否排除父目录?</string>
|
||||
<string name="excluded_activity_placeholder">此目录及其子目录中的媒体将不会在 Simple Gallery 中显示,但是其它应用可以访问。如果您想对其它应用隐藏,请使用隐藏功能。</string>
|
||||
<string name="excluded_folders">排除目录</string>
|
||||
<string name="exif">EXIF</string>
|
||||
<string name="exposure_time">曝光时间</string>
|
||||
<string name="extension">扩展名</string>
|
||||
<string name="extension_cannot_be_empty">扩展名不能为空</string>
|
||||
<string name="extra_large">超大</string>
|
||||
<string name="f_number">光圈</string>
|
||||
<string name="file">文件</string>
|
||||
<string name="file_already_exists">文件 %1$s 已存在</string>
|
||||
<string name="file_already_exists_overwrite">文件 %1$s 已存在。是否覆盖?</string>
|
||||
<string name="file_saved">文件保存成功</string>
|
||||
<string name="filename">文件名</string>
|
||||
<string name="filename_cannot_be_empty">文件名不能为空</string>
|
||||
<string name="filename_invalid_characters">文件名包含非法字符</string>
|
||||
<string name="files_count">总文件数</string>
|
||||
<string name="open_camera">打开相机</string>
|
||||
<string name="open_with">打开方式</string>
|
||||
<string name="no_app_found">未找到可用应用</string>
|
||||
<string name="hidden">(隐藏)</string>
|
||||
<string name="pin_folder">锁定目录</string>
|
||||
<string name="unpin_folder">解除锁定目录</string>
|
||||
<string name="show_all">文件视图</string>
|
||||
<string name="all_folders">所有目录</string>
|
||||
<string name="folder_view">目录视图</string>
|
||||
<string name="other_folder">其他目录</string>
|
||||
<string name="show_on_map">在地图中显示</string>
|
||||
<string name="unknown_location">未知位置</string>
|
||||
<string name="no_map_application">未找到地图应用</string>
|
||||
<string name="no_camera_app_found">未找到相机应用</string>
|
||||
<string name="increase_column_count">增加一栏</string>
|
||||
<string name="reduce_column_count">减少一栏</string>
|
||||
<string name="change_cover_image">更改封面图片</string>
|
||||
<string name="select_photo">选择图片</string>
|
||||
<string name="use_default">使用默认</string>
|
||||
<string name="set_as">设置为</string>
|
||||
<string name="volume">音量</string>
|
||||
<string name="brightness">亮度</string>
|
||||
<string name="do_not_ask_again">不再提醒</string>
|
||||
|
||||
<!-- Filter -->
|
||||
<string name="filter_media">要显示的媒体文件</string>
|
||||
<string name="fingerprint">指纹</string>
|
||||
<string name="fingerprint_setup_successfully">保护设置成功。请重新安装本应用,以防复位时出现问题。</string>
|
||||
<string name="images">图片</string>
|
||||
<string name="videos">适配</string>
|
||||
<string name="gifs">GIFs</string>
|
||||
<string name="no_media_with_filters">所选的过滤器没有找到媒体文件。</string>
|
||||
<string name="change_filters_underlined"><u>更改过滤器</u></string>
|
||||
|
||||
<!-- Hide / Exclude -->
|
||||
<string name="hide_folder_description">通过添加文件 \'.nomedia\' 到目录,可以防止目录及其子目录下的所有媒体被扫描。您可以通过设置中的 \'显示隐藏目录\' 选项改变设置,是否继续?</string>
|
||||
<string name="exclude">排除</string>
|
||||
<string name="excluded_folders">排除目录</string>
|
||||
<string name="manage_excluded_folders">管理排除目录</string>
|
||||
<string name="exclude_folder_description">目录及其子目录中的媒体将不会在“简约图库”中显示,您可以在设置更改。</string>
|
||||
<string name="exclude_folder_parent">是否排除父目录?</string>
|
||||
<string name="excluded_activity_placeholder">此目录及其子目录中的媒体将不会在“简约图库”中显示,但是其它应用可以访问。如果您想对其它应用隐藏,请使用隐藏功能。</string>
|
||||
<string name="remove_all">移除全部</string>
|
||||
<string name="remove_all_description">是否删除排除列表中的所有文件夹?此操作不会删除文件夹。</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">包含目录</string>
|
||||
<string name="manage_included_folders">管理包含目录</string>
|
||||
<string name="add_folder">添加目录</string>
|
||||
<string name="included_activity_placeholder">如果您还有应用未扫描到的媒体文件,请添加所在目录路径。</string>
|
||||
|
||||
<!-- Resizing -->
|
||||
<string name="resize">缩放</string>
|
||||
<string name="resize_and_save">缩放选定区域并保存</string>
|
||||
<string name="width">宽度</string>
|
||||
<string name="height">高度</string>
|
||||
<string name="keep_aspect_ratio">保持纵横比</string>
|
||||
<string name="invalid_values">请输入有效分辨率</string>
|
||||
|
||||
<!-- Editor -->
|
||||
<string name="editor">编辑器</string>
|
||||
<string name="save">保存</string>
|
||||
<string name="rotate">旋转</string>
|
||||
<string name="path">路径</string>
|
||||
<string name="invalid_image_path">无效图片路径</string>
|
||||
<string name="image_editing_failed">图片编辑失败</string>
|
||||
<string name="edit_image_with">编辑方式:</string>
|
||||
<string name="no_editor_found">未找到可用图片编辑器</string>
|
||||
<string name="unknown_file_location">未知的文件路径</string>
|
||||
<string name="error_saving_file">不能覆盖源文件</string>
|
||||
<string name="rotate_left">向左旋转</string>
|
||||
<string name="rotate_right">向右旋转</string>
|
||||
<string name="rotate_one_eighty">旋转 180º</string>
|
||||
<string name="flip">翻转</string>
|
||||
<string name="flip_horizontally">水平翻转</string>
|
||||
<string name="flip_vertically">垂直翻转</string>
|
||||
<string name="focal_length">焦距</string>
|
||||
<string name="folder">文件夹</string>
|
||||
<string name="folder_view">目录视图</string>
|
||||
<string name="follow_us">关注我们:</string>
|
||||
<string name="font_size">字体大小</string>
|
||||
<string name="gifs">GIFs</string>
|
||||
<string name="glide_title">滑动(图像加载和缓存)</string>
|
||||
<string name="go_to_settings">去设置</string>
|
||||
<string name="grid">格</string>
|
||||
<string name="gruveo">你在寻找一个简单而匿名的视频通话应用吗?请尝试我的另一个项目</string>
|
||||
<string name="height">高度</string>
|
||||
<string name="hidden">(隐藏)</string>
|
||||
<string name="hide">隐藏</string>
|
||||
<string name="hide_folder">隐藏文件夹</string>
|
||||
<string name="hide_folder_description">"通过添加文件 '.nomedia' 到目录,可以防止目录及其子目录下的所有媒体被扫描。您可以通过设置中的 '显示隐藏目录' 选项改变设置,是否继续?"</string>
|
||||
<string name="hide_system_ui_at_fullscreen">全屏时自动隐藏状态栏</string>
|
||||
<string name="image_editing_failed">图片编辑失败</string>
|
||||
<string name="images">图片</string>
|
||||
<string name="include_folders">包含目录</string>
|
||||
<string name="include_gifs">包含 GIFs</string>
|
||||
<string name="include_photos">包含照片</string>
|
||||
<string name="include_videos">包含视频</string>
|
||||
<string name="included_activity_placeholder">如果您还有应用未扫描到的媒体文件,请添加所在目录路径。</string>
|
||||
<string name="increase_column_count">增加一栏</string>
|
||||
<string name="insert_pattern">绘制图案</string>
|
||||
<string name="internal">内部存储器</string>
|
||||
<string name="interval">间隔(秒):</string>
|
||||
<string name="invalid_destination">无法写入到选中目标路径</string>
|
||||
<string name="invalid_file_format">无效文件格式</string>
|
||||
<string name="invalid_image_path">无效图片路径</string>
|
||||
<string name="invalid_name">名称包含非法字符</string>
|
||||
<string name="invalid_values">请输入有效分辨率</string>
|
||||
<string name="invite_friends_underlined"><u>分享给好友</u></string>
|
||||
<string name="invite_via">分享到</string>
|
||||
<string name="iso_speed">ISO 速度</string>
|
||||
<string name="items_selected">已选择项目</string>
|
||||
<string name="joda_title">Joda-Time(Java日期替换)</string>
|
||||
<string name="keep_aspect_ratio">保持纵横比</string>
|
||||
<string name="kotlin_title">Kotlin(编程语言)</string>
|
||||
<string name="landscape_aspect_ratio">横向长宽比</string>
|
||||
<string name="large">大</string>
|
||||
<string name="last_modified">修改日期</string>
|
||||
<string name="light_theme">浅色主题</string>
|
||||
<string name="list">列表</string>
|
||||
<string name="loop_slideshow">循环幻灯片</string>
|
||||
<string name="loop_videos">循环播放视频</string>
|
||||
<string name="manage_excluded_folders">管理排除目录</string>
|
||||
<string name="manage_extended_details">要显示的详细信息项目</string>
|
||||
<string name="manage_included_folders">管理包含目录</string>
|
||||
<string name="max_brightness">浏览时最大亮度</string>
|
||||
<string name="medium">中</string>
|
||||
<string name="more_apps_underlined"><u>更多应用</u></string>
|
||||
<string name="move">移动</string>
|
||||
<string name="move_backwards">倒播</string>
|
||||
<string name="move_to">移动到</string>
|
||||
<string name="moving">正在移动…</string>
|
||||
<string name="moving_success">文件移动成功</string>
|
||||
<string name="moving_success_partial">无法移动相同文件</string>
|
||||
<string name="multiselect_title">RecyclerView MultiSelect(选择多个列表项)</string>
|
||||
<string name="name">名称</string>
|
||||
<string name="name_taken">同名文件夹或文件已存在</string>
|
||||
<string name="no">否</string>
|
||||
<string name="no_app_found">未找到可用应用</string>
|
||||
<string name="no_camera_app_found">未找到相机应用</string>
|
||||
<string name="no_capable_app_found">未找到可用应用</string>
|
||||
<string name="no_editor_found">未找到可用图片编辑器</string>
|
||||
<string name="no_files_selected">未选择文件</string>
|
||||
<string name="no_fingerprints_registered">您还没有注册指纹,请先给你的设备添加一些指纹</string>
|
||||
<string name="no_map_application">未找到地图应用</string>
|
||||
<string name="no_media_for_slideshow">未发现可用媒体</string>
|
||||
<string name="no_media_with_filters">所选的过滤器没有找到的媒体文件。</string>
|
||||
<string name="no_storage_permissions">请授予权限以访问您的存储器</string>
|
||||
<string name="notice">此应用使用了以下三方库。谢谢。</string>
|
||||
<string name="ok">确认</string>
|
||||
<string name="open_camera">打开相机</string>
|
||||
<string name="open_with">打开方式</string>
|
||||
<string name="other_folder">其他目录</string>
|
||||
<string name="otto_title">Otto (event bus)</string>
|
||||
<string name="out_of_memory_error">内存不足</string>
|
||||
<string name="overwrite">覆盖</string>
|
||||
<string name="password_protect_hidden_items">使用密码保护隐藏项</string>
|
||||
<string name="path">路径</string>
|
||||
<string name="pattern">图案</string>
|
||||
<string name="pattern_title">PatternLockView(图案保护)</string>
|
||||
<string name="photoview_title">PhotoView(可缩放 gifs)</string>
|
||||
<string name="picasso_title">Picasso(图像加载和缓存)</string>
|
||||
<string name="pin">密码</string>
|
||||
<string name="pin_folder">锁定目录</string>
|
||||
<string name="place_finger">请将手指放在指纹传感器上</string>
|
||||
<string name="please_enter_pin">请输入密码</string>
|
||||
<string name="please_select_destination">请选择目标路径</string>
|
||||
<string name="portrait_aspect_ratio">纵向长宽比</string>
|
||||
<string name="primary_color">主体色</string>
|
||||
<string name="proceed_with_deletion">是否执行此删除操作?</string>
|
||||
<string name="properties">属性</string>
|
||||
<string name="protection_setup_successfully">密码设置成功。为防止遗忘,请重新安装本应用。</string>
|
||||
<string name="random_order">随机顺序</string>
|
||||
<string name="rate_us_underlined"><u>为我们打分</u></string>
|
||||
<string name="reduce_column_count">减少一栏</string>
|
||||
<string name="remove_all">移除全部</string>
|
||||
<string name="remove_all_description">是否移除列表中的全部目录?目录不会被物理删除。</string>
|
||||
<string name="rename">重命名</string>
|
||||
<string name="rename_file">重命名文件</string>
|
||||
<string name="rename_file_error">无法重命名文件</string>
|
||||
<string name="rename_folder">重命名文件夹</string>
|
||||
<string name="rename_folder_empty">文件夹名不能为空</string>
|
||||
<string name="rename_folder_error">无法重命名文件夹</string>
|
||||
<string name="rename_folder_exists">文件夹名已存在</string>
|
||||
<string name="rename_folder_ok">文件夹重命名成功</string>
|
||||
<string name="rename_folder_root">无法重命名存储器的根目录</string>
|
||||
<string name="renaming_folder">重命名中...</string>
|
||||
<string name="repeat_pattern">重复图案</string>
|
||||
<string name="repeat_pin">重复密码</string>
|
||||
<string name="replace_share_with_rotate">替换全屏时菜单栏的“分享”为“旋转”</string>
|
||||
<string name="resize">缩放</string>
|
||||
<string name="resize_and_save">缩放选定区域并保存</string>
|
||||
<string name="resolution">分辨率</string>
|
||||
<string name="restore_defaults">恢复默认</string>
|
||||
<string name="root">根目录</string>
|
||||
<string name="rotate">旋转</string>
|
||||
<string name="rotate_left">向左旋转</string>
|
||||
<string name="rotate_one_eighty">旋转 180º</string>
|
||||
<string name="rotate_right">向右旋转</string>
|
||||
<string name="rtl_viewpager_title">RtlViewPager(从右到左滑动)</string>
|
||||
<string name="save">保存</string>
|
||||
<string name="save_as">保存</string>
|
||||
<string name="save_before_closing">您尚未保存更改,是否保存?</string>
|
||||
<string name="saving">正在保存…</string>
|
||||
<string name="screen_rotation_aspect_ratio">根据长宽比</string>
|
||||
<string name="screen_rotation_by">全屏方向</string>
|
||||
<string name="screen_rotation_device_rotation">设备方向</string>
|
||||
<string name="screen_rotation_system_setting">系统设置</string>
|
||||
<string name="scroll_thumbnails_horizontally">水平滚动缩略图</string>
|
||||
<string name="sd_card">SD 卡</string>
|
||||
<string name="search">搜索</string>
|
||||
<string name="select_all">全选</string>
|
||||
<string name="select_an_action">选择操作</string>
|
||||
<string name="select_destination">选择目标路径</string>
|
||||
<string name="select_file">选择文件</string>
|
||||
<string name="select_folder">选择文件夹</string>
|
||||
<string name="select_photo">选择图片</string>
|
||||
<string name="select_storage">选择存储器</string>
|
||||
<string name="set_as">设置为</string>
|
||||
<string name="edit_with">编辑方式</string>
|
||||
|
||||
<!-- Set wallpaper -->
|
||||
<string name="simple_wallpaper">简约壁纸</string>
|
||||
<string name="set_as_wallpaper">设为壁纸</string>
|
||||
<string name="set_as_wallpaper_failed">壁纸设置失败</string>
|
||||
<string name="set_as_wallpaper_with">设为壁纸...</string>
|
||||
<string name="setting_wallpaper">正在设置壁纸…</string>
|
||||
<string name="settings">设置</string>
|
||||
<string name="share">分享</string>
|
||||
<string name="share_text">请前往 %2$s 看看我们的 %1$s 吧!</string>
|
||||
<string name="share_via">分享到</string>
|
||||
<string name="show_all">文件视图</string>
|
||||
<string name="show_extended_details">全屏浏览媒体时显示详细信息</string>
|
||||
<string name="show_hidden">显示隐藏文件和文件夹</string>
|
||||
<string name="show_hidden_media">显示所有</string>
|
||||
<string name="show_on_map">在地图中显示</string>
|
||||
<string name="simple_wallpaper">简约壁纸</string>
|
||||
<string name="size">大小</string>
|
||||
<string name="skip">跳过</string>
|
||||
<string name="slideshow">幻灯片</string>
|
||||
<string name="slideshow_ended">幻灯片结束</string>
|
||||
<string name="small">小</string>
|
||||
<string name="sort_by">排序方式</string>
|
||||
<string name="source">原始路径</string>
|
||||
<string name="source_and_destination_same">原始路径和目标路径不能相同</string>
|
||||
<string name="stetho_title">Stetho(调试数据库)</string>
|
||||
<string name="stop_showing_hidden">不显示隐藏的媒体文件</string>
|
||||
<string name="subsampling_title">Subsampling Scale Image View(可缩放图像浏览)</string>
|
||||
<string name="temporarily_show_hidden">显示/隐藏缓存内容</string>
|
||||
<string name="text_color">文本颜色</string>
|
||||
<string name="theme">主题</string>
|
||||
<string name="third_party_licences">开放源代码</string>
|
||||
<string name="third_party_licences_underlined"><u>开放源代码</u></string>
|
||||
<string name="title">标题</string>
|
||||
<string name="toggle_filename">显示文件名</string>
|
||||
<string name="undo_changes">撤销更改</string>
|
||||
<string name="undo_changes_confirmation">是否撤销您的更改?</string>
|
||||
<string name="unhide">取消隐藏</string>
|
||||
<string name="unhide_folder">取消隐藏文件夹</string>
|
||||
<string name="unknown_error_occurred">未知错误</string>
|
||||
<string name="unknown_file_location">未知的文件路径</string>
|
||||
<string name="unknown_location">未知位置</string>
|
||||
<string name="unpin_folder">解除锁定目录</string>
|
||||
<string name="use_default">使用默认</string>
|
||||
<string name="use_fade">使用渐变动画</string>
|
||||
<string name="use_for_this_folder">仅应用于此文件夹</string>
|
||||
<string name="videos">视频</string>
|
||||
<string name="volume">音量</string>
|
||||
<string name="no_capable_app_found">未找到可用应用</string>
|
||||
<string name="setting_wallpaper">正在设置壁纸…</string>
|
||||
<string name="wallpaper_set_successfully">壁纸设置成功</string>
|
||||
<string name="website_label">应用源码</string>
|
||||
<string name="whats_new">更新日志</string>
|
||||
<string name="whats_new_disclaimer">* 此处仅列举了重大更新,更多修正可在使用中体验</string>
|
||||
<string name="width">宽度</string>
|
||||
<string name="wrong_pattern">图案错误</string>
|
||||
<string name="wrong_pin">密码错误</string>
|
||||
<string name="wrong_root_selected">目录选择错误,请选择 SD 卡</string>
|
||||
<string name="yes">是</string>
|
||||
<string name="portrait_aspect_ratio">纵向长宽比</string>
|
||||
<string name="landscape_aspect_ratio">横向长宽比</string>
|
||||
|
||||
<!-- Slideshow -->
|
||||
<string name="slideshow">幻灯片</string>
|
||||
<string name="interval">间隔(秒):</string>
|
||||
<string name="include_photos">包括照片</string>
|
||||
<string name="include_videos">包括视频</string>
|
||||
<string name="include_gifs">包括 GIFs</string>
|
||||
<string name="random_order">随机顺序</string>
|
||||
<string name="use_fade">使用渐变动画</string>
|
||||
<string name="move_backwards">倒播</string>
|
||||
<string name="loop_slideshow">循环幻灯片</string>
|
||||
<string name="slideshow_ended">幻灯片结束</string>
|
||||
<string name="no_media_for_slideshow">未发现可用媒体</string>
|
||||
|
||||
<!-- View types -->
|
||||
<string name="change_view_type">更改视图类型</string>
|
||||
<string name="grid">网格</string>
|
||||
<string name="list">列表</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="show_hidden_media">显示所有</string>
|
||||
<string name="autoplay_videos">自动播放</string>
|
||||
<string name="toggle_filename">显示文件名</string>
|
||||
<string name="loop_videos">循环播放视频</string>
|
||||
<string name="animate_gifs">GIF 缩略图</string>
|
||||
<string name="max_brightness">浏览时最大亮度</string>
|
||||
<string name="crop_thumbnails">裁剪缩略图</string>
|
||||
<string name="screen_rotation_by">全屏时方向</string>
|
||||
<string name="screen_rotation_system_setting">系统设置</string>
|
||||
<string name="screen_rotation_device_rotation">设备方向</string>
|
||||
<string name="screen_rotation_aspect_ratio">根据长宽比</string>
|
||||
<string name="dark_background_at_fullscreen">全屏时黑色背景</string>
|
||||
<string name="scroll_thumbnails_horizontally">水平滚动缩略图</string>
|
||||
<string name="hide_system_ui_at_fullscreen">全屏时自动隐藏状态栏</string>
|
||||
<string name="delete_empty_folders">删除没有内容的空文件夹</string>
|
||||
<string name="allow_video_gestures">使用纵向滑动手势控制视频音量和亮度</string>
|
||||
<string name="show_media_count">在主界面显示文件夹媒体计数</string>
|
||||
<string name="replace_share_with_rotate">替换全屏时菜单栏的“分享”为“旋转”</string>
|
||||
<string name="show_extended_details">全屏浏览媒体时显示详细信息</string>
|
||||
<string name="manage_extended_details">要显示的详细信息项目</string>
|
||||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">一个没有广告,用来观看照片及视频的相册。</string>
|
||||
<string name="app_long_description">
|
||||
一个观看照片和视频的简单实用工具。项目可以根据日期、大小、名称来递增或递减排序,照片可以缩放。媒体文件根据屏幕的大小排列在多个方格中,您可以使用缩放手势来调整每一列的方格数量。媒体文件可以被重命名、分享、删除、复制以及移动。照片亦可被剪切、旋转或是直接在应用中设为壁纸。
|
||||
|
||||
相册亦提供能让第三方应用预览图片/视频、向电子邮件客户端添加附件等的功能。非常适合日常使用。
|
||||
|
||||
应用不包含广告与不必要的权限。它是完全开放源代码的,并内置自定义颜色主题。
|
||||
|
||||
这个应用只是一系列应用中的一小部份。您可以在 http://www.simplemobiletools.com 找到其余的应用。
|
||||
</string>
|
||||
|
||||
<!--
|
||||
Haven't found some strings? There's more at
|
||||
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
|
||||
-->
|
||||
</resources>
|
||||
|
|
|
@ -125,6 +125,7 @@
|
|||
<string name="hide_system_ui_at_fullscreen">全螢幕時自動隱藏系統介面</string>
|
||||
<string name="delete_empty_folders">刪除內容後刪除空白資料夾</string>
|
||||
<string name="allow_video_gestures">允許用上下手勢來控制影片的音量和亮度</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">將全螢幕選單的分享取代為旋轉</string>
|
||||
<string name="show_extended_details">Show extended details over fullscreen media</string>
|
||||
<string name="manage_extended_details">Manage extended details</string>
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
<resources>
|
||||
|
||||
<!-- Release notes -->
|
||||
<string name="release_137">Added an option to hide folder media count on the main screen</string>
|
||||
<string name="release_136">Added an option to show customizable extended details over fullscreen media</string>
|
||||
<string name="release_133">
|
||||
Added fingerprint to hidden item protection\n
|
||||
|
|
|
@ -125,6 +125,7 @@
|
|||
<string name="hide_system_ui_at_fullscreen">Automatically hide system UI at fullscreen media</string>
|
||||
<string name="delete_empty_folders">Delete empty folders after deleting their content</string>
|
||||
<string name="allow_video_gestures">Allow controlling video volume and brightness with vertical gestures</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Replace Share with Rotate at fullscreen menu</string>
|
||||
<string name="show_extended_details">Show extended details over fullscreen media</string>
|
||||
<string name="manage_extended_details">Manage extended details</string>
|
||||
|
|
Loading…
Reference in a new issue