@qusaieilouti99/call-manager 0.1.71 → 0.1.73

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,5 +18,8 @@
18
18
  <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />
19
19
  <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
20
20
 
21
+
22
+ <!-- For knowing the activity state-->
23
+ <uses-permission android:name="android.permission.GET_TASKS" />
21
24
  <!-- No components needed here - they're declared in app manifest -->
22
25
  </manifest>
@@ -1,5 +1,6 @@
1
1
  package com.margelo.nitro.qusaieilouti99.callmanager
2
2
 
3
+ import android.app.ActivityManager
3
4
  import android.app.Activity
4
5
  import android.app.Application
5
6
  import android.app.Notification
@@ -1001,16 +1002,25 @@ object CallEngine {
1001
1002
  val activityManager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
1002
1003
 
1003
1004
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
1004
- val tasks = activityManager.getAppTasks()
1005
- if (tasks.isNotEmpty()) {
1006
- val taskInfo = tasks[0].taskInfo
1007
- return taskInfo.topActivity?.className?.contains("MainActivity") == true
1005
+ try {
1006
+ val tasks = activityManager.appTasks
1007
+ if (tasks.isNotEmpty()) {
1008
+ val taskInfo = tasks[0].taskInfo
1009
+ return taskInfo.topActivity?.className?.contains("MainActivity") == true
1010
+ }
1011
+ } catch (e: Exception) {
1012
+ Log.w(TAG, "Failed to get app tasks: ${e.message}")
1008
1013
  }
1009
1014
  } else {
1010
- @Suppress("DEPRECATION")
1011
- val tasks = activityManager.getRunningTasks(1)
1012
- if (tasks.isNotEmpty()) {
1013
- return tasks[0].topActivity?.className?.contains("MainActivity") == true
1015
+ try {
1016
+ @Suppress("DEPRECATION")
1017
+ val tasks = activityManager.getRunningTasks(1)
1018
+ if (tasks.isNotEmpty()) {
1019
+ val runningTaskInfo = tasks[0]
1020
+ return runningTaskInfo.topActivity?.className?.contains("MainActivity") == true
1021
+ }
1022
+ } catch (e: Exception) {
1023
+ Log.w(TAG, "Failed to get running tasks: ${e.message}")
1014
1024
  }
1015
1025
  }
1016
1026
  return false
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <ripple xmlns:android="http://schemas.android.com/apk/res/android"
3
+ android:color="#30FFFFFF">
4
+ <item>
5
+ <shape android:shape="oval">
6
+ <solid android:color="#40FFFFFF" />
7
+ <stroke
8
+ android:width="2dp"
9
+ android:color="#60FFFFFF" />
10
+ </shape>
11
+ </item>
12
+ </ripple>
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <ripple xmlns:android="http://schemas.android.com/apk/res/android"
3
+ android:color="#40FFFFFF">
4
+ <item>
5
+ <shape android:shape="oval">
6
+ <gradient
7
+ android:startColor="#4CAF50"
8
+ android:endColor="#388E3C"
9
+ android:angle="135" />
10
+ <stroke
11
+ android:width="3dp"
12
+ android:color="#66BB6A" />
13
+ </shape>
14
+ </item>
15
+ </ripple>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <shape xmlns:android="http://schemas.android.com/apk/res/android"
3
+ android:shape="oval">
4
+ <gradient
5
+ android:startColor="#40000000"
6
+ android:centerColor="#20000000"
7
+ android:endColor="#00000000"
8
+ android:type="radial"
9
+ android:gradientRadius="40dp" />
10
+ </shape>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <shape xmlns:android="http://schemas.android.com/apk/res/android"
3
+ android:shape="oval">
4
+ <solid android:color="#FFFFFF" />
5
+ <stroke
6
+ android:width="4dp"
7
+ android:color="#40FFFFFF" />
8
+ </shape>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <shape xmlns:android="http://schemas.android.com/apk/res/android"
3
+ android:shape="oval">
4
+ <gradient
5
+ android:startColor="#40FFFFFF"
6
+ android:centerColor="#20FFFFFF"
7
+ android:endColor="#00FFFFFF"
8
+ android:type="radial"
9
+ android:gradientRadius="70dp" />
10
+ </shape>
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
3
+ <!-- Base gradient -->
4
+ <item>
5
+ <shape>
6
+ <gradient
7
+ android:startColor="#1a237e"
8
+ android:centerColor="#283593"
9
+ android:endColor="#3949ab"
10
+ android:angle="135" />
11
+ </shape>
12
+ </item>
13
+
14
+ <!-- Abstract pattern overlay -->
15
+ <item>
16
+ <shape>
17
+ <gradient
18
+ android:startColor="#20FFFFFF"
19
+ android:centerColor="#10FFFFFF"
20
+ android:endColor="#05FFFFFF"
21
+ android:angle="45" />
22
+ </shape>
23
+ </item>
24
+ </layer-list>
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <ripple xmlns:android="http://schemas.android.com/apk/res/android"
3
+ android:color="#40FFFFFF">
4
+ <item>
5
+ <shape android:shape="oval">
6
+ <gradient
7
+ android:startColor="#F44336"
8
+ android:endColor="#D32F2F"
9
+ android:angle="135" />
10
+ <stroke
11
+ android:width="3dp"
12
+ android:color="#EF5350" />
13
+ </shape>
14
+ </item>
15
+ </ripple>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <shape xmlns:android="http://schemas.android.com/apk/res/android"
3
+ android:shape="oval">
4
+ <gradient
5
+ android:startColor="#40000000"
6
+ android:centerColor="#20000000"
7
+ android:endColor="#00000000"
8
+ android:type="radial"
9
+ android:gradientRadius="40dp" />
10
+ </shape>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <shape xmlns:android="http://schemas.android.com/apk/res/android">
3
+ <gradient
4
+ android:startColor="#30000000"
5
+ android:centerColor="#20000000"
6
+ android:endColor="#40000000"
7
+ android:angle="90" />
8
+ </shape>
@@ -1,55 +1,166 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
- android:id="@+id/call_root"
4
- android:layout_width="match_parent"
5
- android:layout_height="match_parent"
6
- android:background="#222"
7
- android:orientation="vertical"
8
- android:gravity="center"
9
- android:padding="32dp">
10
-
11
- <ImageView
12
- android:id="@+id/avatar"
13
- android:layout_width="96dp"
14
- android:layout_height="96dp"
15
- android:layout_marginBottom="24dp"
16
- android:src="@android:drawable/sym_def_app_icon"
17
- android:background="@drawable/circle_bg"
18
- android:scaleType="centerCrop" />
19
-
20
- <TextView
21
- android:id="@+id/caller_name"
22
- android:layout_width="wrap_content"
2
+ <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
+ android:id="@+id/call_root"
4
+ android:layout_width="match_parent"
5
+ android:layout_height="match_parent"
6
+ android:background="@drawable/call_background">
7
+
8
+ <!-- Overlay for better text readability -->
9
+ <View
10
+ android:layout_width="match_parent"
11
+ android:layout_height="match_parent"
12
+ android:background="@drawable/overlay_gradient" />
13
+
14
+ <!-- Top section with incoming call info -->
15
+ <LinearLayout
16
+ android:id="@+id/top_section"
17
+ android:layout_width="match_parent"
23
18
  android:layout_height="wrap_content"
24
- android:text="Caller Name"
25
- android:textColor="#fff"
26
- android:textSize="24sp"
27
- android:textStyle="bold"
28
- android:layout_marginBottom="48dp" />
19
+ android:layout_centerInParent="true"
20
+ android:layout_marginTop="80dp"
21
+ android:gravity="center"
22
+ android:orientation="vertical"
23
+ android:padding="32dp">
24
+
25
+ <TextView
26
+ android:layout_width="wrap_content"
27
+ android:layout_height="wrap_content"
28
+ android:text="Incoming call"
29
+ android:textColor="#B3FFFFFF"
30
+ android:textSize="16sp"
31
+ android:layout_marginBottom="24dp"
32
+ android:letterSpacing="0.1" />
33
+
34
+ <!-- Avatar with glow effect -->
35
+ <FrameLayout
36
+ android:layout_width="140dp"
37
+ android:layout_height="140dp"
38
+ android:layout_marginBottom="24dp">
39
+
40
+ <View
41
+ android:layout_width="140dp"
42
+ android:layout_height="140dp"
43
+ android:background="@drawable/avatar_glow" />
29
44
 
45
+ <ImageView
46
+ android:id="@+id/avatar"
47
+ android:layout_width="120dp"
48
+ android:layout_height="120dp"
49
+ android:layout_gravity="center"
50
+ android:background="@drawable/avatar_bg"
51
+ android:scaleType="centerCrop"
52
+ android:src="@android:drawable/sym_def_app_icon" />
53
+ </FrameLayout>
54
+
55
+ <TextView
56
+ android:id="@+id/caller_name"
57
+ android:layout_width="wrap_content"
58
+ android:layout_height="wrap_content"
59
+ android:text="Caller Name"
60
+ android:textColor="#FFFFFF"
61
+ android:textSize="28sp"
62
+ android:textStyle="bold"
63
+ android:layout_marginBottom="8dp"
64
+ android:shadowColor="#33000000"
65
+ android:shadowDx="0"
66
+ android:shadowDy="2"
67
+ android:shadowRadius="4" />
68
+
69
+ <TextView
70
+ android:layout_width="wrap_content"
71
+ android:layout_height="wrap_content"
72
+ android:text="Mobile"
73
+ android:textColor="#B3FFFFFF"
74
+ android:textSize="16sp"
75
+ android:layout_marginBottom="48dp" />
76
+
77
+ </LinearLayout>
78
+
79
+ <!-- Bottom section with action buttons -->
30
80
  <LinearLayout
31
- android:layout_width="wrap_content"
81
+ android:layout_width="match_parent"
32
82
  android:layout_height="wrap_content"
83
+ android:layout_alignParentBottom="true"
84
+ android:layout_marginBottom="80dp"
85
+ android:gravity="center"
33
86
  android:orientation="horizontal"
34
- android:gravity="center">
35
-
36
- <Button
37
- android:id="@+id/decline_btn"
38
- android:layout_width="72dp"
39
- android:layout_height="72dp"
40
- android:backgroundTint="#D32F2F"
41
- android:text="Decline"
42
- android:textColor="#fff"
43
- android:background="@drawable/circle_red"
44
- android:layout_marginEnd="32dp" />
45
-
46
- <Button
47
- android:id="@+id/answer_btn"
48
- android:layout_width="72dp"
49
- android:layout_height="72dp"
50
- android:backgroundTint="#388E3C"
51
- android:text="Answer"
52
- android:textColor="#fff"
53
- android:background="@drawable/circle_green" />
87
+ android:padding="32dp">
88
+
89
+ <!-- Additional quick actions -->
90
+ <FrameLayout
91
+ android:layout_width="56dp"
92
+ android:layout_height="56dp"
93
+ android:layout_marginEnd="32dp">
94
+
95
+ <ImageView
96
+ android:layout_width="56dp"
97
+ android:layout_height="56dp"
98
+ android:background="@drawable/action_button_secondary"
99
+ android:src="@android:drawable/ic_menu_call"
100
+ android:padding="16dp"
101
+ android:tint="#FFFFFF" />
102
+ </FrameLayout>
103
+
104
+ <!-- Decline Button -->
105
+ <FrameLayout
106
+ android:layout_width="80dp"
107
+ android:layout_height="80dp"
108
+ android:layout_marginEnd="48dp">
109
+
110
+ <View
111
+ android:layout_width="80dp"
112
+ android:layout_height="80dp"
113
+ android:background="@drawable/decline_button_shadow" />
114
+
115
+ <Button
116
+ android:id="@+id/decline_btn"
117
+ android:layout_width="72dp"
118
+ android:layout_height="72dp"
119
+ android:layout_gravity="center"
120
+ android:background="@drawable/decline_button"
121
+ android:text="✕"
122
+ android:textColor="#FFFFFF"
123
+ android:textSize="24sp"
124
+ android:textStyle="bold" />
125
+ </FrameLayout>
126
+
127
+ <!-- Answer Button -->
128
+ <FrameLayout
129
+ android:layout_width="80dp"
130
+ android:layout_height="80dp">
131
+
132
+ <View
133
+ android:layout_width="80dp"
134
+ android:layout_height="80dp"
135
+ android:background="@drawable/answer_button_shadow" />
136
+
137
+ <Button
138
+ android:id="@+id/answer_btn"
139
+ android:layout_width="72dp"
140
+ android:layout_height="72dp"
141
+ android:layout_gravity="center"
142
+ android:background="@drawable/answer_button"
143
+ android:text="✓"
144
+ android:textColor="#FFFFFF"
145
+ android:textSize="24sp"
146
+ android:textStyle="bold" />
147
+ </FrameLayout>
148
+
149
+ <!-- Message quick action -->
150
+ <FrameLayout
151
+ android:layout_width="56dp"
152
+ android:layout_height="56dp"
153
+ android:layout_marginStart="32dp">
154
+
155
+ <ImageView
156
+ android:layout_width="56dp"
157
+ android:layout_height="56dp"
158
+ android:background="@drawable/action_button_secondary"
159
+ android:src="@android:drawable/ic_menu_send"
160
+ android:padding="16dp"
161
+ android:tint="#FFFFFF" />
162
+ </FrameLayout>
163
+
54
164
  </LinearLayout>
55
- </LinearLayout>
165
+
166
+ </RelativeLayout>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qusaieilouti99/call-manager",
3
- "version": "0.1.71",
3
+ "version": "0.1.73",
4
4
  "description": "Call manager",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -1,4 +0,0 @@
1
- <shape xmlns:android="http://schemas.android.com/apk/res/android"
2
- android:shape="oval">
3
- <solid android:color="#444"/>
4
- </shape>
@@ -1,4 +0,0 @@
1
- <shape xmlns:android="http://schemas.android.com/apk/res/android"
2
- android:shape="oval">
3
- <solid android:color="#388E3C"/>
4
- </shape>
@@ -1,4 +0,0 @@
1
- <shape xmlns:android="http://schemas.android.com/apk/res/android"
2
- android:shape="oval">
3
- <solid android:color="#D32F2F"/>
4
- </shape>