Skip to content

Commit

Permalink
Merge pull request #42 from zVolt/feature/deletedebitcard
Browse files Browse the repository at this point in the history
Feature/deletedebitcard
  • Loading branch information
zkhan93 authored Dec 12, 2021
2 parents eb0ee90 + e8474fd commit 3bfd974
Show file tree
Hide file tree
Showing 88 changed files with 1,052 additions and 1,101 deletions.
23 changes: 11 additions & 12 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ android {
ndkVersion "22.1.7171670"

compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "io.github.zkhan93.familyfinance"
Expand Down Expand Up @@ -56,7 +56,7 @@ android {

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', {
androidTestImplementation('androidx.test.espresso:espresso-core:3.4.0', {
exclude group: 'com.android.support', module: 'support-annotations'
})
def nav_version = "2.3.5"
Expand All @@ -66,14 +66,13 @@ dependencies {
implementation 'androidx.legacy:legacy-support-core-utils:1.0.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
implementation "androidx.navigation:navigation-fragment:$nav_version"
implementation "androidx.navigation:navigation-ui:$nav_version"
implementation 'androidx.palette:palette:1.0.0'
implementation 'androidx.preference:preference:1.1.1'



implementation 'com.firebaseui:firebase-ui-auth:8.0.0'
implementation 'com.firebaseui:firebase-ui-database:8.0.0'

Expand All @@ -92,16 +91,16 @@ dependencies {

//greenDao
implementation 'org.greenrobot:greendao:3.3.0'
implementation 'net.zetetic:android-database-sqlcipher:3.5.6'
implementation 'net.zetetic:android-database-sqlcipher:4.5.0'

//EventBus
implementation 'org.greenrobot:eventbus:3.2.0'
implementation 'org.greenrobot:eventbus:3.3.1'

//glide
implementation 'com.github.bumptech.glide:glide:4.10.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.10.0'
implementation 'com.github.bumptech.glide:glide:4.12.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'

implementation 'com.github.tgio:rncryptor-native:0.0.9'
implementation 'com.github.tgio:rncryptor-native:0.0.50'

implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'

Expand All @@ -121,11 +120,11 @@ dependencies {
implementation "androidx.biometric:biometric:1.1.0"

//JUnit 4 framework
testImplementation 'junit:junit:4.13.1'
testImplementation 'junit:junit:4.13.2'
// Robolectric environment
testImplementation 'androidx.test:core:1.4.0'
// Mockito framework
testImplementation 'org.mockito:mockito-core:2.28.2'
testImplementation 'org.mockito:mockito-core:4.1.0'

// Android runner and rules support
androidTestImplementation 'androidx.test:rules:1.4.0'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,13 @@
import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.android.material.snackbar.Snackbar;
import com.google.firebase.database.FirebaseDatabase;

import java.util.HashMap;
import java.util.Map;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.recyclerview.widget.LinearLayoutManager;
Expand Down Expand Up @@ -69,12 +65,7 @@ public boolean onOptionsItemSelected(MenuItem item) {
private void showMessageOnSnackbar(String message) {
if (message == null || message.trim().length() == 0) return;
final Snackbar snackbar = Snackbar.make(toolbar, message, Snackbar.LENGTH_LONG);
snackbar.setAction("OK", new View.OnClickListener() {
@Override
public void onClick(View v) {
snackbar.dismiss();
}
}).show();
snackbar.setAction("OK", v -> snackbar.dismiss()).show();
}

@Override
Expand All @@ -86,15 +77,12 @@ public void approve(final Request request) {
updates.put("users/" + request.getUserId() + "/requests/" + familyId + "/approved", true);
updates.put("members/" + familyId + "/" + request.getUserId(), request);
FirebaseDatabase.getInstance().getReference().updateChildren(updates)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
showMessageOnSnackbar(String.format("%s added to family", request
.getName()));
}
progressDialog.hide();
.addOnCompleteListener(task -> {
if (task.isSuccessful()) {
showMessageOnSnackbar(String.format("%s added to family", request
.getName()));
}
progressDialog.hide();
});
}

Expand All @@ -107,15 +95,12 @@ public void block(final Request request) {
updates.put("users/" + request.getUserId() + "/requests/" + familyId + "/blocked", true);
updates.put("members/" + familyId + "/" + request.getUserId(), null);
FirebaseDatabase.getInstance().getReference().updateChildren(updates)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
showMessageOnSnackbar(String.format("%s blocked from family", request
.getName()));
}
progressDialog.hide();
.addOnCompleteListener(task -> {
if (task.isSuccessful()) {
showMessageOnSnackbar(String.format("%s blocked from family", request
.getName()));
}
progressDialog.hide();
});
}

Expand All @@ -128,15 +113,12 @@ public void revoke(final Request request) {
updates.put("users/" + request.getUserId() + "/requests/" + familyId + "/approved", false);
updates.put("members/" + familyId + "/" + request.getUserId(), null);
FirebaseDatabase.getInstance().getReference().updateChildren(updates)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
showMessageOnSnackbar(String.format("%s's approval revoked", request
.getName()));
}
progressDialog.hide();
.addOnCompleteListener(task -> {
if (task.isSuccessful()) {
showMessageOnSnackbar(String.format("%s's approval revoked", request
.getName()));
}
progressDialog.hide();
});
}

Expand All @@ -149,15 +131,12 @@ public void unblock(final Request request) {
updates.put("users/" + request.getUserId() + "/requests/" + familyId + "/blocked", false);
updates.put("members/" + familyId + "/" + request.getUserId(), null);
FirebaseDatabase.getInstance().getReference().updateChildren(updates)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
showMessageOnSnackbar(String.format("%s unblocked", request
.getName()));
}
progressDialog.hide();
.addOnCompleteListener(task -> {
if (task.isSuccessful()) {
showMessageOnSnackbar(String.format("%s unblocked", request
.getName()));
}
progressDialog.hide();
});

}
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/java/io/github/zkhan93/familyfinance/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public class App extends Application {
private BiometricPrompt biometricPrompt;
private BiometricPrompt.PromptInfo promptInfo;
private SharedPreferences spf;
private static String TAG = App.class.getSimpleName();
private static final String TAG = App.class.getSimpleName();

@Override
public void onCreate() {
Expand Down Expand Up @@ -116,4 +116,5 @@ public void onAuthenticationFailed() {
// if needed by your app.
biometricPrompt.authenticate(promptInfo);
}

}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package io.github.zkhan93.familyfinance;

import static io.github.zkhan93.familyfinance.adapters.BankSpinnerAdapter.OTHER_BANK;

import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
Expand All @@ -14,6 +14,12 @@
import android.widget.Spinner;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.DialogFragment;

import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
import com.google.firebase.auth.FirebaseAuth;
Expand All @@ -23,16 +29,10 @@
import java.util.Calendar;
import java.util.List;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.DialogFragment;
import io.github.zkhan93.familyfinance.adapters.BankSpinnerAdapter;
import io.github.zkhan93.familyfinance.models.Account;
import io.github.zkhan93.familyfinance.tasks.InsertTask;

import static io.github.zkhan93.familyfinance.adapters.BankSpinnerAdapter.OTHER_BANK;
import io.github.zkhan93.familyfinance.util.TextWatcherProxy;


/**
Expand All @@ -41,7 +41,7 @@

public class DialogFragmentAddAccount extends DialogFragment implements DialogInterface
.OnClickListener, InsertTask.Listener<Account>, AdapterView.OnItemSelectedListener, View
.OnClickListener, TextWatcher {
.OnClickListener {

public static final String TAG = DialogFragmentAddAccount.class.getSimpleName();
public static final String ARG_FAMILY_ID = "familyId";
Expand All @@ -68,6 +68,18 @@ public class DialogFragmentAddAccount extends DialogFragment implements DialogIn
private BankSpinnerAdapter bankSpinnerAdapter;
private String selectedBankId;
private View rootView;
private final TextWatcherProxy numberChangeWatcher;

public DialogFragmentAddAccount() {
super();
numberChangeWatcher = new TextWatcherProxy() {
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
((AlertDialog) getDialog()).getButton(DialogInterface.BUTTON_POSITIVE).setEnabled
(charSequence != null && !charSequence.toString().isEmpty());
}
};
}

public static DialogFragmentAddAccount newInstance(String familyId) {
DialogFragmentAddAccount dialogFragmentAddAccount = new DialogFragmentAddAccount();
Expand Down Expand Up @@ -134,17 +146,13 @@ public Dialog onCreateDialog(Bundle savedInstanceState) {
accountHolder.setText(account.getAccountHolder());
ifsc.setText(account.getIfsc());
selectedBankId = account.getBank();
bankSpinnerAdapter.setOnLoadCompleteListener(new BankSpinnerAdapter
.OnLoadCompleteListener() {
@Override
public void onLoadComplete() {
int position = bankSpinnerAdapter.getPosition(selectedBankId);
if (position == -1) {
bank.setSelection(bankSpinnerAdapter.getPosition(OTHER_BANK));
otherBank.setText(selectedBankId);
} else
bank.setSelection(position);
}
bankSpinnerAdapter.setOnLoadCompleteListener(() -> {
int position = bankSpinnerAdapter.getPosition(selectedBankId);
if (position == -1) {
bank.setSelection(bankSpinnerAdapter.getPosition(OTHER_BANK));
otherBank.setText(selectedBankId);
} else
bank.setSelection(position);
});
userid.setText(account.getUserid());
email.setText(account.getEmail());
Expand All @@ -153,14 +161,9 @@ public void onLoadComplete() {
number.setVisibility(View.GONE);
builder.setPositiveButton(R.string.update, this);
} else {
bank.postDelayed(new Runnable() {
@Override
public void run() {
bank.setSelection(0);
}
}, 100);
bank.postDelayed(() -> bank.setSelection(0), 100);
}
number.addTextChangedListener(this);
number.addTextChangedListener(numberChangeWatcher);
builder.setView(rootView);
return builder.create();
}
Expand Down Expand Up @@ -234,12 +237,7 @@ public void onNothingSelected(AdapterView<?> adapterView) {

@Override
public void onClick(final View view) {
view.postDelayed(new Runnable() {
@Override
public void run() {
performAction(view);
}
}, 200);
view.postDelayed(() -> performAction(view), 200);
}

private void performAction(View view) {
Expand All @@ -254,37 +252,13 @@ private void performAction(View view) {
R.drawable.ic_keyboard_arrow_down_grey_500_24dp :
R.drawable.ic_keyboard_arrow_up_grey_500_24dp
));
rootView.postDelayed(new Runnable() {
@Override
public void run() {
((ScrollView) rootView).smoothScrollTo(0, ((ScrollView) rootView)
.getChildAt(0)
.getHeight());
}
}, 50);
rootView.postDelayed(() -> ((ScrollView) rootView).smoothScrollTo(0, ((ScrollView) rootView)
.getChildAt(0)
.getHeight()), 50);
break;
}
}

@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

}

@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if (charSequence == null || charSequence.toString().isEmpty()) {
((AlertDialog) getDialog()).getButton(DialogInterface.BUTTON_POSITIVE).setEnabled
(false);
} else {
((AlertDialog) getDialog()).getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(true);
}
}

@Override
public void afterTextChanged(Editable editable) {

}

@Override
public void onInsertTaskComplete(List<Account> items) {
Expand Down
Loading

0 comments on commit 3bfd974

Please sign in to comment.