mirror of
https://github.com/MatomoCamp/matomocamp-companion-android.git
synced 2024-09-19 16:13:46 +02:00
No more reflection hacks: replaced PreferenceFragment with AppCompatPreferenceActivity
This commit is contained in:
parent
19c6fa9d97
commit
6246671c38
6 changed files with 189 additions and 332 deletions
|
@ -1,247 +0,0 @@
|
|||
package android.support.v4.preference;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ListView;
|
||||
|
||||
/**
|
||||
* A PreferenceFragment for the support library. Based on the platform's code with some removed features and a basic ListView layout.
|
||||
*
|
||||
* @author Christophe Beyls
|
||||
*/
|
||||
public abstract class PreferenceFragment extends Fragment {
|
||||
|
||||
private static final int FIRST_REQUEST_CODE = 100;
|
||||
static final int MSG_BIND_PREFERENCES = 1;
|
||||
static final int MSG_REQUEST_FOCUS = 2;
|
||||
private static final String PREFERENCES_TAG = "android:preferences";
|
||||
private static final float HC_HORIZONTAL_PADDING = 16f;
|
||||
|
||||
@SuppressLint("HandlerLeak")
|
||||
private final Handler mHandler = new Handler() {
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
switch (msg.what) {
|
||||
case MSG_BIND_PREFERENCES:
|
||||
bindPreferences();
|
||||
break;
|
||||
case MSG_REQUEST_FOCUS:
|
||||
mList.focusableViewAvailable(mList);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private boolean mHavePrefs;
|
||||
private boolean mInitDone;
|
||||
ListView mList;
|
||||
private PreferenceManager mPreferenceManager;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
try {
|
||||
Constructor<PreferenceManager> c = PreferenceManager.class.getDeclaredConstructor(Activity.class, int.class);
|
||||
c.setAccessible(true);
|
||||
mPreferenceManager = c.newInstance(this.getActivity(), FIRST_REQUEST_CODE);
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle savedInstanceState) {
|
||||
ListView listView = new ListView(getActivity());
|
||||
listView.setId(android.R.id.list);
|
||||
if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) && (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)) {
|
||||
final int horizontalPadding = (int) (HC_HORIZONTAL_PADDING * getResources().getDisplayMetrics().density + 0.5f);
|
||||
listView.setPadding(horizontalPadding, 0, horizontalPadding, 0);
|
||||
listView.setClipToPadding(false);
|
||||
listView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
|
||||
}
|
||||
return listView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
|
||||
if (mHavePrefs) {
|
||||
bindPreferences();
|
||||
}
|
||||
|
||||
mInitDone = true;
|
||||
|
||||
if (savedInstanceState != null) {
|
||||
Bundle container = savedInstanceState.getBundle(PREFERENCES_TAG);
|
||||
if (container != null) {
|
||||
final PreferenceScreen preferenceScreen = getPreferenceScreen();
|
||||
if (preferenceScreen != null) {
|
||||
preferenceScreen.restoreHierarchyState(container);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void onStop() {
|
||||
super.onStop();
|
||||
try {
|
||||
Method m = PreferenceManager.class.getDeclaredMethod("dispatchActivityStop");
|
||||
m.setAccessible(true);
|
||||
m.invoke(mPreferenceManager);
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
public void onDestroyView() {
|
||||
mList = null;
|
||||
mHandler.removeCallbacksAndMessages(null);
|
||||
super.onDestroyView();
|
||||
}
|
||||
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
try {
|
||||
Method m = PreferenceManager.class.getDeclaredMethod("dispatchActivityDestroy");
|
||||
m.setAccessible(true);
|
||||
m.invoke(mPreferenceManager);
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
PreferenceScreen preferenceScreen = getPreferenceScreen();
|
||||
if (preferenceScreen != null) {
|
||||
Bundle container = new Bundle();
|
||||
preferenceScreen.saveHierarchyState(container);
|
||||
outState.putBundle(PREFERENCES_TAG, container);
|
||||
}
|
||||
}
|
||||
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
try {
|
||||
Method m = PreferenceManager.class.getDeclaredMethod("dispatchActivityResult", int.class, int.class, Intent.class);
|
||||
m.setAccessible(true);
|
||||
m.invoke(mPreferenceManager, requestCode, resultCode, data);
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
public PreferenceManager getPreferenceManager() {
|
||||
return mPreferenceManager;
|
||||
}
|
||||
|
||||
public void setPreferenceScreen(PreferenceScreen screen) {
|
||||
try {
|
||||
Method m = PreferenceManager.class.getDeclaredMethod("setPreferences", PreferenceScreen.class);
|
||||
m.setAccessible(true);
|
||||
boolean result = (Boolean) m.invoke(mPreferenceManager, screen);
|
||||
if (result && (screen != null)) {
|
||||
mHavePrefs = true;
|
||||
if (mInitDone) {
|
||||
postBindPreferences();
|
||||
}
|
||||
}
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
public PreferenceScreen getPreferenceScreen() {
|
||||
try {
|
||||
Method m = PreferenceManager.class.getDeclaredMethod("getPreferenceScreen");
|
||||
m.setAccessible(true);
|
||||
return (PreferenceScreen) m.invoke(mPreferenceManager);
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void addPreferencesFromIntent(Intent intent) {
|
||||
requirePreferenceManager();
|
||||
try {
|
||||
Method m = PreferenceManager.class.getDeclaredMethod("inflateFromIntent", Intent.class, PreferenceScreen.class);
|
||||
m.setAccessible(true);
|
||||
PreferenceScreen screen = (PreferenceScreen) m.invoke(mPreferenceManager, intent, getPreferenceScreen());
|
||||
setPreferenceScreen(screen);
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
public void addPreferencesFromResource(int resId) {
|
||||
requirePreferenceManager();
|
||||
try {
|
||||
Method m = PreferenceManager.class.getDeclaredMethod("inflateFromResource", Context.class, int.class, PreferenceScreen.class);
|
||||
m.setAccessible(true);
|
||||
PreferenceScreen screen = (PreferenceScreen) m.invoke(mPreferenceManager, getActivity(), resId, getPreferenceScreen());
|
||||
setPreferenceScreen(screen);
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
public Preference findPreference(CharSequence key) {
|
||||
if (mPreferenceManager == null) {
|
||||
return null;
|
||||
}
|
||||
return mPreferenceManager.findPreference(key);
|
||||
}
|
||||
|
||||
private void requirePreferenceManager() {
|
||||
if (this.mPreferenceManager == null) {
|
||||
throw new RuntimeException("This should be called after super.onCreate.");
|
||||
}
|
||||
}
|
||||
|
||||
private void postBindPreferences() {
|
||||
if (!mHandler.hasMessages(MSG_BIND_PREFERENCES)) {
|
||||
mHandler.sendEmptyMessage(MSG_BIND_PREFERENCES);
|
||||
}
|
||||
}
|
||||
|
||||
void bindPreferences() {
|
||||
final PreferenceScreen preferenceScreen = getPreferenceScreen();
|
||||
if (preferenceScreen != null) {
|
||||
preferenceScreen.bind(getListView());
|
||||
}
|
||||
}
|
||||
|
||||
public ListView getListView() {
|
||||
ensureList();
|
||||
return mList;
|
||||
}
|
||||
|
||||
private void ensureList() {
|
||||
if (mList != null) {
|
||||
return;
|
||||
}
|
||||
View root = getView();
|
||||
if (root == null) {
|
||||
throw new IllegalStateException("Content view not yet created");
|
||||
}
|
||||
View rawListView = root.findViewById(android.R.id.list);
|
||||
if (rawListView == null) {
|
||||
throw new RuntimeException("Your content must have a ListView whose id attribute is 'android.R.id.list'");
|
||||
}
|
||||
if (!(rawListView instanceof ListView)) {
|
||||
throw new RuntimeException("Content has view with id attribute 'android.R.id.list' that is not a ListView class");
|
||||
}
|
||||
mList = (ListView) rawListView;
|
||||
mHandler.sendEmptyMessage(MSG_REQUEST_FOCUS);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,128 @@
|
|||
package be.digitalia.fosdem.activities;
|
||||
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceActivity;
|
||||
import android.support.annotation.IdRes;
|
||||
import android.support.annotation.LayoutRes;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.support.v7.app.AppCompatDelegate;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
/**
|
||||
* A {@link android.preference.PreferenceActivity} which implements and proxies the necessary calls
|
||||
* to be used with AppCompat.
|
||||
*/
|
||||
public class AppCompatPreferenceActivity extends PreferenceActivity {
|
||||
|
||||
private AppCompatDelegate mDelegate;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
getDelegate().installViewFactory();
|
||||
getDelegate().onCreate(savedInstanceState);
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onPostCreate(savedInstanceState);
|
||||
getDelegate().onPostCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ActionBar getSupportActionBar() {
|
||||
return getDelegate().getSupportActionBar();
|
||||
}
|
||||
|
||||
public void setSupportActionBar(@Nullable Toolbar toolbar) {
|
||||
getDelegate().setSupportActionBar(toolbar);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MenuInflater getMenuInflater() {
|
||||
return getDelegate().getMenuInflater();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setContentView(@LayoutRes int layoutResID) {
|
||||
getDelegate().setContentView(layoutResID);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setContentView(View view) {
|
||||
getDelegate().setContentView(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setContentView(View view, ViewGroup.LayoutParams params) {
|
||||
getDelegate().setContentView(view, params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addContentView(View view, ViewGroup.LayoutParams params) {
|
||||
getDelegate().addContentView(view, params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
getDelegate().onConfigurationChanged(newConfig);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
getDelegate().onStop();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostResume() {
|
||||
super.onPostResume();
|
||||
getDelegate().onPostResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public View findViewById(@IdRes int id) {
|
||||
return getDelegate().findViewById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
getDelegate().onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onTitleChanged(CharSequence title, int color) {
|
||||
super.onTitleChanged(title, color);
|
||||
getDelegate().setTitle(title);
|
||||
}
|
||||
|
||||
public boolean supportRequestWindowFeature(int featureId) {
|
||||
return getDelegate().requestWindowFeature(featureId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidateOptionsMenu() {
|
||||
getDelegate().invalidateOptionsMenu();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
getDelegate().onSaveInstanceState(outState);
|
||||
}
|
||||
|
||||
private AppCompatDelegate getDelegate() {
|
||||
if (mDelegate == null) {
|
||||
mDelegate = AppCompatDelegate.create(this, null);
|
||||
}
|
||||
return mDelegate;
|
||||
}
|
||||
}
|
|
@ -1,25 +1,31 @@
|
|||
package be.digitalia.fosdem.activities;
|
||||
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.preference.ListPreference;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import be.digitalia.fosdem.R;
|
||||
import be.digitalia.fosdem.fragments.SettingsFragment;
|
||||
import be.digitalia.fosdem.utils.TwoStatePreferenceCompat;
|
||||
|
||||
public class SettingsActivity extends AppCompatActivity {
|
||||
public class SettingsActivity extends AppCompatPreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
|
||||
public static final String KEY_PREF_NOTIFICATIONS_ENABLED = "notifications_enabled";
|
||||
public static final String KEY_PREF_NOTIFICATIONS_VIBRATE = "notifications_vibrate";
|
||||
public static final String KEY_PREF_NOTIFICATIONS_LED = "notifications_led";
|
||||
public static final String KEY_PREF_NOTIFICATIONS_DELAY = "notifications_delay";
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.content);
|
||||
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
if (savedInstanceState == null) {
|
||||
SettingsFragment f = SettingsFragment.newInstance();
|
||||
getSupportFragmentManager().beginTransaction().add(R.id.content, f).commit();
|
||||
}
|
||||
addPreferencesFromResource(R.xml.settings);
|
||||
updateNotificationsEnabled();
|
||||
updateNotificationsDelaySummary();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -37,4 +43,38 @@ public class SettingsActivity extends AppCompatActivity {
|
|||
super.onBackPressed();
|
||||
overridePendingTransition(R.anim.partial_zoom_in, R.anim.slide_out_right);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
PreferenceManager.getDefaultSharedPreferences(this).unregisterOnSharedPreferenceChangeListener(this);
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||
if (KEY_PREF_NOTIFICATIONS_ENABLED.equals(key)) {
|
||||
updateNotificationsEnabled();
|
||||
} else if (KEY_PREF_NOTIFICATIONS_DELAY.equals(key)) {
|
||||
updateNotificationsDelaySummary();
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private void updateNotificationsEnabled() {
|
||||
boolean notificationsEnabled = TwoStatePreferenceCompat.isChecked(findPreference(KEY_PREF_NOTIFICATIONS_ENABLED));
|
||||
findPreference(KEY_PREF_NOTIFICATIONS_VIBRATE).setEnabled(notificationsEnabled);
|
||||
findPreference(KEY_PREF_NOTIFICATIONS_LED).setEnabled(notificationsEnabled);
|
||||
findPreference(KEY_PREF_NOTIFICATIONS_DELAY).setEnabled(notificationsEnabled);
|
||||
}
|
||||
|
||||
private void updateNotificationsDelaySummary() {
|
||||
ListPreference notificationsDelayPreference = (ListPreference) findPreference(KEY_PREF_NOTIFICATIONS_DELAY);
|
||||
notificationsDelayPreference.setSummary(notificationsDelayPreference.getEntry());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,8 +8,9 @@ import android.content.SharedPreferences;
|
|||
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.v4.content.LocalBroadcastManager;
|
||||
|
||||
import be.digitalia.fosdem.activities.SettingsActivity;
|
||||
import be.digitalia.fosdem.db.DatabaseManager;
|
||||
import be.digitalia.fosdem.fragments.SettingsFragment;
|
||||
import be.digitalia.fosdem.services.AlarmIntentService;
|
||||
|
||||
/**
|
||||
|
@ -59,7 +60,7 @@ public class FosdemAlarmManager implements OnSharedPreferenceChangeListener {
|
|||
private FosdemAlarmManager(Context context) {
|
||||
this.context = context;
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
isEnabled = sharedPreferences.getBoolean(SettingsFragment.KEY_PREF_NOTIFICATIONS_ENABLED, false);
|
||||
isEnabled = sharedPreferences.getBoolean(SettingsActivity.KEY_PREF_NOTIFICATIONS_ENABLED, false);
|
||||
if (isEnabled) {
|
||||
registerReceivers();
|
||||
}
|
||||
|
@ -72,8 +73,8 @@ public class FosdemAlarmManager implements OnSharedPreferenceChangeListener {
|
|||
|
||||
@Override
|
||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||
if (SettingsFragment.KEY_PREF_NOTIFICATIONS_ENABLED.equals(key)) {
|
||||
isEnabled = sharedPreferences.getBoolean(SettingsFragment.KEY_PREF_NOTIFICATIONS_ENABLED, false);
|
||||
if (SettingsActivity.KEY_PREF_NOTIFICATIONS_ENABLED.equals(key)) {
|
||||
isEnabled = sharedPreferences.getBoolean(SettingsActivity.KEY_PREF_NOTIFICATIONS_ENABLED, false);
|
||||
if (isEnabled) {
|
||||
registerReceivers();
|
||||
startUpdateAlarms();
|
||||
|
@ -81,7 +82,7 @@ public class FosdemAlarmManager implements OnSharedPreferenceChangeListener {
|
|||
unregisterReceivers();
|
||||
startDisableAlarms();
|
||||
}
|
||||
} else if (SettingsFragment.KEY_PREF_NOTIFICATIONS_DELAY.equals(key)) {
|
||||
} else if (SettingsActivity.KEY_PREF_NOTIFICATIONS_DELAY.equals(key)) {
|
||||
startUpdateAlarms();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,65 +0,0 @@
|
|||
package be.digitalia.fosdem.fragments;
|
||||
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
||||
import android.os.Bundle;
|
||||
import android.preference.ListPreference;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.v4.preference.PreferenceFragment;
|
||||
|
||||
import be.digitalia.fosdem.R;
|
||||
import be.digitalia.fosdem.utils.TwoStatePreferenceCompat;
|
||||
|
||||
public class SettingsFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener {
|
||||
|
||||
public static final String KEY_PREF_NOTIFICATIONS_ENABLED = "notifications_enabled";
|
||||
public static final String KEY_PREF_NOTIFICATIONS_VIBRATE = "notifications_vibrate";
|
||||
public static final String KEY_PREF_NOTIFICATIONS_LED = "notifications_led";
|
||||
public static final String KEY_PREF_NOTIFICATIONS_DELAY = "notifications_delay";
|
||||
|
||||
public static SettingsFragment newInstance() {
|
||||
return new SettingsFragment();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
addPreferencesFromResource(R.xml.settings);
|
||||
updateNotificationsEnabled();
|
||||
updateNotificationsDelaySummary();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
PreferenceManager.getDefaultSharedPreferences(getActivity()).registerOnSharedPreferenceChangeListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
PreferenceManager.getDefaultSharedPreferences(getActivity()).unregisterOnSharedPreferenceChangeListener(this);
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||
if (KEY_PREF_NOTIFICATIONS_ENABLED.equals(key)) {
|
||||
updateNotificationsEnabled();
|
||||
} else if (KEY_PREF_NOTIFICATIONS_DELAY.equals(key)) {
|
||||
updateNotificationsDelaySummary();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateNotificationsEnabled() {
|
||||
boolean notificationsEnabled = TwoStatePreferenceCompat.isChecked(findPreference(KEY_PREF_NOTIFICATIONS_ENABLED));
|
||||
findPreference(KEY_PREF_NOTIFICATIONS_VIBRATE).setEnabled(notificationsEnabled);
|
||||
findPreference(KEY_PREF_NOTIFICATIONS_LED).setEnabled(notificationsEnabled);
|
||||
findPreference(KEY_PREF_NOTIFICATIONS_DELAY).setEnabled(notificationsEnabled);
|
||||
}
|
||||
|
||||
private void updateNotificationsDelaySummary() {
|
||||
ListPreference notificationsDelayPreference = (ListPreference) findPreference(KEY_PREF_NOTIFICATIONS_DELAY);
|
||||
notificationsDelayPreference.setSummary(notificationsDelayPreference.getEntry());
|
||||
}
|
||||
}
|
|
@ -26,8 +26,8 @@ import be.digitalia.fosdem.R;
|
|||
import be.digitalia.fosdem.activities.EventDetailsActivity;
|
||||
import be.digitalia.fosdem.activities.MainActivity;
|
||||
import be.digitalia.fosdem.activities.RoomImageDialogActivity;
|
||||
import be.digitalia.fosdem.activities.SettingsActivity;
|
||||
import be.digitalia.fosdem.db.DatabaseManager;
|
||||
import be.digitalia.fosdem.fragments.SettingsFragment;
|
||||
import be.digitalia.fosdem.model.Event;
|
||||
import be.digitalia.fosdem.receivers.AlarmReceiver;
|
||||
import be.digitalia.fosdem.utils.StringUtils;
|
||||
|
@ -151,7 +151,7 @@ public class AlarmIntentService extends IntentService {
|
|||
|
||||
int defaultFlags = Notification.DEFAULT_SOUND;
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
if (sharedPreferences.getBoolean(SettingsFragment.KEY_PREF_NOTIFICATIONS_VIBRATE, false)) {
|
||||
if (sharedPreferences.getBoolean(SettingsActivity.KEY_PREF_NOTIFICATIONS_VIBRATE, false)) {
|
||||
defaultFlags |= Notification.DEFAULT_VIBRATE;
|
||||
}
|
||||
|
||||
|
@ -195,7 +195,7 @@ public class AlarmIntentService extends IntentService {
|
|||
.setCategory(NotificationCompat.CATEGORY_EVENT);
|
||||
|
||||
// Blink the LED with FOSDEM color if enabled in the options
|
||||
if (sharedPreferences.getBoolean(SettingsFragment.KEY_PREF_NOTIFICATIONS_LED, false)) {
|
||||
if (sharedPreferences.getBoolean(SettingsActivity.KEY_PREF_NOTIFICATIONS_LED, false)) {
|
||||
notificationBuilder.setLights(notificationColor, 1000, 5000);
|
||||
}
|
||||
|
||||
|
@ -243,7 +243,7 @@ public class AlarmIntentService extends IntentService {
|
|||
|
||||
private long getDelay() {
|
||||
String delayString = PreferenceManager.getDefaultSharedPreferences(this).getString(
|
||||
SettingsFragment.KEY_PREF_NOTIFICATIONS_DELAY, "0");
|
||||
SettingsActivity.KEY_PREF_NOTIFICATIONS_DELAY, "0");
|
||||
// Convert from minutes to milliseconds
|
||||
return Long.parseLong(delayString) * DateUtils.MINUTE_IN_MILLIS;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue