diff --git a/app/src/main/java/com/ray650128/floatingwindow/FloatingWindowHelper.kt b/app/src/main/java/com/ray650128/floatingwindow/FloatingWindowHelper.kt index 2b217e7..069011c 100644 --- a/app/src/main/java/com/ray650128/floatingwindow/FloatingWindowHelper.kt +++ b/app/src/main/java/com/ray650128/floatingwindow/FloatingWindowHelper.kt @@ -15,6 +15,7 @@ object FloatingWindowHelper { private var yOffset = PreferenceUtil.yOffset private var windowGravity = GravityType.fromInt(PreferenceUtil.gravity) + private var windowIcon = IconType.fromInt(PreferenceUtil.icon) private val window by lazy { EasyWindow>(MyApp.instance).apply { @@ -27,7 +28,7 @@ object FloatingWindowHelper { }) setXOffset(xOffset) setYOffset(yOffset) - setImageDrawable(android.R.id.icon, R.drawable.ic_chicken) + setImageDrawable(android.R.id.icon, windowIcon.value) setOnTouchListener { window, view, event -> var touch = false when (event.action) { @@ -96,6 +97,11 @@ object FloatingWindowHelper { window.update() } + fun setIcon(value: IconType) { + window.setImageDrawable(android.R.id.icon, value.value) + window.update() + } + enum class GravityType(val type: Int) { TOP_LEFT(0), BOTTOM_LEFT(1), @@ -106,4 +112,25 @@ object FloatingWindowHelper { fun fromInt(value: Int) = GravityType.values().first { it.type == value } } } + + enum class IconType(val value: Int, val index: Int) { + CHICKEN(R.drawable.ic_chicken, 0), + PEPE(R.drawable.ic_pepe, 1), + WEED(R.drawable.ic_weed, 2), + RUSHIA(R.drawable.ic_uruha_rushia, 3), + ISSHIKI_IROHA(R.drawable.ic_isshiki_iroha, 4), + AYAME(R.drawable.ic_nakiri_ayame, 5), + AQUA(R.drawable.ic_minato_aqua, 6), + GURA(R.drawable.ic_gura, 7); + + companion object { + fun fromInt(value: Int) = IconType.values().first { it.value == value } + + fun fromIndex(value: Int) = IconType.values().first { it.index == value } + + fun getIndex(value: Int) = IconType.values().indexOf( + IconType.values().first { it.value == value } + ) + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/ray650128/floatingwindow/PreferenceUtil.kt b/app/src/main/java/com/ray650128/floatingwindow/PreferenceUtil.kt index cbd2159..6dcd8b0 100644 --- a/app/src/main/java/com/ray650128/floatingwindow/PreferenceUtil.kt +++ b/app/src/main/java/com/ray650128/floatingwindow/PreferenceUtil.kt @@ -11,6 +11,7 @@ object PreferenceUtil { private const val X_AXIS_OFFSET = "X_AXIS_OFFSET" private const val Y_AXIS_OFFSET = "Y_AXIS_OFFSET" private const val GRAVITY = "GRAVITY" + private const val ICON = "ICON" private val sharedPreferences = MyApp.appContext.getSharedPreferences(MAIN_KEY, Context.MODE_PRIVATE) @@ -25,4 +26,8 @@ object PreferenceUtil { var gravity: Int get() = sharedPreferences.getInt(GRAVITY, 0) set(value) = sharedPreferences.edit().putInt(GRAVITY, value).apply() + + var icon: Int + get() = sharedPreferences.getInt(ICON, R.drawable.ic_chicken) + set(value) = sharedPreferences.edit().putInt(ICON, value).apply() } \ No newline at end of file diff --git a/app/src/main/java/com/ray650128/floatingwindow/SettingActivity.kt b/app/src/main/java/com/ray650128/floatingwindow/SettingActivity.kt index 27f0734..c35334a 100644 --- a/app/src/main/java/com/ray650128/floatingwindow/SettingActivity.kt +++ b/app/src/main/java/com/ray650128/floatingwindow/SettingActivity.kt @@ -16,6 +16,8 @@ class SettingActivity : AppCompatActivity() { private var windowGravity = FloatingWindowHelper.GravityType.TOP_LEFT + private var windowIcon = FloatingWindowHelper.IconType.CHICKEN + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivitySettingBinding.inflate(layoutInflater) @@ -24,6 +26,7 @@ class SettingActivity : AppCompatActivity() { xOffset = PreferenceUtil.xOffset yOffset = PreferenceUtil.yOffset windowGravity = FloatingWindowHelper.GravityType.fromInt(PreferenceUtil.gravity) + windowIcon = FloatingWindowHelper.IconType.fromInt(PreferenceUtil.icon) binding.apply { spGravity.apply { @@ -38,6 +41,18 @@ class SettingActivity : AppCompatActivity() { } } + spIcon.apply { + setSelection(FloatingWindowHelper.IconType.getIndex(PreferenceUtil.icon) ) + onItemSelectedListener = object : AdapterView.OnItemSelectedListener { + override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) { + windowIcon = FloatingWindowHelper.IconType.fromIndex(position) + FloatingWindowHelper.setIcon(windowIcon) + } + + override fun onNothingSelected(parent: AdapterView<*>?) {} + } + } + etXOffset.apply { setText("$xOffset") addTextChangedListener { @@ -60,6 +75,7 @@ class SettingActivity : AppCompatActivity() { PreferenceUtil.xOffset = xOffset PreferenceUtil.yOffset = yOffset PreferenceUtil.gravity = windowGravity.type + PreferenceUtil.icon = windowIcon.value finish() } @@ -67,6 +83,7 @@ class SettingActivity : AppCompatActivity() { FloatingWindowHelper.setXOffset(PreferenceUtil.xOffset) FloatingWindowHelper.setYOffset(PreferenceUtil.yOffset) FloatingWindowHelper.setGravity(FloatingWindowHelper.GravityType.fromInt(PreferenceUtil.gravity)) + FloatingWindowHelper.setIcon(FloatingWindowHelper.IconType.fromInt(PreferenceUtil.icon)) finish() } } diff --git a/app/src/main/res/drawable/ic_gura.png b/app/src/main/res/drawable/ic_gura.png new file mode 100644 index 0000000..8f564b4 Binary files /dev/null and b/app/src/main/res/drawable/ic_gura.png differ diff --git a/app/src/main/res/drawable/ic_isshiki_iroha.png b/app/src/main/res/drawable/ic_isshiki_iroha.png new file mode 100644 index 0000000..8a692ec Binary files /dev/null and b/app/src/main/res/drawable/ic_isshiki_iroha.png differ diff --git a/app/src/main/res/drawable/ic_minato_aqua.png b/app/src/main/res/drawable/ic_minato_aqua.png new file mode 100644 index 0000000..25e01c3 Binary files /dev/null and b/app/src/main/res/drawable/ic_minato_aqua.png differ diff --git a/app/src/main/res/drawable/ic_nakiri_ayame.png b/app/src/main/res/drawable/ic_nakiri_ayame.png new file mode 100644 index 0000000..d0d14aa Binary files /dev/null and b/app/src/main/res/drawable/ic_nakiri_ayame.png differ diff --git a/app/src/main/res/drawable/ic_pepe.png b/app/src/main/res/drawable/ic_pepe.png new file mode 100644 index 0000000..abe66ce Binary files /dev/null and b/app/src/main/res/drawable/ic_pepe.png differ diff --git a/app/src/main/res/drawable/ic_uruha_rushia.png b/app/src/main/res/drawable/ic_uruha_rushia.png new file mode 100644 index 0000000..1b75c8c Binary files /dev/null and b/app/src/main/res/drawable/ic_uruha_rushia.png differ diff --git a/app/src/main/res/drawable/ic_weed.png b/app/src/main/res/drawable/ic_weed.png new file mode 100644 index 0000000..b719825 Binary files /dev/null and b/app/src/main/res/drawable/ic_weed.png differ diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/activity_setting.xml index 290b8ce..1ded662 100644 --- a/app/src/main/res/layout/activity_setting.xml +++ b/app/src/main/res/layout/activity_setting.xml @@ -105,4 +105,28 @@ app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@+id/btnOk" app:layout_constraintTop_toBottomOf="@+id/etYOffset" /> + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 47c6930..a23247a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -7,4 +7,15 @@ 右上角 右下角 + + + 鐮刀雞雞 + Pepe分窩 + 吃草 + 露西亞 + 一色 + 百鬼 + 阿夸 + Gura + \ No newline at end of file