Less strict HOTP parsing, Remove fabs

This commit is contained in:
MrLetsplay 2023-09-24 14:38:28 +02:00
parent 2045326d04
commit 90590936df
Signed by: mr
SSH Key Fingerprint: SHA256:92jBH80vpXyaZHjaIl47pjRq+Yt7XGTArqQg1V7hSqg
8 changed files with 0 additions and 118 deletions

View File

@ -142,11 +142,7 @@ public class MainActivity extends BaseActivity {
setSupportActionBar(binding.toolbar); setSupportActionBar(binding.toolbar);
//binding.fabMenu.setOnClickListener(view -> NavigationUtil.navigate(this, MenuFragment.class, null)); TODO: remove old menu
binding.fabMenu.setOnClickListener(view -> NavigationUtil.openMenu(this, null)); binding.fabMenu.setOnClickListener(view -> NavigationUtil.openMenu(this, null));
binding.fabScan.setOnClickListener(view -> scanCode(null));
binding.fabScanImage.setOnClickListener(view -> scanCodeFromImage(null));
binding.fabInput.setOnClickListener(view -> inputCode(null));
Fragment fragment = NavigationUtil.getCurrentFragment(this); Fragment fragment = NavigationUtil.getCurrentFragment(this);
if(fragment instanceof NamedFragment) { if(fragment instanceof NamedFragment) {

View File

@ -1,33 +1,26 @@
package com.cringe_studios.cringe_authenticator.fragment; package com.cringe_studios.cringe_authenticator.fragment;
import android.content.ClipData;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.RecyclerView;
import com.cringe_studios.cringe_authenticator.R; import com.cringe_studios.cringe_authenticator.R;
import com.cringe_studios.cringe_authenticator.crypto.CryptoException; import com.cringe_studios.cringe_authenticator.crypto.CryptoException;
import com.cringe_studios.cringe_authenticator.databinding.FragmentGroupBinding; import com.cringe_studios.cringe_authenticator.databinding.FragmentGroupBinding;
import com.cringe_studios.cringe_authenticator.grouplist.GroupListItem;
import com.cringe_studios.cringe_authenticator.model.OTPData; import com.cringe_studios.cringe_authenticator.model.OTPData;
import com.cringe_studios.cringe_authenticator.otplist.OTPListAdapter; import com.cringe_studios.cringe_authenticator.otplist.OTPListAdapter;
import com.cringe_studios.cringe_authenticator.otplist.OTPListItem; import com.cringe_studios.cringe_authenticator.otplist.OTPListItem;
import com.cringe_studios.cringe_authenticator.util.DialogUtil; import com.cringe_studios.cringe_authenticator.util.DialogUtil;
import com.cringe_studios.cringe_authenticator.util.FabUtil;
import com.cringe_studios.cringe_authenticator.util.OTPDatabase; import com.cringe_studios.cringe_authenticator.util.OTPDatabase;
import com.cringe_studios.cringe_authenticator.util.OTPDatabaseException; import com.cringe_studios.cringe_authenticator.util.OTPDatabaseException;
import com.cringe_studios.cringe_authenticator.util.SettingsUtil; import com.cringe_studios.cringe_authenticator.util.SettingsUtil;
import com.cringe_studios.cringe_authenticator.util.StyledDialogBuilder; import com.cringe_studios.cringe_authenticator.util.StyledDialogBuilder;
import com.cringe_studios.cringe_authenticator_library.OTPException;
import com.cringe_studios.cringe_authenticator_library.OTPType; import com.cringe_studios.cringe_authenticator_library.OTPType;
import java.util.List; import java.util.List;
@ -63,8 +56,6 @@ public class GroupFragment extends NamedFragment {
groupID = requireArguments().getString(GroupFragment.BUNDLE_GROUP); groupID = requireArguments().getString(GroupFragment.BUNDLE_GROUP);
//FabUtil.showFabs(requireActivity());
otpListAdapter = new OTPListAdapter(requireContext(), binding.itemList); otpListAdapter = new OTPListAdapter(requireContext(), binding.itemList);
binding.itemList.setAdapter(otpListAdapter); binding.itemList.setAdapter(otpListAdapter);

View File

@ -9,7 +9,6 @@ import androidx.annotation.NonNull;
import com.cringe_studios.cringe_authenticator.R; import com.cringe_studios.cringe_authenticator.R;
import com.cringe_studios.cringe_authenticator.databinding.FragmentHomeBinding; import com.cringe_studios.cringe_authenticator.databinding.FragmentHomeBinding;
import com.cringe_studios.cringe_authenticator.util.FabUtil;
public class HomeFragment extends NamedFragment { public class HomeFragment extends NamedFragment {
@ -23,7 +22,6 @@ public class HomeFragment extends NamedFragment {
@Override @Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
binding = FragmentHomeBinding.inflate(inflater, container, false); binding = FragmentHomeBinding.inflate(inflater, container, false);
FabUtil.hideFabs(requireActivity());
return binding.getRoot(); return binding.getRoot();
} }

View File

@ -13,9 +13,7 @@ import com.cringe_studios.cringe_authenticator.crypto.CryptoException;
import com.cringe_studios.cringe_authenticator.databinding.FragmentMenuDrawerBinding; import com.cringe_studios.cringe_authenticator.databinding.FragmentMenuDrawerBinding;
import com.cringe_studios.cringe_authenticator.grouplist.GroupListAdapter; import com.cringe_studios.cringe_authenticator.grouplist.GroupListAdapter;
import com.cringe_studios.cringe_authenticator.grouplist.GroupListItem; import com.cringe_studios.cringe_authenticator.grouplist.GroupListItem;
import com.cringe_studios.cringe_authenticator.model.OTPData;
import com.cringe_studios.cringe_authenticator.util.DialogUtil; import com.cringe_studios.cringe_authenticator.util.DialogUtil;
import com.cringe_studios.cringe_authenticator.util.FabUtil;
import com.cringe_studios.cringe_authenticator.util.NavigationUtil; import com.cringe_studios.cringe_authenticator.util.NavigationUtil;
import com.cringe_studios.cringe_authenticator.util.OTPDatabase; import com.cringe_studios.cringe_authenticator.util.OTPDatabase;
import com.cringe_studios.cringe_authenticator.util.OTPDatabaseException; import com.cringe_studios.cringe_authenticator.util.OTPDatabaseException;

View File

@ -1,10 +1,5 @@
package com.cringe_studios.cringe_authenticator.fragment; package com.cringe_studios.cringe_authenticator.fragment;
import static androidx.biometric.BiometricManager.Authenticators.BIOMETRIC_STRONG;
import static androidx.biometric.BiometricManager.Authenticators.DEVICE_CREDENTIAL;
import android.location.SettingInjectorService;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -15,7 +10,6 @@ import android.widget.ArrayAdapter;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.biometric.BiometricManager;
import com.cringe_studios.cringe_authenticator.MainActivity; import com.cringe_studios.cringe_authenticator.MainActivity;
import com.cringe_studios.cringe_authenticator.R; import com.cringe_studios.cringe_authenticator.R;
@ -27,7 +21,6 @@ import com.cringe_studios.cringe_authenticator.databinding.FragmentSettingsBindi
import com.cringe_studios.cringe_authenticator.util.Appearance; import com.cringe_studios.cringe_authenticator.util.Appearance;
import com.cringe_studios.cringe_authenticator.util.BiometricUtil; import com.cringe_studios.cringe_authenticator.util.BiometricUtil;
import com.cringe_studios.cringe_authenticator.util.DialogUtil; import com.cringe_studios.cringe_authenticator.util.DialogUtil;
import com.cringe_studios.cringe_authenticator.util.FabUtil;
import com.cringe_studios.cringe_authenticator.util.OTPDatabase; import com.cringe_studios.cringe_authenticator.util.OTPDatabase;
import com.cringe_studios.cringe_authenticator.util.OTPDatabaseException; import com.cringe_studios.cringe_authenticator.util.OTPDatabaseException;
import com.cringe_studios.cringe_authenticator.util.SettingsUtil; import com.cringe_studios.cringe_authenticator.util.SettingsUtil;
@ -35,7 +28,6 @@ import com.cringe_studios.cringe_authenticator.util.Theme;
import java.util.Arrays; import java.util.Arrays;
import java.util.Locale; import java.util.Locale;
import java.util.Objects;
import javax.crypto.SecretKey; import javax.crypto.SecretKey;
@ -199,8 +191,6 @@ public class SettingsFragment extends NamedFragment {
public void onNothingSelected(AdapterView<?> parent) {} public void onNothingSelected(AdapterView<?> parent) {}
}); });
FabUtil.hideFabs(requireActivity());
return binding.getRoot(); return binding.getRoot();
} }

View File

@ -1,54 +0,0 @@
package com.cringe_studios.cringe_authenticator.util;
import android.app.Activity;
import android.view.View;
import com.cringe_studios.cringe_authenticator.R;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
public class FabUtil {
public static void showFabs(Activity activity) {
FloatingActionButton fabScanImage = activity.findViewById(R.id.fab_scan_image);
if(fabScanImage != null) {
fabScanImage.setVisibility(View.VISIBLE);
fabScanImage.setClickable(true);
fabScanImage.animate().translationX(-activity.getResources().getDimension(R.dimen.fab1_offset));
}
FloatingActionButton fabScan = activity.findViewById(R.id.fab_scan);
if(fabScan != null) {
fabScan.setVisibility(View.VISIBLE);
fabScan.setClickable(true);
fabScan.animate().translationX(-activity.getResources().getDimension(R.dimen.fab2_offset));
}
FloatingActionButton fabInput = activity.findViewById(R.id.fab_input);
if(fabInput != null) {
fabInput.setVisibility(View.VISIBLE);
fabInput.setClickable(true);
fabInput.animate().translationX(-activity.getResources().getDimension(R.dimen.fab3_offset));
}
}
public static void hideFabs(Activity activity) {
FloatingActionButton fabScan = activity.findViewById(R.id.fab_scan);
if(fabScan != null) {
fabScan.setClickable(false);
fabScan.animate().translationX(0).withEndAction(() -> fabScan.setVisibility(View.GONE));
}
FloatingActionButton fabScanImage = activity.findViewById(R.id.fab_scan_image);
if(fabScan != null) {
fabScanImage.setClickable(false);
fabScanImage.animate().translationX(0).withEndAction(() -> fabScanImage.setVisibility(View.GONE));
}
FloatingActionButton fabInput = activity.findViewById(R.id.fab_input);
if(fabInput != null) {
fabInput.setClickable(false);
fabInput.animate().translationX(0).withEndAction(() -> fabInput.setVisibility(View.GONE));
}
}
}

View File

@ -163,10 +163,6 @@ public class OTPParser {
throw new IllegalArgumentException("Failed to parse OTP parameters"); throw new IllegalArgumentException("Failed to parse OTP parameters");
} }
if(fType == OTPType.HOTP && counter == null) {
throw new IllegalArgumentException("Missing required parameters");
}
if(accountName.length() == 0 || (issuer != null && issuer.length() == 0)) { if(accountName.length() == 0 || (issuer != null && issuer.length() == 0)) {
throw new IllegalArgumentException("Missing required parameters"); throw new IllegalArgumentException("Missing required parameters");
} }

View File

@ -22,39 +22,6 @@
<include layout="@layout/content_main" /> <include layout="@layout/content_main" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab_input"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginEnd="@dimen/fab_margin"
android:layout_marginBottom="16dp"
app:srcCompat="@drawable/baseline_edit_24"
android:backgroundTint="?attr/colorTheme1"
android:visibility="gone" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab_scan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginEnd="@dimen/fab_margin"
android:layout_marginBottom="16dp"
app:srcCompat="@drawable/baseline_qr_code_scanner_24"
android:backgroundTint="?attr/colorTheme1"
android:visibility="gone" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab_scan_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginEnd="@dimen/fab_margin"
android:layout_marginBottom="16dp"
android:backgroundTint="?attr/colorTheme1"
android:visibility="gone"
app:srcCompat="@drawable/baseline_compare_24" />
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab_menu" android:id="@+id/fab_menu"
android:layout_width="wrap_content" android:layout_width="wrap_content"