diff options
Diffstat (limited to 'app/src/main')
| -rw-r--r-- | app/src/main/java/app/olauncher/MainActivity.kt | 6 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/MainFragment.kt | 44 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/MainViewModel.kt | 7 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/Prefs.kt | 5 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/Utils.kt | 4 |
5 files changed, 31 insertions, 35 deletions
diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt index e3583c4..f4f35c1 100644 --- a/app/src/main/java/app/olauncher/MainActivity.kt +++ b/app/src/main/java/app/olauncher/MainActivity.kt @@ -25,15 +25,9 @@ class MainActivity : AppCompatActivity() { if (prefs.firstOpen) { prefs.firstOpen = false navController.navigate(R.id.action_mainFragment_to_welcomeFragment) - checkIfLauncherReset(prefs) } } - private fun checkIfLauncherReset(prefs: Prefs) { - val defaultLauncher = getDefaultLauncherPackage(this) - prefs.launcherReset = !defaultLauncher.contains(".") - } - override fun onUserLeaveHint() { backToHomeScreen() super.onUserLeaveHint() diff --git a/app/src/main/java/app/olauncher/MainFragment.kt b/app/src/main/java/app/olauncher/MainFragment.kt index df53d5b..2a60d8f 100644 --- a/app/src/main/java/app/olauncher/MainFragment.kt +++ b/app/src/main/java/app/olauncher/MainFragment.kt @@ -12,7 +12,6 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.Toast import androidx.core.os.bundleOf import androidx.fragment.app.Fragment import androidx.lifecycle.Observer @@ -111,6 +110,9 @@ class MainFragment : Fragment(), View.OnClickListener, View.OnLongClickListener if (it) setDefaultLauncher.visibility = View.GONE else setDefaultLauncher.visibility = View.VISIBLE }) + viewModel.launcherResetSuccessful.observe(viewLifecycleOwner, Observer<Boolean> { + showLauncherAppChooser(it) + }) } override fun onClick(view: View) { @@ -129,10 +131,26 @@ class MainFragment : Fragment(), View.OnClickListener, View.OnLongClickListener R.id.clock -> openAlarmApp() R.id.date -> openCalendar() - R.id.setDefaultLauncher -> showLauncherAppChooser() + R.id.setDefaultLauncher -> viewModel.resetDefaultLauncherApp(requireContext()) } } + private fun showLauncherAppChooser(resetSuccessful: Boolean) { + val intent: Intent + if (resetSuccessful) { + intent = Intent(Intent.ACTION_MAIN, null) + intent.addCategory(Intent.CATEGORY_HOME) + } else { + intent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) + Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS) else { + showToastLong(requireContext(), "Search for launcher or home app") + Intent(Settings.ACTION_SETTINGS) + } + } + startActivity(intent) + } + + override fun onLongClick(view: View): Boolean { when (view.id) { R.id.homeApp1 -> showAppList(Constants.FLAG_SET_HOME_APP_1) @@ -206,28 +224,6 @@ class MainFragment : Fragment(), View.OnClickListener, View.OnLongClickListener } } - private fun showLauncherAppChooser() { - if (prefs.launcherReset) { - resetDefaultLauncher(requireContext()) - val intent = Intent(Intent.ACTION_MAIN, null) - intent.addCategory(Intent.CATEGORY_HOME) - startActivity(intent) - return - } - // Open settings because default launcher cannot be reset programmatically - val intent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS) - } else { - Toast.makeText( - requireContext(), - "Search for launcher or home app", - Toast.LENGTH_LONG - ).show() - Intent(Settings.ACTION_SETTINGS) - } - startActivity(intent) - } - private fun getSwipeGestureListener(context: Context): View.OnTouchListener { return object : OnSwipeTouchListener(context) { override fun onSwipeLeft() { diff --git a/app/src/main/java/app/olauncher/MainViewModel.kt b/app/src/main/java/app/olauncher/MainViewModel.kt index 6d21648..ab1495e 100644 --- a/app/src/main/java/app/olauncher/MainViewModel.kt +++ b/app/src/main/java/app/olauncher/MainViewModel.kt @@ -1,6 +1,7 @@ package app.olauncher import android.app.Application +import android.content.Context import android.content.Intent import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.MutableLiveData @@ -15,6 +16,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { val refreshHome = MutableLiveData<Any>() val appList = MutableLiveData<List<AppModel>>() val isOlauncherDefault = MutableLiveData<Boolean>() + val launcherResetSuccessful = MutableLiveData<Boolean>() fun selectedApp(appModel: AppModel, flag: Int) { when (flag) { @@ -68,6 +70,11 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { fun isOlauncherDefault() { isOlauncherDefault.value = isOlauncherDefault(appContext) } + + fun resetDefaultLauncherApp(context: Context) { + resetDefaultLauncher(context) + launcherResetSuccessful.value = !getDefaultLauncherPackage(appContext).contains(".") + } } data class AppModelWithFlag( diff --git a/app/src/main/java/app/olauncher/Prefs.kt b/app/src/main/java/app/olauncher/Prefs.kt index e927ec5..e9a7bf7 100644 --- a/app/src/main/java/app/olauncher/Prefs.kt +++ b/app/src/main/java/app/olauncher/Prefs.kt @@ -7,7 +7,6 @@ class Prefs(context: Context) { private val PREFS_FILENAME = "app.olauncher" private val FIRST_OPEN = "FIRST_OPEN" - private val LAUNCHER_RESET = "LAUNCHER_RESET" private val APP_NAME_1 = "APP_NAME_1" private val APP_NAME_2 = "APP_NAME_2" @@ -24,10 +23,6 @@ class Prefs(context: Context) { get() = prefs.getBoolean(FIRST_OPEN, true) set(value) = prefs.edit().putBoolean(FIRST_OPEN, value).apply() - var launcherReset: Boolean - get() = prefs.getBoolean(LAUNCHER_RESET, false) - set(value) = prefs.edit().putBoolean(LAUNCHER_RESET, value).apply() - var appName1: String get() = prefs.getString(APP_NAME_1, "").toString() set(value) = prefs.edit().putString(APP_NAME_1, value).apply() diff --git a/app/src/main/java/app/olauncher/Utils.kt b/app/src/main/java/app/olauncher/Utils.kt index 880cfc5..66aedd1 100644 --- a/app/src/main/java/app/olauncher/Utils.kt +++ b/app/src/main/java/app/olauncher/Utils.kt @@ -8,10 +8,14 @@ import android.content.pm.PackageManager import android.graphics.Bitmap import android.net.Uri import android.provider.Settings +import android.widget.Toast import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import java.util.* +fun showToastLong(context: Context, message: String) { + Toast.makeText(context, message, Toast.LENGTH_LONG).show() +} suspend fun getAppsList(context: Context): MutableList<AppModel> { return withContext(Dispatchers.IO) { |
