Skip to content

Commit

Permalink
Add basic settings screen, showing only the version number
Browse files Browse the repository at this point in the history
  • Loading branch information
ccomeaux committed Feb 28, 2014
1 parent d0568cf commit 68583c7
Show file tree
Hide file tree
Showing 9 changed files with 129 additions and 0 deletions.
9 changes: 9 additions & 0 deletions src/AndroidManifest.xml
Expand Up @@ -28,7 +28,16 @@
<meta-data
android:name="color"
android:value="#e0e0ef" />
<meta-data
android:name="settingsActivity"
android:value=".SettingsActivity" />
</service>

<activity
android:name=".SettingsActivity"
android:exported="true"
android:label="@string/settings_title"
android:theme="@style/Theme.MuzeiBGG" />
</application>

</manifest>
3 changes: 3 additions & 0 deletions src/lint.xml
Expand Up @@ -2,4 +2,7 @@
<lint>
<issue id="ExportedService" severity="ignore" />
<issue id="MissingApplicationIcon" severity="ignore" />
<issue id="NewApi">
<ignore path="res/values/styles.xml" />
</issue>
</lint>
Binary file added src/res/drawable-hdpi/ic_action_about.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions src/res/values/strings.xml
Expand Up @@ -4,5 +4,9 @@
<string name="source_name">BGG</string>
<string name="source_description">Images from BoardGameGeek.com</string>
<string name="byline_suffix_hotness_boardgame">on the Board Game Hotness</string>
<!-- Settings -->
<string name="settings_title">Settings</string>
<string name="settings_about">About</string>
<string name="settings_version">Version</string>

</resources>
10 changes: 10 additions & 0 deletions src/res/values/styles.xml
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>

<style name="Theme.MuzeiBGG" parent="android:Theme.Holo">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowShowWallpaper">true</item>
</style>

</resources>
6 changes: 6 additions & 0 deletions src/res/xml/preference_about.xml
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

<com.eaux.app.muzei.bgg.VersionPreference android:title="@string/settings_version" />

</PreferenceScreen>
13 changes: 13 additions & 0 deletions src/res/xml/preference_headers.xml
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android" >

<header
android:fragment="com.eaux.app.muzei.bgg.SettingsActivity$PrefFragment"
android:icon="@drawable/ic_action_about"
android:title="@string/settings_about" >
<extra
android:name="fragment"
android:value="com.eaux.app.muzei.bgg.settings.ABOUT" />
</header>

</preference-headers>
54 changes: 54 additions & 0 deletions src/src/com/eaux/app/muzei/bgg/SettingsActivity.java
@@ -0,0 +1,54 @@
package com.eaux.app.muzei.bgg;

import java.util.HashMap;
import java.util.List;

import android.app.ActionBar;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;

public class SettingsActivity extends PreferenceActivity {
private final static String ACTION_ABOUT = "com.eaux.app.muzei.bgg.settings.ABOUT";
private static final HashMap<String, Integer> mFragmentMap = buildFragmentMap();

private static HashMap<String, Integer> buildFragmentMap() {
HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put(ACTION_ABOUT, R.xml.preference_about);
return map;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

ActionBar actionBar = getActionBar();
actionBar.setIcon(null);
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setDisplayShowTitleEnabled(true);
}

@Override
public void onBuildHeaders(List<Header> target) {
loadHeadersFromResource(R.xml.preference_headers, target);
}

public static class PrefFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String fragment = getArguments().getString("fragment");
if (fragment != null) {
Integer fragmentId = mFragmentMap.get(fragment);
if (fragmentId != null) {
addPreferencesFromResource(fragmentId);
}
}
}
}

@Override
protected boolean isValidFragment(String fragmentName) {
return "com.eaux.app.muzei.bgg.SettingsActivity$PrefFragment".equals(fragmentName);
}
}
30 changes: 30 additions & 0 deletions src/src/com/eaux/app/muzei/bgg/VersionPreference.java
@@ -0,0 +1,30 @@
package com.eaux.app.muzei.bgg;

import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.preference.DialogPreference;
import android.util.AttributeSet;

public class VersionPreference extends DialogPreference {

public VersionPreference(Context context, AttributeSet attrs) {
super(context, attrs);
}

public VersionPreference(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}

@Override
public CharSequence getSummary() {
try {
PackageManager pm = getContext().getPackageManager();
PackageInfo pInfo = pm.getPackageInfo(getContext().getPackageName(), 0);
return pInfo.versionName;
} catch (NameNotFoundException e) {
return "?.?";
}
}
}

0 comments on commit 68583c7

Please sign in to comment.