summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorTanuj M <thetanuj@hotmail.com>2020-10-09 01:28:53 +0530
committerTanuj M <thetanuj@hotmail.com>2020-10-09 01:28:53 +0530
commit2edfdd46dfd8aaf3c22223b7bdbd3b258d8fb4e2 (patch)
treec700fedfb050e41db532184a74780cdb4d0bba72 /app/src
parent12dc38722806d2e488d0b21e3b52a0ec5b1ee709 (diff)
downloadSidePhOnelauncher-2edfdd46dfd8aaf3c22223b7bdbd3b258d8fb4e2.tar.gz
SidePhOnelauncher-2edfdd46dfd8aaf3c22223b7bdbd3b258d8fb4e2.tar.bz2
SidePhOnelauncher-2edfdd46dfd8aaf3c22223b7bdbd3b258d8fb4e2.zip
Implmented double tap lock workaround for Android 10+ devices
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/app/olauncher/MainActivity.kt19
-rw-r--r--app/src/main/java/app/olauncher/data/Constants.kt1
-rw-r--r--app/src/main/java/app/olauncher/ui/HomeFragment.kt38
-rw-r--r--app/src/main/java/app/olauncher/ui/SettingsFragment.kt11
-rw-r--r--app/src/main/res/layout/activity_main.xml5
-rw-r--r--app/src/main/res/layout/fragment_home.xml24
-rw-r--r--app/src/main/res/layout/fragment_settings.xml1
-rw-r--r--app/src/main/res/values/strings.xml5
8 files changed, 83 insertions, 21 deletions
diff --git a/app/src/main/java/app/olauncher/MainActivity.kt b/app/src/main/java/app/olauncher/MainActivity.kt
index a513112..e7c9016 100644
--- a/app/src/main/java/app/olauncher/MainActivity.kt
+++ b/app/src/main/java/app/olauncher/MainActivity.kt
@@ -46,7 +46,7 @@ class MainActivity : AppCompatActivity() {
window.addFlags(FLAG_LAYOUT_NO_LIMITS)
okGotIt.setOnClickListener {
- lockEnabledLayout.visibility = View.GONE
+ messageLayout.visibility = View.GONE
showToastLong(
this,
"Double tap to lock. Please disable this before uninstalling Olauncher."
@@ -103,6 +103,11 @@ class MainActivity : AppCompatActivity() {
}
}
+ private fun showMessage(message: String) {
+ messageTextView.text = message
+ messageLayout.visibility = View.VISIBLE
+ }
+
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
@@ -110,20 +115,18 @@ class MainActivity : AppCompatActivity() {
if (resultCode == Activity.RESULT_OK) {
Prefs(this).lockModeOn = true
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P)
- lockEnabledLayout.visibility = View.VISIBLE
+ showMessage(getString(R.string.double_tap_lock_is_enabled_message))
else
showToastLong(
this,
"Double tap to lock. Please disable this before uninstalling Olauncher."
)
}
- return
+ }
+
+ Constants.REQUEST_CODE_EDIT_SETTINGS -> {
+ showMessage(getString(R.string.triple_tap_lock_message))
}
}
-// if (!Settings.System.canWrite(this)) {
-// val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS)
-// intent.data = Uri.parse("package:$packageName")
-// startActivityForResult(intent, 123123)
-// }
}
} \ No newline at end of file
diff --git a/app/src/main/java/app/olauncher/data/Constants.kt b/app/src/main/java/app/olauncher/data/Constants.kt
index 4823dea..9820f2a 100644
--- a/app/src/main/java/app/olauncher/data/Constants.kt
+++ b/app/src/main/java/app/olauncher/data/Constants.kt
@@ -16,6 +16,7 @@ object Constants {
const val FLAG_SET_SWIPE_RIGHT_APP = 12
const val REQUEST_CODE_ENABLE_ADMIN = 666
+ const val REQUEST_CODE_EDIT_SETTINGS = 777
const val URL_OLAUNCHER_PRIVACY = "https://olauncher.flycricket.io/privacy.html"
const val URL_OLAUNCHER_PLAY_STORE = "https://play.google.com/store/apps/details?id=app.olauncher"
diff --git a/app/src/main/java/app/olauncher/ui/HomeFragment.kt b/app/src/main/java/app/olauncher/ui/HomeFragment.kt
index 6ac4513..101ae08 100644
--- a/app/src/main/java/app/olauncher/ui/HomeFragment.kt
+++ b/app/src/main/java/app/olauncher/ui/HomeFragment.kt
@@ -5,13 +5,13 @@ import android.app.admin.DevicePolicyManager
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
+import android.os.Build
import android.os.Bundle
import android.provider.AlarmClock
import android.provider.MediaStore
+import android.provider.Settings
import android.util.Log
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
+import android.view.*
import android.widget.TextView
import androidx.core.os.bundleOf
import androidx.fragment.app.Fragment
@@ -54,12 +54,27 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener
setHomeAlignment(prefs.homeAlignment)
initSwipeTouchListener()
initClickListeners()
+ blackOverlay.setOnClickListener {
+
+ }
}
override fun onResume() {
super.onResume()
+ blackOverlay.visibility = View.GONE
populateHomeApps(false)
viewModel.isOlauncherDefault()
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+ requireActivity().window.insetsController?.show(WindowInsets.Type.navigationBars())
+ } else {
+ @Suppress("DEPRECATION")
+ requireActivity().window.addFlags(
+ WindowManager.LayoutParams.FLAG_FULLSCREEN
+ )
+ }
+
+ if (Settings.System.canWrite(requireContext()))
+ Settings.System.putInt(requireContext().contentResolver, Settings.System.SCREEN_OFF_TIMEOUT, 30000);
}
override fun onClick(view: View) {
@@ -377,7 +392,22 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener
override fun onDoubleClick() {
super.onDoubleClick()
- if (prefs.lockModeOn) lockPhone()
+ if (prefs.lockModeOn) {
+ if (Settings.System.canWrite(requireContext())) {
+ blackOverlay.visibility = View.VISIBLE
+ Settings.System.putInt(requireContext().contentResolver, Settings.System.SCREEN_OFF_TIMEOUT, 5000);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
+ requireActivity().window.insetsController?.hide(WindowInsets.Type.navigationBars())
+ } else {
+ @Suppress("DEPRECATION")
+ requireActivity().window.decorView.apply {
+ systemUiVisibility = View.SYSTEM_UI_FLAG_IMMERSIVE or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+ }
+ }
+ } else {
+ lockPhone()
+ }
+ }
}
}
}
diff --git a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt
index 94fe505..4b2d97a 100644
--- a/app/src/main/java/app/olauncher/ui/SettingsFragment.kt
+++ b/app/src/main/java/app/olauncher/ui/SettingsFragment.kt
@@ -6,6 +6,7 @@ import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Bundle
+import android.provider.Settings
import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
@@ -71,6 +72,7 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe
R.id.appInfo -> openAppInfo(requireContext(), BuildConfig.APPLICATION_ID)
R.id.setLauncher -> viewModel.resetDefaultLauncherApp(requireContext())
R.id.toggleOnOff -> toggleLockMode()
+ R.id.experimental -> openEditSettingsPermission()
R.id.homeAppsNum -> appsNumSelectLayout.visibility = View.VISIBLE
R.id.dailyWallpaperUrl -> openUrl(prefs.dailyWallpaperUrl)
R.id.dailyWallpaper -> toggleDailyWallpaperUpdate()
@@ -114,6 +116,7 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe
appInfo.setOnClickListener(this)
setLauncher.setOnClickListener(this)
toggleOnOff.setOnClickListener(this)
+ experimental.setOnClickListener(this)
homeAppsNum.setOnClickListener(this)
dailyWallpaperUrl.setOnClickListener(this)
dailyWallpaper.setOnClickListener(this)
@@ -281,4 +284,12 @@ class SettingsFragment : Fragment(), View.OnClickListener, View.OnLongClickListe
bundleOf("flag" to flag)
)
}
+
+ private fun openEditSettingsPermission() {
+ // if (!Settings.System.canWrite(this)) {
+ val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS)
+ intent.data = Uri.parse("package:" + BuildConfig.APPLICATION_ID)
+ startActivityForResult(intent, Constants.REQUEST_CODE_EDIT_SETTINGS)
+// }
+ }
} \ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 3ff8205..f7f1841 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -18,7 +18,7 @@
the app on initialising navController-->
<FrameLayout
- android:id="@+id/lockEnabledLayout"
+ android:id="@+id/messageLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimaryInverseTrans25"
@@ -48,12 +48,13 @@
android:text="@string/important_" />
<TextView
+ android:id="@+id/messageTextView"
style="@style/TextSmall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:lineSpacingExtra="1dp"
- android:text="@string/double_to_lock_is_enabled_message"
+ android:text="@string/double_tap_lock_is_enabled_message"
android:textColor="@color/colorPrimary" />
<TextView
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index e861bb2..81434ee 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -6,9 +6,6 @@
android:layout_height="match_parent"
android:animateLayoutChanges="true"
android:orientation="vertical"
- android:paddingHorizontal="24dp"
- android:paddingTop="24dp"
- android:paddingBottom="48dp"
tools:context=".ui.HomeFragment">
<!-- Clock and calendar-->
@@ -16,7 +13,9 @@
android:id="@+id/dateTimeLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="24dp"
+ android:layout_marginStart="24dp"
+ android:layout_marginTop="48dp"
+ android:layout_marginEnd="24dp"
android:orientation="vertical">
<TextClock
@@ -42,7 +41,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
+ android:layout_marginStart="24dp"
android:layout_marginTop="36dp"
+ android:layout_marginEnd="24dp"
android:animateLayoutChanges="true"
android:orientation="vertical">
@@ -126,7 +127,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
- android:layout_marginBottom="8dp"
+ android:layout_marginStart="24dp"
+ android:layout_marginEnd="24dp"
+ android:layout_marginBottom="56dp"
android:gravity="center_horizontal"
android:orientation="vertical"
android:visibility="gone">
@@ -153,8 +156,17 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
- android:layout_marginBottom="8dp"
+ android:layout_marginStart="24dp"
+ android:layout_marginEnd="24dp"
+ android:layout_marginBottom="56dp"
android:text="@string/set_as_default_launcher"
android:visibility="gone" />
+ <FrameLayout
+ android:id="@+id/blackOverlay"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@android:color/black"
+ android:clickable="false"
+ android:focusable="false" />
</FrameLayout> \ 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 d18e878..07ca35c 100644
--- a/app/src/main/res/layout/fragment_settings.xml
+++ b/app/src/main/res/layout/fragment_settings.xml
@@ -53,6 +53,7 @@
android:layout_height="wrap_content">
<TextView
+ android:id="@+id/experimental"
style="@style/TextMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 59ca39e..9c82e0e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -42,5 +42,8 @@
<string name="_0">0</string>
<string name="okay_got_it">Okay, got it</string>
<string name="important_">Important!</string>
- <string name="double_to_lock_is_enabled_message">If fingerprint or face unlock is disabled on lock, please click on \'experimental\' in Olauncher settings and follow the instructions. Thank you.</string>
+ <string name="double_tap_lock_is_enabled_message">If fingerprint or face unlock is disabled on lock, please click on \'experimental\' in Olauncher settings and follow the instructions. Thank you.</string>
+ <string name="triple_tap_lock_message">Due to updated security rules in some Android devices, apps cannot lock phones normally.
+ \nThat\'s why, once you double tap to lock, the screen will go black and the phone will lock itself in about 5 seconds.
+ \nDuring this time, you can double tap to go back to home screen. You can also triple tap anytime to lock the phone immediately and disable the fingerprint or face unlock. Thank you.</string>
</resources> \ No newline at end of file