Skip to content

Commit af85a3e

Browse files
authored
Merge pull request #5 from CodeDead/feature/display-password-strength
feat: added github actions workflow, added setting to disable the str…
2 parents 76ee29b + 930111a commit af85a3e

8 files changed

Lines changed: 79 additions & 3 deletions

File tree

.github/workflows/test.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Test
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- master
7+
- development
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- name: Setup JDK 17
20+
uses: actions/setup-java@v4
21+
with:
22+
distribution: 'zulu'
23+
java-version: '17'
24+
cache: 'gradle'
25+
26+
- name: Setup Gradle
27+
uses: gradle/actions/setup-gradle@v4
28+
29+
- name: Test
30+
run: ./gradlew test
31+
32+
- name: Build
33+
run: ./gradlew build

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
![GitHub release (latest by date)](https://img.shields.io/github/v/release/CodeDead/advanced-passgen-android)
44
![GitHub](https://img.shields.io/badge/language-Java-green)
55
![GitHub](https://img.shields.io/github/license/CodeDead/advanced-passgen-android)
6+
[![Test](https://github.com/CodeDead/advanced-passgen-android/actions/workflows/test.yml/badge.svg)](https://github.com/CodeDead/advanced-passgen-android/actions/workflows/test.yml)
67

78
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" alt="Get it on F-Droid" height="80">](https://f-droid.org/packages/com.codedead.advancedpassgen/)
89
[<img src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png" alt="Get it on Google Play" height="80">](https://play.google.com/store/apps/details?id=com.codedead.advancedpassgen)

app/src/main/java/com/codedead/advancedpassgen/domain/PasswordAdapter.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import android.os.Build;
1010
import android.os.PersistableBundle;
1111
import android.view.LayoutInflater;
12+
import android.view.View;
1213
import android.view.ViewGroup;
1314
import android.widget.Toast;
1415

@@ -26,6 +27,8 @@ public class PasswordAdapter extends RecyclerView.Adapter<PasswordViewHolder> {
2627

2728
private final Context context;
2829
private final List<PasswordItem> items;
30+
private boolean displayStrength;
31+
private PasswordViewHolder holder;
2932

3033
/**
3134
* Initialize a new PasswordAdapter
@@ -35,6 +38,7 @@ public class PasswordAdapter extends RecyclerView.Adapter<PasswordViewHolder> {
3538
public PasswordAdapter(final Context context) {
3639
this.context = context;
3740
this.items = new ArrayList<>();
41+
this.displayStrength = true;
3842
}
3943

4044
/**
@@ -88,11 +92,18 @@ public PasswordViewHolder onCreateViewHolder(@NonNull final ViewGroup parent, fi
8892
*/
8993
@Override
9094
public void onBindViewHolder(@NonNull final PasswordViewHolder holder, final int position) {
95+
this.holder = holder;
9196
final PasswordItem item = items.get(position);
9297

9398
holder.getPasswordTextView().setText(item.password());
9499
holder.getStrengthProgressBar().setProgress(item.strength());
95100

101+
if (displayStrength) {
102+
holder.getStrengthProgressBar().setVisibility(View.VISIBLE);
103+
} else {
104+
holder.getStrengthProgressBar().setVisibility(View.GONE);
105+
}
106+
96107
if (item.strength() == 100) {
97108
DrawableCompat.setTint(holder.getStrengthProgressBar().getProgressDrawable(), Color.GREEN);
98109
} else if (item.strength() <= 35) {
@@ -134,4 +145,21 @@ public void onBindViewHolder(@NonNull final PasswordViewHolder holder, final int
134145
public int getItemCount() {
135146
return items.size();
136147
}
148+
149+
/**
150+
* Set the display strength setting
151+
*
152+
* @param displayStrength The display strength setting
153+
*/
154+
public void setDisplayStrength(final boolean displayStrength) {
155+
this.displayStrength = displayStrength;
156+
157+
if (holder != null) {
158+
if (displayStrength) {
159+
holder.getStrengthProgressBar().setVisibility(View.VISIBLE);
160+
} else {
161+
holder.getStrengthProgressBar().setVisibility(View.GONE);
162+
}
163+
}
164+
}
137165
}

app/src/main/java/com/codedead/advancedpassgen/ui/home/HomeFragment.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,16 @@ public View onCreateView(@NonNull final LayoutInflater inflater,
4545
final ViewGroup container,
4646
final Bundle savedInstanceState) {
4747
binding = FragmentHomeBinding.inflate(inflater, container, false);
48-
View root = binding.getRoot();
48+
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext());
49+
50+
final View root = binding.getRoot();
4951

5052
binding.swipeRefresh.setOnRefreshListener(this);
5153
binding.textHome.setOnRefreshListener(this);
5254

5355
final RecyclerView recyclerView = binding.recyclerView;
5456
adapter = new PasswordAdapter(requireContext());
57+
adapter.setDisplayStrength(sharedPreferences.getBoolean("showPasswordStrength", true));
5558

5659
recyclerView.setLayoutManager(new LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false));
5760
recyclerView.setAdapter(adapter);
@@ -82,8 +85,6 @@ public View onCreateView(@NonNull final LayoutInflater inflater,
8285
});
8386

8487
binding.fabRefresh.setOnClickListener(view -> refreshPasswords());
85-
86-
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext());
8788
customCharacterSet = sharedPreferences.getString("customCharacterSet", "");
8889
minimumLength = Integer.parseInt(sharedPreferences.getString("minimumLength", "8"));
8990
maximumLength = Integer.parseInt(sharedPreferences.getString("maximumLength", "30"));
@@ -174,6 +175,7 @@ public void onResume() {
174175
specialCharacters = sharedPreferences.getBoolean("specialCharacters", true);
175176
numbers = sharedPreferences.getBoolean("numbers", true);
176177
brackets = sharedPreferences.getBoolean("brackets", false);
178+
adapter.setDisplayStrength(sharedPreferences.getBoolean("showPasswordStrength", true));
177179
if (!sharedPreferences.getBoolean("automaticThreading", true)) {
178180
poolSize = Integer.parseInt(sharedPreferences.getString("poolSize", "1"));
179181
}

app/src/main/res/values-fr/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,6 @@
5757
<string name="automatic_thread_management_summary">Gérer automatiquement les threads pour la génération de mot de passe</string>
5858
<string name="threads">Threads</string>
5959
<string name="threads_summary">Le nombre de threads à utiliser pour la génération de mot de passe</string>
60+
<string name="display_password_strength">Afficher la force du mot de passe</string>
61+
<string name="display_password_strength_summary">Afficher la force du mot de passe généré dans la liste</string>
6062
</resources>

app/src/main/res/values-nl/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,6 @@
5757
<string name="automatic_thread_management_summary">Automatisch beheer van threading voor wachtwoordgeneratie</string>
5858
<string name="threads">Threads</string>
5959
<string name="threads_summary">Het aantal threads dat moet worden gebruikt voor wachtwoordgeneratie</string>
60+
<string name="display_password_strength">Toon wachtwoordsterkte</string>
61+
<string name="display_password_strength_summary">Toon de sterkte van het gegenereerde wachtwoord in de lijst</string>
6062
</resources>

app/src/main/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,6 @@
5656
<string name="automatic_thread_management_summary">Automatically manage threading for password generation</string>
5757
<string name="threads">Threads</string>
5858
<string name="threads_summary">The amount of threads to use for password generation</string>
59+
<string name="display_password_strength">Display password strength</string>
60+
<string name="display_password_strength_summary">Display the strength of the generated password in the list</string>
5961
</resources>

app/src/main/res/xml/root_preferences.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@
1313
app:summary="@string/applanguage_summary"
1414
app:title="@string/application_languages" />
1515

16+
<SwitchPreferenceCompat
17+
app:defaultValue="true"
18+
app:key="showPasswordStrength"
19+
app:summary="@string/display_password_strength_summary"
20+
app:title="@string/display_password_strength" />
21+
1622
<SwitchPreferenceCompat
1723
android:disableDependentsState="true"
1824
app:defaultValue="true"

0 commit comments

Comments
 (0)