添加资源文件及提醒窗口
authorsnickersun <snickersun@qq.com>
Sun, 9 Feb 2020 12:33:30 +0000 (20:33 +0800)
committersnickersun <snickersun@qq.com>
Sun, 9 Feb 2020 12:33:30 +0000 (20:33 +0800)
28 files changed:
app/src/main/assets/ring_msg.mp3 [new file with mode: 0644]
app/src/main/java/com/enqualcomm/support/utils/CustomDialog.java [new file with mode: 0644]
app/src/main/java/com/enqualcomm/support/utils/GetContact.java [new file with mode: 0644]
app/src/main/java/com/enqualcomm/support/utils/MissedCallContentObserver.java [new file with mode: 0644]
app/src/main/res/drawable/bg_bombbox.xml [new file with mode: 0644]
app/src/main/res/drawable/btn_cancel_normal.png [new file with mode: 0644]
app/src/main/res/drawable/btn_cancel_pressed.png [new file with mode: 0644]
app/src/main/res/drawable/btn_cancel_red_normal.png [new file with mode: 0644]
app/src/main/res/drawable/btn_cancel_red_pressed.png [new file with mode: 0644]
app/src/main/res/drawable/btn_cancel_red_selector.xml [new file with mode: 0644]
app/src/main/res/drawable/btn_cancel_selector.xml [new file with mode: 0644]
app/src/main/res/drawable/btn_ok_normal.png [new file with mode: 0644]
app/src/main/res/drawable/btn_ok_pressed.png [new file with mode: 0644]
app/src/main/res/drawable/btn_ok_selector.xml [new file with mode: 0644]
app/src/main/res/drawable/btn_query.xml [new file with mode: 0644]
app/src/main/res/drawable/dialog_bottom_bg.xml [new file with mode: 0644]
app/src/main/res/drawable/notification_bottom_bg.xml [new file with mode: 0644]
app/src/main/res/drawable/notification_end_bottom_bg.xml [new file with mode: 0644]
app/src/main/res/drawable/notification_title_bottom_bg.xml [new file with mode: 0644]
app/src/main/res/layout/dialog_misscall_layout.xml [new file with mode: 0644]
app/src/main/res/layout/dialog_normal_layout.xml [new file with mode: 0644]
app/src/main/res/layout/notification_wechat_layout.xml [new file with mode: 0644]
app/src/main/res/raw/busy.amr [new file with mode: 0644]
app/src/main/res/raw/can_not_be_connected.amr [new file with mode: 0644]
app/src/main/res/raw/not_answered.amr [new file with mode: 0644]
app/src/main/res/raw/offline.amr [new file with mode: 0644]
app/src/main/res/raw/see_you_again.amr [new file with mode: 0644]
app/src/main/res/raw/spring_ding_dong.mp3 [new file with mode: 0644]

diff --git a/app/src/main/assets/ring_msg.mp3 b/app/src/main/assets/ring_msg.mp3
new file mode 100644 (file)
index 0000000..05f725c
Binary files /dev/null and b/app/src/main/assets/ring_msg.mp3 differ
diff --git a/app/src/main/java/com/enqualcomm/support/utils/CustomDialog.java b/app/src/main/java/com/enqualcomm/support/utils/CustomDialog.java
new file mode 100644 (file)
index 0000000..be76c00
--- /dev/null
@@ -0,0 +1,202 @@
+\r
+package com.enqualcomm.support.utils;\r
+\r
+import android.app.Dialog;\r
+import android.content.Context;\r
+import android.content.DialogInterface.OnClickListener;\r
+import android.view.LayoutInflater;\r
+import android.view.View;\r
+import android.view.ViewGroup;\r
+import android.view.ViewGroup.LayoutParams;\r
+import android.widget.Button;\r
+import android.widget.ImageButton;\r
+import android.widget.LinearLayout;\r
+import android.widget.TextView;\r
+\r
+import com.enqualcomm.support.R;\r
+\r
+public class CustomDialog extends Dialog {\r
+  public CustomDialog(Context var1) {\r
+    super(var1);\r
+  }\r
+\r
+  public CustomDialog(Context var1, int var2) {\r
+    super(var1, var2);\r
+  }\r
+\r
+  public static class Builder {\r
+    private int app_id;\r
+    private View contentView;\r
+    private Context context;\r
+    private CustomDialog mDialog;\r
+    private String message;\r
+    private OnClickListener negativeButtonClickListener;\r
+    private String negativeButtonText;\r
+    private OnClickListener positiveButtonClickListener;\r
+    private String positiveButtonText;\r
+    private String title;\r
+\r
+    public Builder(Context var1) {\r
+      this.context = var1;\r
+    }\r
+\r
+    private CustomDialog getDialogInstance() {\r
+\r
+      this.mDialog = new CustomDialog(this.context, R.style.Dialog);\r
+      LayoutInflater var1 = (LayoutInflater)this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);\r
+      View view;\r
+      if (this.app_id == 2) {\r
+        view = var1.inflate(R.layout.dialog_misscall_layout, (ViewGroup)null);\r
+      } else {\r
+        view = var1.inflate(R.layout.dialog_normal_layout, (ViewGroup)null);\r
+      }\r
+\r
+      this.mDialog.addContentView(view, new LayoutParams(-1, -2));\r
+      ((TextView)view.findViewById(R.id.title)).setText(this.title);\r
+      final CustomDialog dialog = this.mDialog;\r
+      if (this.positiveButtonText != null) {\r
+        if (this.app_id != 2) {\r
+          ((ImageButton)view.findViewById(R.id.positiveButton)).setImageResource(R.drawable.btn_ok_selector);\r
+          if (this.positiveButtonClickListener != null) {\r
+\r
+            ((ImageButton)view.findViewById(R.id.positiveButton)).setOnClickListener(new android.view.View.OnClickListener() {\r
+              public void onClick(View var1) {\r
+                Builder.this.positiveButtonClickListener.onClick(dialog, -1);\r
+              }\r
+            });\r
+          }\r
+        } else if (this.positiveButtonClickListener != null) {\r
+\r
+          ((Button)view.findViewById(R.id.positiveButton)).setOnClickListener(new android.view.View.OnClickListener() {\r
+            public void onClick(View var1) {\r
+              Builder.this.positiveButtonClickListener.onClick(dialog, -1);\r
+            }\r
+          });\r
+        }\r
+      } else {\r
+        view.findViewById(R.id.positiveButton).setVisibility(View.GONE);\r
+      }\r
+\r
+      if (this.negativeButtonText != null) {\r
+        ((ImageButton)view.findViewById(R.id.negativeButton)).setImageResource(R.drawable.btn_cancel_selector);\r
+        if (this.negativeButtonClickListener != null) {\r
+\r
+          ((ImageButton)view.findViewById(R.id.negativeButton)).setOnClickListener(new android.view.View.OnClickListener() {\r
+            public void onClick(View var1) {\r
+              Builder.this.negativeButtonClickListener.onClick(dialog, -2);\r
+            }\r
+          });\r
+        }\r
+      } else {\r
+        view.findViewById(R.id.negativeButton).setVisibility(View.GONE);\r
+      }\r
+\r
+      if (this.message != null) {\r
+        ((TextView)view.findViewById(R.id.message)).setText(this.message);\r
+      } else if (this.contentView != null) {\r
+        ((LinearLayout)view.findViewById(R.id.content)).removeAllViews();\r
+        ((LinearLayout)view.findViewById(R.id.content)).addView(this.contentView, new LayoutParams(-1, -1));\r
+      }\r
+\r
+      this.mDialog.setContentView(view);\r
+      return this.mDialog;\r
+    }\r
+\r
+    public CustomDialog create() {\r
+      if (this.mDialog == null) {\r
+        synchronized(CustomDialog.class){}\r
+\r
+        Throwable custmExeception;\r
+        boolean var10001;\r
+        label144: {\r
+          try {\r
+            if (this.mDialog == null) {\r
+              this.mDialog = this.getDialogInstance();\r
+            }\r
+          } catch (Throwable var13) {\r
+            custmExeception = var13;\r
+            var10001 = false;\r
+            break label144;\r
+          }\r
+\r
+          label141:\r
+          try {\r
+            return this.mDialog;\r
+          } catch (Throwable var12) {\r
+            custmExeception = var12;\r
+            var10001 = false;\r
+            break label141;\r
+          }\r
+        }\r
+\r
+        while(true) {\r
+          Throwable var1 = custmExeception;\r
+\r
+          try {\r
+            throw var1;\r
+          } catch (Throwable var11) {\r
+            custmExeception = var11;\r
+            var10001 = false;\r
+            continue;\r
+          }\r
+        }\r
+      } else {\r
+        return this.mDialog;\r
+      }\r
+    }\r
+\r
+    public CustomDialog.Builder setApp(int appid) {\r
+      this.app_id = appid;\r
+      return this;\r
+    }\r
+\r
+    public CustomDialog.Builder setContentView(View view) {\r
+      this.contentView = view;\r
+      return this;\r
+    }\r
+\r
+    public CustomDialog.Builder setMessage(int resId) {\r
+      this.message = (String)this.context.getText(resId);\r
+      return this;\r
+    }\r
+\r
+    public CustomDialog.Builder setMessage(String msg) {\r
+      this.message = msg;\r
+      return this;\r
+    }\r
+\r
+    public CustomDialog.Builder setNegativeButton(int resid, OnClickListener onclicklistener) {\r
+      this.negativeButtonText = (String)this.context.getText(resid);\r
+      this.negativeButtonClickListener = onclicklistener;\r
+      return this;\r
+    }\r
+\r
+    public CustomDialog.Builder setNegativeButton(String txt, OnClickListener onclicklistener) {\r
+      this.negativeButtonText = txt;\r
+      this.negativeButtonClickListener = onclicklistener;\r
+      return this;\r
+    }\r
+\r
+    public CustomDialog.Builder setPositiveButton(int resid, OnClickListener onclicklistener) {\r
+      this.positiveButtonText = (String)this.context.getText(resid);\r
+      this.positiveButtonClickListener = onclicklistener;\r
+      return this;\r
+    }\r
+\r
+    public CustomDialog.Builder setPositiveButton(String txt, OnClickListener onclicklistener) {\r
+      this.positiveButtonText = txt;\r
+      this.positiveButtonClickListener = onclicklistener;\r
+      return this;\r
+    }\r
+\r
+    public CustomDialog.Builder setTitle(int resid) {\r
+      this.title = (String)this.context.getText(resid);\r
+      return this;\r
+    }\r
+\r
+    public CustomDialog.Builder setTitle(String txt) {\r
+      this.title = txt;\r
+      return this;\r
+    }\r
+  }\r
+}\r
diff --git a/app/src/main/java/com/enqualcomm/support/utils/GetContact.java b/app/src/main/java/com/enqualcomm/support/utils/GetContact.java
new file mode 100644 (file)
index 0000000..942d5ca
--- /dev/null
@@ -0,0 +1,44 @@
+package com.enqualcomm.support.utils;\r
+\r
+import android.content.Context;\r
+import android.database.Cursor;\r
+import com.enqualcomm.support.ICContentProvider;\r
+import com.enqualcomm.support.bean.Contact;\r
+import rx.Observable;\r
+import rx.Subscriber;\r
+\r
+public class GetContact implements Observable.OnSubscribe<Contact> {\r
+    String contactNumber;\r
+\r
+    Context context;\r
+\r
+    public GetContact(String paramString, Context paramContext) {\r
+        this.contactNumber = paramString;\r
+        this.context = paramContext;\r
+    }\r
+\r
+    public void call(Subscriber<? super Contact> paramSubscriber) {\r
+        Cursor cursor = this.context.getContentResolver().query(ICContentProvider.CONTACT_URI, null, "NUMBER=? AND CATEGORY NOT IN (?,?)", new String[] { this.contactNumber, "5", "6" }, null);\r
+        Contact contact1 = null;\r
+        Contact contact2 = null;\r
+        if (cursor != null) {\r
+            for (contact1 = contact2; cursor.moveToNext(); contact1 = new Contact(cursor.getInt(1), cursor.getString(2), cursor.getString(3), cursor.getString(4), cursor.getString(5)));\r
+            cursor.close();\r
+        }\r
+        contact2 = contact1;\r
+        if (contact1 == null) {\r
+            if (this.contactNumber.contains("@"))\r
+                this.contactNumber = this.contactNumber.substring(2);\r
+            Cursor cursor1 = this.context.getContentResolver().query(ICContentProvider.CONTACT_URI, null, "EXTRA=?", new String[] { this.contactNumber }, null);\r
+            contact2 = contact1;\r
+            if (cursor1 != null) {\r
+                while (cursor1.moveToNext())\r
+                    contact1 = new Contact(cursor1.getInt(1), cursor1.getString(2), cursor1.getString(3), cursor1.getString(4), cursor1.getString(5));\r
+                cursor.close();\r
+                contact2 = contact1;\r
+            }\r
+        }\r
+        paramSubscriber.onNext(contact2);\r
+    }\r
+}\r
+\r
diff --git a/app/src/main/java/com/enqualcomm/support/utils/MissedCallContentObserver.java b/app/src/main/java/com/enqualcomm/support/utils/MissedCallContentObserver.java
new file mode 100644 (file)
index 0000000..b040d20
--- /dev/null
@@ -0,0 +1,140 @@
+package com.enqualcomm.support.utils;\r
+import android.content.Context;\r
+import android.content.Intent;\r
+import android.database.ContentObserver;\r
+import android.database.Cursor;\r
+import android.os.Handler;\r
+import android.os.Message;\r
+import android.provider.CallLog.Calls;\r
+import com.enqualcomm.support.Constants;\r
+import com.enqualcomm.support.bean.Contact;\r
+import com.enqualcomm.support.bean.Runtime;\r
+import java.text.SimpleDateFormat;\r
+import java.util.Date;\r
+\r
+public class MissedCallContentObserver extends ContentObserver {\r
+    private static final int MISSED_CALL_MSG = 1;\r
+    private static final String[] PROJECT = new String[]{"name", "number", "type", "new", "date"};\r
+    private Context mContext;\r
+    private Handler mHandler = new Handler() {\r
+        public void handleMessage(Message var1) {\r
+            int var2 = var1.what;\r
+            boolean var3 = true;\r
+            if (var2 == 1) {\r
+                MissedCallContentObserver.DataHolder var5 = (MissedCallContentObserver.DataHolder)var1.obj;\r
+                StringBuilder var4 = new StringBuilder();\r
+                var4.append("you have a missed call, name : ");\r
+                var4.append(var5.contact.name);\r
+                var4.append(", number: ");\r
+                var4.append(var5.contact.number);\r
+                var4.append(", date: ");\r
+                var4.append(var5.date);\r
+                Logger.i(var4.toString());\r
+                var2 = MissedCallContentObserver.this.mRuntime.getContextProxy().getTelephonyManager().getCallState();\r
+                if (MissedCallContentObserver.this.mRuntime.getBatteryLow() || 1 == var2 || 2 == var2) {\r
+                    var3 = false;\r
+                }\r
+\r
+                if (Boolean.valueOf(var3)) {\r
+                    Intent var6 = new Intent("com.enqualcomm.support.ACTION_MISSED_CALL_GET");\r
+                    var6.putExtra("contact", var5.contact);\r
+                    var6.putExtra("date", var5.date);\r
+                    MissedCallContentObserver.this.mContext.sendBroadcast(var6);\r
+                }\r
+            }\r
+\r
+        }\r
+    };\r
+    private long mMissedCallDate;\r
+    private Runtime mRuntime;\r
+\r
+    public MissedCallContentObserver(Context var1, Runtime var2, Handler var3) {\r
+        super(var3);\r
+        this.mContext = var1;\r
+        this.mRuntime = var2;\r
+    }\r
+\r
+    private boolean checkSameItem(long var1) {\r
+        boolean var3;\r
+        if (this.mMissedCallDate == var1) {\r
+            var3 = true;\r
+        } else {\r
+            var3 = false;\r
+        }\r
+\r
+        return var3;\r
+    }\r
+\r
+    public void onChange(boolean var1) {\r
+        Cursor var2 = this.mContext.getContentResolver().query(Calls.CONTENT_URI, PROJECT, (String)null, (String[])null, "date DESC");\r
+        if (var2 != null) {\r
+            if (var2.moveToFirst()) {\r
+                switch(var2.getInt(var2.getColumnIndex("type"))) {\r
+                    case 1:\r
+                        Logger.i("incoming type");\r
+                        break;\r
+                    case 2:\r
+                        Logger.i("outgoing type");\r
+                        break;\r
+                    case 3:\r
+                        Logger.i("missed type");\r
+                        if (var2.getInt(var2.getColumnIndex("new")) == 1) {\r
+                            String var3 = var2.getString(var2.getColumnIndex("number"));\r
+                            var2.getString(var2.getColumnIndex("name"));\r
+                            long var4 = var2.getLong(var2.getColumnIndex("date"));\r
+                            if (!this.checkSameItem(var4)) {\r
+                                Logger.i(" not the same missed!");\r
+                                this.mMissedCallDate = var4;\r
+                                Date var6 = new Date(var4);\r
+                                (new SimpleDateFormat("yyyy-MM-dd;HH:mm:ss")).format(var6);\r
+                                Cursor var13 = this.mContext.getContentResolver().query(Constants.CONTACT_URI, (String[])null, "CATEGORY IN (1,2,3)", (String[])null, (String)null);\r
+                                if (var13 != null) {\r
+                                    StringBuilder var7 = new StringBuilder();\r
+                                    var7.append("cursor1.size = ");\r
+                                    var7.append(var13.getCount());\r
+                                    Logger.i(var7.toString());\r
+\r
+                                    while(var13.moveToNext()) {\r
+                                        String var8 = var13.getString(3);\r
+                                        if (var8.contains(var3) || var3.contains(var8)) {\r
+                                            int var9 = var13.getInt(1);\r
+                                            String var10 = var13.getString(2);\r
+                                            String var14 = var13.getString(4);\r
+                                            String var11 = var13.getString(5);\r
+                                            StringBuilder var12 = new StringBuilder();\r
+                                            var12.append("name=");\r
+                                            var12.append(var10);\r
+                                            var12.append("...number=");\r
+                                            var12.append(var8);\r
+                                            Logger.i(var12.toString());\r
+                                            new Contact(var9, var10, var3, var14, var11);\r
+                                            break;\r
+                                        }\r
+                                    }\r
+\r
+                                    var13.close();\r
+                                } else {\r
+                                    Logger.i("don't know who called");\r
+                                }\r
+                            } else {\r
+                                Logger.i(" The same missed call, ignore it!");\r
+                            }\r
+                        }\r
+                }\r
+            }\r
+\r
+            var2.close();\r
+        }\r
+\r
+    }\r
+\r
+    private class DataHolder {\r
+        public Contact contact;\r
+        public String date;\r
+\r
+        public DataHolder(Contact var2, String var3) {\r
+            this.contact = var2;\r
+            this.date = var3;\r
+        }\r
+    }\r
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_bombbox.xml b/app/src/main/res/drawable/bg_bombbox.xml
new file mode 100644 (file)
index 0000000..7d1601d
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<layer-list\r
+  xmlns:android="http://schemas.android.com/apk/res/android">\r
+    <item>\r
+        <shape android:shape="rectangle">\r
+            <gradient android:startColor="#ffe7e7e7" android:endColor="#ffe7e7e7" android:angle="0.0" />\r
+            <corners android:topLeftRadius="0.0dip" android:topRightRadius="0.0dip" android:bottomLeftRadius="5.0px" android:bottomRightRadius="5.0px" />\r
+        </shape>\r
+    </item>\r
+</layer-list>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/btn_cancel_normal.png b/app/src/main/res/drawable/btn_cancel_normal.png
new file mode 100644 (file)
index 0000000..3bdc4d1
Binary files /dev/null and b/app/src/main/res/drawable/btn_cancel_normal.png differ
diff --git a/app/src/main/res/drawable/btn_cancel_pressed.png b/app/src/main/res/drawable/btn_cancel_pressed.png
new file mode 100644 (file)
index 0000000..71bff72
Binary files /dev/null and b/app/src/main/res/drawable/btn_cancel_pressed.png differ
diff --git a/app/src/main/res/drawable/btn_cancel_red_normal.png b/app/src/main/res/drawable/btn_cancel_red_normal.png
new file mode 100644 (file)
index 0000000..373c493
Binary files /dev/null and b/app/src/main/res/drawable/btn_cancel_red_normal.png differ
diff --git a/app/src/main/res/drawable/btn_cancel_red_pressed.png b/app/src/main/res/drawable/btn_cancel_red_pressed.png
new file mode 100644 (file)
index 0000000..eaca145
Binary files /dev/null and b/app/src/main/res/drawable/btn_cancel_red_pressed.png differ
diff --git a/app/src/main/res/drawable/btn_cancel_red_selector.xml b/app/src/main/res/drawable/btn_cancel_red_selector.xml
new file mode 100644 (file)
index 0000000..7adab2a
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<selector\r
+  xmlns:android="http://schemas.android.com/apk/res/android">\r
+    <item android:state_enabled="true" android:state_pressed="true" android:drawable="@drawable/btn_cancel_red_pressed" />\r
+    <item android:state_enabled="true" android:drawable="@drawable/btn_cancel_red_normal" />\r
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/btn_cancel_selector.xml b/app/src/main/res/drawable/btn_cancel_selector.xml
new file mode 100644 (file)
index 0000000..568fd96
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<selector\r
+  xmlns:android="http://schemas.android.com/apk/res/android">\r
+    <item android:state_enabled="true" android:state_pressed="true" android:drawable="@drawable/btn_cancel_pressed" />\r
+    <item android:state_enabled="true" android:drawable="@drawable/btn_cancel_normal" />\r
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/btn_ok_normal.png b/app/src/main/res/drawable/btn_ok_normal.png
new file mode 100644 (file)
index 0000000..d99de5d
Binary files /dev/null and b/app/src/main/res/drawable/btn_ok_normal.png differ
diff --git a/app/src/main/res/drawable/btn_ok_pressed.png b/app/src/main/res/drawable/btn_ok_pressed.png
new file mode 100644 (file)
index 0000000..3b54147
Binary files /dev/null and b/app/src/main/res/drawable/btn_ok_pressed.png differ
diff --git a/app/src/main/res/drawable/btn_ok_selector.xml b/app/src/main/res/drawable/btn_ok_selector.xml
new file mode 100644 (file)
index 0000000..7af5d9f
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<selector\r
+  xmlns:android="http://schemas.android.com/apk/res/android">\r
+    <item android:state_pressed="true" android:drawable="@drawable/btn_ok_pressed" />\r
+    <item android:drawable="@drawable/btn_ok_normal" />\r
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/btn_query.xml b/app/src/main/res/drawable/btn_query.xml
new file mode 100644 (file)
index 0000000..a9b9359
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<shape android:shape="oval"\r
+  xmlns:android="http://schemas.android.com/apk/res/android">\r
+    <solid android:color="#ffffffff" />\r
+    <stroke android:width="1.0dip" android:color="#ff000000" />\r
+    <size android:height="50.0dip" android:width="80.0dip" />\r
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/dialog_bottom_bg.xml b/app/src/main/res/drawable/dialog_bottom_bg.xml
new file mode 100644 (file)
index 0000000..91d9882
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<shape android:shape="rectangle"\r
+  xmlns:android="http://schemas.android.com/apk/res/android"\r
+    >\r
+    <solid android:color="#ff56abe4" />\r
+    <stroke android:width="0.5dip" android:color="#ff56abe4" />\r
+    <corners android:radius="15.0dip" />\r
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/notification_bottom_bg.xml b/app/src/main/res/drawable/notification_bottom_bg.xml
new file mode 100644 (file)
index 0000000..82e6c47
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<shape android:shape="rectangle"\r
+  xmlns:android="http://schemas.android.com/apk/res/android">\r
+    <solid android:color="#bf454d61" />\r
+    <stroke android:width="0.5dip" android:color="#bf454d61" />\r
+    <corners android:radius="15.0dip" />\r
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/notification_end_bottom_bg.xml b/app/src/main/res/drawable/notification_end_bottom_bg.xml
new file mode 100644 (file)
index 0000000..7955f13
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<shape android:shape="rectangle"\r
+  xmlns:android="http://schemas.android.com/apk/res/android">\r
+    <solid android:color="#bf454d61" />\r
+    <stroke android:width="0.5dip" android:color="#bf454d61" />\r
+    <corners android:bottomLeftRadius="15.0dip" android:bottomRightRadius="15.0dip" />\r
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/notification_title_bottom_bg.xml b/app/src/main/res/drawable/notification_title_bottom_bg.xml
new file mode 100644 (file)
index 0000000..ea0f1a5
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<shape android:shape="rectangle"\r
+  xmlns:android="http://schemas.android.com/apk/res/android">\r
+    <solid android:color="#bf7e8799" />\r
+    <stroke android:width="0.5dip" android:color="#bf7e8799" />\r
+    <corners android:topLeftRadius="15.0dip" android:topRightRadius="15.0dip" />\r
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_misscall_layout.xml b/app/src/main/res/layout/dialog_misscall_layout.xml
new file mode 100644 (file)
index 0000000..c70307c
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<FrameLayout android:orientation="vertical" android:padding="20.0dip" android:clickable="true" android:layout_width="fill_parent" android:layout_height="fill_parent"\r
+  xmlns:android="http://schemas.android.com/apk/res/android">\r
+    <LinearLayout android:layout_gravity="center" android:orientation="vertical" android:background="@drawable/dialog_bottom_bg" android:layout_width="fill_parent" android:layout_height="wrap_content">\r
+        <TextView android:gravity="center" android:id="@+id/title" android:visibility="visible" android:layout_width="fill_parent" android:layout_height="40.0dip" android:text="@string/title_alert" style="@style/text_18_ffffff" />\r
+        <LinearLayout android:gravity="center" android:id="@+id/noticeContent" android:layout_width="fill_parent" android:layout_height="wrap_content">\r
+            <TextView android:gravity="center" android:id="@+id/message" android:background="#88ffffff" android:paddingLeft="20.0dip" android:paddingTop="15.0dip" android:paddingRight="20.0dip" android:paddingBottom="15.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="80.0dip" android:lineSpacingMultiplier="1.5" style="@style/text_16_666666" />\r
+        </LinearLayout>\r
+        <View android:background="#ffd0d0d0" android:layout_width="fill_parent" android:layout_height="1.0px" />\r
+        <LinearLayout android:gravity="center" android:layout_gravity="bottom" android:orientation="horizontal" android:background="@drawable/bg_bombbox" android:layout_width="fill_parent" android:layout_height="60.0dip">\r
+            <Button android:textColor="#ff000000" android:gravity="center" android:id="@+id/positiveButton" android:background="@drawable/btn_query" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/ok" style="@style/text_16_666666" />\r
+            <ImageButton android:gravity="center" android:id="@+id/negativeButton" android:background="#00000000" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20.0dip" android:src="@drawable/btn_cancel_selector" android:text="@string/cancel" style="@style/text_15_666666_sdw" />\r
+        </LinearLayout>\r
+    </LinearLayout>\r
+</FrameLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_normal_layout.xml b/app/src/main/res/layout/dialog_normal_layout.xml
new file mode 100644 (file)
index 0000000..8cf1aa9
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<FrameLayout android:orientation="vertical" android:padding="20.0dip" android:clickable="true" android:layout_width="fill_parent" android:layout_height="fill_parent"\r
+  xmlns:android="http://schemas.android.com/apk/res/android">\r
+    <LinearLayout android:layout_gravity="center" android:orientation="vertical" android:background="@drawable/dialog_bottom_bg" android:layout_width="fill_parent" android:layout_height="wrap_content">\r
+        <TextView android:gravity="center" android:id="@id/title" android:visibility="visible" android:layout_width="fill_parent" android:layout_height="40.0dip" android:text="@string/title_alert" style="@style/text_18_ffffff" />\r
+        <LinearLayout android:gravity="center" android:id="@id/noticeContent" android:layout_width="fill_parent" android:layout_height="wrap_content">\r
+            <TextView android:gravity="center|left" android:id="@id/message" android:background="#88ffffff" android:paddingLeft="20.0dip" android:paddingTop="15.0dip" android:paddingRight="20.0dip" android:paddingBottom="15.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="120.0dip" android:lineSpacingMultiplier="1.5" style="@style/text_16_666666" />\r
+        </LinearLayout>\r
+        <View android:background="#ffd0d0d0" android:layout_width="fill_parent" android:layout_height="1.0px" />\r
+        <LinearLayout android:gravity="center" android:layout_gravity="bottom" android:orientation="horizontal" android:background="@drawable/bg_bombbox" android:layout_width="fill_parent" android:layout_height="60.0dip">\r
+            <ImageButton android:gravity="center" android:id="@id/positiveButton" android:background="#00000000" android:layout_width="0.0dip" android:layout_height="wrap_content" android:src="@drawable/btn_ok_selector" android:text="@string/ok" android:layout_weight="1.0" style="@style/text_15_ffffff_sdw" />\r
+            <ImageButton android:gravity="center" android:id="@id/negativeButton" android:background="#00000000" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginLeft="20.0dip" android:src="@drawable/btn_cancel_selector" android:text="@string/cancel" android:layout_weight="1.0" style="@style/text_15_666666_sdw" />\r
+        </LinearLayout>\r
+    </LinearLayout>\r
+</FrameLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/notification_wechat_layout.xml b/app/src/main/res/layout/notification_wechat_layout.xml
new file mode 100644 (file)
index 0000000..3e1e4da
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<FrameLayout android:orientation="vertical" android:padding="20.0dip" android:clickable="true" android:layout_width="fill_parent" android:layout_height="fill_parent"\r
+  xmlns:android="http://schemas.android.com/apk/res/android">\r
+    <LinearLayout android:layout_gravity="center" android:orientation="vertical" android:background="@drawable/notification_bottom_bg" android:layout_width="fill_parent" android:layout_height="wrap_content">\r
+        <RelativeLayout android:gravity="center" android:orientation="horizontal" android:id="@+id/noticeTitle" android:background="@drawable/notification_title_bottom_bg" android:layout_width="fill_parent" android:layout_height="60.0dip">\r
+            <ImageView android:id="@+id/funcImg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:src="@drawable/btn_cancel_selector" android:layout_alignParentLeft="true" />\r
+            <TextView android:textSize="30.0sp" android:gravity="center|left" android:id="@id/title" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_toRightOf="@id/funcImg" android:lineSpacingMultiplier="1.5" />\r
+            <TextView android:textSize="30.0sp" android:gravity="center" android:id="@+id/time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="5.0dip" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:lineSpacingMultiplier="1.5" />\r
+        </RelativeLayout>\r
+        <LinearLayout android:gravity="center" android:orientation="vertical" android:id="@+id/noticeContent" android:layout_width="fill_parent" android:layout_height="wrap_content">\r
+            <TextView android:textSize="30.0sp" android:gravity="center|left" android:id="@+id/message" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:minHeight="50.0dip" android:lineSpacingMultiplier="1.5" />\r
+            <TextView android:textSize="30.0sp" android:gravity="center|left" android:id="@+id/content" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:minHeight="50.0dip" android:lineSpacingMultiplier="1.5" style="@style/text_16_999b97" />\r
+        </LinearLayout>\r
+        <View android:background="@drawable/notification_end_bottom_bg" android:layout_width="fill_parent" android:layout_height="1.0px" />\r
+        <LinearLayout android:gravity="center" android:layout_gravity="bottom" android:orientation="horizontal" android:background="@drawable/bg_bombbox" android:layout_width="fill_parent" android:layout_height="wrap_content">\r
+            <ImageButton android:gravity="center" android:id="@+id/positiveButton" android:background="#00000000" android:layout_width="0.0dip" android:layout_height="wrap_content" android:src="@drawable/btn_ok_selector" android:text="@string/ok" android:layout_weight="1.0" style="@style/text_15_ffffff_sdw" />\r
+            <ImageButton android:gravity="center" android:id="@+id/negativeButton" android:background="#00000000" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginLeft="20.0dip" android:src="@drawable/btn_cancel_selector" android:text="@string/cancel" android:layout_weight="1.0" style="@style/text_15_666666_sdw" />\r
+        </LinearLayout>\r
+    </LinearLayout>\r
+</FrameLayout>
\ No newline at end of file
diff --git a/app/src/main/res/raw/busy.amr b/app/src/main/res/raw/busy.amr
new file mode 100644 (file)
index 0000000..06352a3
Binary files /dev/null and b/app/src/main/res/raw/busy.amr differ
diff --git a/app/src/main/res/raw/can_not_be_connected.amr b/app/src/main/res/raw/can_not_be_connected.amr
new file mode 100644 (file)
index 0000000..1ad7a84
Binary files /dev/null and b/app/src/main/res/raw/can_not_be_connected.amr differ
diff --git a/app/src/main/res/raw/not_answered.amr b/app/src/main/res/raw/not_answered.amr
new file mode 100644 (file)
index 0000000..f9686c3
Binary files /dev/null and b/app/src/main/res/raw/not_answered.amr differ
diff --git a/app/src/main/res/raw/offline.amr b/app/src/main/res/raw/offline.amr
new file mode 100644 (file)
index 0000000..23dd71f
Binary files /dev/null and b/app/src/main/res/raw/offline.amr differ
diff --git a/app/src/main/res/raw/see_you_again.amr b/app/src/main/res/raw/see_you_again.amr
new file mode 100644 (file)
index 0000000..18b6e6f
Binary files /dev/null and b/app/src/main/res/raw/see_you_again.amr differ
diff --git a/app/src/main/res/raw/spring_ding_dong.mp3 b/app/src/main/res/raw/spring_ding_dong.mp3
new file mode 100644 (file)
index 0000000..0977342
Binary files /dev/null and b/app/src/main/res/raw/spring_ding_dong.mp3 differ