diff options
| author | Tanuj M <thetanuj@hotmail.com> | 2020-10-09 01:28:53 +0530 |
|---|---|---|
| committer | Tanuj M <thetanuj@hotmail.com> | 2020-10-09 01:28:53 +0530 |
| commit | 2edfdd46dfd8aaf3c22223b7bdbd3b258d8fb4e2 (patch) | |
| tree | c700fedfb050e41db532184a74780cdb4d0bba72 /app/src | |
| parent | 12dc38722806d2e488d0b21e3b52a0ec5b1ee709 (diff) | |
| download | SidePhOnelauncher-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.kt | 19 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/data/Constants.kt | 1 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/ui/HomeFragment.kt | 38 | ||||
| -rw-r--r-- | app/src/main/java/app/olauncher/ui/SettingsFragment.kt | 11 | ||||
| -rw-r--r-- | app/src/main/res/layout/activity_main.xml | 5 | ||||
| -rw-r--r-- | app/src/main/res/layout/fragment_home.xml | 24 | ||||
| -rw-r--r-- | app/src/main/res/layout/fragment_settings.xml | 1 | ||||
| -rw-r--r-- | app/src/main/res/values/strings.xml | 5 |
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 |
