package com.moez.QKSMS.service; import android.annotation.SuppressLint; import android.app.Service; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; import android.os.Message; import android.os.Messenger; import android.os.RemoteException; import android.preference.PreferenceManager; import android.support.annotation.Nullable; import com.moez.QKSMS.ui.settings.SettingsFragment; public class ShouldIAnswerService extends Service { private Messenger mMessenger = new Messenger(new BlockingEnabledHandler(this)); @Nullable @Override public IBinder onBind(Intent intent) { return mMessenger.getBinder(); } private class BlockingEnabledHandler extends Handler { private Context mContext; private BlockingEnabledHandler(Context context) { mContext = context; } @SuppressLint("CommitPrefEdits") @Override public void handleMessage(Message msg) { super.handleMessage(msg); Messenger messenger = msg.replyTo; if (messenger != null && (msg.what == 918 || msg.what == 919)) { Bundle data = new Bundle(); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext); if (msg.what == 919) { boolean enabled=msg.getData().getBoolean("enabled"); prefs.edit().putBoolean(SettingsFragment.SHOULD_I_ANSWER, enabled).commit(); } data.putBoolean("blocking_enabled", prefs.getBoolean(SettingsFragment.SHOULD_I_ANSWER, false)); Message message = new Message(); message.what = msg.what; message.setData(data); try { messenger.send(message); } catch (RemoteException e) { e.printStackTrace(); } } } } }