diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/helper/AppHelper.kt b/app/src/main/java/com/github/droidworksstudio/launcher/helper/AppHelper.kt
index 88a272b..cc02f9a 100644
--- a/app/src/main/java/com/github/droidworksstudio/launcher/helper/AppHelper.kt
+++ b/app/src/main/java/com/github/droidworksstudio/launcher/helper/AppHelper.kt
@@ -24,14 +24,11 @@ import android.view.WindowManager
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.widget.LinearLayoutCompat
-import androidx.fragment.app.Fragment
-import androidx.navigation.fragment.findNavController
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.github.droidworksstudio.launcher.Constants
import com.github.droidworksstudio.launcher.R
import com.github.droidworksstudio.launcher.accessibility.MyAccessibilityService
import com.github.droidworksstudio.launcher.data.entities.AppInfo
-import com.github.droidworksstudio.launcher.listener.OnSwipeTouchListener
import com.github.droidworksstudio.launcher.ui.activities.FakeHomeActivity
import java.util.Calendar
import java.util.Date
@@ -42,6 +39,14 @@ import kotlin.math.sqrt
class AppHelper @Inject constructor() {
fun resetDefaultLauncher(context: Context) {
+ val manufacturer = Build.MANUFACTURER.lowercase()
+ when (manufacturer) {
+ "google", "essential" -> runningStockAndroid(context)
+ else -> notRunningStockAndroid(context)
+ }
+ }
+
+ private fun runningStockAndroid(context: Context) {
try {
val packageManager = context.packageManager
val componentName = ComponentName(context, FakeHomeActivity::class.java)
@@ -63,18 +68,20 @@ class AppHelper @Inject constructor() {
)
} catch (e: Exception) {
e.printStackTrace()
- // Additional step to open the launcher settings if the first method fails
+ }
+ }
+
+ private fun notRunningStockAndroid(context: Context) {
+ try {
+ val intent = Intent("android.settings.HOME_SETTINGS")
+ context.startActivity(intent)
+ } catch (e: ActivityNotFoundException) {
+ // Fallback to general settings if specific launcher settings are not found
try {
- val intent = Intent("android.settings.HOME_SETTINGS")
+ val intent = Intent(Settings.ACTION_SETTINGS)
context.startActivity(intent)
- } catch (e: ActivityNotFoundException) {
- // Fallback to general settings if specific launcher settings are not found
- try {
- val intent = Intent(Settings.ACTION_SETTINGS)
- context.startActivity(intent)
- } catch (e: Exception) {
- e.printStackTrace()
- }
+ } catch (e: Exception) {
+ e.printStackTrace()
}
}
}
@@ -119,11 +126,21 @@ class AppHelper @Inject constructor() {
fun dayNightMod(context: Context, view: View) {
when (context.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK) {
Configuration.UI_MODE_NIGHT_YES -> {
- view.setBackgroundColor(context.resources.getColor(R.color.blackTrans25, context.theme))
+ view.setBackgroundColor(
+ context.resources.getColor(
+ R.color.blackTrans25,
+ context.theme
+ )
+ )
}
Configuration.UI_MODE_NIGHT_NO -> {
- view.setBackgroundColor(context.resources.getColor(R.color.whiteTrans25, context.theme))
+ view.setBackgroundColor(
+ context.resources.getColor(
+ R.color.whiteTrans25,
+ context.theme
+ )
+ )
}
}
}
@@ -149,6 +166,7 @@ class AppHelper @Inject constructor() {
showToast(context, "Failed to open the application")
}
}
+
fun launchClock(context: Context) {
try {
val intent = Intent(AlarmClock.ACTION_SHOW_ALARMS)
@@ -190,7 +208,7 @@ class AppHelper @Inject constructor() {
} catch (e: ActivityNotFoundException) {
// Digital Wellbeing app is not installed or cannot be opened
// Handle this case as needed
- showToast(context,"Digital Wellbeing is not available on this device.")
+ showToast(context, "Digital Wellbeing is not available on this device.")
}
}
@@ -239,7 +257,7 @@ class AppHelper @Inject constructor() {
}
- fun showToast(context: Context,message: String) {
+ fun showToast(context: Context, message: String) {
Toast.makeText(context, message, Toast.LENGTH_SHORT).show()
}
@@ -273,33 +291,39 @@ class AppHelper @Inject constructor() {
windowManager.defaultDisplay.getMetrics(metrics)
val widthInches = metrics.widthPixels / metrics.xdpi
val heightInches = metrics.heightPixels / metrics.ydpi
- val diagonalInches = sqrt(widthInches.toDouble().pow(2.0) + heightInches.toDouble().pow(2.0))
+ val diagonalInches =
+ sqrt(widthInches.toDouble().pow(2.0) + heightInches.toDouble().pow(2.0))
if (diagonalInches >= 7.0) return true
return false
}
fun wordOfTheDay(resources: Resources): String {
- val dailyWordsArray = resources.getStringArray(R.array.settings_appearance_daily_word_default)
+ val dailyWordsArray =
+ resources.getStringArray(R.array.settings_appearance_daily_word_default)
val dayOfYear = Calendar.getInstance().get(Calendar.DAY_OF_YEAR)
- val wordIndex = (dayOfYear - 1) % dailyWordsArray.size // Subtracting 1 to align with array indexing
+ val wordIndex =
+ (dayOfYear - 1) % dailyWordsArray.size // Subtracting 1 to align with array indexing
return dailyWordsArray[wordIndex]
}
- fun shareAppButton(context: Context){
+ fun shareAppButton(context: Context) {
val shareIntent = Intent(Intent.ACTION_SEND)
shareIntent.type = "text/plain"
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Share Application")
- shareIntent.putExtra(Intent.EXTRA_TEXT, "https://f-droid.org/packages/" + context.packageName)
+ shareIntent.putExtra(
+ Intent.EXTRA_TEXT,
+ "https://f-droid.org/packages/" + context.packageName
+ )
context.startActivity(Intent.createChooser(shareIntent, "Share Application"))
}
- fun githubButton(context: Context){
+ fun githubButton(context: Context) {
val uri = Uri.parse("https://github.com/DroidWorksStudio/EasyLauncher")
val intent = Intent(Intent.ACTION_VIEW, uri)
context.startActivity(intent)
}
- fun feedbackButton(context: Context){
+ fun feedbackButton(context: Context) {
val emailIntent = Intent(Intent.ACTION_SENDTO)
emailIntent.data = Uri.parse("mailto:droidworksstuido@063240.xyz")
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Easy Launcher")
@@ -336,6 +360,7 @@ class AppHelper @Inject constructor() {
}
builder.show()
}
+
else -> {
return
}
diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/drawer/DrawFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/drawer/DrawFragment.kt
index 3a5d46d..8bfcc13 100644
--- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/drawer/DrawFragment.kt
+++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/drawer/DrawFragment.kt
@@ -143,7 +143,7 @@ class DrawFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener,
@SuppressLint("ClickableViewAccessibility")
private fun observeSwipeTouchListener() {
- binding.touchArea.setOnTouchListener(getSwipeGestureListener(context))
+ binding.mainView.setOnTouchListener(getSwipeGestureListener(context))
}
private fun getSwipeGestureListener(context: Context): View.OnTouchListener {
diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteFragment.kt
index 2839bdb..d0d7589 100644
--- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteFragment.kt
+++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/favorite/FavoriteFragment.kt
@@ -13,7 +13,6 @@ import androidx.annotation.RequiresApi
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope
-import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.StaggeredGridLayoutManager
@@ -25,7 +24,6 @@ import com.github.droidworksstudio.launcher.helper.FingerprintHelper
import com.github.droidworksstudio.launcher.helper.PreferenceHelper
import com.github.droidworksstudio.launcher.listener.OnItemClickedListener
import com.github.droidworksstudio.launcher.listener.OnItemMoveListener
-import com.github.droidworksstudio.launcher.listener.OnSwipeTouchListener
import com.github.droidworksstudio.launcher.viewmodel.AppViewModel
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.launch
@@ -77,7 +75,6 @@ class FavoriteFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener
context = requireContext()
setupRecyclerView()
- observeSwipeTouchListener()
observeFavorite()
observeHomeAppOrder()
}
@@ -91,20 +88,6 @@ class FavoriteFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener
}
}
- @SuppressLint("ClickableViewAccessibility")
- private fun observeSwipeTouchListener() {
- binding.touchArea.setOnTouchListener(getSwipeGestureListener(context))
- }
-
- private fun getSwipeGestureListener(context: Context): View.OnTouchListener {
- return object : OnSwipeTouchListener(context) {
- override fun onSwipeLeft() {
- super.onSwipeLeft()
- findNavController().popBackStack()
- }
- }
- }
-
private fun handleDragAndDrop(oldPosition: Int, newPosition: Int) {
val items = favoriteAdapter.currentList.toMutableList()
Collections.swap(items, oldPosition, newPosition)
diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/hidden/HiddenFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/hidden/HiddenFragment.kt
index 08460e8..399f2b2 100644
--- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/hidden/HiddenFragment.kt
+++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/hidden/HiddenFragment.kt
@@ -12,7 +12,6 @@ import androidx.annotation.RequiresApi
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope
-import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.StaggeredGridLayoutManager
import com.github.droidworksstudio.launcher.R
import com.github.droidworksstudio.launcher.data.entities.AppInfo
@@ -20,7 +19,6 @@ import com.github.droidworksstudio.launcher.databinding.FragmentHiddenBinding
import com.github.droidworksstudio.launcher.helper.AppHelper
import com.github.droidworksstudio.launcher.helper.FingerprintHelper
import com.github.droidworksstudio.launcher.listener.OnItemClickedListener
-import com.github.droidworksstudio.launcher.listener.OnSwipeTouchListener
import com.github.droidworksstudio.launcher.ui.bottomsheetdialog.AppInfoBottomSheetFragment
import com.github.droidworksstudio.launcher.viewmodel.AppViewModel
import dagger.hilt.android.AndroidEntryPoint
@@ -66,7 +64,6 @@ class HiddenFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener,
context = requireContext()
setupRecyclerView()
- observeSwipeTouchListener()
observeHiddenApps()
}
@@ -79,20 +76,6 @@ class HiddenFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener,
}
- @SuppressLint("ClickableViewAccessibility")
- private fun observeSwipeTouchListener() {
- binding.touchArea.setOnTouchListener(getSwipeGestureListener(context))
- }
-
- private fun getSwipeGestureListener(context: Context): View.OnTouchListener {
- return object : OnSwipeTouchListener(context) {
- override fun onSwipeLeft() {
- super.onSwipeLeft()
- findNavController().popBackStack()
- }
- }
- }
-
private fun observeHiddenApps() {
viewModel.compareInstalledAppInfo()
@Suppress("DEPRECATION")
diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt
index af89d4b..5652018 100644
--- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt
+++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt
@@ -113,7 +113,7 @@ class HomeFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener,
@SuppressLint("ClickableViewAccessibility")
private fun initSwipeTouchListener() {
- binding.touchArea.setOnTouchListener(getSwipeGestureListener(context))
+ binding.nestScrollView.setOnTouchListener(getSwipeGestureListener(context))
binding.clock.setOnClickListener { appHelper.launchClock(context) }
binding.date.setOnClickListener { appHelper.launchCalendar(context) }
diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/settings/SettingsFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/settings/SettingsFragment.kt
index 142bf50..0093e94 100644
--- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/settings/SettingsFragment.kt
+++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/settings/SettingsFragment.kt
@@ -3,7 +3,6 @@ package com.github.droidworksstudio.launcher.ui.settings
import android.annotation.SuppressLint
import android.content.Intent
import android.os.Bundle
-import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@@ -63,8 +62,13 @@ class SettingsFragment : Fragment(), ScrollEventListener {
initializeInjectedDependencies()
observeClickListener()
- val packageInfo = requireContext().packageManager.getPackageInfo(requireContext().packageName, 0)
- binding.versionInfo.text = getString(R.string.settings_version, getString(R.string.app_name), packageInfo.versionName)
+ val packageInfo =
+ requireContext().packageManager.getPackageInfo(requireContext().packageName, 0)
+ binding.versionInfo.text = getString(
+ R.string.settings_version,
+ getString(R.string.app_name),
+ packageInfo.versionName
+ )
}
@SuppressLint("SetTextI18n")
@@ -142,12 +146,20 @@ class SettingsFragment : Fragment(), ScrollEventListener {
binding.backupView.setOnClickListener {
appHelper.backupSharedPreferences(requireContext())
- Toast.makeText(requireContext(), getString(R.string.settings_reload_app_backup), Toast.LENGTH_SHORT).show()
+ Toast.makeText(
+ requireContext(),
+ getString(R.string.settings_reload_app_backup),
+ Toast.LENGTH_SHORT
+ ).show()
}
binding.restoreView.setOnClickListener {
appHelper.restoreSharedPreferences(requireContext())
- Toast.makeText(requireContext(), getString(R.string.settings_reload_app_restore), Toast.LENGTH_SHORT).show()
+ Toast.makeText(
+ requireContext(),
+ getString(R.string.settings_reload_app_restore),
+ Toast.LENGTH_SHORT
+ ).show()
restartApp()
}
}
@@ -178,7 +190,10 @@ class SettingsFragment : Fragment(), ScrollEventListener {
}
binding.gesturesLockSwitchCompat.setOnCheckedChangeListener { _, isChecked ->
- appHelper.enableAppAsAccessibilityService(requireContext(), preferenceHelper.tapLockScreen)
+ appHelper.enableAppAsAccessibilityService(
+ requireContext(),
+ preferenceHelper.tapLockScreen
+ )
preferenceViewModel.setDoubleTapLock(isChecked)
}
diff --git a/app/src/main/res/layout/content_settings.xml b/app/src/main/res/layout/content_settings.xml
index f9b504c..19064c4 100644
--- a/app/src/main/res/layout/content_settings.xml
+++ b/app/src/main/res/layout/content_settings.xml
@@ -15,6 +15,6 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
- app:navGraph="@navigation/settings_graph" />
+ app:navGraph="@navigation/nav_graph" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_draw.xml b/app/src/main/res/layout/fragment_draw.xml
index 7894f61..11eedbb 100644
--- a/app/src/main/res/layout/fragment_draw.xml
+++ b/app/src/main/res/layout/fragment_draw.xml
@@ -40,7 +40,7 @@
app:queryBackground="@null"
app:searchIcon="@null"
app:queryHint="@string/search"
- tools:ignore="VisualLintTextFieldSize"/>
+ tools:ignore="VisualLintTextFieldSize" />
@@ -51,13 +51,6 @@
-
-
-
-
diff --git a/app/src/main/res/layout/fragment_hidden.xml b/app/src/main/res/layout/fragment_hidden.xml
index da33aa4..440cc4a 100644
--- a/app/src/main/res/layout/fragment_hidden.xml
+++ b/app/src/main/res/layout/fragment_hidden.xml
@@ -37,11 +37,4 @@
android:layout_marginTop="92dp"
app:layout_constraintTop_toBottomOf="@id/topTextView" />
-
-
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index df19ea4..5bbaec7 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -1,18 +1,15 @@
-
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ android:layout_height="wrap_content" />
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml
index eaeedc3..8d78a2b 100644
--- a/app/src/main/res/layout/fragment_settings.xml
+++ b/app/src/main/res/layout/fragment_settings.xml
@@ -32,7 +32,7 @@
android:layout_marginTop="48dp"
android:text="@string/settings_name"
android:textSize="@dimen/text_super_large"
- style="@style/TextDefaultStyle"/>
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
@@ -125,7 +125,7 @@
android:layout_margin="20dp"
android:text="@string/settings_title_home_behavior_preferences"
android:textSize="@dimen/text_super_large"
- style="@style/TextDefaultStyle"/>
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
@@ -487,7 +487,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded"
- style="@style/TextDefaultStyle"/>
+ style="@style/TextDefaultStyle" />
@@ -576,7 +576,7 @@
android:layout_margin="20dp"
android:text="@string/settings_title_gestures"
android:textSize="@dimen/text_super_large"
- style="@style/TextDefaultStyle"/>
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ android:scaleX="0.7" />
@@ -627,7 +627,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded"
- style="@style/TextDefaultStyle"/>
+ style="@style/TextDefaultStyle" />
+ android:scaleX="0.7" />
@@ -658,7 +658,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded"
- style="@style/TextDefaultStyle"/>
+ style="@style/TextDefaultStyle" />
+ android:scaleX="0.7" />
@@ -685,7 +685,7 @@
android:layout_margin="20dp"
android:text="@string/settings_title_backups"
android:textSize="@dimen/text_super_large"
- style="@style/TextDefaultStyle"/>
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ tools:ignore="MissingConstraints">
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
+ style="@style/TextDefaultStyle" />
@@ -777,11 +777,4 @@
-
-
\ No newline at end of file
diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml
index 64f6cca..d6cd2c6 100644
--- a/app/src/main/res/navigation/nav_graph.xml
+++ b/app/src/main/res/navigation/nav_graph.xml
@@ -44,8 +44,23 @@
+ android:label="@string/home_fragment_label"
+ tools:layout="@layout/fragment_settings">
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/navigation/settings_graph.xml b/app/src/main/res/navigation/settings_graph.xml
deleted file mode 100644
index dfcb206..0000000
--- a/app/src/main/res/navigation/settings_graph.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file