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

@@ -9,11 +9,16 @@ import android.widget.CursorAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import protect.card_locker.preferences.Settings;
class LoyaltyCardCursorAdapter extends CursorAdapter
{
Settings settings;
public LoyaltyCardCursorAdapter(Context context, Cursor cursor)
{
super(context, cursor, 0);
settings = new Settings(context);
}
// The newView method is used to inflate a new view and return it,
@@ -40,10 +45,13 @@ class LoyaltyCardCursorAdapter extends CursorAdapter
// Populate fields with extracted properties
storeField.setText(loyaltyCard.store);
storeField.setTextSize(settings.getCardTitleListFontSize());
if(loyaltyCard.note.isEmpty() == false)
{
noteField.setVisibility(View.VISIBLE);
noteField.setText(loyaltyCard.note);
noteField.setTextSize(settings.getCardNoteListFontSize());
}
else
{

View File

@@ -6,10 +6,12 @@ import android.content.pm.ActivityInfo;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.widget.TextViewCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.util.TypedValue;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
@@ -22,6 +24,8 @@ import android.widget.Toast;
import com.google.zxing.BarcodeFormat;
import protect.card_locker.preferences.Settings;
public class LoyaltyCardViewActivity extends AppCompatActivity
{
@@ -36,6 +40,7 @@ public class LoyaltyCardViewActivity extends AppCompatActivity
int loyaltyCardId;
boolean rotationEnabled;
DBHelper db;
Settings settings;
private void extractIntentFields(Intent intent)
{
@@ -49,6 +54,8 @@ public class LoyaltyCardViewActivity extends AppCompatActivity
{
super.onCreate(savedInstanceState);
settings = new Settings(this);
extractIntentFields(getIntent());
setContentView(R.layout.loyalty_card_view_layout);
@@ -110,10 +117,16 @@ public class LoyaltyCardViewActivity extends AppCompatActivity
final String cardIdString = loyaltyCard.cardId;
cardIdFieldView.setText(loyaltyCard.cardId);
TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(cardIdFieldView,
getResources().getInteger(R.integer.settings_card_id_min_font_size_sp)-1, settings.getCardIdFontSize(),
1, TypedValue.COMPLEX_UNIT_SP);
if(loyaltyCard.note.length() > 0)
{
noteView.setText(loyaltyCard.note);
TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(noteView,
getResources().getInteger(R.integer.settings_card_note_min_font_size_sp)-1,
settings.getCardNoteFontSize(), 1, TypedValue.COMPLEX_UNIT_SP);
}
else
{
@@ -122,6 +135,7 @@ public class LoyaltyCardViewActivity extends AppCompatActivity
}
storeName.setText(loyaltyCard.store);
storeName.setTextSize(settings.getCardTitleFontSize());
int textColor;
if(loyaltyCard.headerTextColor != null)

View File

@@ -30,6 +30,7 @@ import java.util.Calendar;
import java.util.Map;
import protect.card_locker.intro.IntroActivity;
import protect.card_locker.preferences.SettingsActivity;
public class MainActivity extends AppCompatActivity
{
@@ -164,6 +165,13 @@ public class MainActivity extends AppCompatActivity
return true;
}
if(id == R.id.action_settings)
{
Intent i = new Intent(getApplicationContext(), SettingsActivity.class);
startActivity(i);
return true;
}
if(id == R.id.action_intro)
{
startIntro();
@@ -188,6 +196,7 @@ public class MainActivity extends AppCompatActivity
.put("ZXing Android Embedded", "https://github.com/journeyapps/zxing-android-embedded")
.put("AppIntro", "https://github.com/apl-devs/AppIntro")
.put("Color Picker", "https://github.com/jaredrummler/ColorPicker")
.put("VNTNumberPickerPreference", "https://github.com/vanniktech/VNTNumberPickerPreference")
.build();
final Map<String, String> USED_ASSETS = ImmutableMap.of

View File

@@ -0,0 +1,61 @@
package protect.card_locker.preferences;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.support.annotation.IntegerRes;
import android.support.annotation.StringRes;
import protect.card_locker.R;
public class Settings
{
private Context context;
private SharedPreferences settings;
public Settings(Context context)
{
this.context = context;
this.settings = PreferenceManager.getDefaultSharedPreferences(context);
}
private String getResString(@StringRes int resId)
{
return context.getString(resId);
}
private int getResInt(@IntegerRes int resId)
{
return context.getResources().getInteger(resId);
}
private int getInt(@StringRes int keyId, @IntegerRes int defaultId)
{
return settings.getInt(getResString(keyId), getResInt(defaultId));
}
public int getCardTitleListFontSize()
{
return getInt(R.string.settings_key_card_title_list_font_size, R.integer.settings_card_title_list_font_size_sp);
}
public int getCardNoteListFontSize()
{
return getInt(R.string.settings_key_card_note_list_font_size, R.integer.settings_card_note_list_font_size_sp);
}
public int getCardTitleFontSize()
{
return getInt(R.string.settings_key_card_title_font_size, R.integer.settings_card_title_font_size_sp);
}
public int getCardIdFontSize()
{
return getInt(R.string.settings_key_card_id_font_size, R.integer.settings_card_id_font_size_sp);
}
public int getCardNoteFontSize()
{
return getInt(R.string.settings_key_card_note_font_size, R.integer.settings_card_note_font_size_sp);
}
}

View File

@@ -0,0 +1,56 @@
package protect.card_locker.preferences;
import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import protect.card_locker.R;
public class SettingsActivity extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
ActionBar actionBar = getSupportActionBar();
if(actionBar != null)
{
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
// Display the fragment as the main content.
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new SettingsFragment())
.commit();
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
int id = item.getItemId();
if(id == android.R.id.home)
{
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
public static class SettingsFragment extends PreferenceFragment
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
}
}
}