Skip to content

Commit 136de4a

Browse files
Add brightness slider for transfer activity
1 parent 7c6e3ae commit 136de4a

File tree

3 files changed

+56
-19
lines changed

3 files changed

+56
-19
lines changed

app/src/main/java/com/beemdevelopment/aegis/ui/TransferEntriesActivity.java

+28-4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import android.os.Build;
1111
import android.os.Bundle;
1212
import android.os.PersistableBundle;
13+
import android.provider.Settings;
1314
import android.view.MenuItem;
1415
import android.view.View;
1516
import android.view.ViewGroup;
@@ -47,6 +48,8 @@ public class TransferEntriesActivity extends AegisActivity {
4748
private Button _previousButton;
4849
private Button _copyButton;
4950
private int _currentEntryCount = 1;
51+
private float _deviceBrightness;
52+
private boolean isMaxBrightnessSet = false;
5053

5154
@Override
5255
protected void onCreate(Bundle savedInstanceState) {
@@ -146,14 +149,35 @@ public void onGlobalLayout() {
146149
_qrImage.getViewTreeObserver().removeOnGlobalLayoutListener(this);
147150
}
148151
});
152+
153+
_deviceBrightness = getSystemBrightness();
154+
_qrImage.setOnClickListener(v -> {
155+
if (!isMaxBrightnessSet) {
156+
setBrightness(1f);
157+
isMaxBrightnessSet = true;
158+
} else {
159+
setBrightness(_deviceBrightness);
160+
isMaxBrightnessSet = false;
161+
}
162+
});
149163
}
150164

151-
@Override
152-
public void onAttachedToWindow() {
153-
// Max brightness to make the QR codes easier to scan
165+
private float getSystemBrightness() {
166+
int brightness = 0;
167+
try {
168+
brightness = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
169+
} catch (Settings.SettingNotFoundException e) {
170+
e.printStackTrace();
171+
}
172+
173+
return brightness / 255f;
174+
}
175+
176+
private void setBrightness(float brightnessAmount) {
154177
WindowManager.LayoutParams attrs = getWindow().getAttributes();
155-
attrs.screenBrightness = 1.0f;
178+
attrs.screenBrightness = brightnessAmount;
156179
getWindow().setAttributes(attrs);
180+
getSystemBrightness();
157181
}
158182

159183
@Override

app/src/main/res/layout/activity_share_entry.xml

+27-15
Original file line numberDiff line numberDiff line change
@@ -25,53 +25,53 @@
2525
android:id="@+id/layoutShareEntry"
2626
android:layout_width="match_parent"
2727
android:layout_height="match_parent"
28-
android:paddingHorizontal="30dp"
29-
android:layout_marginTop="?attr/actionBarSize">
28+
android:layout_marginTop="?attr/actionBarSize"
29+
android:paddingHorizontal="30dp">
3030

3131
<TextView
3232
android:id="@+id/tvDescription"
3333
android:layout_width="wrap_content"
3434
android:layout_height="wrap_content"
3535
android:gravity="center"
3636
android:text="@string/transfer_entry_description"
37-
app:layout_constraintTop_toTopOf="parent"
3837
app:layout_constraintBottom_toTopOf="@+id/ivQrCode"
3938
app:layout_constraintEnd_toEndOf="parent"
40-
app:layout_constraintStart_toStartOf="parent" />
39+
app:layout_constraintStart_toStartOf="parent"
40+
app:layout_constraintTop_toTopOf="parent" />
4141

4242
<com.google.android.material.imageview.ShapeableImageView
4343
android:id="@+id/ivQrCode"
4444
android:layout_width="0dp"
4545
android:layout_height="0dp"
46-
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Aegis.ImageView.Rounded"
46+
app:layout_constraintBottom_toBottomOf="parent"
4747
app:layout_constraintDimensionRatio="1:1"
48-
app:layout_constraintVertical_bias="0.3"
49-
app:layout_constraintTop_toTopOf="parent"
5048
app:layout_constraintEnd_toEndOf="parent"
5149
app:layout_constraintStart_toStartOf="parent"
52-
app:layout_constraintBottom_toBottomOf="parent" />
50+
app:layout_constraintTop_toTopOf="parent"
51+
app:layout_constraintVertical_bias="0.3"
52+
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Aegis.ImageView.Rounded" />
5353

5454
<TextView
5555
android:id="@+id/tvIssuer"
5656
android:layout_width="wrap_content"
5757
android:layout_height="wrap_content"
5858
android:layout_marginTop="20dp"
59-
tools:text="Issuer"
6059
android:textSize="18sp"
6160
android:textStyle="bold"
6261
app:layout_constraintEnd_toEndOf="parent"
6362
app:layout_constraintStart_toStartOf="parent"
64-
app:layout_constraintTop_toBottomOf="@+id/ivQrCode" />
63+
app:layout_constraintTop_toBottomOf="@+id/ivQrCode"
64+
tools:text="Issuer" />
6565

6666
<TextView
6767
android:id="@+id/tvAccountName"
6868
android:layout_width="wrap_content"
6969
android:layout_height="wrap_content"
7070
android:layout_marginTop="4dp"
71-
tools:text="Accountname"
7271
app:layout_constraintEnd_toEndOf="parent"
7372
app:layout_constraintStart_toStartOf="parent"
74-
app:layout_constraintTop_toBottomOf="@+id/tvIssuer" />
73+
app:layout_constraintTop_toBottomOf="@+id/tvIssuer"
74+
tools:text="Accountname" />
7575

7676
<Button
7777
android:id="@+id/btnCopyClipboard"
@@ -80,29 +80,31 @@
8080
android:text="@string/copy_uri"
8181
android:textAllCaps="false"
8282
android:visibility="invisible"
83+
app:layout_constraintBottom_toTopOf="@id/tvEntriesCount"
8384
app:layout_constraintEnd_toEndOf="parent"
85+
app:layout_constraintHorizontal_bias="0.497"
8486
app:layout_constraintStart_toStartOf="parent"
8587
app:layout_constraintTop_toBottomOf="@id/tvAccountName"
86-
app:layout_constraintBottom_toTopOf="@id/tvEntriesCount" />
88+
app:layout_constraintVertical_bias="0.134" />
8789

8890
<Button
8991
android:id="@+id/btnNext"
92+
style="@style/Widget.Material3.Button.TextButton"
9093
android:layout_width="wrap_content"
9194
android:layout_height="wrap_content"
9295
android:layout_marginBottom="4dp"
93-
style="@style/Widget.Material3.Button.TextButton"
9496
android:text="@string/next"
9597
android:textAllCaps="false"
9698
app:layout_constraintBottom_toBottomOf="parent"
9799
app:layout_constraintEnd_toEndOf="parent" />
98100

99101
<Button
100102
android:id="@+id/btnPrevious"
103+
style="@style/Widget.Material3.Button.TextButton"
101104
android:layout_width="wrap_content"
102105
android:layout_height="wrap_content"
103106
android:layout_marginEnd="4dp"
104107
android:layout_marginBottom="4dp"
105-
style="@style/Widget.Material3.Button.TextButton"
106108
android:text="@string/previous"
107109
android:textAllCaps="false"
108110
android:visibility="invisible"
@@ -118,6 +120,16 @@
118120
app:layout_constraintEnd_toEndOf="@+id/btnNext"
119121
app:layout_constraintStart_toStartOf="@+id/btnPrevious" />
120122

123+
<TextView
124+
android:id="@+id/textView3"
125+
android:layout_width="wrap_content"
126+
android:layout_height="wrap_content"
127+
android:text="@string/transfer_entry_brightness"
128+
app:layout_constraintBottom_toTopOf="@+id/tvEntriesCount"
129+
app:layout_constraintEnd_toEndOf="parent"
130+
app:layout_constraintStart_toStartOf="parent"
131+
app:layout_constraintTop_toBottomOf="@+id/btnCopyClipboard" />
132+
121133
</androidx.constraintlayout.widget.ConstraintLayout>
122134

123135
</androidx.coordinatorlayout.widget.CoordinatorLayout>

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

+1
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,7 @@
497497
<string name="unable_to_copy_uri_to_clipboard">Unable to copy URI to clipboard</string>
498498
<string name="uri_copied_to_clipboard">URI copied to clipboard</string>
499499
<string name="transfer_entry_description">Scan this QR code with the authenticator app you would like to transfer this entry to</string>
500+
<string name="transfer_entry_brightness">Tap the QR code to toggle full screen brightness</string>
500501
<string name="google_auth_compatible_transfer_description">Scan these QR codes with Aegis or Google Authenticator.\n\nDue to limitations of the Google Authenticator app, only TOTP &amp; HOTP tokens that use SHA1 and produce 6-digit codes are included</string>
501502

502503
<string name="password_strength_very_weak">Very weak</string>

0 commit comments

Comments
 (0)