Add settings for font sizes

This commit is contained in:
Branden Archer
2018-02-16 22:45:31 -05:00
parent 4843a1093d
commit 9951999ca4
14 changed files with 325 additions and 6 deletions

View File

@@ -1,8 +1,10 @@
package protect.card_locker;
import android.app.Activity;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.graphics.Color;
import android.preference.PreferenceManager;
import android.view.View;
import android.widget.TextView;
@@ -23,12 +25,22 @@ public class LoyaltyCardCursorAdapterTest
{
private Activity activity;
private DBHelper db;
private SharedPreferences settings;
@Before
public void setUp()
{
activity = Robolectric.setupActivity(MainActivity.class);
db = new DBHelper(activity);
settings = PreferenceManager.getDefaultSharedPreferences(activity);
}
private void setFontSizes(int storeFontSize, int noteFontSize)
{
settings.edit()
.putInt(activity.getResources().getString(R.string.settings_key_card_title_list_font_size), storeFontSize)
.putInt(activity.getResources().getString(R.string.settings_key_card_note_list_font_size), noteFontSize)
.apply();
}
private View createView(Cursor cursor)
@@ -41,12 +53,21 @@ public class LoyaltyCardCursorAdapterTest
return view;
}
private void checkView(final View view, final String store, final String note)
private void checkView(final View view, final String store, final String note, boolean checkFontSizes)
{
final TextView storeField = view.findViewById(R.id.store);
assertEquals(store, storeField.getText().toString());
final TextView noteField = view.findViewById(R.id.note);
if(checkFontSizes)
{
int storeFontSize = settings.getInt(activity.getResources().getString(R.string.settings_key_card_title_list_font_size), 0);
int noteFontSize = settings.getInt(activity.getResources().getString(R.string.settings_key_card_note_list_font_size), 0);
assertEquals(storeFontSize, (int)storeField.getTextSize());
assertEquals(noteFontSize, (int)noteField.getTextSize());
}
assertEquals(store, storeField.getText().toString());
if(note.isEmpty() == false)
{
assertEquals(View.VISIBLE, noteField.getVisibility());
@@ -70,7 +91,7 @@ public class LoyaltyCardCursorAdapterTest
View view = createView(cursor);
checkView(view, card.store, card.note);
checkView(view, card.store, card.note, false);
}
@Test
@@ -84,6 +105,24 @@ public class LoyaltyCardCursorAdapterTest
View view = createView(cursor);
checkView(view, card.store, card.note);
checkView(view, card.store, card.note, false);
}
@Test
public void TestCursorAdapterFontSizes()
{
db.insertLoyaltyCard("store", "note", "cardId", BarcodeFormat.UPC_A.toString(), Color.BLACK, Color.WHITE);
LoyaltyCard card = db.getLoyaltyCard(1);
Cursor cursor = db.getLoyaltyCardCursor();
cursor.moveToFirst();
setFontSizes(1, 2);
View view = createView(cursor);
checkView(view, card.store, card.note, true);
setFontSizes(30, 31);
view = createView(cursor);
checkView(view, card.store, card.note, true);
}
}

View File

@@ -2,11 +2,14 @@ package protect.card_locker;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.ResolveInfo;
import android.graphics.Color;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.widget.TextViewCompat;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
@@ -523,4 +526,44 @@ public class LoyaltyCardViewActivityTest
// Save and check the gift card
saveLoyaltyCardWithArguments(activity, "store", "note", BARCODE_DATA, BARCODE_TYPE, false);
}
@Test
public void startCheckFontSizes()
{
ActivityController activityController = createActivityWithLoyaltyCard(false);
Activity activity = (Activity)activityController.get();
DBHelper db = new DBHelper(activity);
db.insertLoyaltyCard("store", "note", BARCODE_DATA, BARCODE_TYPE, Color.BLACK, Color.WHITE);
final int STORE_FONT_SIZE = 50;
final int CARD_FONT_SIZE = 40;
final int NOTE_FONT_SIZE = 30;
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(activity);
settings.edit()
.putInt(activity.getResources().getString(R.string.settings_key_card_title_font_size), STORE_FONT_SIZE)
.putInt(activity.getResources().getString(R.string.settings_key_card_id_font_size), CARD_FONT_SIZE)
.putInt(activity.getResources().getString(R.string.settings_key_card_note_font_size), NOTE_FONT_SIZE)
.apply();
activityController.start();
activityController.visible();
activityController.resume();
assertEquals(false, activity.isFinishing());
TextView storeName = activity.findViewById(R.id.storeName);
TextView cardIdFieldView = activity.findViewById(R.id.cardIdView);
TextView noteView = activity.findViewById(R.id.noteView);
TextViewCompat.getAutoSizeMaxTextSize(storeName);
TextViewCompat.getAutoSizeMaxTextSize(storeName);
assertEquals(STORE_FONT_SIZE, (int)storeName.getTextSize());
assertEquals(CARD_FONT_SIZE, TextViewCompat.getAutoSizeMaxTextSize(cardIdFieldView));
assertEquals(NOTE_FONT_SIZE, TextViewCompat.getAutoSizeMaxTextSize(noteView));
shadowOf(activity).clickMenuItem(android.R.id.home);
assertEquals(true, activity.isFinishing());
}
}

View File

@@ -66,12 +66,13 @@ public class MainActivityTest
assertTrue(menu != null);
// The settings and add button should be present
assertEquals(menu.size(), 4);
assertEquals(menu.size(), 5);
assertEquals("Add", menu.findItem(R.id.action_add).getTitle().toString());
assertEquals("Import/Export", menu.findItem(R.id.action_import_export).getTitle().toString());
assertEquals("Start Intro", menu.findItem(R.id.action_intro).getTitle().toString());
assertEquals("About", menu.findItem(R.id.action_about).getTitle().toString());
assertEquals("Settings", menu.findItem(R.id.action_settings).getTitle().toString());
}
@Test