Skip to content
This repository was archived by the owner on Jun 27, 2020. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
03f4b26
Raise gradle version.
Sep 5, 2018
602d875
Update all dependencies.
Sep 5, 2018
857ff38
#95. Kotlinify EditAccountActivity.
Sep 5, 2018
bba8d27
#95. Move EditAccountActivity to activity.account.edit package.
Sep 5, 2018
a942879
#95. Partly move logic from EditAccountActivity to EditAccountFragment.
Sep 5, 2018
ababa1e
#95. Completely move all logic to EditAccountFragment.
Sep 6, 2018
bc6c4c0
#95. Ongoing refactoring.
Sep 6, 2018
b49d2b1
#95. Add AccountRecordFragment.
Sep 6, 2018
05c19ab
#95. Display account records.
Sep 6, 2018
bd7615d
#95. Rename FragmentAccountRecords to FragmentAccountOperations.
Sep 6, 2018
85e09ab
#95. Kotlinify TransferController.
Sep 10, 2018
710f433
#95. Display transfers as records in account operations.
Sep 10, 2018
3c75b2c
#95. Refactor AccountOperationsFragment.
Sep 10, 2018
7cc5dae
#95. Add tabs to EditAccountActivity.
Sep 10, 2018
db929b8
#95. Add localization.
Sep 10, 2018
6b4b778
#95. Hide FAB when going to Operations tab.
Sep 11, 2018
b622cbd
#95. Updated .travis.yml.
Sep 11, 2018
84e3b7f
Merge pull request #156 from evgenii-kanivets/feature-95_account_oper…
Sep 11, 2018
3e76c15
#150. Add 'Delete' button to backup item view.
Sep 11, 2018
01e5fb2
#150. Implement delete backup listener.
Sep 12, 2018
b4af995
#150. Extract async tasks from BackupController.
Sep 12, 2018
64cae2d
#150. Refactore BackupListener.
Sep 12, 2018
e9c945e
#150. Consolidate OnBackupListener.
Sep 12, 2018
953ca7e
#150. Implement Dropbox backup removal.
Sep 15, 2018
3e396b0
Merge pull request #157 from evgenii-kanivets/feature-150_dropbox_del…
Sep 15, 2018
3bb5ab2
Add 'Removing backup' message.
Sep 15, 2018
24fbc63
#134. Add account goal to EditAccountFragment.
Sep 16, 2018
ea19a2c
#134. Formatting.
Sep 16, 2018
1be7fed
Merge pull request #158 from evgenii-kanivets/feature-134_account_goal
Sep 16, 2018
9fb0339
#153. Add 'NON susbstitution currency' setting.
Sep 16, 2018
1898059
#153. Substitute NON currency in RecordController.
Sep 17, 2018
8015367
#153. Substitute NON currency in AccountController.
Sep 17, 2018
b6924c7
#153. Fine tune CurrencyController.
Sep 17, 2018
1dd6dd4
#153. Fix RecordControllerTest.
Sep 17, 2018
69aab3f
Merge pull request #159 from evgenii-kanivets/feature-153_non_substit…
Sep 17, 2018
69e2186
#155. Fix record layout.
Sep 17, 2018
e824ff1
Merge pull request #160 from evgenii-kanivets/bugfix-155
Sep 17, 2018
6e9450a
Fix tests.
Sep 17, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,23 @@ import android.view.View
import com.blogspot.e_kanivets.moneytracker.R
import com.blogspot.e_kanivets.moneytracker.R.layout
import com.blogspot.e_kanivets.moneytracker.activity.base.BaseFragment
import com.blogspot.e_kanivets.moneytracker.controller.FormatController
import com.blogspot.e_kanivets.moneytracker.controller.data.AccountController
import com.blogspot.e_kanivets.moneytracker.entity.data.Account
import com.blogspot.e_kanivets.moneytracker.util.AnswersProxy
import com.blogspot.e_kanivets.moneytracker.util.validator.EditAccountValidator
import com.blogspot.e_kanivets.moneytracker.util.validator.IValidator
import kotlinx.android.synthetic.main.fragment_edit_account.*
import javax.inject.Inject

class EditAccountFragment : BaseFragment() {

@Inject
internal lateinit var accountController: AccountController
@Inject
internal lateinit var formatController: FormatController

private lateinit var accountValidator: IValidator<Account>

private lateinit var account: Account

Expand All @@ -28,25 +36,28 @@ class EditAccountFragment : BaseFragment() {

override fun initViews(view: View) {
etTitle.setText(account.title)
etGoal.setText(account.goal.toString())
etGoal.setText(formatController.formatPrecisionNone(account.goal))
viewColor.setBackgroundColor(account.color)

val fabDone = view.rootView.findViewById<FloatingActionButton>(R.id.fabDone)
fabDone.setOnClickListener { done() }

accountValidator = EditAccountValidator(context!!, view)
}

private fun done() {
val title = etTitle.text.toString().trim { it <= ' ' }
AnswersProxy.get().logButton("Edit Account")
if (accountValidator.validate()) {
val title = etTitle.text.toString().trim { it <= ' ' }
val goal = etGoal.text.toString().toDouble()

if (title.isEmpty()) {
tilTitle.error = getString(R.string.field_cant_be_empty)
} else {
val newAccount = Account(
account.id, title, account.curSum.toDouble(),
account.currency, account.goal, account.isArchived, account.color
account.currency, goal, account.isArchived, account.color
)
val updated = accountController.update(newAccount) != null
if (updated) {
AnswersProxy.get().logEvent("Edit Account")
activity?.setResult(Activity.RESULT_OK)
activity?.finish()
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package com.blogspot.e_kanivets.moneytracker.util.validator;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.design.widget.TextInputLayout;
import android.view.View;
import android.widget.EditText;
import butterknife.BindView;
import butterknife.ButterKnife;
import com.blogspot.e_kanivets.moneytracker.R;
import com.blogspot.e_kanivets.moneytracker.entity.data.Account;

/**
* Util class for EditAccount validation.
* Created on 16.09.2018.
*
* @author Evgenii Kanivets
*/

public class EditAccountValidator implements IValidator<Account> {

@NonNull private final Context context;

@BindView(R.id.tilTitle) TextInputLayout tilTitle;
@BindView(R.id.etTitle) EditText etTitle;
@BindView(R.id.tilGoal) TextInputLayout tilGoal;
@BindView(R.id.etGoal) EditText etGoal;

public EditAccountValidator(@NonNull Context context, @NonNull View view) {
this.context = context;
ButterKnife.bind(this, view);
initTextWatchers();
}

@Override public boolean validate() {
String title = etTitle.getText().toString().trim();
double goal = Double.MAX_VALUE;

try {
goal = Double.parseDouble(etGoal.getText().toString().trim());
} catch (NumberFormatException e) {
e.printStackTrace();
}

boolean valid = true;

if (title.isEmpty()) {
tilTitle.setError(context.getString(R.string.field_cant_be_empty));
valid = false;
}

if (goal == Double.MAX_VALUE) {
tilGoal.setError(context.getString(R.string.field_cant_be_empty));
goal = 0;
valid = false;
}

if (Math.abs(goal) > MAX_ABS_VALUE) {
tilGoal.setError(context.getString(R.string.too_rich_or_poor));
valid = false;
}

return valid;
}

private void initTextWatchers() {
etTitle.addTextChangedListener(new ClearErrorTextWatcher(tilTitle));
etGoal.addTextChangedListener(new ClearErrorTextWatcher(tilGoal));
}
}
3 changes: 1 addition & 2 deletions app/src/main/res/layout/fragment_edit_account.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,9 @@
</android.support.design.widget.TextInputLayout>

<android.support.design.widget.TextInputLayout
android:id="@+id/til_goal"
android:id="@+id/tilGoal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="invisible"
>

<EditText
Expand Down