public void registerShake(final Activity mActivity) { final SharedPreferences sharedPref = mActivity.getPreferences(Context.MODE_PRIVATE); boolean neverShowAgain = sharedPref.getBoolean(NFeedbackSharedPrefKey.key, false); if (neverShowAgain) return; mNShakeListener = new NShakeListener(mActivity); mNShakeListener.setShakeSensitivity(2f); mNShakeListener.register( new OnNShakeListener() { private NFeedbackAskDialog mNFeedbackAskDialog; @Override public void onShake() { boolean neverShowAgain = sharedPref.getBoolean(NFeedbackSharedPrefKey.key, false); if (neverShowAgain) { unregisterShake(); return; } if (mOnNFeedbackListener != null) { mOnNFeedbackListener.onShowAskDialog(); return; } if (mNFeedbackAskDialog == null || !mNFeedbackAskDialog.isShowing()) { mNFeedbackAskDialog = new NFeedbackAskDialog( mActivity, mNFeedbackOptions, new OnNFeedbackAskDialogListener() { @Override public void onYes() { mActivity.startActivity(new Intent(mActivity, NFeedbackActivity.class)); } }); mNFeedbackAskDialog.show(); } } }); }
/** Will unregister shakefeedback */ public void unregisterShake() { if (mNShakeListener != null) mNShakeListener.unregister(); }