-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added User setting activity and integrated Gimbal code to Home Activi…
…ty (has to be moved to a service later)
- Loading branch information
1 parent
f522130
commit 18e1e60
Showing
11 changed files
with
285 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
125 changes: 125 additions & 0 deletions
125
app/src/main/java/com/avnet/gears/codes/gimbal/store/activity/UserSettingsActivity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,125 @@ | ||
package com.avnet.gears.codes.gimbal.store.activity; | ||
|
||
import android.annotation.TargetApi; | ||
import android.content.Context; | ||
import android.content.res.Configuration; | ||
import android.os.Build; | ||
import android.os.Bundle; | ||
import android.preference.Preference; | ||
import android.preference.PreferenceActivity; | ||
import android.preference.PreferenceFragment; | ||
import android.util.Log; | ||
|
||
import com.avnet.gears.codes.gimbal.store.R; | ||
|
||
import java.util.List; | ||
|
||
/** | ||
* A {@link PreferenceActivity} that presents a set of application settings. On | ||
* handset devices, settings are presented as a single list. On tablets, | ||
* settings are split by category, with category headers shown to the left of | ||
* the list of settings. | ||
* <p/> | ||
* See <a href="http://developer.android.com/design/patterns/settings.html"> | ||
* Android Design: Settings</a> for design guidelines and the <a | ||
* href="http://developer.android.com/guide/topics/ui/settings.html">Settings | ||
* API Guide</a> for more information on developing a Settings UI. | ||
*/ | ||
public class UserSettingsActivity extends PreferenceActivity { | ||
/** | ||
* Determines whether to always show the simplified settings UI, where | ||
* settings are presented in a single list. When false, settings are shown | ||
* as a master/detail two-pane view on tablets. When true, a single pane is | ||
* shown on tablets. | ||
*/ | ||
private static final boolean ALWAYS_SIMPLE_PREFS = false; | ||
|
||
|
||
@Override | ||
protected void onPostCreate(Bundle savedInstanceState) { | ||
super.onPostCreate(savedInstanceState); | ||
|
||
setupSimplePreferencesScreen(); | ||
} | ||
|
||
/** | ||
* Shows the simplified settings UI if the device configuration if the | ||
* device configuration dictates that a simplified, single-pane UI should be | ||
* shown. | ||
*/ | ||
private void setupSimplePreferencesScreen() { | ||
System.out.println("Setupsimple preferences"); | ||
if (!isSimplePreferences(this)) { | ||
return; | ||
} | ||
|
||
// Add 'general' preferences. | ||
addPreferencesFromResource(R.xml.pref_general); | ||
bindPreferenceSummaryToValue(findPreference("gimbal_notif_enabled_checkbox")); | ||
} | ||
|
||
/** | ||
* {@inheritDoc} | ||
*/ | ||
@Override | ||
public boolean onIsMultiPane() { | ||
return isXLargeTablet(this) && !isSimplePreferences(this); | ||
} | ||
|
||
/** | ||
* Helper method to determine if the device has an extra-large screen. For | ||
* example, 10" tablets are extra-large. | ||
*/ | ||
private static boolean isXLargeTablet(Context context) { | ||
return (context.getResources().getConfiguration().screenLayout | ||
& Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE; | ||
} | ||
|
||
/** | ||
* Determines whether the simplified settings UI should be shown. This is | ||
* true if this is forced via {@link #ALWAYS_SIMPLE_PREFS}, or the device | ||
* doesn't have newer APIs like {@link PreferenceFragment}, or the device | ||
* doesn't have an extra-large screen. In these cases, a single-pane | ||
* "simplified" settings UI should be shown. | ||
*/ | ||
private static boolean isSimplePreferences(Context context) { | ||
return ALWAYS_SIMPLE_PREFS | ||
|| Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB | ||
|| !isXLargeTablet(context); | ||
} | ||
|
||
/** | ||
* {@inheritDoc} | ||
*/ | ||
@Override | ||
@TargetApi(Build.VERSION_CODES.HONEYCOMB) | ||
public void onBuildHeaders(List<Header> target) { | ||
} | ||
|
||
/** | ||
* A preference value change listener that updates the preference's summary | ||
* to reflect its new value. | ||
*/ | ||
private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() { | ||
@Override | ||
public boolean onPreferenceChange(Preference preference, Object value) { | ||
|
||
Log.d("UserSetting", "Pref " + preference.getKey() + " changed to " + value.toString()); | ||
return true; | ||
} | ||
}; | ||
|
||
/** | ||
* Binds a preference's summary to its value. More specifically, when the | ||
* preference's value is changed, its summary (line of text below the | ||
* preference title) is updated to reflect the value. The summary is also | ||
* immediately updated upon calling this method. The exact display format is | ||
* dependent on the type of preference. | ||
* | ||
* @see #sBindPreferenceSummaryToValueListener | ||
*/ | ||
private static void bindPreferenceSummaryToValue(Preference preference) { | ||
// Set the listener to watch for value changes. | ||
preference.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener); | ||
} | ||
} |
Oops, something went wrong.