diff --git a/app/src/main/java/net/headlezz/notificationlogger/MainActivity.java b/app/src/main/java/net/headlezz/notificationlogger/MainActivity.java
index a95025d..0e0748c 100644
--- a/app/src/main/java/net/headlezz/notificationlogger/MainActivity.java
+++ b/app/src/main/java/net/headlezz/notificationlogger/MainActivity.java
@@ -14,6 +14,7 @@ import android.view.MenuItem;
import android.view.View;
import net.headlezz.notificationlogger.createnotification.NotificationCreationFragment;
+import net.headlezz.notificationlogger.logger.LoggerUtils;
import net.headlezz.notificationlogger.presenter.LoggerWarningPresenter;
import butterknife.Bind;
@@ -59,6 +60,8 @@ public class MainActivity extends AppCompatActivity implements SharedPreferences
@Override
protected void onResume() {
super.onResume();
+ if(!LoggerUtils.isLoggerRunning())
+ LoggerUtils.buildNotificationAccessDialog(this).show();
if(getSupportFragmentManager().getBackStackEntryCount() > 0)
mFAB.setVisibility(View.GONE);
}
diff --git a/app/src/main/java/net/headlezz/notificationlogger/logger/LoggerUtils.java b/app/src/main/java/net/headlezz/notificationlogger/logger/LoggerUtils.java
new file mode 100644
index 0000000..1f64635
--- /dev/null
+++ b/app/src/main/java/net/headlezz/notificationlogger/logger/LoggerUtils.java
@@ -0,0 +1,36 @@
+package net.headlezz.notificationlogger.logger;
+
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.support.v7.app.AlertDialog;
+
+import net.headlezz.notificationlogger.R;
+
+public class LoggerUtils {
+
+ public static void openNotificationSystemSettings(Context context) {
+ Intent intent = new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS");
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
+ context.startActivity(intent);
+ }
+
+ public static boolean isLoggerRunning() {
+ return NotificationLoggerService.isRunning;
+ }
+
+ public static AlertDialog buildNotificationAccessDialog(final Context context) {
+ return new AlertDialog.Builder(context)
+ .setTitle(context.getString(R.string.main_dialog_enable_notification_access_title))
+ .setMessage(context.getString(R.string.main_dialog_enable_notification_access_message))
+ .setPositiveButton(R.string.main_dialog_enable_notification_access_positive, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ openNotificationSystemSettings(context);
+ }
+ })
+ .setNegativeButton(R.string.main_dialog_enable_notification_access_negative, null)
+ .create();
+ }
+
+}
diff --git a/app/src/main/java/net/headlezz/notificationlogger/logger/NotificationLoggerService.java b/app/src/main/java/net/headlezz/notificationlogger/logger/NotificationLoggerService.java
index 246f2c8..73d5238 100644
--- a/app/src/main/java/net/headlezz/notificationlogger/logger/NotificationLoggerService.java
+++ b/app/src/main/java/net/headlezz/notificationlogger/logger/NotificationLoggerService.java
@@ -18,7 +18,14 @@ import timber.log.Timber;
public class NotificationLoggerService extends NotificationListenerService implements SharedPreferences.OnSharedPreferenceChangeListener {
+ /**
+ * true if logger is enabled in system settings
+ */
public static boolean isRunning = false;
+
+ /**
+ * true if logger is enabled in app settings
+ */
public static boolean isEnabled = true;
SharedPreferences mSharedPrefs;
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 50b4e71..6167c86 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -5,6 +5,10 @@
Logging is disabled.
Enable
+ Enable Notification Access
+ In order to log notifcations, this app needs access to your notification system.
+ Open settings
+ Cancel
Notification Settings
Support