diff --git a/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCapturerForegroundService.kt b/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCapturerForegroundService.kt index 9aaa173a..1543d173 100644 --- a/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCapturerForegroundService.kt +++ b/app/src/main/java/org/autojs/autojs/core/image/capture/ScreenCapturerForegroundService.kt @@ -28,6 +28,7 @@ class ScreenCapturerForegroundService : Service() { override fun onBind(intent: Intent): IBinder = Binder() override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { + instance = this mForegroundServiceCreator = ForegroundServiceCreator.Builder(this) .setClassName(ScreenCapturerForegroundService::class.java) .setIntent( @@ -51,11 +52,20 @@ class ScreenCapturerForegroundService : Service() { override fun onDestroy() { mForegroundServiceCreator?.stopForeground(STOP_FOREGROUND_REMOVE) + instance = null super.onDestroy() } companion object { + const val NOTIFICATION_ID = 0xCF + + var instance: ScreenCapturerForegroundService? = null + + fun stopService() { + instance?.stopSelf() + } + } } diff --git a/app/src/main/java/org/autojs/autojs/theme/app/ColorInfoDialogManager.kt b/app/src/main/java/org/autojs/autojs/theme/app/ColorInfoDialogManager.kt index 11d83a18..c4711d3e 100644 --- a/app/src/main/java/org/autojs/autojs/theme/app/ColorInfoDialogManager.kt +++ b/app/src/main/java/org/autojs/autojs/theme/app/ColorInfoDialogManager.kt @@ -7,6 +7,7 @@ import android.widget.TextView import androidx.annotation.ColorInt import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.view.isVisible +import com.afollestad.materialdialogs.DialogAction import com.afollestad.materialdialogs.MaterialDialog import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -22,7 +23,12 @@ import org.autojs.autojs6.databinding.ColorInfoDialogListItemBinding object ColorInfoDialogManager { @JvmStatic - fun showColorInfoDialog(context: Context, @ColorInt color: Int?, title: String? = null) { + fun showColorInfoDialog( + context: Context, + @ColorInt color: Int?, + title: String? = null, + customNeutral: CustomColorInfoDialogNeutral? = null, + ) { if (color == null) { MaterialDialog.Builder(context) .title(R.string.text_prompt) @@ -36,12 +42,21 @@ object ColorInfoDialogManager { val colorWithoutAlpha = color or -0x1000000 - val dialog = MaterialDialog.Builder(context) - .title(title ?: context.getString(R.string.dialog_title_color_details)) - .customView(binding.root, false) - .positiveText(R.string.dialog_button_dismiss) - .positiveColorRes(R.color.dialog_button_default) - .show() + val dialog = MaterialDialog.Builder(context).apply { + title(title ?: context.getString(R.string.dialog_title_color_details)) + customView(binding.root, false) + customNeutral?.let { neutral -> + neutral.textRes?.let(::neutralText) + neutral.colorRes?.let(::neutralColorRes) + neutral.onNeutralCallback?.let { + onNeutral { dialog, which -> + it.onClick(dialog, which, colorWithoutAlpha) + } + } + } + positiveText(R.string.dialog_button_dismiss) + positiveColorRes(R.color.dialog_button_default) + }.show() title?.run { dialog.makeTextCopyable { it.titleView } } @@ -98,4 +113,14 @@ object ColorInfoDialogManager { } } + data class CustomColorInfoDialogNeutral( + val textRes: Int? = null, + val colorRes: Int? = null, + val onNeutralCallback: NeutralButtonCallback? = null, + ) { + interface NeutralButtonCallback { + fun onClick(dialog: MaterialDialog, which: DialogAction, @ColorInt color: Int) + } + } + } \ No newline at end of file diff --git a/app/src/main/java/org/autojs/autojs/theme/app/ColorItemAdapter.kt b/app/src/main/java/org/autojs/autojs/theme/app/ColorItemAdapter.kt index 45f4d0db..43a817b4 100644 --- a/app/src/main/java/org/autojs/autojs/theme/app/ColorItemAdapter.kt +++ b/app/src/main/java/org/autojs/autojs/theme/app/ColorItemAdapter.kt @@ -52,24 +52,17 @@ class ColorItemAdapter( } private fun updateSelectedPosition(item: PresetColorItem, positionOfCurrentSelection: Int) { - when (selectedItemId) { - SELECT_NONE -> { - selectedLibraryId = item.libraryId - selectedItemId = item.itemId - notifyItemChanged(positionOfCurrentSelection) + if (selectedItemId != SELECT_NONE) { + val positionBeforeSelection = items.indexOfFirst { + it.libraryId == selectedLibraryId && it.itemId == selectedItemId } - else -> { - val positionBeforeSelection = items.indexOfFirst { - it.libraryId == selectedLibraryId && it.itemId == selectedItemId - } - if (positionBeforeSelection != positionOfCurrentSelection && positionBeforeSelection >= 0) { - notifyItemChanged(positionBeforeSelection) - } - selectedLibraryId = item.libraryId - selectedItemId = item.itemId - notifyItemChanged(positionOfCurrentSelection) + if (positionBeforeSelection != positionOfCurrentSelection && positionBeforeSelection >= 0) { + notifyItemChanged(positionBeforeSelection) } } + selectedLibraryId = item.libraryId + selectedItemId = item.itemId + notifyItemChanged(positionOfCurrentSelection) } private fun savePrefsAndDatabase(context: Context, item: PresetColorItem) { diff --git a/app/src/main/java/org/autojs/autojs/theme/app/ColorItemViewHolder.kt b/app/src/main/java/org/autojs/autojs/theme/app/ColorItemViewHolder.kt index 7d194f18..e9894c53 100644 --- a/app/src/main/java/org/autojs/autojs/theme/app/ColorItemViewHolder.kt +++ b/app/src/main/java/org/autojs/autojs/theme/app/ColorItemViewHolder.kt @@ -7,6 +7,7 @@ import androidx.annotation.ColorInt import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView import org.autojs.autojs.theme.ThemeColorHelper +import org.autojs.autojs.theme.ThemeColorManager import org.autojs.autojs.theme.app.ColorLibrariesActivity.Companion.PresetColorItem import org.autojs.autojs.theme.app.ColorLibrariesActivity.Companion.presetColorLibraries import org.autojs.autojs.util.ViewUtils @@ -37,13 +38,17 @@ class ColorItemViewHolder(itemViewBinding: MtColorLibraryRecyclerViewItemBinding } } subtitleSplitLineView.isVisible = !colorLibraryIdentifierView.text.isNullOrBlank() - setChecked(color, selectedLibraryId == item.libraryId && selectedItemId == item.itemId) + setChecked(selectedLibraryId == item.libraryId && selectedItemId == item.itemId, color) } - fun setChecked(@ColorInt color: Int, checked: Boolean) { + fun setChecked(checked: Boolean, @ColorInt refColor: Int? = null) { if (checked) { + val niceRefColor = refColor ?: ThemeColorManager.colorPrimary + val tintRes = when (ViewUtils.isLuminanceLight(niceRefColor)) { + true -> R.color.day + else -> R.color.night + } colorView.setImageResource(R.drawable.mt_ic_check_white_36dp) - val tintRes = if (ViewUtils.isLuminanceLight(color)) R.color.day else R.color.night colorView.imageTintList = ColorStateList.valueOf(context.getColor(tintRes)) } else { colorView.setImageDrawable(null) diff --git a/app/src/main/java/org/autojs/autojs/theme/app/ColorItemsActivity.kt b/app/src/main/java/org/autojs/autojs/theme/app/ColorItemsActivity.kt index 57ed248b..ec2ca284 100644 --- a/app/src/main/java/org/autojs/autojs/theme/app/ColorItemsActivity.kt +++ b/app/src/main/java/org/autojs/autojs/theme/app/ColorItemsActivity.kt @@ -52,15 +52,24 @@ class ColorItemsActivity : ColorSelectBaseActivity() { super.onCreate(savedInstanceState) ThemeChangeNotifier.themeChanged.observe(this) { + mAdapter.apply { + val positionBeforeSelection = items.indexOfFirst { + it.libraryId == selectedLibraryId && it.itemId == selectedItemId + } + setUpSelectedPosition(this) + if (positionBeforeSelection in items.indices) { + notifyItemChanged(positionBeforeSelection) + } + } updateClickListener(binding.toolbar) } - val libraryId = intent.getIntExtra(INTENT_IDENTIFIER_LIBRARY_ID, -1) + val libraryId = intent.getIntExtra(INTENT_IDENTIFIER_LIBRARY_ID, SELECT_NONE) val library = presetColorLibraries.find { it.id == libraryId }?.also { lib -> mLibrary = lib } ?: throw RuntimeException("Unknown library id: $libraryId") - mInitiallyItemIdScrollTo = intent.getIntExtra(INTENT_IDENTIFIER_COLOR_ITEM_ID_SCROLL_TO, -1) + mInitiallyItemIdScrollTo = intent.getIntExtra(INTENT_IDENTIFIER_COLOR_ITEM_ID_SCROLL_TO, SELECT_NONE) MtActivityColorItemsBinding.inflate(layoutInflater).let { binding = it @@ -76,9 +85,7 @@ class ColorItemsActivity : ColorSelectBaseActivity() { binding.colorItemsRecyclerView.let { it -> it.layoutManager = LinearLayoutManager(this) - it.adapter = ColorItemAdapter(library.colors) { - updateAppBarColorContent(ThemeColorManager.colorPrimary) - }.also { mAdapter = it } + it.adapter = ColorItemAdapter(library.colors).also { mAdapter = it } it.addItemDecoration(DividerItemDecoration(this, VERTICAL)) ViewUtils.excludePaddingClippableViewFromNavigationBar(it) @@ -110,7 +117,7 @@ class ColorItemsActivity : ColorSelectBaseActivity() { } private fun setUpSelectedPosition(adapter: ColorItemAdapter) { - when (Pref.getInt(KEY_SELECTED_COLOR_LIBRARY_ID, SELECT_NONE)) { + when (val prefLibraryId = Pref.getInt(KEY_SELECTED_COLOR_LIBRARY_ID, SELECT_NONE)) { SELECT_NONE -> when (val legacyIndex = Pref.getInt(KEY_LEGACY_SELECTED_COLOR_INDEX, SELECT_NONE)) { customColorPosition -> Unit SELECT_NONE, defaultColorPosition -> when (mLibrary.id) { @@ -131,6 +138,10 @@ class ColorItemsActivity : ColorSelectBaseActivity() { adapter.selectedLibraryId = mLibrary.id adapter.selectedItemId = Pref.getInt(KEY_SELECTED_COLOR_ITEM_ID, SELECT_NONE) } + else -> { + adapter.selectedLibraryId = prefLibraryId + adapter.selectedItemId = SELECT_NONE + } } } diff --git a/app/src/main/java/org/autojs/autojs/theme/app/ColorLibrariesActivity.kt b/app/src/main/java/org/autojs/autojs/theme/app/ColorLibrariesActivity.kt index 2e677428..d09b7011 100644 --- a/app/src/main/java/org/autojs/autojs/theme/app/ColorLibrariesActivity.kt +++ b/app/src/main/java/org/autojs/autojs/theme/app/ColorLibrariesActivity.kt @@ -42,7 +42,6 @@ class ColorLibrariesActivity : ColorSelectBaseActivity() { super.onCreate(savedInstanceState) ThemeChangeNotifier.themeChanged.observe(this) { - updateAppBarColorContent(ThemeColorManager.colorPrimary) libraryAdapter.notifyDataSetChanged() colorItemAdapter.notifyDataSetChanged() } diff --git a/app/src/main/java/org/autojs/autojs/theme/app/ColorSelectActivity.kt b/app/src/main/java/org/autojs/autojs/theme/app/ColorSelectActivity.kt index 11d77e8e..eac8dc58 100644 --- a/app/src/main/java/org/autojs/autojs/theme/app/ColorSelectActivity.kt +++ b/app/src/main/java/org/autojs/autojs/theme/app/ColorSelectActivity.kt @@ -21,9 +21,11 @@ class ColorSelectActivity : ColorSelectBaseActivity() { private val mOnItemClickListener = object : OnItemClickListener { override fun onItemClick(v: View?, position: Int) { - mColorSettingRecyclerView.selectedThemeColor?.let { + mColorSettingRecyclerView.selectedColor?.let { mSelectedPosition = position - updateAppBarColorContent(it.colorPrimary) + if (position == customColorPosition) { + isForciblyEnableAppBarColorTransition = true + } } } } diff --git a/app/src/main/java/org/autojs/autojs/theme/app/ColorSelectBaseActivity.kt b/app/src/main/java/org/autojs/autojs/theme/app/ColorSelectBaseActivity.kt index 048120df..8137c1fd 100644 --- a/app/src/main/java/org/autojs/autojs/theme/app/ColorSelectBaseActivity.kt +++ b/app/src/main/java/org/autojs/autojs/theme/app/ColorSelectBaseActivity.kt @@ -16,6 +16,7 @@ import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView.VERTICAL import androidx.recyclerview.widget.ThemeColorRecyclerView +import com.afollestad.materialdialogs.DialogAction import com.afollestad.materialdialogs.MaterialDialog import com.google.android.material.appbar.AppBarLayout import com.jaredrummler.android.colorpicker.ColorPickerDialog @@ -34,6 +35,7 @@ import org.autojs.autojs.theme.app.ColorEntities.ColorHistory import org.autojs.autojs.theme.app.ColorEntities.ColorInfo import org.autojs.autojs.theme.app.ColorEntities.PaletteHistory import org.autojs.autojs.theme.app.ColorHistoryItemViewHolder.Companion.ColorHistoryItem +import org.autojs.autojs.theme.app.ColorInfoDialogManager.CustomColorInfoDialogNeutral.NeutralButtonCallback import org.autojs.autojs.theme.app.ColorLibrariesActivity.Companion.COLOR_LIBRARY_ID_DEFAULT import org.autojs.autojs.theme.app.ColorLibrariesActivity.Companion.COLOR_LIBRARY_ID_MATERIAL import org.autojs.autojs.theme.app.ColorLibrariesActivity.Companion.COLOR_LIBRARY_ID_PALETTE @@ -83,6 +85,10 @@ abstract class ColorSelectBaseActivity : BaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + ThemeChangeNotifier.themeChanged.observe(this) { + updateAppBarColorContent(ThemeColorManager.colorPrimary) + } + mTitle = intent.getStringExtra("title") ?: getString(R.string.text_theme_color) currentColor = intent.getIntExtra("currentColor", ThemeColorManager.colorPrimary) @@ -238,7 +244,7 @@ abstract class ColorSelectBaseActivity : BaseActivity() { return TargetInfoForLocate(targetLibraryId, targetItemIndex) } - protected fun showColorPicker() { + protected fun showColorPicker(initialColor: Int? = null) { ColorPickerDialog.newBuilder() .setUseLegacyMode(isLegacyLayout) .setAllowCustom(true) @@ -246,7 +252,7 @@ abstract class ColorSelectBaseActivity : BaseActivity() { .setDialogType(ColorPickerDialog.TYPE_CUSTOM) .setShowAlphaSlider(false) .setDialogTitle(R.string.dialog_title_color_palette) - .setColor(customColor) + .setColor(initialColor ?: customColor) .setOldColorPanelOnClickListener { showColorDetails(it.tag as? Int) } .setNewColorPanelOnClickListener { showColorDetails(it.tag as? Int) } .setColorHistoriesHandler { showColorPickerHistories(it) } @@ -489,7 +495,17 @@ abstract class ColorSelectBaseActivity : BaseActivity() { } protected fun showColorDetails(color: Int?, title: String? = null) { - ColorInfoDialogManager.showColorInfoDialog(this, color, title) + val customNeutral = ColorInfoDialogManager.CustomColorInfoDialogNeutral( + textRes = R.string.dialog_button_use_palette, + colorRes = R.color.dialog_button_hint, + onNeutralCallback = object: NeutralButtonCallback{ + override fun onClick(dialog: MaterialDialog, which: DialogAction, color: Int) { + dialog.dismiss() + showColorPicker(color) + } + } + ) + ColorInfoDialogManager.showColorInfoDialog(this, color, title, customNeutral) } protected fun showThemeColorDetails() { diff --git a/app/src/main/java/org/autojs/autojs/theme/app/ColorSettingRecyclerView.kt b/app/src/main/java/org/autojs/autojs/theme/app/ColorSettingRecyclerView.kt index 8939f246..d4ca3198 100644 --- a/app/src/main/java/org/autojs/autojs/theme/app/ColorSettingRecyclerView.kt +++ b/app/src/main/java/org/autojs/autojs/theme/app/ColorSettingRecyclerView.kt @@ -18,7 +18,6 @@ import androidx.recyclerview.widget.ThemeColorRecyclerView import com.jaredrummler.android.colorpicker.ColorPickerDialog import org.autojs.autojs.core.pref.Pref import org.autojs.autojs.theme.ThemeChangeNotifier -import org.autojs.autojs.theme.ThemeColor import org.autojs.autojs.theme.ThemeColorHelper import org.autojs.autojs.theme.ThemeColorManager import org.autojs.autojs.theme.app.ColorLibrariesActivity.Companion.COLOR_LIBRARY_ID_PALETTE @@ -46,16 +45,16 @@ class ColorSettingRecyclerView : ThemeColorRecyclerView { constructor(context: Context, attrs: AttributeSet?, defStyle: Int) : super(context, attrs, defStyle) + private val mAdapter: Adapter private var mOnItemClickListener: ColorSelectBaseActivity.OnItemClickListener? = null - private var mSelectedPosition = SELECT_NONE - val selectedThemeColor: ThemeColor? + val selectedColor: Int? get() = when { mSelectedPosition < 0 -> null mSelectedPosition == customColorPosition -> customColor else -> context.getColor(colorItemsLegacy[mSelectedPosition].first) - }?.let { ThemeColor(it) } + } private val customColor: Int get() = Pref.getInt(ColorSelectBaseActivity.KEY_CUSTOM_COLOR, context.getColor(R.color.custom_color_default)) @@ -77,13 +76,12 @@ class ColorSettingRecyclerView : ThemeColorRecyclerView { itemId = it.itemId, ) } - } else -> { setSelectedPosition(pos) mOnItemClickListener?.onItemClick(v, pos) - selectedThemeColor?.colorPrimary?.let { c -> + selectedColor?.let { c -> presetColorLibraries.find { it.isMaterial }!!.colors.find { colorItem -> context.getColor(colorItem.colorRes) == c }?.let { @@ -100,25 +98,25 @@ class ColorSettingRecyclerView : ThemeColorRecyclerView { } init { - adapter = Adapter() + adapter = Adapter().also { mAdapter = it } layoutManager = LinearLayoutManager(context) addItemDecoration(DividerItemDecoration(context, VERTICAL)) } @SuppressLint("NotifyDataSetChanged") fun setSelectedPosition(currentPosition: Int) { - if (mSelectedPosition != SELECT_NONE) { - adapter!!.notifyItemChanged(mSelectedPosition) + if (mSelectedPosition == SELECT_NONE) { mSelectedPosition = currentPosition - adapter!!.notifyItemChanged(currentPosition) + mAdapter.notifyDataSetChanged() } else { + mAdapter.notifyItemChanged(mSelectedPosition) mSelectedPosition = currentPosition - adapter!!.notifyDataSetChanged() + mAdapter.notifyItemChanged(currentPosition) } savePrefsForLegacy() savePrefsForLibraries() - selectedThemeColor?.let { - ThemeColorManager.setThemeColor(it.colorPrimary) + selectedColor?.let { + ThemeColorManager.setThemeColor(it) ThemeChangeNotifier.notifyThemeChanged() } } @@ -139,7 +137,7 @@ class ColorSettingRecyclerView : ThemeColorRecyclerView { context.getColor(colorItem.colorRes) == context.getColor(R.color.theme_color_default) }?.let { Pref.putInt(KEY_SELECTED_COLOR_ITEM_ID, it.itemId) } } - else -> selectedThemeColor?.colorPrimary?.let { c -> + else -> selectedColor?.let { c -> presetColorLibraries.find { it.isMaterial }!!.colors.find { colorItem -> context.getColor(colorItem.colorRes) == c }?.let { @@ -224,7 +222,7 @@ class ColorSettingRecyclerView : ThemeColorRecyclerView { fun setChecked(checked: Boolean) { if (checked) { colorView.setImageResource(R.drawable.mt_ic_check_white_36dp) - val selectedThemeColorRes = selectedThemeColor?.colorPrimary?.let { + val selectedThemeColorRes = selectedColor?.let { if (ViewUtils.isLuminanceLight(it)) R.color.day else R.color.night } ?: R.color.night_day colorView.imageTintList = ColorStateList.valueOf(context.getColor(selectedThemeColorRes)) diff --git a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/FloatyService.java b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/FloatyService.java index 73f3f9ec..46ab934b 100644 --- a/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/FloatyService.java +++ b/app/src/main/java/org/autojs/autojs/ui/enhancedfloaty/FloatyService.java @@ -69,4 +69,10 @@ public class FloatyService extends Service { } } + public static void stopService() { + if (instance != null) { + instance.stopSelf(); + } + } + } diff --git a/app/src/main/java/org/autojs/autojs/ui/main/MainActivity.kt b/app/src/main/java/org/autojs/autojs/ui/main/MainActivity.kt index 4335b5ce..94c0b6b8 100644 --- a/app/src/main/java/org/autojs/autojs/ui/main/MainActivity.kt +++ b/app/src/main/java/org/autojs/autojs/ui/main/MainActivity.kt @@ -313,8 +313,8 @@ class MainActivity : BaseActivity(), DelegateHost, HostActivity { fun exitCompletely() { FloatyWindowManger.hideCircularMenuAndSaveState() - stopService(Intent(this, FloatyService::class.java)) - stopService(Intent(this, ScreenCapturerForegroundService::class.java)) + FloatyService.stopService() + ScreenCapturerForegroundService.stopService() AutoJs.instance.scriptEngineService.stopAll() diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 54e76da7..74095ab0 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -963,5 +963,6 @@ السماح للتطبيق بالوصول إلى جميع الملفات، بما في ذلك التخزين الخارجي السماح للتطبيق بعرض المحتوى فوق التطبيقات الأخرى السماح للتطبيق بإنشاء وإرسال الإشعارات + ستخدام اللوحة diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 3c8c093c..64190564 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -959,5 +959,6 @@ Allow the application to access all files, including external storage Allow the application to display content over other apps Allow the application to create and send notifications + Use palette diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 16a61d0c..d7beb9a0 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -962,5 +962,6 @@ Permitir que la aplicación acceda a todos los archivos, incluido el almacenamiento externo Permitir que la aplicación muestre contenido sobre otras aplicaciones Permitir que la aplicación cree y envíe notificaciones + Usar paleta diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index e4399a7f..054a218c 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -962,5 +962,6 @@ Autoriser l\'application à accéder à tous les fichiers, y compris le stockage externe Autoriser l\'application à afficher du contenu par-dessus d\'autres applications Autoriser l\'application à créer et envoyer des notifications + Utiliser la palette diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index ee27f3d2..99fbbdfc 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -962,5 +962,6 @@ アプリが外部ストレージを含むすべてのファイルにアクセスすることを許可する アプリが他のアプリの上にコンテンツを表示することを許可する アプリが通知を作成して送信することを許可する + パレットを使う diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 859b3ae6..83d951de 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -963,5 +963,6 @@ 앱이 외부 저장소를 포함한 모든 파일에 접근할 수 있도록 허용합니다 앱이 다른 애플리케이션 위에 콘텐츠를 표시할 수 있도록 허용합니다 앱이 알림을 생성하고 보낼 수 있도록 허용합니다 + 팔레트 사용 diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 51abbc56..500ab2cf 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -962,5 +962,6 @@ Разрешить приложению доступ ко всем файлам, включая внешнее хранилище Разрешить приложению отображать контент поверх других приложений Разрешить приложению создавать и отправлять уведомления + Использовать палитру diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 1f39ffef..ae83db5c 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -960,5 +960,6 @@ 允許應用訪問所有文件, 包括外部存儲 允許應用在其他應用之上顯示內容 允許應用創建併發送通知 + 使用調色盤 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 67e5fa67..ce5865e5 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -960,5 +960,6 @@ 允許應用訪問所有檔案, 包括外部儲存 允許應用在其他應用之上顯示內容 允許應用建立併發送通知 + 使用調色盤 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 8e10faf5..df453cf5 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -957,5 +957,6 @@ 允许应用访问所有文件, 包括外部存储 允许应用在其他应用之上显示内容 允许应用创建并发送通知 + 使用调色盘 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 546f1d81..e8f0b51c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1207,5 +1207,6 @@ Allow the application to access all files, including external storage Allow the application to display content over other apps Allow the application to create and send notifications + Use palette diff --git a/version.properties b/version.properties index a26650ca..e2882d13 100644 --- a/version.properties +++ b/version.properties @@ -1,5 +1,5 @@ -#Sun Apr 13 14:00:19 CST 2025 -BUILD_TIME=1744524019186 +#Sun Apr 13 20:26:15 CST 2025 +BUILD_TIME=1744547175175 COMPILE_SDK_VERSION=35 JAVA_VERSION=23 JAVA_VERSION_MIN_RADICAL=0 @@ -17,6 +17,6 @@ RAPID_OCR_OPENCV_MOBILE_LABEL_VERSION=13 RAPID_OCR_OPENCV_MOBILE_VERSION=4.5.3 TARGET_SDK_VERSION=35 TARGET_SDK_VERSION_INRT=29 -VERSION_BUILD=3133 +VERSION_BUILD=3136 VERSION_NAME=6.6.2 Alpha6 VSCODE_EXT_REQUIRED_VERSION=1.0.8