mirror of
https://github.com/CatimaLoyalty/Android.git
synced 2025-12-24 23:57:53 -05:00
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bbd3782bf2 | ||
|
|
b69f2d470b | ||
|
|
ce4dc01c9d | ||
|
|
5cea7eba6c | ||
|
|
0f7d64bed6 | ||
|
|
330b6ecd54 | ||
|
|
3f5bcbb941 | ||
|
|
9c74b2a264 | ||
|
|
dfc804fbe5 | ||
|
|
fa73a30bf4 | ||
|
|
449419b647 | ||
|
|
36916b622b | ||
|
|
03f97374bd | ||
|
|
8650878d95 | ||
|
|
defb8793f6 | ||
|
|
c6b7fd6032 |
@@ -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:
|
||||
|
||||
10
CHANGELOG.md
10
CHANGELOG.md
@@ -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:
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 ||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user