From dd3b2f5f1151bde601a8b82e02243caf7118ecfa Mon Sep 17 00:00:00 2001 From: Raymond Yang Date: Thu, 3 Aug 2023 11:16:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86=E5=A5=97=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 4 +- .../floatingwindow/{ => ui}/MainActivity.kt | 29 +++++++------- .../{ => ui}/SettingActivity.kt | 40 +++++++++++-------- .../FloatingWindowHelperUtils.kt} | 6 ++- .../{ => utils}/PreferenceUtil.kt | 4 +- app/src/main/res/drawable/ic_value_add.xml | 5 +++ app/src/main/res/drawable/ic_value_minus.xml | 5 +++ app/src/main/res/layout/activity_main.xml | 2 +- app/src/main/res/layout/activity_setting.xml | 2 +- 9 files changed, 60 insertions(+), 37 deletions(-) rename app/src/main/java/com/ray650128/floatingwindow/{ => ui}/MainActivity.kt (73%) rename app/src/main/java/com/ray650128/floatingwindow/{ => ui}/SettingActivity.kt (61%) rename app/src/main/java/com/ray650128/floatingwindow/{FloatingWindowHelper.kt => utils/FloatingWindowHelperUtils.kt} (96%) rename app/src/main/java/com/ray650128/floatingwindow/{ => utils}/PreferenceUtil.kt (90%) create mode 100644 app/src/main/res/drawable/ic_value_add.xml create mode 100644 app/src/main/res/drawable/ic_value_minus.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 26fd6e0..16f3fe6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,11 +17,11 @@ android:theme="@style/Theme.EasyWindowTest" tools:targetApi="31"> diff --git a/app/src/main/java/com/ray650128/floatingwindow/MainActivity.kt b/app/src/main/java/com/ray650128/floatingwindow/ui/MainActivity.kt similarity index 73% rename from app/src/main/java/com/ray650128/floatingwindow/MainActivity.kt rename to app/src/main/java/com/ray650128/floatingwindow/ui/MainActivity.kt index b1b8841..ad22bc9 100644 --- a/app/src/main/java/com/ray650128/floatingwindow/MainActivity.kt +++ b/app/src/main/java/com/ray650128/floatingwindow/ui/MainActivity.kt @@ -1,4 +1,4 @@ -package com.ray650128.floatingwindow +package com.ray650128.floatingwindow.ui import android.app.Activity import android.content.Context @@ -8,6 +8,7 @@ import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.provider.Settings import androidx.activity.result.contract.ActivityResultContracts +import com.ray650128.floatingwindow.utils.FloatingWindowHelperUtils import com.ray650128.floatingwindow.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { @@ -23,8 +24,8 @@ class MainActivity : AppCompatActivity() { if (!Settings.canDrawOverlays(mContext)) { binding.btnStep1.isEnabled = !Settings.canDrawOverlays(mContext) binding.btnStep2.isEnabled = Settings.canDrawOverlays(mContext) - binding.btnStep3.isEnabled = FloatingWindowHelper.isShowing - binding.btnSetting.isEnabled = FloatingWindowHelper.isShowing + binding.btnStep3.isEnabled = FloatingWindowHelperUtils.isShowing + binding.btnSetting.isEnabled = FloatingWindowHelperUtils.isShowing return@registerForActivityResult } showOverlayWindow() @@ -63,23 +64,23 @@ class MainActivity : AppCompatActivity() { binding.apply { btnStep1.isEnabled = !Settings.canDrawOverlays(mContext) - btnStep2.isEnabled = Settings.canDrawOverlays(mContext) && !FloatingWindowHelper.isShowing - btnStep3.isEnabled = FloatingWindowHelper.isShowing - btnSetting.isEnabled = FloatingWindowHelper.isShowing + btnStep2.isEnabled = Settings.canDrawOverlays(mContext) && !FloatingWindowHelperUtils.isShowing + btnStep3.isEnabled = FloatingWindowHelperUtils.isShowing + btnSetting.isEnabled = FloatingWindowHelperUtils.isShowing } } private fun showOverlayWindow() { - FloatingWindowHelper.show() - binding.btnStep2.isEnabled = !FloatingWindowHelper.isShowing - binding.btnStep3.isEnabled = FloatingWindowHelper.isShowing - binding.btnSetting.isEnabled = FloatingWindowHelper.isShowing + FloatingWindowHelperUtils.show() + binding.btnStep2.isEnabled = !FloatingWindowHelperUtils.isShowing + binding.btnStep3.isEnabled = FloatingWindowHelperUtils.isShowing + binding.btnSetting.isEnabled = FloatingWindowHelperUtils.isShowing } private fun hideOverlayWindow() { - FloatingWindowHelper.hide() - binding.btnStep2.isEnabled = !FloatingWindowHelper.isShowing - binding.btnStep3.isEnabled = FloatingWindowHelper.isShowing - binding.btnSetting.isEnabled = FloatingWindowHelper.isShowing + FloatingWindowHelperUtils.hide() + binding.btnStep2.isEnabled = !FloatingWindowHelperUtils.isShowing + binding.btnStep3.isEnabled = FloatingWindowHelperUtils.isShowing + binding.btnSetting.isEnabled = FloatingWindowHelperUtils.isShowing } } \ 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/ui/SettingActivity.kt similarity index 61% rename from app/src/main/java/com/ray650128/floatingwindow/SettingActivity.kt rename to app/src/main/java/com/ray650128/floatingwindow/ui/SettingActivity.kt index c35334a..277af04 100644 --- a/app/src/main/java/com/ray650128/floatingwindow/SettingActivity.kt +++ b/app/src/main/java/com/ray650128/floatingwindow/ui/SettingActivity.kt @@ -1,10 +1,12 @@ -package com.ray650128.floatingwindow +package com.ray650128.floatingwindow.ui import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.View import android.widget.AdapterView import androidx.core.widget.addTextChangedListener +import com.ray650128.floatingwindow.utils.FloatingWindowHelperUtils +import com.ray650128.floatingwindow.utils.PreferenceUtil import com.ray650128.floatingwindow.databinding.ActivitySettingBinding class SettingActivity : AppCompatActivity() { @@ -14,9 +16,9 @@ class SettingActivity : AppCompatActivity() { private var xOffset = 0 private var yOffset = 0 - private var windowGravity = FloatingWindowHelper.GravityType.TOP_LEFT + private var windowGravity = FloatingWindowHelperUtils.GravityType.TOP_LEFT - private var windowIcon = FloatingWindowHelper.IconType.CHICKEN + private var windowIcon = FloatingWindowHelperUtils.IconType.CHICKEN override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -25,16 +27,16 @@ class SettingActivity : AppCompatActivity() { xOffset = PreferenceUtil.xOffset yOffset = PreferenceUtil.yOffset - windowGravity = FloatingWindowHelper.GravityType.fromInt(PreferenceUtil.gravity) - windowIcon = FloatingWindowHelper.IconType.fromInt(PreferenceUtil.icon) + windowGravity = FloatingWindowHelperUtils.GravityType.fromInt(PreferenceUtil.gravity) + windowIcon = FloatingWindowHelperUtils.IconType.fromInt(PreferenceUtil.icon) binding.apply { spGravity.apply { setSelection(PreferenceUtil.gravity) onItemSelectedListener = object : AdapterView.OnItemSelectedListener { override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) { - windowGravity = FloatingWindowHelper.GravityType.fromInt(position) - FloatingWindowHelper.setGravity(windowGravity) + windowGravity = FloatingWindowHelperUtils.GravityType.fromInt(position) + FloatingWindowHelperUtils.setGravity(windowGravity) } override fun onNothingSelected(parent: AdapterView<*>?) {} @@ -42,11 +44,11 @@ class SettingActivity : AppCompatActivity() { } spIcon.apply { - setSelection(FloatingWindowHelper.IconType.getIndex(PreferenceUtil.icon) ) + setSelection(FloatingWindowHelperUtils.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) + windowIcon = FloatingWindowHelperUtils.IconType.fromIndex(position) + FloatingWindowHelperUtils.setIcon(windowIcon) } override fun onNothingSelected(parent: AdapterView<*>?) {} @@ -58,7 +60,7 @@ class SettingActivity : AppCompatActivity() { addTextChangedListener { if (it.isNullOrEmpty()) return@addTextChangedListener xOffset = it.toString().toIntOrNull() ?: return@addTextChangedListener - FloatingWindowHelper.setXOffset(xOffset) + FloatingWindowHelperUtils.setXOffset(xOffset) } } @@ -67,7 +69,7 @@ class SettingActivity : AppCompatActivity() { addTextChangedListener { if (it.isNullOrEmpty()) return@addTextChangedListener yOffset = it.toString().toIntOrNull() ?: return@addTextChangedListener - FloatingWindowHelper.setYOffset(yOffset) + FloatingWindowHelperUtils.setYOffset(yOffset) } } @@ -80,10 +82,16 @@ class SettingActivity : AppCompatActivity() { } btnCancel.setOnClickListener { - FloatingWindowHelper.setXOffset(PreferenceUtil.xOffset) - FloatingWindowHelper.setYOffset(PreferenceUtil.yOffset) - FloatingWindowHelper.setGravity(FloatingWindowHelper.GravityType.fromInt(PreferenceUtil.gravity)) - FloatingWindowHelper.setIcon(FloatingWindowHelper.IconType.fromInt(PreferenceUtil.icon)) + FloatingWindowHelperUtils.setXOffset(PreferenceUtil.xOffset) + FloatingWindowHelperUtils.setYOffset(PreferenceUtil.yOffset) + FloatingWindowHelperUtils.setGravity( + FloatingWindowHelperUtils.GravityType.fromInt( + PreferenceUtil.gravity + ) + ) + FloatingWindowHelperUtils.setIcon( + FloatingWindowHelperUtils.IconType.fromInt( + PreferenceUtil.icon)) finish() } } diff --git a/app/src/main/java/com/ray650128/floatingwindow/FloatingWindowHelper.kt b/app/src/main/java/com/ray650128/floatingwindow/utils/FloatingWindowHelperUtils.kt similarity index 96% rename from app/src/main/java/com/ray650128/floatingwindow/FloatingWindowHelper.kt rename to app/src/main/java/com/ray650128/floatingwindow/utils/FloatingWindowHelperUtils.kt index ab31256..8ff83a7 100644 --- a/app/src/main/java/com/ray650128/floatingwindow/FloatingWindowHelper.kt +++ b/app/src/main/java/com/ray650128/floatingwindow/utils/FloatingWindowHelperUtils.kt @@ -1,11 +1,13 @@ -package com.ray650128.floatingwindow +package com.ray650128.floatingwindow.utils import android.view.Gravity import android.view.MotionEvent import android.view.WindowManager import com.hjq.window.EasyWindow +import com.ray650128.floatingwindow.MyApp +import com.ray650128.floatingwindow.R -object FloatingWindowHelper { +object FloatingWindowHelperUtils { private var _isShowing: Boolean = false val isShowing: Boolean diff --git a/app/src/main/java/com/ray650128/floatingwindow/PreferenceUtil.kt b/app/src/main/java/com/ray650128/floatingwindow/utils/PreferenceUtil.kt similarity index 90% rename from app/src/main/java/com/ray650128/floatingwindow/PreferenceUtil.kt rename to app/src/main/java/com/ray650128/floatingwindow/utils/PreferenceUtil.kt index 6dcd8b0..f4a9390 100644 --- a/app/src/main/java/com/ray650128/floatingwindow/PreferenceUtil.kt +++ b/app/src/main/java/com/ray650128/floatingwindow/utils/PreferenceUtil.kt @@ -1,6 +1,8 @@ -package com.ray650128.floatingwindow +package com.ray650128.floatingwindow.utils import android.content.Context +import com.ray650128.floatingwindow.MyApp +import com.ray650128.floatingwindow.R /** * Shared Preferences 工具類別 diff --git a/app/src/main/res/drawable/ic_value_add.xml b/app/src/main/res/drawable/ic_value_add.xml new file mode 100644 index 0000000..89633bb --- /dev/null +++ b/app/src/main/res/drawable/ic_value_add.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_value_minus.xml b/app/src/main/res/drawable/ic_value_minus.xml new file mode 100644 index 0000000..3e0b776 --- /dev/null +++ b/app/src/main/res/drawable/ic_value_minus.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4b8afa4..4426c91 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".MainActivity"> + tools:context=".ui.MainActivity"> + tools:context=".ui.SettingActivity">