Browse Source

feat(android): adds timer to OngoingNotification

master
tmoldovan8x8 4 years ago
parent
commit
8defaa9aec
No account linked to committer's email address

+ 1
- 0
android/sdk/src/main/java/org/jitsi/meet/sdk/JitsiMeetOngoingConferenceService.java View File

132
     public void onCurrentConferenceChanged(String conferenceUrl) {
132
     public void onCurrentConferenceChanged(String conferenceUrl) {
133
         if (conferenceUrl == null) {
133
         if (conferenceUrl == null) {
134
             stopSelf();
134
             stopSelf();
135
+            OngoingNotification.resetStartingtime();
135
             JitsiMeetLogger.i(TAG + "Service stopped");
136
             JitsiMeetLogger.i(TAG + "Service stopped");
136
         }
137
         }
137
     }
138
     }

+ 11
- 0
android/sdk/src/main/java/org/jitsi/meet/sdk/OngoingNotification.java View File

43
     private static final String CHANNEL_NAME = "Ongoing Conference Notifications";
43
     private static final String CHANNEL_NAME = "Ongoing Conference Notifications";
44
 
44
 
45
     static final int NOTIFICATION_ID = new Random().nextInt(99999) + 10000;
45
     static final int NOTIFICATION_ID = new Random().nextInt(99999) + 10000;
46
+    private static long startingTime = 0;
46
 
47
 
47
     static void createOngoingConferenceNotificationChannel() {
48
     static void createOngoingConferenceNotificationChannel() {
48
         if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
49
         if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
85
 
86
 
86
         NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID);
87
         NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID);
87
 
88
 
89
+        if (startingTime == 0) {
90
+            startingTime = System.currentTimeMillis();
91
+        }
92
+
88
         builder
93
         builder
89
             .setCategory(NotificationCompat.CATEGORY_CALL)
94
             .setCategory(NotificationCompat.CATEGORY_CALL)
90
             .setContentTitle(context.getString(R.string.ongoing_notification_title))
95
             .setContentTitle(context.getString(R.string.ongoing_notification_title))
92
             .setPriority(NotificationCompat.PRIORITY_DEFAULT)
97
             .setPriority(NotificationCompat.PRIORITY_DEFAULT)
93
             .setContentIntent(pendingIntent)
98
             .setContentIntent(pendingIntent)
94
             .setOngoing(true)
99
             .setOngoing(true)
100
+            .setWhen(startingTime)
101
+            .setUsesChronometer(true)
95
             .setAutoCancel(false)
102
             .setAutoCancel(false)
96
             .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
103
             .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
97
             .setOnlyAlertOnce(true)
104
             .setOnlyAlertOnce(true)
110
         return builder.build();
117
         return builder.build();
111
     }
118
     }
112
 
119
 
120
+    static void resetStartingtime() {
121
+        startingTime = 0;
122
+    }
123
+
113
     private static NotificationCompat.Action createAction(Context context, JitsiMeetOngoingConferenceService.Action action, @StringRes int titleId) {
124
     private static NotificationCompat.Action createAction(Context context, JitsiMeetOngoingConferenceService.Action action, @StringRes int titleId) {
114
         Intent intent = new Intent(context, JitsiMeetOngoingConferenceService.class);
125
         Intent intent = new Intent(context, JitsiMeetOngoingConferenceService.class);
115
         intent.setAction(action.getName());
126
         intent.setAction(action.getName());

Loading…
Cancel
Save