From e86655c0db9932a4065c19f88027919bef56ed7f Mon Sep 17 00:00:00 2001 From: Jeel Dobariya <136002730+JeelDobariya38@users.noreply.github.com> Date: Sun, 27 Jul 2025 22:30:40 +0530 Subject: [PATCH] Revert "Feat: Migrate from `com.passwordmanager` to `com.jeeldobariya.passcodes`" --- app/build.gradle | 21 +----- .../database/MyDatabaseHelper.java | 2 +- .../models/PasswordModel.java | 2 +- .../passwordmanager/ui/AboutUsActivity.java | 48 +++++++++++++ .../ui/LoadPasswordActivity.java | 12 ++-- .../com/passwordmanager/ui/MainActivity.java | 69 +++++++++++++++++++ .../ui/PasswordManagerActivity.java | 10 +-- .../ui/SavePasswordActivity.java | 8 +-- .../ui/UpdatePasswordActivity.java | 10 +-- .../ui/ViewPasswordActivity.java | 10 +-- .../ui/adapter/PasswordAdapter.java | 6 +- .../com/passwordmanager/utils/Constant.java | 8 +++ .../utils/Controller.java | 6 +- .../utils/ExampleTestableCode.java} | 6 +- .../utils/Permissions.java | 2 +- .../passcodes/ui/AboutUsActivity.kt | 44 ------------ .../jeeldobariya/passcodes/ui/MainActivity.kt | 68 ------------------ .../jeeldobariya/passcodes/utils/Constants.kt | 8 --- .../utils/ExampleTestableCodeTest.java | 41 +++++++++++ .../utils/ExampleTestableCodeTest.kt | 41 ----------- build.gradle | 1 - git-hooks/commit-msg.sample | 2 +- 22 files changed, 206 insertions(+), 219 deletions(-) rename app/src/main/java/com/{jeeldobariya/passcodes => passwordmanager}/database/MyDatabaseHelper.java (96%) rename app/src/main/java/com/{jeeldobariya/passcodes => passwordmanager}/models/PasswordModel.java (98%) create mode 100644 app/src/main/java/com/passwordmanager/ui/AboutUsActivity.java rename app/src/main/java/com/{jeeldobariya/passcodes => passwordmanager}/ui/LoadPasswordActivity.java (83%) create mode 100644 app/src/main/java/com/passwordmanager/ui/MainActivity.java rename app/src/main/java/com/{jeeldobariya/passcodes => passwordmanager}/ui/PasswordManagerActivity.java (95%) rename app/src/main/java/com/{jeeldobariya/passcodes => passwordmanager}/ui/SavePasswordActivity.java (89%) rename app/src/main/java/com/{jeeldobariya/passcodes => passwordmanager}/ui/UpdatePasswordActivity.java (90%) rename app/src/main/java/com/{jeeldobariya/passcodes => passwordmanager}/ui/ViewPasswordActivity.java (91%) rename app/src/main/java/com/{jeeldobariya/passcodes => passwordmanager}/ui/adapter/PasswordAdapter.java (89%) create mode 100644 app/src/main/java/com/passwordmanager/utils/Constant.java rename app/src/main/java/com/{jeeldobariya/passcodes => passwordmanager}/utils/Controller.java (97%) rename app/src/main/{kotlin/com/jeeldobariya/passcodes/utils/ExampleTestableCode.kt => java/com/passwordmanager/utils/ExampleTestableCode.java} (63%) rename app/src/main/java/com/{jeeldobariya/passcodes => passwordmanager}/utils/Permissions.java (97%) delete mode 100644 app/src/main/kotlin/com/jeeldobariya/passcodes/ui/AboutUsActivity.kt delete mode 100644 app/src/main/kotlin/com/jeeldobariya/passcodes/ui/MainActivity.kt delete mode 100644 app/src/main/kotlin/com/jeeldobariya/passcodes/utils/Constants.kt create mode 100644 app/src/test/java/com/passwordmanager/utils/ExampleTestableCodeTest.java delete mode 100644 app/src/test/kotlin/com/jeeldobariya/passcodes/utils/ExampleTestableCodeTest.kt diff --git a/app/build.gradle b/app/build.gradle index 9bf30725..c6418701 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,13 @@ plugins { id 'com.android.application' - id 'org.jetbrains.kotlin.android' - id 'kotlin-kapt' } android { compileSdk 33 - namespace "com.jeeldobariya.passcodes" + namespace "com.passwordmanager" defaultConfig { - applicationId "com.jeeldobariya.passcodes" + applicationId "com.passwordmanager" minSdk 26 targetSdk 33 versionCode 1 @@ -90,35 +88,20 @@ android { } } - // You can update these to Java 11 or higher if your project allows, - // but 1.8 is fine for basic Kotlin interop. compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - // Add kotlinOptions for JVM target if you have specific requirements, - // though often not strictly necessary for simple cases as it defaults - // to Java 8 compatible bytecode. - kotlinOptions { - jvmTarget = '1.8' // Ensure Kotlin compiles to Java 8 bytecode - } - viewBinding { enabled = true } } dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0" - implementation 'com.google.android.material:material:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.databinding:viewbinding:7.4.1' - - implementation 'androidx.room:room-ktx:2.5.0' - kapt 'androidx.room:room-compiler:2.5.0' - implementation 'org.json:json:20250517' testImplementation 'junit:junit:4.13.2' diff --git a/app/src/main/java/com/jeeldobariya/passcodes/database/MyDatabaseHelper.java b/app/src/main/java/com/passwordmanager/database/MyDatabaseHelper.java similarity index 96% rename from app/src/main/java/com/jeeldobariya/passcodes/database/MyDatabaseHelper.java rename to app/src/main/java/com/passwordmanager/database/MyDatabaseHelper.java index 754ba1c9..8d2f8022 100644 --- a/app/src/main/java/com/jeeldobariya/passcodes/database/MyDatabaseHelper.java +++ b/app/src/main/java/com/passwordmanager/database/MyDatabaseHelper.java @@ -1,4 +1,4 @@ -package com.jeeldobariya.passcodes.database; +package com.passwordmanager.database; import android.content.Context; import android.database.sqlite.SQLiteDatabase; diff --git a/app/src/main/java/com/jeeldobariya/passcodes/models/PasswordModel.java b/app/src/main/java/com/passwordmanager/models/PasswordModel.java similarity index 98% rename from app/src/main/java/com/jeeldobariya/passcodes/models/PasswordModel.java rename to app/src/main/java/com/passwordmanager/models/PasswordModel.java index 64400dc7..e063c329 100644 --- a/app/src/main/java/com/jeeldobariya/passcodes/models/PasswordModel.java +++ b/app/src/main/java/com/passwordmanager/models/PasswordModel.java @@ -1,4 +1,4 @@ -package com.jeeldobariya.passcodes.models; +package com.passwordmanager.models; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; diff --git a/app/src/main/java/com/passwordmanager/ui/AboutUsActivity.java b/app/src/main/java/com/passwordmanager/ui/AboutUsActivity.java new file mode 100644 index 00000000..e15e2c5b --- /dev/null +++ b/app/src/main/java/com/passwordmanager/ui/AboutUsActivity.java @@ -0,0 +1,48 @@ +package com.passwordmanager.ui; + +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.view.WindowCompat; +import com.passwordmanager.databinding.ActivityAboutUsBinding; +import com.passwordmanager.utils.Constant; +// import com.passwordmanager.utils.Permissions; + +public class AboutUsActivity extends AppCompatActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + ActivityAboutUsBinding binding = ActivityAboutUsBinding.inflate(getLayoutInflater()); + setContentView(binding.getRoot()); + + // Add event onclick listener + addOnClickListenerOnButton(binding); + + // Make window fullscreen + WindowCompat.setDecorFitsSystemWindows(getWindow(), false); + } + + private void openBrowser(String url) { + Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); + startActivity(browserIntent); + } + + // Added all the onclick event listiners + private void addOnClickListenerOnButton(ActivityAboutUsBinding binding) { + binding.viewSecurityGuidelinesBtn.setOnClickListener( + v -> { + openBrowser(Constant.SECURITY_GUIDE_URL); + }); + + binding.viewChangeLogBtn.setOnClickListener( + v -> { + openBrowser(Constant.CHANGELOG_URL); + }); + + binding.viewLicenseBtn.setOnClickListener( + v -> { + openBrowser(Constant.LICENSE_URL); + }); + } +} diff --git a/app/src/main/java/com/jeeldobariya/passcodes/ui/LoadPasswordActivity.java b/app/src/main/java/com/passwordmanager/ui/LoadPasswordActivity.java similarity index 83% rename from app/src/main/java/com/jeeldobariya/passcodes/ui/LoadPasswordActivity.java rename to app/src/main/java/com/passwordmanager/ui/LoadPasswordActivity.java index c918d6fe..c7e72049 100644 --- a/app/src/main/java/com/jeeldobariya/passcodes/ui/LoadPasswordActivity.java +++ b/app/src/main/java/com/passwordmanager/ui/LoadPasswordActivity.java @@ -1,4 +1,4 @@ -package com.jeeldobariya.passcodes.ui; +package com.passwordmanager.ui; import android.os.Bundle; import android.content.Intent; @@ -6,11 +6,11 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.core.view.WindowCompat; -import com.jeeldobariya.passcodes.R; -import com.jeeldobariya.passcodes.utils.Controller; -import com.jeeldobariya.passcodes.models.PasswordModel; -import com.jeeldobariya.passcodes.databinding.ActivityLoadPasswordBinding; -import com.jeeldobariya.passcodes.ui.adapter.PasswordAdapter; +import com.passwordmanager.R; +import com.passwordmanager.utils.Controller; +import com.passwordmanager.models.PasswordModel; +import com.passwordmanager.databinding.ActivityLoadPasswordBinding; +import com.passwordmanager.ui.adapter.PasswordAdapter; import java.util.List; diff --git a/app/src/main/java/com/passwordmanager/ui/MainActivity.java b/app/src/main/java/com/passwordmanager/ui/MainActivity.java new file mode 100644 index 00000000..4a7dbf47 --- /dev/null +++ b/app/src/main/java/com/passwordmanager/ui/MainActivity.java @@ -0,0 +1,69 @@ +package com.passwordmanager.ui; + +import android.os.Bundle; +import android.content.Intent; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.view.WindowCompat; +import android.view.LayoutInflater; + +import com.passwordmanager.R; +import com.passwordmanager.databinding.ActivityMainBinding; +// import com.passwordmanager.utils.Permissions; + +public class MainActivity extends AppCompatActivity { + + // private Permissions permissionsHandle; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater()); + setContentView(binding.getRoot()); + + // Add event onclick listener + addOnClickListenerOnButton(binding); + + // Make window fullscreen + WindowCompat.setDecorFitsSystemWindows(getWindow(), false); + + /* Comment the code as permission is not need to write into app data dir. + // Check and request permission when the app is first opened + permissionsHandle = new Permissions(this); + if (!permissionsHandle.checkPermission()) permissionsHandle.requestPermission(); + */ + } + + /* Comment the code as permission is not need to write into app data dir. + @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(); + } + } + } + */ + + // Added all the onclick event listiners + private void addOnClickListenerOnButton(ActivityMainBinding binding) { + binding.passwordManagerBtn.setOnClickListener(v -> { + Intent passwordmanagerintent = new Intent(MainActivity.this, PasswordManagerActivity.class); + startActivity(passwordmanagerintent); + }); + + binding.aboutUsBtn.setOnClickListener(v -> { + Intent aboutusintent = new Intent(MainActivity.this, AboutUsActivity.class); + startActivity(aboutusintent); + }); + + binding.quitBtn.setOnClickListener(v -> { + finishAndRemoveTask(); + }); + } +} diff --git a/app/src/main/java/com/jeeldobariya/passcodes/ui/PasswordManagerActivity.java b/app/src/main/java/com/passwordmanager/ui/PasswordManagerActivity.java similarity index 95% rename from app/src/main/java/com/jeeldobariya/passcodes/ui/PasswordManagerActivity.java rename to app/src/main/java/com/passwordmanager/ui/PasswordManagerActivity.java index f9e2ef93..cc761464 100644 --- a/app/src/main/java/com/jeeldobariya/passcodes/ui/PasswordManagerActivity.java +++ b/app/src/main/java/com/passwordmanager/ui/PasswordManagerActivity.java @@ -1,4 +1,4 @@ -package com.jeeldobariya.passcodes.ui; +package com.passwordmanager.ui; import android.net.Uri; import android.os.Bundle; @@ -14,10 +14,10 @@ import org.json.JSONException; import org.json.JSONObject; -import com.jeeldobariya.passcodes.R; -import com.jeeldobariya.passcodes.utils.Controller; -import com.jeeldobariya.passcodes.models.PasswordModel; -import com.jeeldobariya.passcodes.databinding.ActivityPasswordManagerBinding; +import com.passwordmanager.R; +import com.passwordmanager.utils.Controller; +import com.passwordmanager.models.PasswordModel; +import com.passwordmanager.databinding.ActivityPasswordManagerBinding; import java.util.List; import java.io.OutputStream; diff --git a/app/src/main/java/com/jeeldobariya/passcodes/ui/SavePasswordActivity.java b/app/src/main/java/com/passwordmanager/ui/SavePasswordActivity.java similarity index 89% rename from app/src/main/java/com/jeeldobariya/passcodes/ui/SavePasswordActivity.java rename to app/src/main/java/com/passwordmanager/ui/SavePasswordActivity.java index ed1fc98c..5a0283c3 100644 --- a/app/src/main/java/com/jeeldobariya/passcodes/ui/SavePasswordActivity.java +++ b/app/src/main/java/com/passwordmanager/ui/SavePasswordActivity.java @@ -1,13 +1,13 @@ -package com.jeeldobariya.passcodes.ui; +package com.passwordmanager.ui; import android.os.Bundle; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import androidx.core.view.WindowCompat; -import com.jeeldobariya.passcodes.R; -import com.jeeldobariya.passcodes.utils.Controller; -import com.jeeldobariya.passcodes.databinding.ActivitySavePasswordBinding; +import com.passwordmanager.R; +import com.passwordmanager.utils.Controller; +import com.passwordmanager.databinding.ActivitySavePasswordBinding; public class SavePasswordActivity extends AppCompatActivity { private Controller controller; diff --git a/app/src/main/java/com/jeeldobariya/passcodes/ui/UpdatePasswordActivity.java b/app/src/main/java/com/passwordmanager/ui/UpdatePasswordActivity.java similarity index 90% rename from app/src/main/java/com/jeeldobariya/passcodes/ui/UpdatePasswordActivity.java rename to app/src/main/java/com/passwordmanager/ui/UpdatePasswordActivity.java index 0d4bbe47..b078dc41 100644 --- a/app/src/main/java/com/jeeldobariya/passcodes/ui/UpdatePasswordActivity.java +++ b/app/src/main/java/com/passwordmanager/ui/UpdatePasswordActivity.java @@ -1,4 +1,4 @@ -package com.jeeldobariya.passcodes.ui; +package com.passwordmanager.ui; import android.os.Bundle; import android.content.Intent; @@ -7,10 +7,10 @@ import androidx.core.view.WindowCompat; import android.view.LayoutInflater; -import com.jeeldobariya.passcodes.R; -import com.jeeldobariya.passcodes.utils.Controller; -import com.jeeldobariya.passcodes.models.PasswordModel; -import com.jeeldobariya.passcodes.databinding.ActivityUpdatePasswordBinding; +import com.passwordmanager.R; +import com.passwordmanager.utils.Controller; +import com.passwordmanager.models.PasswordModel; +import com.passwordmanager.databinding.ActivityUpdatePasswordBinding; /* Activity expects id as intent parameters. diff --git a/app/src/main/java/com/jeeldobariya/passcodes/ui/ViewPasswordActivity.java b/app/src/main/java/com/passwordmanager/ui/ViewPasswordActivity.java similarity index 91% rename from app/src/main/java/com/jeeldobariya/passcodes/ui/ViewPasswordActivity.java rename to app/src/main/java/com/passwordmanager/ui/ViewPasswordActivity.java index bbcea5a6..c732c7b8 100644 --- a/app/src/main/java/com/jeeldobariya/passcodes/ui/ViewPasswordActivity.java +++ b/app/src/main/java/com/passwordmanager/ui/ViewPasswordActivity.java @@ -1,4 +1,4 @@ -package com.jeeldobariya.passcodes.ui; +package com.passwordmanager.ui; import android.os.Bundle; import android.content.Intent; @@ -7,10 +7,10 @@ import androidx.core.view.WindowCompat; import android.view.LayoutInflater; -import com.jeeldobariya.passcodes.R; -import com.jeeldobariya.passcodes.utils.Controller; -import com.jeeldobariya.passcodes.models.PasswordModel; -import com.jeeldobariya.passcodes.databinding.ActivityViewPasswordBinding; +import com.passwordmanager.R; +import com.passwordmanager.utils.Controller; +import com.passwordmanager.models.PasswordModel; +import com.passwordmanager.databinding.ActivityViewPasswordBinding; /* Activity expects id, domain, username, password, notes, createdat, updatedat as intent parameters. diff --git a/app/src/main/java/com/jeeldobariya/passcodes/ui/adapter/PasswordAdapter.java b/app/src/main/java/com/passwordmanager/ui/adapter/PasswordAdapter.java similarity index 89% rename from app/src/main/java/com/jeeldobariya/passcodes/ui/adapter/PasswordAdapter.java rename to app/src/main/java/com/passwordmanager/ui/adapter/PasswordAdapter.java index a33d2c37..16f9bcdc 100644 --- a/app/src/main/java/com/jeeldobariya/passcodes/ui/adapter/PasswordAdapter.java +++ b/app/src/main/java/com/passwordmanager/ui/adapter/PasswordAdapter.java @@ -1,4 +1,4 @@ -package com.jeeldobariya.passcodes.ui.adapter; +package com.passwordmanager.ui.adapter; import android.content.Context; import android.view.View; @@ -6,8 +6,8 @@ import android.view.LayoutInflater; import android.widget.BaseAdapter; -import com.jeeldobariya.passcodes.models.PasswordModel; -import com.jeeldobariya.passcodes.databinding.PasswordListItemBinding; +import com.passwordmanager.models.PasswordModel; +import com.passwordmanager.databinding.PasswordListItemBinding; import java.util.List; diff --git a/app/src/main/java/com/passwordmanager/utils/Constant.java b/app/src/main/java/com/passwordmanager/utils/Constant.java new file mode 100644 index 00000000..52e0edda --- /dev/null +++ b/app/src/main/java/com/passwordmanager/utils/Constant.java @@ -0,0 +1,8 @@ +package com.passwordmanager.utils; + +public class Constant { + public static final String REPO_URL = "https://github.com/JeelDobariya38/password-manager"; + public static final String LICENSE_URL = "https://github.com/JeelDobariya38/password-manager/blob/main/LICENSE.txt"; + public static final String CHANGELOG_URL = "https://github.com/JeelDobariya38/password-manager/blob/main/changelog.md"; + public static final String SECURITY_GUIDE_URL = "https://github.com/JeelDobariya38/password-manager/blob/main/docs/security_guide.md"; +} \ No newline at end of file diff --git a/app/src/main/java/com/jeeldobariya/passcodes/utils/Controller.java b/app/src/main/java/com/passwordmanager/utils/Controller.java similarity index 97% rename from app/src/main/java/com/jeeldobariya/passcodes/utils/Controller.java rename to app/src/main/java/com/passwordmanager/utils/Controller.java index 04e741b9..255be291 100644 --- a/app/src/main/java/com/jeeldobariya/passcodes/utils/Controller.java +++ b/app/src/main/java/com/passwordmanager/utils/Controller.java @@ -1,4 +1,4 @@ -package com.jeeldobariya.passcodes.utils; +package com.passwordmanager.utils; import android.content.ContentValues; import android.content.Context; @@ -8,8 +8,8 @@ import java.util.List; import java.util.ArrayList; -import com.jeeldobariya.passcodes.database.MyDatabaseHelper; -import com.jeeldobariya.passcodes.models.PasswordModel; +import com.passwordmanager.database.MyDatabaseHelper; +import com.passwordmanager.models.PasswordModel; public class Controller { private MyDatabaseHelper dbHelper; diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/utils/ExampleTestableCode.kt b/app/src/main/java/com/passwordmanager/utils/ExampleTestableCode.java similarity index 63% rename from app/src/main/kotlin/com/jeeldobariya/passcodes/utils/ExampleTestableCode.kt rename to app/src/main/java/com/passwordmanager/utils/ExampleTestableCode.java index d7097f4d..32c57ae4 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/utils/ExampleTestableCode.kt +++ b/app/src/main/java/com/passwordmanager/utils/ExampleTestableCode.java @@ -1,12 +1,12 @@ -package com.jeeldobariya.passcodes.utils +package com.passwordmanager.utils; class ExampleTestableCode { - fun checkStrength(password: String): Int { + int checkStrength(String password) { if (password == null || password.isEmpty()) { return -1; } - val length = password.length; + int length = password.length(); if (length < 8) { return 0; diff --git a/app/src/main/java/com/jeeldobariya/passcodes/utils/Permissions.java b/app/src/main/java/com/passwordmanager/utils/Permissions.java similarity index 97% rename from app/src/main/java/com/jeeldobariya/passcodes/utils/Permissions.java rename to app/src/main/java/com/passwordmanager/utils/Permissions.java index 254479ea..030c8001 100644 --- a/app/src/main/java/com/jeeldobariya/passcodes/utils/Permissions.java +++ b/app/src/main/java/com/passwordmanager/utils/Permissions.java @@ -1,4 +1,4 @@ -package com.jeeldobariya.passcodes.utils; +package com.passwordmanager.utils; import android.Manifest; import android.app.Activity; diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/AboutUsActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/AboutUsActivity.kt deleted file mode 100644 index 6bdb7646..00000000 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/AboutUsActivity.kt +++ /dev/null @@ -1,44 +0,0 @@ -package com.jeeldobariya.passcodes.ui; - -import android.content.Intent; -import android.net.Uri; -import android.os.Bundle; -import androidx.appcompat.app.AppCompatActivity; -import androidx.core.view.WindowCompat; -import com.jeeldobariya.passcodes.databinding.ActivityAboutUsBinding; -import com.jeeldobariya.passcodes.utils.Constant; - -public class AboutUsActivity : AppCompatActivity() { - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState); - val binding = ActivityAboutUsBinding.inflate(layoutInflater); - setContentView(binding.root); - - // Add event onclick listener - addOnClickListenerOnButton(binding); - - // Make window fullscreen - WindowCompat.setDecorFitsSystemWindows(window, false); - } - - private fun openBrowser(url: String) { - val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(url)); - startActivity(browserIntent); - } - - // Added all the onclick event listiners - private fun addOnClickListenerOnButton(binding: ActivityAboutUsBinding) { - binding.viewSecurityGuidelinesBtn.setOnClickListener { - openBrowser(Constant.SECURITY_GUIDE_URL); - }; - - binding.viewChangeLogBtn.setOnClickListener { - openBrowser(Constant.CHANGELOG_URL); - }; - - binding.viewLicenseBtn.setOnClickListener { - openBrowser(Constant.LICENSE_URL); - }; - } -} diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/MainActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/MainActivity.kt deleted file mode 100644 index 42015cbf..00000000 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/MainActivity.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.jeeldobariya.passcodes.ui - -import android.os.Bundle -import android.content.Intent -import androidx.appcompat.app.AppCompatActivity -import androidx.core.view.WindowCompat -import android.view.LayoutInflater - -import com.jeeldobariya.passcodes.R -import com.jeeldobariya.passcodes.databinding.ActivityMainBinding -// import com.jeeldobariya.passcodes.utils.Permissions - -class MainActivity : AppCompatActivity() { - - // private lateinit var permissionsHandle: Permissions - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - val binding = ActivityMainBinding.inflate(layoutInflater) - setContentView(binding.root) - - // Add event onclick listener - addOnClickListenerOnButton(binding) - - // Make window fullscreen - WindowCompat.setDecorFitsSystemWindows(window, false) - - /* Comment the code as permission is not need to write into app data dir. - // Check and request permission when the app is first opened - permissionsHandle = Permissions(this) - if (!permissionsHandle.checkPermission()) permissionsHandle.requestPermission() - */ - } - - /* Comment the code as permission is not need to write into app data dir. - override fun onRequestPermissionsResult( - requestCode: Int, permissions: Array, grantResults: IntArray - ) { - 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() - } - } - } - */ - - // Added all the onclick event listeners - private fun addOnClickListenerOnButton(binding: ActivityMainBinding) { - binding.passwordManagerBtn.setOnClickListener { - val passwordManagerIntent = Intent(this, PasswordManagerActivity::class.java) - startActivity(passwordManagerIntent) - } - - binding.aboutUsBtn.setOnClickListener { - val aboutUsIntent = Intent(this, AboutUsActivity::class.java) - startActivity(aboutUsIntent) - } - - binding.quitBtn.setOnClickListener { - finishAndRemoveTask() - } - } -} diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/utils/Constants.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/utils/Constants.kt deleted file mode 100644 index aaf1010d..00000000 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/utils/Constants.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.jeeldobariya.passcodes.utils - -object Constant { - const val REPO_URL = "https://github.com/JeelDobariya38/password-manager" - const val LICENSE_URL = "https://github.com/JeelDobariya38/password-manager/blob/main/LICENSE.txt" - const val CHANGELOG_URL = "https://github.com/JeelDobariya38/password-manager/blob/main/changelog.md" - const val SECURITY_GUIDE_URL = "https://github.com/JeelDobariya38/password-manager/blob/main/docs/security_guide.md" -} diff --git a/app/src/test/java/com/passwordmanager/utils/ExampleTestableCodeTest.java b/app/src/test/java/com/passwordmanager/utils/ExampleTestableCodeTest.java new file mode 100644 index 00000000..f983607b --- /dev/null +++ b/app/src/test/java/com/passwordmanager/utils/ExampleTestableCodeTest.java @@ -0,0 +1,41 @@ +package com.passwordmanager.utils; + +import org.junit.Test; +import org.junit.Before; +import static com.google.common.truth.Truth.assertThat; + +public class ExampleTestableCodeTest { + private ExampleTestableCode testObj; + + @Before + public void setup() { + testObj = new ExampleTestableCode(); + } + + @Test + public void testCheckStrength_With_EmptyPassword() { + // Given + String password = ""; + + // When & Then + assertThat(testObj.checkStrength(password)).isEqualTo(-1); + } + + @Test + public void testCheckStrength_Weak_ShortPassword() { + // Given + String password = "short"; // Less than 8 characters + + // When & Then + assertThat(testObj.checkStrength(password)).isEqualTo(0); + } + + @Test + public void testCheckStrength_Strong_LongPassword() { + // Given + String password = "long password"; // More than 8 characters + + // When & Then + assertThat(testObj.checkStrength(password)).isEqualTo(1); + } +} diff --git a/app/src/test/kotlin/com/jeeldobariya/passcodes/utils/ExampleTestableCodeTest.kt b/app/src/test/kotlin/com/jeeldobariya/passcodes/utils/ExampleTestableCodeTest.kt deleted file mode 100644 index 95cc7d62..00000000 --- a/app/src/test/kotlin/com/jeeldobariya/passcodes/utils/ExampleTestableCodeTest.kt +++ /dev/null @@ -1,41 +0,0 @@ -package com.jeeldobariya.passcodes.utils - -import org.junit.Test -import org.junit.Before -import com.google.common.truth.Truth.assertThat - -class ExampleTestableCodeTest { - private lateinit var testObj: ExampleTestableCode - - @Before - fun setup() { - testObj = ExampleTestableCode() - } - - @Test - fun `should handle empty passwords`() { - // Given - val password = "" - - // When & Then - assertThat(testObj.checkStrength(password)).isEqualTo(-1) - } - - @Test - fun `should detect short password as weak`() { - // Given - val password = "short" // Less than 8 characters - - // When & Then - assertThat(testObj.checkStrength(password)).isEqualTo(0) - } - - @Test - fun `should detect log password as weak`() { - // Given - val password = "long password" // More than 8 characters - - // When & Then - assertThat(testObj.checkStrength(password)).isEqualTo(1) - } -} diff --git a/build.gradle b/build.gradle index 4fc87010..44057941 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,6 @@ buildscript { } dependencies { classpath "com.android.tools.build:gradle:7.3.1" - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.0" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/git-hooks/commit-msg.sample b/git-hooks/commit-msg.sample index 2e1105f3..d94cc1ef 100644 --- a/git-hooks/commit-msg.sample +++ b/git-hooks/commit-msg.sample @@ -11,7 +11,7 @@ fi # Read the commit message from the file. COMMIT_MSG=$(cat "$COMMIT_MSG_FILE") -CONVENTIONAL_COMMIT_REGEX='^(feat|fix|docs|style|refactor|test|chore|build|ci|perf|revert)(\([a-z0-9_.-]+\))?(!)?:\s.*$' +CONVENTIONAL_COMMIT_REGEX='^(feat|fix|docs|style|refactor|test|chore|build|ci|perf|revert)(\([a-zA-Z0-9_.-]+\))?(!)?:\s.*$' # Check if the commit message matches the regex. if ! [[ $COMMIT_MSG =~ $CONVENTIONAL_COMMIT_REGEX ]]; then