diff --git a/app/build.gradle b/app/build.gradle
index 669124b..5b9b582 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -31,6 +31,8 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.7.0'
implementation 'androidx.constraintlayout:constraintlayout:2.2.0-beta01'
implementation 'com.google.android.material:material:1.13.0-alpha06'
+ implementation 'androidx.activity:activity:1.9.3'
+ implementation 'com.android.support:cardview-v7:28.0.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test:runner:1.6.2'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1ac7256..576da27 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -4,6 +4,8 @@
+
+
@@ -28,7 +30,7 @@
+ android:theme="@style/AppTheme.NoActionBar" />
+ android:permission="android.permission.BIND_JOB_SERVICE"
+ android:foregroundServiceType="specialUse" />
diff --git a/app/src/main/java/com/wesaphzt/privatelock/IntroActivity.java b/app/src/main/java/com/wesaphzt/privatelock/IntroActivity.java
index bc056d0..7963a19 100644
--- a/app/src/main/java/com/wesaphzt/privatelock/IntroActivity.java
+++ b/app/src/main/java/com/wesaphzt/privatelock/IntroActivity.java
@@ -11,11 +11,13 @@
import com.github.appintro.*;
import com.github.appintro.model.*;
+import com.google.android.material.color.DynamicColors;
public class IntroActivity extends AppIntro {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
+
super.onCreate(savedInstanceState);
//fullscreen
diff --git a/app/src/main/java/com/wesaphzt/privatelock/MainActivity.java b/app/src/main/java/com/wesaphzt/privatelock/MainActivity.java
index 3f1b4d7..f010e46 100644
--- a/app/src/main/java/com/wesaphzt/privatelock/MainActivity.java
+++ b/app/src/main/java/com/wesaphzt/privatelock/MainActivity.java
@@ -9,6 +9,7 @@
import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
+import android.content.res.TypedArray;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
@@ -18,6 +19,9 @@
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
@@ -27,12 +31,14 @@
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
+import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.widget.RelativeLayout;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
+import com.google.android.material.color.DynamicColors;
import com.wesaphzt.privatelock.animation.Circle;
import com.wesaphzt.privatelock.animation.CircleAngleAnimation;
import com.wesaphzt.privatelock.fragments.FragmentAbout;
@@ -89,13 +95,14 @@ public class MainActivity extends AppCompatActivity {
private Circle circle;
private Circle circle_bg;
//circle color
- private int circleDefaultR = 88; private int circleDefaultG = 186; private int circleDefaultB = 255;
+ private final int circleDefaultR = 88; private final int circleDefaultG = 186; private final int circleDefaultB = 255;
int animationDuration = 220;
CircleAngleAnimation animation;
@Override
protected void onCreate(Bundle savedInstanceState) {
+
super.onCreate(savedInstanceState);
context = getApplicationContext();
@@ -108,6 +115,39 @@ protected void onCreate(Bundle savedInstanceState) {
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
+ ViewCompat.setOnApplyWindowInsetsListener(toolbar, (v, windowInsets) -> {
+ Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
+ // Apply the insets as a margin to the view. This solution sets only the
+ // bottom, left, and right dimensions, but you can apply whichever insets are
+ // appropriate to your layout. You can also update the view padding if that's
+ // more appropriate.
+ ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
+ mlp.leftMargin = insets.left;
+ mlp.topMargin = insets.top;
+ mlp.rightMargin = insets.right;
+ v.setLayoutParams(mlp);
+
+ // Return CONSUMED if you don't want want the window insets to keep passing
+ // down to descendant views.
+ return WindowInsetsCompat.CONSUMED;
+ });
+
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.last_card), (v, windowInsets) -> {
+ Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
+ // Apply the insets as a margin to the view. This solution sets only the
+ // bottom, left, and right dimensions, but you can apply whichever insets are
+ // appropriate to your layout. You can also update the view padding if that's
+ // more appropriate.
+ ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
+ mlp.bottomMargin = insets.bottom;
+ v.setLayoutParams(mlp);
+
+ // Return CONSUMED if you don't want want the window insets to keep passing
+ // down to descendant views.
+ return WindowInsetsCompat.CONSUMED;
+ });
+
+
getSupportFragmentManager().addOnBackStackChangedListener(
new FragmentManager.OnBackStackChangedListener() {
public void onBackStackChanged() {
@@ -337,9 +377,13 @@ public boolean onOptionsItemSelected(MenuItem item) {
}
} else if (id == R.id.action_stop) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- NotificationManager notificationManager =
- (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
- notificationManager.deleteNotificationChannel(CHANNEL_ID);
+ try {
+ NotificationManager notificationManager =
+ (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
+ notificationManager.deleteNotificationChannel(CHANNEL_ID);
+ } catch (java.lang.SecurityException e) {
+ // to be expected tbh
+ }
disabled = true;
mSensorManager.unregisterListener(activeListener);
@@ -373,7 +417,7 @@ public boolean onOptionsItemSelected(MenuItem item) {
if (fragment != null) {
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.enter_from_left, R.anim.exit_to_right, R.anim.enter_from_right, R.anim.exit_to_left);
- fragmentTransaction.add(R.id.content_main, fragment);
+ fragmentTransaction.replace(R.id.content_main, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
diff --git a/app/src/main/java/com/wesaphzt/privatelock/fragments/FragmentSettings.java b/app/src/main/java/com/wesaphzt/privatelock/fragments/FragmentSettings.java
index 5289f55..ccde220 100644
--- a/app/src/main/java/com/wesaphzt/privatelock/fragments/FragmentSettings.java
+++ b/app/src/main/java/com/wesaphzt/privatelock/fragments/FragmentSettings.java
@@ -2,6 +2,7 @@
import android.content.Context;
import android.content.SharedPreferences;
+import android.content.res.TypedArray;
import android.os.Bundle;
import androidx.annotation.Nullable;
@@ -9,9 +10,9 @@
import android.view.View;
import android.widget.Toast;
-import androidx.preference.CheckBoxPreference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceManager;
+import androidx.preference.SwitchPreference;
import com.wesaphzt.privatelock.R;
@@ -19,7 +20,7 @@ public class FragmentSettings extends PreferenceFragmentCompat {
private Context context;
- private CheckBoxPreference cbRunConstant;
+ private SwitchPreference runConstant;
private SharedPreferences sharedPreferences;
private SharedPreferences.OnSharedPreferenceChangeListener sharedPreferenceChangeListener;
@@ -36,7 +37,7 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
//this static call will reset default values only on the first read
PreferenceManager.setDefaultValues(context, R.xml.preferences, false);
- cbRunConstant = (CheckBoxPreference) findPreference("RUN_CONSTANT");
+ runConstant = (SwitchPreference) findPreference("RUN_CONSTANT");
}
@Override
@@ -68,13 +69,18 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
//set title
getActivity().setTitle("Settings");
- //bg color
- view.setBackgroundColor(getResources().getColor(R.color.white));
+ TypedArray array = context.getTheme().obtainStyledAttributes(new int[] {
+ android.R.attr.colorBackground,
+ });
+ int backgroundColor = array.getColor(0, 0xFF00FF);
+ array.recycle();
+
+ view.setBackgroundColor(backgroundColor);
sharedPreferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
- if(key.equals("RUN_CONSTANT") && cbRunConstant.isChecked()) {
+ if(key.equals("RUN_CONSTANT") && runConstant.isChecked()) {
Toast.makeText(context, getString(R.string.settings_restart_service_toast), Toast.LENGTH_LONG).show();
}
}
diff --git a/app/src/main/java/com/wesaphzt/privatelock/service/LockService.java b/app/src/main/java/com/wesaphzt/privatelock/service/LockService.java
index 285d343..681fe49 100644
--- a/app/src/main/java/com/wesaphzt/privatelock/service/LockService.java
+++ b/app/src/main/java/com/wesaphzt/privatelock/service/LockService.java
@@ -301,12 +301,12 @@ private void setNotification() {
//notification stop button
Intent intentStopAction = new Intent(context, NotificationReceiver.class);
intentStopAction.putExtra("lock_service","lock_service_notification");
- pendingCloseIntent = PendingIntent.getBroadcast(context,0, intentStopAction, PendingIntent.FLAG_UPDATE_CURRENT);
+ pendingCloseIntent = PendingIntent.getBroadcast(context,0, intentStopAction, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
//notification pause button
Intent intentPauseAction = new Intent(context, PauseReceiver.class);
intentPauseAction.putExtra("pause_service","pause_service_time");
- pendingPauseIntent = PendingIntent.getBroadcast(context,0, intentPauseAction, PendingIntent.FLAG_UPDATE_CURRENT);
+ pendingPauseIntent = PendingIntent.getBroadcast(context,0, intentPauseAction, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
NotificationCompat.Builder notificationBuilder;
diff --git a/app/src/main/res/drawable-night/ic_about_bug_report_24dp.xml b/app/src/main/res/drawable-night/ic_about_bug_report_24dp.xml
new file mode 100644
index 0000000..53906b6
--- /dev/null
+++ b/app/src/main/res/drawable-night/ic_about_bug_report_24dp.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable-night/ic_about_code_24dp.xml b/app/src/main/res/drawable-night/ic_about_code_24dp.xml
new file mode 100644
index 0000000..986009e
--- /dev/null
+++ b/app/src/main/res/drawable-night/ic_about_code_24dp.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable-night/ic_about_copyright_24dp.xml b/app/src/main/res/drawable-night/ic_about_copyright_24dp.xml
new file mode 100644
index 0000000..18cd5ce
--- /dev/null
+++ b/app/src/main/res/drawable-night/ic_about_copyright_24dp.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable-night/ic_about_info_outline_24dp.xml b/app/src/main/res/drawable-night/ic_about_info_outline_24dp.xml
new file mode 100644
index 0000000..f150f87
--- /dev/null
+++ b/app/src/main/res/drawable-night/ic_about_info_outline_24dp.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable-night/ic_about_person_24dp.xml b/app/src/main/res/drawable-night/ic_about_person_24dp.xml
new file mode 100644
index 0000000..188af0f
--- /dev/null
+++ b/app/src/main/res/drawable-night/ic_about_person_24dp.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable-night/ic_action_settings_24dp.xml b/app/src/main/res/drawable-night/ic_action_settings_24dp.xml
new file mode 100644
index 0000000..d6003f1
--- /dev/null
+++ b/app/src/main/res/drawable-night/ic_action_settings_24dp.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable-notnight/ic_action_settings_24dp.xml b/app/src/main/res/drawable-notnight/ic_action_settings_24dp.xml
new file mode 100644
index 0000000..9dfb29e
--- /dev/null
+++ b/app/src/main/res/drawable-notnight/ic_action_settings_24dp.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_about_bug_report_black_24dp.xml b/app/src/main/res/drawable/ic_about_bug_report_24dp.xml
similarity index 94%
rename from app/src/main/res/drawable/ic_about_bug_report_black_24dp.xml
rename to app/src/main/res/drawable/ic_about_bug_report_24dp.xml
index 4d83902..ac83c8c 100644
--- a/app/src/main/res/drawable/ic_about_bug_report_black_24dp.xml
+++ b/app/src/main/res/drawable/ic_about_bug_report_24dp.xml
@@ -4,6 +4,6 @@
android:viewportWidth="24.0"
android:viewportHeight="24.0">
diff --git a/app/src/main/res/drawable/ic_about_code_black_24dp.xml b/app/src/main/res/drawable/ic_about_code_24dp.xml
similarity index 90%
rename from app/src/main/res/drawable/ic_about_code_black_24dp.xml
rename to app/src/main/res/drawable/ic_about_code_24dp.xml
index 6f1ccb6..5fcddba 100644
--- a/app/src/main/res/drawable/ic_about_code_black_24dp.xml
+++ b/app/src/main/res/drawable/ic_about_code_24dp.xml
@@ -4,6 +4,6 @@
android:viewportWidth="24.0"
android:viewportHeight="24.0">
diff --git a/app/src/main/res/drawable/ic_about_copyright_black_24dp.xml b/app/src/main/res/drawable/ic_about_copyright_24dp.xml
similarity index 97%
rename from app/src/main/res/drawable/ic_about_copyright_black_24dp.xml
rename to app/src/main/res/drawable/ic_about_copyright_24dp.xml
index fad6892..e685c12 100644
--- a/app/src/main/res/drawable/ic_about_copyright_black_24dp.xml
+++ b/app/src/main/res/drawable/ic_about_copyright_24dp.xml
@@ -4,6 +4,6 @@
android:viewportWidth="24.0"
android:viewportHeight="24.0">
diff --git a/app/src/main/res/drawable/ic_about_info_outline_black_24dp.xml b/app/src/main/res/drawable/ic_about_info_outline_24dp.xml
similarity index 91%
rename from app/src/main/res/drawable/ic_about_info_outline_black_24dp.xml
rename to app/src/main/res/drawable/ic_about_info_outline_24dp.xml
index cf53e14..d9df3de 100644
--- a/app/src/main/res/drawable/ic_about_info_outline_black_24dp.xml
+++ b/app/src/main/res/drawable/ic_about_info_outline_24dp.xml
@@ -4,6 +4,6 @@
android:viewportWidth="24.0"
android:viewportHeight="24.0">
diff --git a/app/src/main/res/drawable/ic_about_person_black_24dp.xml b/app/src/main/res/drawable/ic_about_person_24dp.xml
similarity index 90%
rename from app/src/main/res/drawable/ic_about_person_black_24dp.xml
rename to app/src/main/res/drawable/ic_about_person_24dp.xml
index b2cb337..759c469 100644
--- a/app/src/main/res/drawable/ic_about_person_black_24dp.xml
+++ b/app/src/main/res/drawable/ic_about_person_24dp.xml
@@ -4,6 +4,6 @@
android:viewportWidth="24.0"
android:viewportHeight="24.0">
diff --git a/app/src/main/res/drawable/ic_action_settings_white_24dp.xml b/app/src/main/res/drawable/ic_action_settings_white_24dp.xml
deleted file mode 100644
index 1397d37..0000000
--- a/app/src/main/res/drawable/ic_action_settings_white_24dp.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_launcher_monochrome.xml b/app/src/main/res/drawable/ic_launcher_monochrome.xml
index 272a74b..ab2a5d2 100644
--- a/app/src/main/res/drawable/ic_launcher_monochrome.xml
+++ b/app/src/main/res/drawable/ic_launcher_monochrome.xml
@@ -1,25 +1,13 @@
-
-
-
-
-
-
-
-
+
+
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 9c96440..f94772a 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -15,7 +15,6 @@
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
- android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml
index ac201b4..e149573 100644
--- a/app/src/main/res/layout/content_main.xml
+++ b/app/src/main/res/layout/content_main.xml
@@ -15,17 +15,17 @@
android:layout_margin="@dimen/_10sdp"
tools:ignore="UselessParent">
-
+ android:orientation="vertical">
+ android:textStyle="bold" />
+ android:layout_height="wrap_content"
+ android:paddingBottom="8dp">
+ android:textStyle="italic" />
-
-
+
-
+
-
+
-
-
+
-
+
-
+
+
-
+
-
+ android:orientation="vertical">
-
-
-
-
-
-
-
+ android:textStyle="bold" />
-
-
-
-
-
-
-
-
-
-
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
-
+
-
+
-
+
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_about.xml b/app/src/main/res/layout/fragment_about.xml
index 7254b0e..e2215bd 100644
--- a/app/src/main/res/layout/fragment_about.xml
+++ b/app/src/main/res/layout/fragment_about.xml
@@ -1,21 +1,20 @@
-
+ android:background="?attr/colorSurface"
+ app:layout_behavior="@string/appbar_scrolling_view_behavior">
+ android:orientation="vertical"
+ android:padding="16dp">
-
+ android:orientation="horizontal"
+ android:padding="@dimen/activity_margin_small">
+ android:contentDescription="@string/about_overview_logo_desc"
+ android:src="@mipmap/ic_launcher" />
+ android:background="?android:attr/selectableItemBackground"
+ android:orientation="vertical">
+ android:textStyle="bold" />
+ android:text="@string/app_desc"
+ android:textStyle="bold" />
-
+
-
+ android:orientation="vertical">
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:paddingTop="@dimen/activity_margin_small"
+ android:paddingBottom="@dimen/activity_margin_small">
+ android:contentDescription="@string/about_version_image_desc"
+ android:src="@drawable/ic_about_info_outline_24dp" />
+ android:gravity="center_vertical"
+ android:orientation="vertical">
+ android:textAppearance="?android:attr/textAppearanceSmall" />
@@ -116,41 +115,41 @@
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:paddingTop="@dimen/activity_margin_small"
+ android:paddingBottom="@dimen/activity_margin_small">
+ android:contentDescription="@string/about_license_image_desc"
+ android:src="@drawable/ic_about_copyright_24dp" />
+ android:gravity="center_vertical"
+ android:orientation="vertical">
+ android:textStyle="bold" />
+ android:text="@string/about_license_desc"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
@@ -158,35 +157,35 @@
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:paddingTop="@dimen/activity_margin_small"
+ android:paddingBottom="@dimen/activity_margin_small">
+ android:contentDescription="@string/about_source_image_desc"
+ android:src="@drawable/ic_about_code_24dp" />
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textStyle="bold" />
-
+
-
+ android:textStyle="bold" />
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:paddingTop="@dimen/activity_margin_small"
+ android:paddingBottom="@dimen/activity_margin_small">
+ android:contentDescription="@string/about_developer_image_desc"
+ android:src="@drawable/ic_about_person_24dp" />
+ android:gravity="center_vertical"
+ android:orientation="vertical">
+ android:text="@string/about_developer_desc"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
@@ -255,9 +254,9 @@
-
+
-
+ android:textStyle="bold" />
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:paddingTop="@dimen/activity_margin_small"
+ android:paddingBottom="@dimen/activity_margin_small">
+ android:contentDescription="@string/about_bug_report_image_desc"
+ android:src="@drawable/ic_about_bug_report_24dp" />
+ android:gravity="center_vertical"
+ android:orientation="vertical">
+ android:text="@string/about_contribute_desc"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_donate.xml b/app/src/main/res/layout/fragment_donate.xml
index 09c8b3c..b83559b 100644
--- a/app/src/main/res/layout/fragment_donate.xml
+++ b/app/src/main/res/layout/fragment_donate.xml
@@ -1,22 +1,22 @@
-
+ android:background="?attr/colorSurface"
+ app:layout_behavior="@string/appbar_scrolling_view_behavior">
+ android:orientation="vertical"
+ android:padding="8dp">
-
+ android:paddingBottom="@dimen/activity_margin_small">
+ android:textSize="@dimen/_12sdp" />
-
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml
index e3a5d3c..e3a31e7 100644
--- a/app/src/main/res/menu/menu_main.xml
+++ b/app/src/main/res/menu/menu_main.xml
@@ -17,7 +17,7 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 545b9c6..30a76aa 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,11 +1,13 @@
-
+
-
-
+
-
+
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index b9ad5ab..aba3a76 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -3,18 +3,18 @@
-
-
-