mirror of
https://github.com/jrpie/Launcher.git
synced 2025-02-23 06:21:31 +01:00
Close Settings on inactivity
This commit is contained in:
parent
41ace0a30b
commit
a98884af74
6 changed files with 39 additions and 3 deletions
|
@ -61,6 +61,12 @@ class ChooseActivity : AppCompatActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
intendedSettingsPause = false
|
||||
finish()
|
||||
}
|
||||
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||
super.onActivityResult(requestCode, resultCode, data)
|
||||
if (requestCode == REQUEST_UNINSTALL) {
|
||||
|
|
|
@ -11,6 +11,7 @@ import com.finnmglas.launcher.settings.SectionsPagerAdapter
|
|||
import com.google.android.material.tabs.TabLayout
|
||||
import kotlinx.android.synthetic.main.activity_settings.*
|
||||
|
||||
var intendedSettingsPause = false // know when to close
|
||||
|
||||
class SettingsActivity : AppCompatActivity() {
|
||||
|
||||
|
@ -41,6 +42,7 @@ class SettingsActivity : AppCompatActivity() {
|
|||
// As older APIs somehow do not recognize the xml defined onClick
|
||||
activity_settings_close.setOnClickListener() { finish() }
|
||||
activity_settings_device_settings.setOnClickListener {
|
||||
intendedSettingsPause = true
|
||||
startActivityForResult(Intent(android.provider.Settings.ACTION_SETTINGS), 0)
|
||||
}
|
||||
}
|
||||
|
@ -58,6 +60,16 @@ class SettingsActivity : AppCompatActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
intendedSettingsPause = false
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
if (!intendedSettingsPause) finish()
|
||||
}
|
||||
|
||||
fun backHome(view: View) { finish() }
|
||||
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||
|
|
|
@ -15,6 +15,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
|
|||
import com.finnmglas.launcher.ChooseActivity
|
||||
import com.finnmglas.launcher.R
|
||||
import com.finnmglas.launcher.extern.*
|
||||
import com.finnmglas.launcher.intendedSettingsPause
|
||||
import com.finnmglas.launcher.settings.actions.ActionsRecyclerAdapter
|
||||
import kotlinx.android.synthetic.main.fragment_settings_apps.*
|
||||
|
||||
|
@ -57,6 +58,7 @@ class SettingsFragmentApps : Fragment() {
|
|||
fragment_settings_apps_btn.setOnClickListener{
|
||||
val intent = Intent(this.context, ChooseActivity::class.java)
|
||||
intent.putExtra("action", "view")
|
||||
intendedSettingsPause = true
|
||||
startActivity(intent)
|
||||
}
|
||||
fragment_settings_apps_install_btn.setOnClickListener{
|
||||
|
@ -65,6 +67,7 @@ class SettingsFragmentApps : Fragment() {
|
|||
Intent.ACTION_VIEW,
|
||||
Uri.parse("https://play.google.com/store/apps/"))
|
||||
startActivity(rateIntent)
|
||||
intendedSettingsPause = true
|
||||
} catch (e: ActivityNotFoundException) {
|
||||
Toast.makeText(this.context, getString(R.string.settings_toast_store_not_found), Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
|
|
|
@ -16,6 +16,7 @@ import android.view.ViewGroup
|
|||
import com.finnmglas.launcher.TutorialActivity
|
||||
import com.finnmglas.launcher.R
|
||||
import com.finnmglas.launcher.extern.*
|
||||
import com.finnmglas.launcher.intendedSettingsPause
|
||||
import kotlinx.android.synthetic.main.fragment_settings_meta.*
|
||||
|
||||
/** The 'Meta' Tab associated Fragment in Settings */
|
||||
|
@ -50,6 +51,7 @@ class SettingsFragmentMeta : Fragment() {
|
|||
// Button onClicks
|
||||
|
||||
fragment_settings_meta_select_launcher_btn.setOnClickListener {
|
||||
intendedSettingsPause = true
|
||||
// on newer sdk: choose launcher
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
val callHomeSettingIntent = Intent(Settings.ACTION_HOME_SETTINGS)
|
||||
|
@ -76,6 +78,7 @@ class SettingsFragmentMeta : Fragment() {
|
|||
}
|
||||
|
||||
fragment_settings_meta_view_tutorial_btn.setOnClickListener {
|
||||
intendedSettingsPause = true
|
||||
startActivity(Intent(this.context, TutorialActivity::class.java))
|
||||
}
|
||||
|
||||
|
@ -97,33 +100,36 @@ class SettingsFragmentMeta : Fragment() {
|
|||
|
||||
// Footer onClicks
|
||||
fragment_settings_meta_footer_github_icon.setOnClickListener {
|
||||
intendedSettingsPause = true
|
||||
openNewTabWindow(getString(R.string.settings_footer_repo), this.context!!)
|
||||
}
|
||||
// rate app
|
||||
fragment_settings_meta_footer_play_icon.setOnClickListener {
|
||||
try {
|
||||
val rateIntent = rateIntentForUrl("market://details")
|
||||
intendedSettingsPause = true
|
||||
startActivity(rateIntent)
|
||||
} catch (e: ActivityNotFoundException) {
|
||||
val rateIntent = rateIntentForUrl("https://play.google.com/store/apps/details")
|
||||
intendedSettingsPause = true
|
||||
startActivity(rateIntent)
|
||||
}
|
||||
}
|
||||
|
||||
/*fragment_settings_meta_footer_website_icon.setOnClickListener {
|
||||
openNewTabWindow(getString(R.string.settings_footer_web), this.context!!)
|
||||
}*/
|
||||
fragment_settings_meta_footer_globe_icon.setOnClickListener {
|
||||
intendedSettingsPause = true
|
||||
openNewTabWindow(getString(R.string.settings_footer_web), this.context!!)
|
||||
}
|
||||
|
||||
// contact developer
|
||||
fragment_settings_meta_contact_btn.setOnClickListener {
|
||||
intendedSettingsPause = true
|
||||
openNewTabWindow(getString(R.string.settings_meta_contact_url), context!!)
|
||||
}
|
||||
|
||||
// donate
|
||||
fragment_settings_meta_donate_btn.setOnClickListener {
|
||||
intendedSettingsPause = true
|
||||
openNewTabWindow(getString(R.string.settings_meta_donate_url), context!!)
|
||||
}
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ import androidx.core.content.ContextCompat
|
|||
import androidx.palette.graphics.Palette
|
||||
import com.finnmglas.launcher.R
|
||||
import com.finnmglas.launcher.extern.*
|
||||
import com.finnmglas.launcher.intendedSettingsPause
|
||||
import kotlinx.android.synthetic.main.fragment_settings_theme.*
|
||||
|
||||
/** The 'Theme' Tab associated Fragment in Settings */
|
||||
|
@ -49,14 +50,17 @@ class SettingsFragmentTheme : Fragment() {
|
|||
|
||||
// Theme changing buttons
|
||||
fragment_settings_theme_select_dark_btn.setOnClickListener {
|
||||
intendedSettingsPause = true
|
||||
saveTheme(context!!, "dark")
|
||||
activity!!.recreate()
|
||||
}
|
||||
fragment_settings_theme_select_finn_btn.setOnClickListener {
|
||||
intendedSettingsPause = true
|
||||
saveTheme(context!!, "finn")
|
||||
activity!!.recreate()
|
||||
}
|
||||
fragment_settings_theme_select_custom_btn.setOnClickListener {
|
||||
intendedSettingsPause = true
|
||||
// Request permission (on newer APIs)
|
||||
if (Build.VERSION.SDK_INT >= 23) {
|
||||
when {
|
||||
|
@ -72,6 +76,7 @@ class SettingsFragmentTheme : Fragment() {
|
|||
else letUserPickImage()
|
||||
}
|
||||
fragment_settings_theme_custom_examples_btn.setOnClickListener {
|
||||
intendedSettingsPause = true
|
||||
// Show example usage
|
||||
openNewTabWindow("https://github.com/finnmglas/Launcher/blob/master/docs/README.md", context!!)
|
||||
}
|
||||
|
@ -95,6 +100,7 @@ class SettingsFragmentTheme : Fragment() {
|
|||
intent.type = "image/*"
|
||||
intent.action = Intent.ACTION_PICK // other option: Intent.ACTION_GET_CONTENT
|
||||
if (crop) intent.putExtra("crop", "true")
|
||||
intendedSettingsPause = true
|
||||
startActivityForResult(intent, REQUEST_PICK_IMAGE)
|
||||
}
|
||||
|
||||
|
@ -126,6 +132,7 @@ class SettingsFragmentTheme : Fragment() {
|
|||
editor.apply()
|
||||
|
||||
saveTheme(context!!, "custom")
|
||||
intendedSettingsPause = true
|
||||
activity!!.recreate()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ import com.finnmglas.launcher.ChooseActivity
|
|||
import com.finnmglas.launcher.R
|
||||
import com.finnmglas.launcher.extern.FontAwesome
|
||||
import com.finnmglas.launcher.extern.*
|
||||
import com.finnmglas.launcher.intendedSettingsPause
|
||||
import java.lang.Exception
|
||||
|
||||
|
||||
|
@ -101,6 +102,7 @@ class ActionsRecyclerAdapter(val activity: Activity):
|
|||
val intent = Intent(activity, ChooseActivity::class.java)
|
||||
intent.putExtra("action", "pick")
|
||||
intent.putExtra("forApp", forAction) // for which action we choose the app
|
||||
intendedSettingsPause = true
|
||||
activity.startActivityForResult(intent, REQUEST_CHOOSE_APP)
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue