Skip to content

Commit 353b2be

Browse files
author
Geraint White
committed
Allow customising of styles bkdev98#36
1 parent e3d1541 commit 353b2be

File tree

6 files changed

+66
-35
lines changed

6 files changed

+66
-35
lines changed

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ useEffect(() => {
8484
}, []);
8585
```
8686

87-
In `index.js` or anywhere firebase background handler lies:
87+
In `index.js` or anywhere firebase background handler lies:
8888

8989
```javascript
9090
import messaging from '@react-native-firebase/messaging';
@@ -95,13 +95,13 @@ messaging().setBackgroundMessageHandler(async remoteMessage => {
9595
// Receive remote message
9696
if (remoteMessage?.notification?.title === 'Incoming Call') {
9797
// Display incoming call activity.
98-
IncomingCall.display(
99-
'callUUIDv4', // Call UUID v4
100-
'Quocs', // Username
101-
'https://avatars3.githubusercontent.com/u/16166195', // Avatar URL
102-
'Incomming Call', // Info text
103-
20000 // Timeout for end call after 20s
104-
);
98+
IncomingCall.display({
99+
uuid: 'callUUIDv4', // Call UUID v4
100+
name: 'Quocs', // Username
101+
avatar: 'https://avatars3.githubusercontent.com/u/16166195', // Avatar URL
102+
info: 'Incomming Call', // Info text
103+
timeout: 20000 // Timeout for end call after 20s
104+
});
105105
} else if (remoteMessage?.notification?.title === 'Missed Call') {
106106
// Terminate incoming activity. Should be called when call expired.
107107
IncomingCall.dismiss();

android/src/main/java/com/incomingcall/IncomingCallModule.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.facebook.react.bridge.ReactMethod;
1212
import com.facebook.react.bridge.Callback;
1313
import com.facebook.react.bridge.Promise;
14+
import com.facebook.react.bridge.ReadableMap;
1415
import com.facebook.react.bridge.WritableMap;
1516
import com.facebook.react.bridge.WritableNativeMap;
1617

@@ -34,25 +35,27 @@ public String getName() {
3435
}
3536

3637
@ReactMethod
37-
public void display(String uuid, String name, String avatar, String info, int timeout) {
38+
public void display(ReadableMap options) {
3839
if (UnlockScreenActivity.active) {
3940
return;
4041
}
4142
if (reactContext != null) {
4243
Bundle bundle = new Bundle();
43-
bundle.putString("uuid", uuid);
44-
bundle.putString("name", name);
45-
bundle.putString("avatar", avatar);
46-
bundle.putString("info", info);
47-
bundle.putInt("timeout", timeout);
44+
bundle.putString("uuid", options.getString("uuid"));
45+
bundle.putString("name", options.getString("name"));
46+
bundle.putString("avatar", options.getString("avatar"));
47+
bundle.putString("info", options.getString("info"));
48+
bundle.putString("font", options.getString("font"));
49+
bundle.putInt("timeout", options.getInt("timeout"));
4850
Intent i = new Intent(reactContext, UnlockScreenActivity.class);
4951
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_SINGLE_TOP);
5052
i.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED +
5153
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD +
5254
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
55+
5356
i.putExtras(bundle);
5457
reactContext.startActivity(i);
55-
58+
5659
}
5760
}
5861

android/src/main/java/com/incomingcall/UnlockScreenActivity.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import android.content.Context;
1717
import android.media.MediaPlayer;
1818
import android.provider.Settings;
19+
import android.graphics.Typeface;
1920
import java.util.List;
2021
import java.util.Timer;
2122
import java.util.TimerTask;
@@ -97,6 +98,12 @@ protected void onCreate(Bundle savedInstanceState) {
9798
String info = bundle.getString("info");
9899
tvInfo.setText(info);
99100
}
101+
if (bundle.containsKey("font")) {
102+
String font = bundle.getString("font");
103+
Typeface tf = Typeface.createFromAsset(getAssets(), font);
104+
tvName.setTypeface(tf);
105+
tvInfo.setTypeface(tf);
106+
}
100107
if (bundle.containsKey("avatar")) {
101108
String avatar = bundle.getString("avatar");
102109
if (avatar != null) {

android/src/main/res/layout/activity_call_incoming.xml

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@
1717
>
1818

1919
<RelativeLayout
20-
android:layout_width="170dp"
21-
android:layout_height="170dp"
20+
style="@style/avatarWrapper"
2221
>
2322
<ImageView
2423
android:id="@+id/ivAvatar"
@@ -58,19 +57,15 @@
5857
android:layout_width="wrap_content"
5958
android:layout_height="wrap_content"
6059
android:layout_marginTop="20dp"
61-
android:textSize="22sp"
62-
android:fontFamily="sans-serif"
63-
android:textColor="#FFFFFF"
60+
style="@style/tvName"
6461
/>
6562

6663
<TextView
6764
android:id="@+id/tvInfo"
6865
android:layout_width="wrap_content"
6966
android:layout_height="wrap_content"
7067
android:layout_marginTop="10dp"
71-
android:textSize="14sp"
72-
android:fontFamily="sans-serif"
73-
android:textColor="#ADADAD"
68+
style="@style/tvInfo"
7469
/>
7570

7671
</LinearLayout>
@@ -81,7 +76,7 @@
8176
android:orientation="horizontal"
8277
android:layout_alignParentBottom="true"
8378
android:layout_centerHorizontal="true"
84-
android:layout_marginBottom="60dp"
79+
style="@style/buttonWrapper"
8580
>
8681

8782
<LinearLayout
@@ -95,10 +90,9 @@
9590
>
9691
<com.incomingcall.AnimateImage
9792
android:id="@+id/ivDeclineCall"
98-
android:layout_width="60dp"
99-
android:layout_height="60dp"
10093
android:scaleType="centerInside"
10194
android:src="@drawable/ic_decline_call"
95+
style="@style/ivDeclineCall"
10296
/>
10397
<TextView
10498
android:id="@+id/tvDecline"
@@ -123,10 +117,9 @@
123117
>
124118
<com.incomingcall.AnimateImage
125119
android:id="@+id/ivAcceptCall"
126-
android:layout_width="60dp"
127-
android:layout_height="60dp"
128120
android:scaleType="centerInside"
129121
android:src="@drawable/ic_accept_call"
122+
style="@style/ivAcceptCall"
130123
/>
131124
<TextView
132125
android:id="@+id/tvAccept"
@@ -142,4 +135,4 @@
142135
</LinearLayout>
143136

144137
</LinearLayout>
145-
</RelativeLayout>
138+
</RelativeLayout>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<style name="avatarWrapper">
4+
<item name="android:layout_width">170dp</item>
5+
<item name="android:layout_height">170dp</item>
6+
</style>
7+
<style name="buttonWrapper">
8+
<item name="android:layout_marginBottom">60dp</item>
9+
</style>
10+
<style name="tvName">
11+
<item name="android:textSize">22sp</item>
12+
<item name="android:fontFamily">sans-serif</item>
13+
<item name="android:textColor">#FFFFFF</item>
14+
</style>
15+
<style name="tvInfo">
16+
<item name="android:textSize">14sp</item>
17+
<item name="android:fontFamily">sans-serif</item>
18+
<item name="android:textColor">#ADADAD</item>
19+
</style>
20+
<style name="ivAcceptCall">
21+
<item name="android:layout_width">60sp</item>
22+
<item name="android:layout_height">60sp</item>
23+
</style>
24+
<style name="ivDeclineCall">
25+
<item name="android:layout_width">60sp</item>
26+
<item name="android:layout_height">60sp</item>
27+
</style>
28+
</resources>

example/App.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,12 @@ export function handleRemoteMessage(remoteMessage, isHeadless) {
6868
}
6969
});
7070
} else {
71-
IncomingCall.display(
72-
callUUID,
73-
'Quocs',
74-
'https://avatars3.githubusercontent.com/u/16166195',
75-
'Incomming Call'
76-
);
71+
IncomingCall.display({
72+
uuid: callUUID,
73+
name: 'Quocs',
74+
avatar: 'https://avatars3.githubusercontent.com/u/16166195',
75+
info: 'Incomming Call'
76+
});
7777
DeviceEventEmitter.addListener('endCall', payload => {
7878
// End call action here
7979
console.log('endCall', payload);

0 commit comments

Comments
 (0)