From 13b2faab390e26136ab01b88e0ee0c70bb8a38da Mon Sep 17 00:00:00 2001 From: Branden Archer Date: Sun, 18 Jun 2017 13:58:50 -0400 Subject: [PATCH] Use save button in action bar --- .../card_locker/LoyaltyCardViewActivity.java | 141 ++++++++++-------- app/src/main/res/drawable-hdpi/save_24dp.png | Bin 0 -> 519 bytes app/src/main/res/drawable-mdpi/save_24dp.png | Bin 0 -> 406 bytes app/src/main/res/drawable-xhdpi/save_24dp.png | Bin 0 -> 651 bytes .../main/res/drawable-xxhdpi/save_24dp.png | Bin 0 -> 853 bytes .../main/res/drawable-xxxhdpi/save_24dp.png | Bin 0 -> 1060 bytes .../res/layout/loyalty_card_view_activity.xml | 16 -- app/src/main/res/menu/card_update_menu.xml | 8 +- .../LoyaltyCardViewActivityTest.java | 31 ++-- 9 files changed, 93 insertions(+), 103 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/save_24dp.png create mode 100644 app/src/main/res/drawable-mdpi/save_24dp.png create mode 100644 app/src/main/res/drawable-xhdpi/save_24dp.png create mode 100644 app/src/main/res/drawable-xxhdpi/save_24dp.png create mode 100644 app/src/main/res/drawable-xxxhdpi/save_24dp.png diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index 47875064e..1f1c235e7 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -34,6 +34,28 @@ public class LoyaltyCardViewActivity extends AppCompatActivity private static final int SELECT_BARCODE_REQUEST = 1; + EditText storeFieldEdit; + TextView storeFieldView; + EditText noteFieldEdit; + TextView noteFieldView; + EditText cardIdFieldEdit; + TextView cardIdFieldView; + EditText barcodeTypeField; + ImageView barcodeImage; + View barcodeIdLayout; + View barcodeTypeLayout; + View barcodeImageLayout; + View barcodeCaptureLayout; + + Button captureButton; + Button enterButton; + + int loyaltyCardId; + boolean updateLoyaltyCard; + boolean viewLoyaltyCard; + + DBHelper db; + @Override protected void onCreate(Bundle savedInstanceState) { @@ -47,6 +69,13 @@ public class LoyaltyCardViewActivity extends AppCompatActivity { actionBar.setDisplayHomeAsUpEnabled(true); } + + final Bundle b = getIntent().getExtras(); + loyaltyCardId = b != null ? b.getInt("id") : 0; + updateLoyaltyCard = b != null && b.getBoolean("update", false); + viewLoyaltyCard = b != null && b.getBoolean("view", false); + + db = new DBHelper(this); } @Override @@ -54,11 +83,6 @@ public class LoyaltyCardViewActivity extends AppCompatActivity { super.onResume(); - final Bundle b = getIntent().getExtras(); - final int loyaltyCardId = b != null ? b.getInt("id") : 0; - final boolean updateLoyaltyCard = b != null && b.getBoolean("update", false); - final boolean viewLoyaltyCard = b != null && b.getBoolean("view", false); - Log.i(TAG, "To view card: " + loyaltyCardId); if(viewLoyaltyCard) @@ -75,25 +99,21 @@ public class LoyaltyCardViewActivity extends AppCompatActivity } } - final EditText storeFieldEdit = (EditText) findViewById(R.id.storeNameEdit); - final TextView storeFieldView = (TextView) findViewById(R.id.storeNameView); - final EditText noteFieldEdit = (EditText) findViewById(R.id.noteEdit); - final TextView noteFieldView = (TextView) findViewById(R.id.noteView); - final EditText cardIdFieldEdit = (EditText) findViewById(R.id.cardIdEdit); - final TextView cardIdFieldView = (TextView) findViewById(R.id.cardIdView); - final EditText barcodeTypeField = (EditText) findViewById(R.id.barcodeType); - final ImageView barcodeImage = (ImageView) findViewById(R.id.barcode); - final View barcodeIdLayout = findViewById(R.id.barcodeIdLayout); - final View barcodeTypeLayout = findViewById(R.id.barcodeTypeLayout); - final View barcodeImageLayout = findViewById(R.id.barcodeLayout); - final View barcodeCaptureLayout = findViewById(R.id.barcodeCaptureLayout); + storeFieldEdit = (EditText) findViewById(R.id.storeNameEdit); + storeFieldView = (TextView) findViewById(R.id.storeNameView); + noteFieldEdit = (EditText) findViewById(R.id.noteEdit); + noteFieldView = (TextView) findViewById(R.id.noteView); + cardIdFieldEdit = (EditText) findViewById(R.id.cardIdEdit); + cardIdFieldView = (TextView) findViewById(R.id.cardIdView); + barcodeTypeField = (EditText) findViewById(R.id.barcodeType); + barcodeImage = (ImageView) findViewById(R.id.barcode); + barcodeIdLayout = findViewById(R.id.barcodeIdLayout); + barcodeTypeLayout = findViewById(R.id.barcodeTypeLayout); + barcodeImageLayout = findViewById(R.id.barcodeLayout); + barcodeCaptureLayout = findViewById(R.id.barcodeCaptureLayout); - final Button captureButton = (Button) findViewById(R.id.captureButton); - final Button enterButton = (Button) findViewById(R.id.enterButton); - final Button saveButton = (Button) findViewById(R.id.saveButton); - final Button cancelButton = (Button) findViewById(R.id.cancelButton); - - final DBHelper db = new DBHelper(this); + captureButton = (Button) findViewById(R.id.captureButton); + enterButton = (Button) findViewById(R.id.enterButton); if(updateLoyaltyCard || viewLoyaltyCard) { @@ -134,8 +154,6 @@ public class LoyaltyCardViewActivity extends AppCompatActivity { barcodeCaptureLayout.setVisibility(View.GONE); captureButton.setVisibility(View.GONE); - saveButton.setVisibility(View.GONE); - cancelButton.setVisibility(View.GONE); setTitle(R.string.viewCardTitle); storeFieldEdit.setVisibility(View.GONE); @@ -243,51 +261,38 @@ public class LoyaltyCardViewActivity extends AppCompatActivity { enterButton.setText(R.string.enterCard); } + } - saveButton.setOnClickListener(new View.OnClickListener() + private void doSave() + { + String store = storeFieldEdit.getText().toString(); + String note = noteFieldEdit.getText().toString(); + String cardId = cardIdFieldEdit.getText().toString(); + String barcodeType = barcodeTypeField.getText().toString(); + + if(store.isEmpty()) { - @Override - public void onClick(final View v) - { - String store = storeFieldEdit.getText().toString(); - String note = noteFieldEdit.getText().toString(); - String cardId = cardIdFieldEdit.getText().toString(); - String barcodeType = barcodeTypeField.getText().toString(); + Snackbar.make(storeFieldEdit, R.string.noStoreError, Snackbar.LENGTH_LONG).show(); + return; + } - if(store.isEmpty()) - { - Snackbar.make(v, R.string.noStoreError, Snackbar.LENGTH_LONG).show(); - return; - } - - if(cardId.isEmpty() || barcodeType.isEmpty()) - { - Snackbar.make(v, R.string.noCardIdError, Snackbar.LENGTH_LONG).show(); - return; - } - - if(updateLoyaltyCard) - { - db.updateLoyaltyCard(loyaltyCardId, store, note, cardId, barcodeType); - Log.i(TAG, "Updated " + loyaltyCardId + " to " + cardId); - } - else - { - db.insertLoyaltyCard(store, note, cardId, barcodeType); - } - - finish(); - } - }); - - cancelButton.setOnClickListener(new View.OnClickListener() + if(cardId.isEmpty() || barcodeType.isEmpty()) { - @Override - public void onClick(View v) - { - finish(); - } - }); + Snackbar.make(cardIdFieldEdit, R.string.noCardIdError, Snackbar.LENGTH_LONG).show(); + return; + } + + if(updateLoyaltyCard) + { + db.updateLoyaltyCard(loyaltyCardId, store, note, cardId, barcodeType); + Log.i(TAG, "Updated " + loyaltyCardId + " to " + cardId); + } + else + { + db.insertLoyaltyCard(store, note, cardId, barcodeType); + } + + finish(); } @Override @@ -361,6 +366,10 @@ public class LoyaltyCardViewActivity extends AppCompatActivity startActivity(intent); finish(); return true; + + case R.id.action_save: + doSave(); + return true; } return super.onOptionsItemSelected(item); diff --git a/app/src/main/res/drawable-hdpi/save_24dp.png b/app/src/main/res/drawable-hdpi/save_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..703c4c1543ee9cdda1f49ab3b31dd1189457bbb7 GIT binary patch literal 519 zcmV+i0{H!jP)K~z|U?UylY6hRn9Ix$U15CuUZhP)|m!F95?JKXFh3imX-^L-!lJg*ln}54TuTsw{t>86r~}L<$Q%LdF@;e=lD6o73pY;e8EOGj34JW- zdu>9%JK*l{K4ANqq~}$2u{U+~FH22x#IDdhaAkNGjwJnvDU3bT2EHW-MN=j;WBW}5 zJuj3cL!pD*dz}wy3XW$ZPx$*002ov JPDHLkV1oZ5a>gXRD-`sB}n~rk_kn+E+falJ=7ErKGBxTXDuKfw#|N3uw5K zO3CJa*-YBN1OVfM7IYaZsDA-Z&b$M(GPRWVP(fs79bhg~ZzSy(lA;j7j-&PVrAn` zP(%c=5%C9zO)RVwL}Ov0tq2k=v`S%+sHcJ;!kzK8xIJ@TX7A=3Z||~XA2>K>=be4u zo7r!7Z=j;0qSRR40ZEgo9BtDtcIns2sW#n0Tl*tPTYGsO37FpnT%ybD42ToJ<6a@w z1OWCheDf`)=@B9nV7-`cF%8V;g$M;$j~oWBg$|S@0KoB3W0?X3%W|0l1gQcHo6-ju zb@p!n_j8Wb+P*&lCL+iD;Pmhht^j8C6F42w?|iZ&C$URtXQ3_tNn^kcuP$~5?n$}} z{PLc_!3^=s?k}+c_5oMDgAanzSE14e@Km8X@S`Xr9gHU{CCvn0`>tf~!vjImgrrv; z9+pCVW0%k^Gh6AS$F7*!M_?|dZ)|`@x}9XA&gp%WK+-YbT#B{_HQ=I|eesA=Oxyt` z6Lc}uX#OJ-O-dPkk)VlT1$gNdrOdz?U_UUHpzX#dGkfn9xdUX?Xu+#1iVbxq20+qo zV3z(bp=Dss%v?{rDc8V5n%6)PYzJ<51Sw0Xo}ejg?35WenSJ_wBl`?I@QPBZ&@yn_ zt1F5PQ-y9yDst_In2PBX3J@}S_P?z3hu{wwT0*aZZ^e2^;(4esxEmws2ymU|F6FRy lZ0f*M;6iIRv!bG6l|P~^3>Tjg6CD5m002ovPDHLkV1hW>8F&By literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/save_24dp.png b/app/src/main/res/drawable-xxhdpi/save_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..10bd566ce428168c0c3d457c58c6f047bf5e8854 GIT binary patch literal 853 zcmV-b1FHOqP)uD-~_JG#!PCy4@-3k~m(GIW$L`aaHY! zdH-zzIR)S(&>jZFY>2s)BB zx}X3qD1ZwJ;DQ3Upa3o?fC~zcxCW?#8DJzuyC)UTU!<%{;z7pxL`(#U$P92IqHZdt zu9n0Ov3mZ7(RA8~4I2nu1?R{{%dprX)(?!T>Sf@QVSlpF32X;WS%zkrgZ7snO^u)C z1Gu07E+~Kt3gChQWI2ny1Fiz!ZMrfqv;%{{uGoNBK_7t)BJv@2$F)RNF9C;QYGa4k ztwxbkW;C`iR?xTD9p*&zG~knT0ITnVP}MeIAF!VM#7_e^MC7eipqU`x0&v(cFP5XK zx>iI?E}|_z>0!gHEOY}~timh>O&Vrpp$I&+3bPzy2Z8gzI`aGD)mPx6h&;CnG!rBu z?|}nWdG&&y<^#B(04^wi%`e~Szl^<3?mV%B@x>(GcYrtKrFw2GFZB^|CddP2*o)!_) z56Sc_CL%@PwPj}B_&O+n3kncB#0FILm}yVumnE@X37xA3%c(y7Fy{r-4ntLZgn=iVk2=#cM_2889j$*K6M; f$8j9TsTF?!Sl~8kizc&e00000NkvXXu0mjfpNWGk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/save_24dp.png b/app/src/main/res/drawable-xxxhdpi/save_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..19ed7e10443c33a5983bc0c8659b7f775b8537df GIT binary patch literal 1060 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4%caKYZ?lNlJ8Z+f~o zhE&XXd)IqKXsO8YkMCD$M@;!XD2+%LEexUR5q50VxeZ*JcF{uDnOSlc&`2`Z?aP{B-~Mn*a54kN@I1f46$= z|GWE(&(+QO+b|`_OLHlhNL%xoXVNvMe&*GBzb{*-l|9>(xt@96`x}qAjjb;(f3No7 zTi;f%IcA#=*Z#6)Ui16BcRkbc#>Z)8D-T($^SLx<$=ykMtM>2yb*A`qL+1LF=MDdk zx2*_G`rlB;&gS#Kcgfed(_dHdU4F+D$MS5?EdLdy2hu0K`>qit(opsOow$vZUnlE> z4tI{F^BdF~R=ek#rN%gE@IE*eILl|_L}v}&1)r~7;)!JF^QtPCF?08tmdgpB52zn* znZWpCCOe<^uJxyVBpcSVKA5ni^^&9!Lw$C`+oi(k45cxZ)Q!2wjBbe}8V;Ql==T_%Fe{HxP&;G5~WY)jB6#<(gt}>i?!~ei` zd6c{DtDf0^xVWB49^g72^*CXltMGY-d1Y%vy)N+{aMrD=WZMvYY4aqtUsqf`%NgV^ zJ#?QMSfRJ(>4Cb0^-JcuTSo zCa!SKO12N;AGkIgKT}t}##&58m)VRd|M8CLZzK=M8CRd(crU_mbN2y9&*=^PdtOzo zW4>3u#`K&W)43|q&pZ#pk4GiHp1=Bu_}*7f!va9wo}B!B(mGbTW#znAckE`UNln|o zB_qt1!Lyv%y}>&Bd(jq^%*``vV|E92uU~N2=h`9m9dZ@nL0@khZ{bLAZk97$!tvag$F{teq5*?snc?19z1 zzbYa*bC~m3=dHTC=4kkZX>7Jx6+xF?-SUlMx$w{Jx}8h&#_b#l`9P=1%;_p^n7LQ= zrObw@Cx5!W34YKkb~Z|u`>BmBckGC`o~QlLUFGbNmz`hMv6McPJivH7%2;`S zQ`1zof_1Mnmid4Dq{aK-$pq$^p+`@zesR-a5|0I=jlr9av=fyN - -