Kaynağa Gözat

Add IncomingNotificationReceiver

Sylvrec 7 yıl önce
ebeveyn
işleme
4b6ded707f

+ 29 - 0
.idea/codeStyles/Project.xml

@@ -0,0 +1,29 @@
+<component name="ProjectCodeStyleConfiguration">
+  <code_scheme name="Project" version="173">
+    <Objective-C-extensions>
+      <file>
+        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
+        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
+        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
+        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
+        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
+        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
+        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
+        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
+        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
+      </file>
+      <class>
+        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
+        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
+        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
+        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
+        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
+        <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
+      </class>
+      <extensions>
+        <pair source="cpp" header="h" fileNamingConvention="NONE" />
+        <pair source="c" header="h" fileNamingConvention="NONE" />
+      </extensions>
+    </Objective-C-extensions>
+  </code_scheme>
+</component>

+ 6 - 0
app/src/main/AndroidManifest.xml

@@ -6,6 +6,7 @@
     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
     <uses-permission android:name="android.permission.CAMERA"/>
     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+    <uses-permission android:name="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE" />
     <uses-feature android:name="android.hardware.camera" />
 
     <application android:name=".MyApp" android:icon="@mipmap/ic_launcher">
@@ -33,6 +34,11 @@
                 <data android:mimeType="application/vnd.wap.mms-message" />
             </intent-filter>
         </receiver>
+        <receiver android:name=".IncomingNotificationReceiver">
+            <intent-filter android:priority="1000">
+                <action android:name="android.service.notification.NotificationListenerService"/>
+            </intent-filter>
+        </receiver>
     </application>
 
 </manifest>

+ 39 - 0
app/src/main/java/com/sylvrec/incallsms/IncomingNotificationReceiver.java

@@ -0,0 +1,39 @@
+package com.sylvrec.incallsms;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Color;
+import android.text.Html;
+import android.widget.TableRow;
+import android.widget.TextView;
+
+import com.sylvrec.incallsms.FlashLight;
+import com.sylvrec.incallsms.Settings;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by reclus_s on 4/12/18.
+ */
+
+public class IncomingNotificationReceiver extends BroadcastReceiver {
+    private Settings _settings;
+    private List<String> _packageName = new ArrayList<String>();
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        _settings = Settings.GetInstance(context);
+        if (intent.getAction().equals("android.service.notification.NotificationListenerService")&& _settings.Read().getBoolean(Settings.ID.STATEMMS, false)) {
+            String pack = intent.getStringExtra("package");
+            String title = intent.getStringExtra("title");
+            String text = intent.getStringExtra("text");
+            _packageName.add("com.tencent.mm");
+            for (String item : _packageName) {
+                if (pack == item)
+                    new FlashLight().Blink(_settings.Read().getInt(Settings.ID.STARRATEMMS, 0), 500);
+            }
+        }
+    }
+}