Improved screen locking system + improved lock display

This commit is contained in:
gdlbo
2023-03-02 12:53:46 +03:00
parent 729342085a
commit ddaedd0ba0
7 changed files with 68 additions and 16 deletions
@@ -67,6 +67,15 @@ public class AppLock {
return false;
}
public static void setAuthenticationRequired(Context context) {
AppLock helper = getInstance(context);
helper.getPreferences()
.edit()
.putLong(PREF_UNLOCK_SUCCESS_TIME, 0)
.commit();
}
/**
* @return true if the user is enrolled in locking and the last successful unlock happened more than the default lock duration ago
*/
@@ -3,7 +3,10 @@ package com.guardanis.applock.activities;
import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier;
import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.WindowInsetsController;
import android.widget.LinearLayout;
import android.widget.TextView;
@@ -22,12 +25,23 @@ public class LockCreationActivity extends AppCompatActivity implements LockCreat
super.onCreate(savedInstance);
setContentView(getIdentifier("applock__activity_lock_creation", "layout"));
((LinearLayout) findViewById(getIdentifier("applock__activity_lock_creation", "id"))).setBackgroundColor(ThemesUtils.getBackgroundContent());
findViewById(getIdentifier("applock__activity_lock_creation", "id")).setBackgroundColor(ThemesUtils.getBackgroundContent());
((TextView) findViewById(getIdentifier("pin__description", "id"))).setTextColor(ThemesUtils.getTextAttr());
this.viewController = new LockCreationViewController(this, findViewById(getIdentifier("pin__container", "id")));
this.viewController.setDelegate(this);
this.viewController.setupRootFlow();
this.getWindow().setStatusBarColor(ThemesUtils.getBackgroundContent());
this.getWindow().setNavigationBarColor(ThemesUtils.getBackgroundContent());
if (!ThemesUtils.isDarkTheme()) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
this.getWindow().getInsetsController().setSystemBarsAppearance(WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS, WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS);
} else {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR & View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
}
}
}
@Override
@@ -1,8 +1,11 @@
package com.guardanis.applock.activities;
import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.WindowInsetsController;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
@@ -25,15 +28,25 @@ public class UnlockActivity extends AppCompatActivity implements UnlockViewContr
super.onCreate(savedInstance);
setContentView(AndroidUtils.getIdentifier("applock__activity_unlock", "layout"));
((LinearLayout) findViewById(AndroidUtils.getIdentifier("applock__activity_unlock", "id"))).setBackgroundColor(ThemesUtils.getBackgroundContent());
findViewById(AndroidUtils.getIdentifier("applock__activity_unlock", "id")).setBackgroundColor(ThemesUtils.getBackgroundContent());
((TextView) findViewById(AndroidUtils.getIdentifier("pin__description", "id"))).setTextColor(ThemesUtils.getTextAttr());
this.viewController = new UnlockViewController(this, findViewById(AndroidUtils.getIdentifier("pin__container", "id")));
this.viewController.setAutoAuthorizationEnabled(false); // Disable auto authorization so fingerprint doesn't crash onResume
this.viewController.setDelegate(this);
this.viewController.setupRootFlow();
this.viewController.setAutoAuthorizationEnabled(true);
this.getWindow().setStatusBarColor(ThemesUtils.getBackgroundContent());
this.getWindow().setNavigationBarColor(ThemesUtils.getBackgroundContent());
if (!ThemesUtils.isDarkTheme()) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
this.getWindow().getInsetsController().setSystemBarsAppearance(WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS, WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS);
} else {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR & View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
}
}
}
@Override
@@ -1,16 +1,8 @@
package ru.vtosters.lite.hooks;
import static ru.vtosters.lite.ui.dialogs.ServerDialog.sendRequest;
import static ru.vtosters.lite.utils.CacheUtils.getInstance;
import static ru.vtosters.lite.utils.NewsFeedFiltersUtils.setupFilters;
import static ru.vtosters.lite.utils.Preferences.checkupdates;
import static ru.vtosters.lite.utils.ThemesUtils.setNeededTheme;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import com.guardanis.applock.AppLock;
import com.guardanis.applock.activities.UnlockActivity;
import b.h.g.k.VKProgressDialog;
import com.vk.core.dialogs.alert.VkAlertDialog;
import com.vtosters.lite.R;
@@ -24,6 +16,12 @@ import ru.vtosters.lite.ui.dialogs.OTADialog;
import ru.vtosters.lite.ui.dialogs.Start;
import ru.vtosters.lite.utils.*;
import static ru.vtosters.lite.ui.dialogs.ServerDialog.sendRequest;
import static ru.vtosters.lite.utils.CacheUtils.getInstance;
import static ru.vtosters.lite.utils.NewsFeedFiltersUtils.setupFilters;
import static ru.vtosters.lite.utils.Preferences.checkupdates;
import static ru.vtosters.lite.utils.ThemesUtils.setNeededTheme;
public class MainActivityInjector {
public static void inject(Activity activity) {
setNeededTheme(activity);
@@ -42,11 +40,6 @@ public class MainActivityInjector {
NotificationChannels.createChannels();
}
if (AppLock.isEnrolled(activity)) {
var intent = new Intent(activity, UnlockActivity.class);
activity.startActivity(intent);
}
if(Preferences.isNewBuild() && !ThemesUtils.isMonetTheme() && ThemesManager.canApplyCustomAccent()) {
Preferences.updateBuildNumber();
updateBinsAndTmpArchive(activity);
@@ -8,6 +8,8 @@ import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Handler;
import com.guardanis.applock.AppLock;
import com.guardanis.applock.activities.UnlockActivity;
import com.vk.core.fragments.FragmentImpl;
import com.vk.navigation.Navigator;
import com.vtosters.lite.MainActivity;
@@ -45,6 +47,11 @@ public class LifecycleUtils {
@Override // android.app.Application.ActivityLifecycleCallbacks
public void onActivityCreated(Activity activity, Bundle bundle) {
activities.add(activity);
if (AppLock.isUnlockRequired(activity)) {
var intent = new Intent(activity, UnlockActivity.class);
activity.startActivity(intent);
}
}
@Override // android.app.Application.ActivityLifecycleCallbacks
@@ -2,10 +2,13 @@ package ru.vtosters.lite.utils;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.StrictMode;
import com.guardanis.applock.AppLock;
import com.guardanis.applock.activities.UnlockActivity;
import com.vtosters.lite.data.Users;
import com.vtosters.lite.fragments.SettingsListFragment;
import ru.vtosters.lite.ui.fragments.VTSettings;
@@ -32,6 +35,10 @@ public class Preferences {
setupFilters();
VTVerifications.load(application);
LifecycleUtils.registerActivities(application);
if (AppLock.isEnrolled(AndroidUtils.getGlobalContext())) {
AppLock.setAuthenticationRequired(AndroidUtils.getGlobalContext());
}
} // VK Init
public static SharedPreferences getPreferences() {
+9
View File
@@ -16,6 +16,7 @@
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.USE_FINGERPRINT"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
@@ -196,6 +197,14 @@
android:name="ru.vtosters.lite.ui.activities.VKAdminTokenActivity"
android:launchMode="singleTop">
</activity>
<activity
android:name="com.guardanis.applock.activities.LockCreationActivity"
android:launchMode="singleTop">
</activity>
<activity
android:name="com.guardanis.applock.activities.UnlockActivity"
android:launchMode="singleTop">
</activity>
<activity
android:name="com.vtosters.lite.MainActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode"