Compare commits

..

16 Commits
v0.9 ... v0.10

Author SHA1 Message Date
Branden Archer
bbd3782bf2 Merge pull request #92 from brarcher/pre-v0.10
Update for v0.10 release
2017-02-12 15:35:18 -05:00
Branden Archer
b69f2d470b Update for v0.10 release 2017-02-12 15:25:49 -05:00
Branden Archer
ce4dc01c9d Merge pull request #91 from brarcher/view-layout
View layout
2017-02-11 22:43:58 -05:00
Branden Archer
5cea7eba6c Allow text to be selectable in view mode
When text is long clicked it is now selectable, so that one can
copy it to the clipboard.
2017-02-11 22:33:57 -05:00
Branden Archer
0f7d64bed6 Show card data in a TextView when viewing
Earlier when a card was viewed it was shown in an EditView which
was disabled. This was not optimal, as the resulting text was
dimmed. To help the text be easier to read, a TextView is now
used to display the data.

In addition, the layout of the card viewing screen has been adjusted
2017-02-11 22:33:57 -05:00
Branden Archer
330b6ecd54 Merge pull request #87 from brarcher/string-correction
String correction
2017-01-28 19:58:56 -05:00
Branden Archer
3f5bcbb941 Add log message when exporting data 2017-01-28 16:22:14 -05:00
Branden Archer
9c74b2a264 Correct typo in comment 2017-01-28 16:22:14 -05:00
Branden Archer
dfc804fbe5 correct "Use external application" title
The title mistakenly said filesystem.
2017-01-28 16:22:14 -05:00
Branden Archer
fa73a30bf4 Use string const for button
There is a string for the "Use external application" button,
but it was not used.
2017-01-28 16:22:14 -05:00
Branden Archer
449419b647 Merge pull request #85 from brarcher/no-download-extras
Remove downloading extras during travis build
2017-01-17 21:43:35 -05:00
Branden Archer
36916b622b Remove downloading extras during travis build
The application does not use google play and other extra libraries,
so downloading them during the build should be unnecessary.
2017-01-17 21:25:50 -05:00
Branden Archer
03f97374bd Merge pull request #84 from brarcher/export-filename
Change default import/export file name
2017-01-17 21:24:35 -05:00
Branden Archer
8650878d95 Change default import/export file name
The application is now "Loyalty Card Keychain", but "Locker"
still appears in the application's default import/export
file. Updating the file to match the new name of the application.
2017-01-17 21:06:07 -05:00
Branden Archer
defb8793f6 Merge pull request #83 from brarcher/changelog
Update CHANGELOG for v0.9
2017-01-17 20:58:12 -05:00
Branden Archer
c6b7fd6032 Update CHANGELOG for v0.9 2017-01-17 20:47:31 -05:00
16 changed files with 171 additions and 110 deletions

View File

@@ -13,9 +13,6 @@ android:
# The SDK version used to compile your project
- android-23
# Additional components
- extra
script: ./gradlew build lint findbugs test
after_failure:

View File

@@ -1,3 +1,13 @@
## v0.9 (2017-01-17)
The "Locker" part of the name was not intuitive. To help remedy this a new application icon was created by betsythefc which better represents the purpose of the application: to store loyalty cards which use barcodes. Along with this new icon the name of the application has been changed to "Loyalty Card Keychain".
Additional features/improvements:
- Importing/Exporting cards was changed to be more flexible. (https://github.com/brarcher/loyalty-card-locker/pull/76)
- Translations for Lithuanian added. (https://github.com/brarcher/loyalty-card-locker/pull/62)
- Translations for French added. (https://github.com/brarcher/loyalty-card-locker/pull/80)
## v0.8 (2016-11-22)
New features/improvements:

View File

@@ -14,8 +14,8 @@ android {
applicationId "protect.card_locker"
minSdkVersion 11
targetSdkVersion 23
versionCode 9
versionName "0.9"
versionCode 10
versionName "0.10"
}
buildTypes {
release {

View File

@@ -36,7 +36,7 @@ public class ImportExportActivity extends AppCompatActivity
private ImportExportTask importExporter;
private final File sdcardDir = Environment.getExternalStorageDirectory();
private final File exportFile = new File(sdcardDir, "LoyaltyCardLocker.csv");
private final File exportFile = new File(sdcardDir, "LoyaltyCardKeychain.csv");
@Override
protected void onCreate(Bundle savedInstanceState)
@@ -52,7 +52,7 @@ public class ImportExportActivity extends AppCompatActivity
}
// If the application does not have permissions to external
// storage, as for it now
// storage, ask for it now
if (ContextCompat.checkSelfPermission(ImportExportActivity.this,
Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED ||

View File

@@ -76,6 +76,8 @@ class ImportExportTask extends AsyncTask<Void, Void, Boolean>
Log.e(TAG, "Unable to export file", e);
}
Log.i(TAG, "Export of '" + exportFile.getAbsolutePath() + "' result: " + result);
return result;
}
@@ -126,9 +128,9 @@ class ImportExportTask extends AsyncTask<Void, Void, Boolean>
progress.dismiss();
Log.i(TAG, (doImport ? "Import" : "Export") + " Cancelled");
}
interface TaskCompleteListener
{
void onTaskComplete(boolean success, File file);
}
}

View File

@@ -21,6 +21,7 @@ import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.integration.android.IntentIntegrator;
@@ -74,9 +75,12 @@ public class LoyaltyCardViewActivity extends AppCompatActivity
}
}
final EditText storeField = (EditText) findViewById(R.id.storeName);
final EditText noteField = (EditText) findViewById(R.id.note);
final EditText cardIdField = (EditText) findViewById(R.id.cardId);
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);
@@ -95,19 +99,22 @@ public class LoyaltyCardViewActivity extends AppCompatActivity
{
final LoyaltyCard loyaltyCard = db.getLoyaltyCard(loyaltyCardId);
if(storeField.getText().length() == 0)
if(storeFieldEdit.getText().length() == 0)
{
storeField.setText(loyaltyCard.store);
storeFieldEdit.setText(loyaltyCard.store);
storeFieldView.setText(loyaltyCard.store);
}
if(noteField.getText().length() == 0)
if(noteFieldEdit.getText().length() == 0)
{
noteField.setText(loyaltyCard.note);
noteFieldEdit.setText(loyaltyCard.note);
noteFieldView.setText(loyaltyCard.note);
}
if(cardIdField.getText().length() == 0)
if(cardIdFieldEdit.getText().length() == 0)
{
cardIdField.setText(loyaltyCard.cardId);
cardIdFieldEdit.setText(loyaltyCard.cardId);
cardIdFieldView.setText(loyaltyCard.cardId);
}
if(barcodeTypeField.getText().length() == 0)
@@ -115,15 +122,13 @@ public class LoyaltyCardViewActivity extends AppCompatActivity
barcodeTypeField.setText(loyaltyCard.barcodeType);
}
if(viewLoyaltyCard)
{
storeField.setEnabled(false);
noteField.setEnabled(false);
}
if(updateLoyaltyCard)
{
setTitle(R.string.editCardTitle);
storeFieldView.setVisibility(View.GONE);
noteFieldView.setVisibility(View.GONE);
cardIdFieldView.setVisibility(View.GONE);
}
else
{
@@ -132,25 +137,33 @@ public class LoyaltyCardViewActivity extends AppCompatActivity
saveButton.setVisibility(View.GONE);
cancelButton.setVisibility(View.GONE);
setTitle(R.string.viewCardTitle);
storeFieldEdit.setVisibility(View.GONE);
noteFieldEdit.setVisibility(View.GONE);
cardIdFieldEdit.setVisibility(View.GONE);
}
}
else
{
setTitle(R.string.addCardTitle);
storeFieldView.setVisibility(View.GONE);
noteFieldView.setVisibility(View.GONE);
cardIdFieldView.setVisibility(View.GONE);
}
if(cardIdField.getText().length() == 0)
if(cardIdFieldEdit.getText().length() == 0)
{
barcodeIdLayout.setVisibility(View.GONE);
}
barcodeTypeLayout.setVisibility(View.GONE);
if(cardIdField.getText().length() > 0 && barcodeTypeField.getText().length() > 0)
if(cardIdFieldEdit.getText().length() > 0 && barcodeTypeField.getText().length() > 0)
{
String formatString = barcodeTypeField.getText().toString();
final BarcodeFormat format = BarcodeFormat.valueOf(formatString);
final String cardIdString = cardIdField.getText().toString();
final String cardIdString = cardIdFieldEdit.getText().toString();
if(barcodeImage.getHeight() == 0)
{
@@ -218,9 +231,9 @@ public class LoyaltyCardViewActivity extends AppCompatActivity
@Override
public void onClick(final View v)
{
String store = storeField.getText().toString();
String note = noteField.getText().toString();
String cardId = cardIdField.getText().toString();
String store = storeFieldEdit.getText().toString();
String note = noteFieldEdit.getText().toString();
String cardId = cardIdFieldEdit.getText().toString();
String barcodeType = barcodeTypeField.getText().toString();
if(store.isEmpty())
@@ -364,8 +377,13 @@ public class LoyaltyCardViewActivity extends AppCompatActivity
Log.i(TAG, "Read barcode id: " + contents);
Log.i(TAG, "Read format: " + format);
final EditText cardIdField = (EditText) findViewById(R.id.cardId);
cardIdField.setText(contents);
for(TextView view : new TextView[]{
(EditText) findViewById(R.id.cardIdEdit),
(TextView) findViewById(R.id.cardIdView)})
{
view.setText(contents);
}
final EditText barcodeTypeField = (EditText) findViewById(R.id.barcodeType);
barcodeTypeField.setText(format);
onResume();

View File

@@ -128,8 +128,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp"
android:text="Use external application" />
android:text="@string/importOptionApplicationButton" />
<View
android:id="@+id/dividerImportFixed"

View File

@@ -29,79 +29,92 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout android:orientation="horizontal"
android:padding="10.0dip"
android:padding="10dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:textSize="16.0sp"
<TextView android:textSize="@dimen/text_size_medium"
android:textStyle="bold"
android:layout_gravity="center_vertical"
android:paddingStart="20.0dip"
android:paddingEnd="20.0dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="20.0dip"
android:paddingEnd="20.0dip"
android:labelFor="@+id/storeName"
android:text="@string/storeName" />
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<EditText android:id="@+id/storeName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="text"/>
</LinearLayout>
<EditText android:id="@+id/storeNameEdit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:textSize="@dimen/text_size_medium"/>
<TextView android:id="@+id/storeNameView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="10dip"
android:paddingBottom="10dip"
android:textSize="@dimen/text_size_medium"
android:textIsSelectable="true"/>
</LinearLayout>
<LinearLayout android:orientation="horizontal"
android:padding="10.0dip"
android:padding="10dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:textSize="16.0sp"
<TextView android:textSize="@dimen/text_size_medium"
android:textStyle="bold"
android:layout_gravity="center_vertical"
android:paddingStart="20.0dip"
android:paddingEnd="20.0dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="20.0dip"
android:paddingEnd="20.0dip"
android:labelFor="@+id/note"
android:text="@string/note" />
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<EditText android:id="@+id/note"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="text"/>
</LinearLayout>
<EditText android:id="@+id/noteEdit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:textSize="@dimen/text_size_medium"/>
<TextView android:id="@+id/noteView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="10dip"
android:paddingBottom="10dip"
android:textSize="@dimen/text_size_medium"
android:textIsSelectable="true"/>
</LinearLayout>
<LinearLayout android:orientation="horizontal"
android:padding="10.0dip"
android:padding="10dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/barcodeIdLayout">
<TextView android:textSize="16.0sp"
<TextView android:textSize="@dimen/text_size_medium"
android:textStyle="bold"
android:layout_gravity="center_vertical"
android:paddingStart="20.0dip"
android:paddingEnd="20.0dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="20.0dip"
android:paddingEnd="20.0dip"
android:labelFor="@+id/cardId"
android:text="@string/cardId" />
<EditText android:id="@+id/cardId"
<EditText android:id="@+id/cardIdEdit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:inputType="text"/>
android:inputType="text"
android:textSize="@dimen/text_size_medium"/>
<TextView android:id="@+id/cardIdView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="10dip"
android:paddingBottom="10dip"
android:textSize="@dimen/text_size_medium"
android:textIsSelectable="true"/>
</LinearLayout>
<LinearLayout android:orientation="horizontal"
android:padding="10.0dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/barcodeTypeLayout">
<TextView android:textSize="16.0sp"
<TextView android:textSize="@dimen/text_size_medium"
android:textStyle="bold"
android:layout_gravity="center_vertical"
android:paddingStart="20.0dip"
android:paddingEnd="20.0dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:labelFor="@+id/barcodeType"

View File

@@ -68,7 +68,7 @@
<string name="importOptionFilesystemTitle">Import ze souborového systému</string>
<string name="importOptionFilesystemExplanation">Vyberte konkrétní soubor v uložišti.</string>
<string name="importOptionFilesystemButton">Ze souborového systému</string>
<string name="importOptionApplicationTitle">Import ze souborového systému</string>
<string name="importOptionApplicationTitle">Použít externí aplikaci</string>
<string name="importOptionApplicationExplanation">K otevření souboru použije externí aplikaci jako Dropbox, Google Drive, nebo vámi preferovaný prohlížeč souborů.</string>
<string name="importOptionApplicationButton">Použít externí aplikaci</string>
<string name="importOptionFixedTitle">Import z umístění exportu</string>

View File

@@ -57,7 +57,7 @@
<string name="importOptionFilesystemTitle">Importiere vom Dateisystem</string>
<string name="importOptionFilesystemExplanation">Wähle eine Datei im Speicher aus.</string>
<string name="importOptionFilesystemButton">Vom Dateisystem</string>
<string name="importOptionApplicationTitle">Importiere vom Dateisystem</string>
<string name="importOptionApplicationTitle">Nutze eine externe App</string>
<string name="importOptionApplicationExplanation">Wähle eine Datei aus einer App wie Dropbox, Google Drive, oder deinem bevorzugten Dateisystem aus.</string>
<string name="importOptionApplicationButton">Nutze eine externe App</string>
<string name="importOptionFixedTitle">Importiere vom Export Ort</string>

View File

@@ -69,7 +69,7 @@
<string name="importOptionFilesystemTitle">Importer depuis le système de fichiers.</string>
<string name="importOptionFilesystemExplanation">Choisissez le fichier à importer.</string>
<string name="importOptionFilesystemButton">Système de fichiers</string>
<string name="importOptionApplicationTitle">Importer depuis le système de fichiers</string>
<string name="importOptionApplicationTitle">Application externe</string>
<string name="importOptionApplicationExplanation">Utilisez une application externe comme Dropbox, Google Drive, ou votre gestionnaire de fichiers favori pour ouvrir un fichier.</string>
<string name="importOptionApplicationButton">Application externe</string>
<string name="importOptionFixedTitle">Importer depuis le même emplacement que pour l\'export</string>

View File

@@ -65,7 +65,7 @@
<string name="importOptionFilesystemTitle">Importa dal file system</string>
<string name="importOptionFilesystemExplanation">Scegli un file dal file system.</string>
<string name="importOptionFilesystemButton">Dal file system</string>
<string name="importOptionApplicationTitle">Importa dal file system</string>
<string name="importOptionApplicationTitle">Usa un\'applicazione esterna</string>
<string name="importOptionApplicationExplanation">Usa un\'applicazione esterna come Dropbox, Google Drive o il tuo file manager preferito per aprire il file.</string>
<string name="importOptionApplicationButton">Usa un\'applicazione esterna</string>
<string name="importOptionFixedTitle">Importa da un altro posto</string>

View File

@@ -69,7 +69,7 @@
<!-- needs translated --><string name="importOptionFilesystemTitle">Import from filesystem</string>
<!-- needs translated --><string name="importOptionFilesystemExplanation">Choose a specific file from the filesystem.</string>
<!-- needs translated --><string name="importOptionFilesystemButton">From filesystem</string>
<!-- needs translated --><string name="importOptionApplicationTitle">Import from filesystem</string>
<!-- needs translated --><string name="importOptionApplicationTitle">Use external application</string>
<!-- needs translated --><string name="importOptionApplicationExplanation">Use an external application like Dropbox, Google Drive, or your favorite file manager to open a file.</string>
<!-- needs translated --><string name="importOptionApplicationButton">Use external application</string>
<!-- needs translated --><string name="importOptionFixedTitle">Import from export location</string>

View File

@@ -66,7 +66,7 @@
<string name="importOptionFilesystemTitle">Importeer van filesysteem</string>
<string name="importOptionFilesystemExplanation">Kies een specifiek bestand van het filesysteem.</string>
<string name="importOptionFilesystemButton">Van filesysteem</string>
<string name="importOptionApplicationTitle">Importeer van filesysteem</string>
<string name="importOptionApplicationTitle">Gebruik externe applicatie</string>
<string name="importOptionApplicationExplanation">Gebruik een externe applicatie zoals Dropbox, Google Drive of je favoriete bestandsbeheer om een bestand te openen.</string>
<string name="importOptionApplicationButton">Gebruik externe applicatie</string>
<string name="importOptionFixedTitle">Importeer van exporteerlocatie</string>

View File

@@ -57,7 +57,7 @@
<string name="importOptionFilesystemTitle">Import from filesystem</string>
<string name="importOptionFilesystemExplanation">Choose a specific file from the filesystem.</string>
<string name="importOptionFilesystemButton">From filesystem</string>
<string name="importOptionApplicationTitle">Import from filesystem</string>
<string name="importOptionApplicationTitle">Use external application</string>
<string name="importOptionApplicationExplanation">Use an external application like Dropbox, Google Drive, or your favorite file manager to open a file.</string>
<string name="importOptionApplicationButton">Use external application</string>
<string name="importOptionFixedTitle">Import from export location</string>

View File

@@ -14,6 +14,7 @@ import android.widget.TextView;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.client.android.Intents;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
@@ -22,6 +23,7 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.res.builder.RobolectricPackageManager;
import org.robolectric.shadows.ShadowActivity;
import org.robolectric.shadows.ShadowLog;
import org.robolectric.util.ActivityController;
import java.io.IOException;
@@ -40,6 +42,21 @@ public class LoyaltyCardViewActivityTest
private final String EAN_BARCODE_DATA = "4763705295336";
private final String EAN_BARCODE_TYPE = BarcodeFormat.EAN_13.name();
enum ViewMode
{
ADD_CARD,
VIEW_CARD,
UPDATE_CARD,
;
}
@Before
public void setUp()
{
// Output logs emitted during tests so they may be accessed
ShadowLog.stream = System.out;
}
/**
* Register a handler in the package manager for a image capture intent
*/
@@ -83,9 +100,9 @@ public class LoyaltyCardViewActivityTest
assertEquals(1, db.getLoyaltyCardCount());
}
final EditText storeField = (EditText) activity.findViewById(R.id.storeName);
final EditText noteField = (EditText) activity.findViewById(R.id.note);
final EditText cardIdField = (EditText) activity.findViewById(R.id.cardId);
final EditText storeField = (EditText) activity.findViewById(R.id.storeNameEdit);
final EditText noteField = (EditText) activity.findViewById(R.id.noteEdit);
final EditText cardIdField = (EditText) activity.findViewById(R.id.cardIdEdit);
final EditText barcodeTypeField = (EditText) activity.findViewById(R.id.barcodeType);
final Button saveButton = (Button) activity.findViewById(R.id.saveButton);
@@ -145,12 +162,11 @@ public class LoyaltyCardViewActivityTest
}
private void checkFieldProperties(final Activity activity, final int id, final int visibility,
boolean enabled, final String contents)
final String contents)
{
final View view = activity.findViewById(id);
assertNotNull(view);
assertEquals(visibility, view.getVisibility());
assertEquals(enabled, view.isEnabled());
if(contents != null)
{
TextView textView = (TextView)view;
@@ -158,24 +174,30 @@ public class LoyaltyCardViewActivityTest
}
}
private void checkAllFields(final Activity activity, boolean editMode, final String store,
final String note, final String cardId, final String barcodeType)
private void checkAllFields(final Activity activity, ViewMode mode,
final String store, final String note, final String cardId, final String barcodeType)
{
int cardIdVisibility = cardId.isEmpty() ? View.GONE : View.VISIBLE;
int captureVisibility = editMode ? View.VISIBLE : View.GONE;
int captureVisibility = (mode == ViewMode.UPDATE_CARD || mode == ViewMode.ADD_CARD) ? View.VISIBLE : View.GONE;
checkFieldProperties(activity, R.id.storeName, View.VISIBLE, editMode, store);
checkFieldProperties(activity, R.id.note, View.VISIBLE, editMode, note);
checkFieldProperties(activity, R.id.cardId, View.VISIBLE, false, cardId);
checkFieldProperties(activity, R.id.barcodeType, View.VISIBLE, false, barcodeType);
checkFieldProperties(activity, R.id.captureButton, captureVisibility, true, null);
checkFieldProperties(activity, R.id.saveButton, captureVisibility, true, null);
checkFieldProperties(activity, R.id.cancelButton, captureVisibility, true, null);
checkFieldProperties(activity, R.id.barcode, View.VISIBLE, true, null);
int viewVisibility = (mode == ViewMode.VIEW_CARD) ? View.VISIBLE : View.GONE;
int editVisibility = (mode != ViewMode.VIEW_CARD) ? View.VISIBLE : View.GONE;
checkFieldProperties(activity, R.id.barcodeIdLayout, cardIdVisibility, true, null);
checkFieldProperties(activity, R.id.barcodeLayout, cardIdVisibility, true, null);
checkFieldProperties(activity, R.id.barcodeTypeLayout, View.GONE, true, null);
checkFieldProperties(activity, R.id.storeNameEdit, editVisibility, store);
checkFieldProperties(activity, R.id.storeNameView, viewVisibility, store);
checkFieldProperties(activity, R.id.noteEdit, editVisibility, note);
checkFieldProperties(activity, R.id.noteView, viewVisibility, note);
checkFieldProperties(activity, R.id.cardIdEdit, editVisibility, cardId);
checkFieldProperties(activity, R.id.cardIdView, viewVisibility, cardId);
checkFieldProperties(activity, R.id.barcodeType, View.VISIBLE, barcodeType);
checkFieldProperties(activity, R.id.captureButton, captureVisibility, null);
checkFieldProperties(activity, R.id.saveButton, captureVisibility, null);
checkFieldProperties(activity, R.id.cancelButton, captureVisibility, null);
checkFieldProperties(activity, R.id.barcode, View.VISIBLE, null);
checkFieldProperties(activity, R.id.barcodeIdLayout, cardIdVisibility, null);
checkFieldProperties(activity, R.id.barcodeLayout, cardIdVisibility, null);
checkFieldProperties(activity, R.id.barcodeTypeLayout, View.GONE, null);
}
@Test
@@ -188,11 +210,11 @@ public class LoyaltyCardViewActivityTest
Activity activity = (Activity)activityController.get();
checkAllFields(activity, true, "", "", "", "");
checkAllFields(activity, ViewMode.ADD_CARD, "", "", "", "");
}
@Test
public void startWithoutParametersCannotCreateGiftCard()
public void startWithoutParametersCannotCreateLoyaltyCard()
{
ActivityController activityController = Robolectric.buildActivity(LoyaltyCardViewActivity.class).create();
activityController.start();
@@ -203,9 +225,9 @@ public class LoyaltyCardViewActivityTest
DBHelper db = new DBHelper(activity);
assertEquals(0, db.getLoyaltyCardCount());
final EditText storeField = (EditText) activity.findViewById(R.id.storeName);
final EditText noteField = (EditText) activity.findViewById(R.id.note);
final EditText cardIdField = (EditText) activity.findViewById(R.id.cardId);
final EditText storeField = (EditText) activity.findViewById(R.id.storeNameEdit);
final EditText noteField = (EditText) activity.findViewById(R.id.noteEdit);
final EditText cardIdField = (EditText) activity.findViewById(R.id.cardIdEdit);
final Button saveButton = (Button) activity.findViewById(R.id.saveButton);
@@ -254,12 +276,12 @@ public class LoyaltyCardViewActivityTest
Activity activity = (Activity)activityController.get();
checkAllFields(activity, true, "", "", "", "");
checkAllFields(activity, ViewMode.ADD_CARD, "", "", "", "");
// Complete barcode capture successfully
captureBarcodeWithResult(activity, R.id.captureButton, true);
checkAllFields(activity, true, "", "", BARCODE_DATA, BARCODE_TYPE);
checkAllFields(activity, ViewMode.ADD_CARD, "", "", BARCODE_DATA, BARCODE_TYPE);
// Save and check the gift card
saveLoyaltyCardWithArguments(activity, "store", "note", BARCODE_DATA, BARCODE_TYPE, true);
@@ -275,12 +297,12 @@ public class LoyaltyCardViewActivityTest
Activity activity = (Activity)activityController.get();
checkAllFields(activity, true, "", "", "", "");
checkAllFields(activity, ViewMode.ADD_CARD, "", "", "", "");
// Complete barcode capture in failure
captureBarcodeWithResult(activity, R.id.captureButton, false);
checkAllFields(activity, true, "", "", "", "");
checkAllFields(activity, ViewMode.ADD_CARD, "", "", "", "");
}
@Test
@@ -293,12 +315,12 @@ public class LoyaltyCardViewActivityTest
Activity activity = (Activity)activityController.get();
checkAllFields(activity, true, "", "", "", "");
checkAllFields(activity, ViewMode.ADD_CARD, "", "", "", "");
// Complete barcode capture successfully
captureBarcodeWithResult(activity, R.id.captureButton, true);
checkAllFields(activity, true, "", "", BARCODE_DATA, BARCODE_TYPE);
checkAllFields(activity, ViewMode.ADD_CARD, "", "", BARCODE_DATA, BARCODE_TYPE);
// Cancel the gift card creation
final Button cancelButton = (Button) activity.findViewById(R.id.cancelButton);
@@ -340,7 +362,7 @@ public class LoyaltyCardViewActivityTest
activityController.visible();
activityController.resume();
checkAllFields(activity, true, "store", "note", BARCODE_DATA, BARCODE_TYPE);
checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", BARCODE_DATA, BARCODE_TYPE);
}
@Test
@@ -356,7 +378,7 @@ public class LoyaltyCardViewActivityTest
activityController.visible();
activityController.resume();
checkAllFields(activity, false, "store", "note", BARCODE_DATA, BARCODE_TYPE);
checkAllFields(activity, ViewMode.VIEW_CARD, "store", "note", BARCODE_DATA, BARCODE_TYPE);
}
@Test
@@ -372,12 +394,12 @@ public class LoyaltyCardViewActivityTest
activityController.visible();
activityController.resume();
checkAllFields(activity, true, "store", "note", EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
// Complete barcode capture successfully
captureBarcodeWithResult(activity, R.id.captureButton, true);
checkAllFields(activity, true, "store", "note", BARCODE_DATA, BARCODE_TYPE);
checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", BARCODE_DATA, BARCODE_TYPE);
}
@Test
@@ -393,12 +415,12 @@ public class LoyaltyCardViewActivityTest
activityController.visible();
activityController.resume();
checkAllFields(activity, true, "store", "note", EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", EAN_BARCODE_DATA, EAN_BARCODE_TYPE);
// Complete barcode capture successfully
captureBarcodeWithResult(activity, R.id.captureButton, true);
checkAllFields(activity, true, "store", "note", BARCODE_DATA, BARCODE_TYPE);
checkAllFields(activity, ViewMode.UPDATE_CARD, "store", "note", BARCODE_DATA, BARCODE_TYPE);
// Cancel the gift card creation
final Button cancelButton = (Button) activity.findViewById(R.id.cancelButton);