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 @@ - - +