diff --git a/app/build.gradle b/app/build.gradle
index 857e4e0c..e10de03a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -5,7 +5,7 @@ plugins {
android {
compileSdk 33
namespace "com.passwordmanager"
-
+
defaultConfig {
applicationId "com.passwordmanager"
minSdk 26
@@ -14,12 +14,23 @@ android {
versionName "1.0"
}
+ signingConfigs {
+ release {
+ storeFile file("passwordmanager.jks")
+ storePassword 'beMbDcv94lv3'
+ keyAlias 'passwordmanager'
+ keyPassword 'beMbDcv94lv3'
+ }
+ }
+
buildTypes {
release {
+ signingConfig signingConfigs.release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
+
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
@@ -29,5 +40,4 @@ android {
dependencies {
implementation 'com.google.android.material:material:1.9.0'
implementation 'androidx.appcompat:appcompat:1.6.1'
- implementation 'androidx.core:core:1.10.1'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0b68c384..11d3ca40 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,28 +1,38 @@
+ xmlns:tools="http://schemas.android.com/tools"
+ package="com.passwordmanager">
-
-
+
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/java/com/passwordmanager/MainActivity.java b/app/src/main/java/com/passwordmanager/MainActivity.java
index 801ced42..a7b46bfb 100644
--- a/app/src/main/java/com/passwordmanager/MainActivity.java
+++ b/app/src/main/java/com/passwordmanager/MainActivity.java
@@ -1,13 +1,41 @@
package com.passwordmanager;
-import android.app.Activity;
import android.os.Bundle;
+import android.widget.Toast;
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.view.WindowCompat;
+import com.passwordmanager.utils.Permissions;
-public class MainActivity extends Activity {
+public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
+ private Permissions permissionsHandle;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ // Make window fullscreen
+ WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
+
+ // Check and request permission when the app is first opened
+ permissionsHandle = new Permissions(this);
+ if (!permissionsHandle.checkPermission()) permissionsHandle.requestPermission();
+ }
+
+ @Override
+ public void onRequestPermissionsResult(
+ int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+ if (requestCode == Permissions.PERMISSION_REQUEST_CODE) {
+ if (permissionsHandle.isPermissionGranted(grantResults)) {
+ // Permission has been granted
+ Toast.makeText(this, getString(R.string.permission_granted), Toast.LENGTH_LONG).show();
+ } else {
+ // Permission not granted
+ Toast.makeText(this, getString(R.string.permission_denied), Toast.LENGTH_LONG).show();
+ }
}
-}
\ No newline at end of file
+ }
+}
diff --git a/app/src/main/java/com/passwordmanager/utils/Permissions.java b/app/src/main/java/com/passwordmanager/utils/Permissions.java
new file mode 100644
index 00000000..030c8001
--- /dev/null
+++ b/app/src/main/java/com/passwordmanager/utils/Permissions.java
@@ -0,0 +1,35 @@
+package com.passwordmanager.utils;
+
+import android.Manifest;
+import android.app.Activity;
+import android.content.pm.PackageManager;
+import androidx.annotation.NonNull;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
+
+public class Permissions {
+
+ public static final int PERMISSION_REQUEST_CODE = 100;
+ private final Activity activity;
+
+ public Permissions(Activity activity) {
+ this.activity = activity;
+ }
+
+ // Check if permission has been granted
+ public boolean checkPermission() {
+ int resultWrite = ContextCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);
+ int resultRead = ContextCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE);
+ return resultWrite == PackageManager.PERMISSION_GRANTED && resultRead == PackageManager.PERMISSION_GRANTED;
+ }
+
+ // Request write and read file permissions
+ public void requestPermission() {
+ ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE);
+ }
+
+ // Check if permission has been granted after the request
+ public boolean isPermissionGranted(@NonNull int[] grantResults) {
+ return grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED;
+ }
+}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index c0b3e918..d87b18de 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,15 +1,14 @@
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ tools:context=".MainActivity">
-
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index f8c6127d..93824d8d 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -1,10 +1,64 @@
-
- #FFBB86FC
- #FF6200EE
- #FF3700B3
- #FF03DAC5
- #FF018786
- #FF000000
- #FFFFFFFF
-
\ No newline at end of file
+
+ #6750A4
+ #FFFFFF
+ #EADDFF
+ #21005D
+ #625B71
+ #FFFFFF
+ #E8DEF8
+ #1D192B
+ #7D5260
+ #FFFFFF
+ #FFD8E4
+ #31111D
+ #B3261E
+ #FFFFFF
+ #F9DEDC
+ #410E0B
+ #79747E
+ #FFFBFE
+ #1C1B1F
+ #FFFBFE
+ #1C1B1F
+ #E7E0EC
+ #49454F
+ #313033
+ #F4EFF4
+ #D0BCFF
+ #000000
+ #6750A4
+ #CAC4D0
+ #000000
+ #D0BCFF
+ #381E72
+ #4F378B
+ #EADDFF
+ #CCC2DC
+ #332D41
+ #4A4458
+ #E8DEF8
+ #EFB8C8
+ #492532
+ #633B48
+ #FFD8E4
+ #F2B8B5
+ #601410
+ #8C1D18
+ #F9DEDC
+ #938F99
+ #1C1B1F
+ #E6E1E5
+ #1C1B1F
+ #E6E1E5
+ #49454F
+ #CAC4D0
+ #E6E1E5
+ #313033
+ #6750A4
+ #000000
+ #D0BCFF
+ #49454F
+ #000000
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 39290ff2..5d258bd9 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,3 +1,7 @@
- Password Manager
+ Password Manager
+
+
+ Permission Granted
+ Permission Denied
\ No newline at end of file
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 971e4a58..eafb2406 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -1,12 +1,41 @@
-
-
+