mirror of
https://github.com/SimpleMobileTools/Simple-Contacts.git
synced 2025-06-05 21:59:27 +02:00
redesigning the Incoming Call notification, add colored icons
This commit is contained in:
@ -10,7 +10,10 @@ import android.content.Intent
|
|||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.telecom.Call
|
import android.telecom.Call
|
||||||
|
import android.widget.RemoteViews
|
||||||
import androidx.core.app.NotificationCompat
|
import androidx.core.app.NotificationCompat
|
||||||
|
import com.simplemobiletools.commons.extensions.getColoredBitmap
|
||||||
|
import com.simplemobiletools.commons.extensions.setText
|
||||||
import com.simplemobiletools.commons.helpers.isOreoPlus
|
import com.simplemobiletools.commons.helpers.isOreoPlus
|
||||||
import com.simplemobiletools.contacts.pro.R
|
import com.simplemobiletools.contacts.pro.R
|
||||||
import com.simplemobiletools.contacts.pro.activities.DialerActivity
|
import com.simplemobiletools.contacts.pro.activities.DialerActivity
|
||||||
@ -67,19 +70,32 @@ class DialerCallService : Service() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val notificationLayout = RemoteViews(packageName, R.layout.incoming_call_notification).apply {
|
||||||
|
setText(R.id.incoming_call_caller, callNumber)
|
||||||
|
setText(R.id.incoming_call_status, getCallStatusString())
|
||||||
|
|
||||||
|
val resources = applicationContext.resources
|
||||||
|
setImageViewBitmap(R.id.call_decline, resources.getColoredBitmap(R.drawable.ic_phone_down, resources.getColor(R.color.theme_dark_red_primary_color)))
|
||||||
|
setImageViewBitmap(R.id.call_answer, resources.getColoredBitmap(R.drawable.ic_phone, resources.getColor(R.color.md_green_700)))
|
||||||
|
|
||||||
|
setOnClickPendingIntent(R.id.call_decline, getDeclineCallIntent())
|
||||||
|
setOnClickPendingIntent(R.id.call_answer, getAnswerCallIntent())
|
||||||
|
}
|
||||||
|
|
||||||
val notification = NotificationCompat.Builder(applicationContext, channelId)
|
val notification = NotificationCompat.Builder(applicationContext, channelId)
|
||||||
.setSmallIcon(R.drawable.ic_phone)
|
.setSmallIcon(R.drawable.ic_phone)
|
||||||
.setContentTitle(callNumber)
|
|
||||||
.setContentText(getCallStatusString())
|
|
||||||
.setContentIntent(getLaunchDialerIntent())
|
.setContentIntent(getLaunchDialerIntent())
|
||||||
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
|
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
|
||||||
.setPriority(NotificationCompat.PRIORITY_MAX)
|
.setPriority(NotificationCompat.PRIORITY_MAX)
|
||||||
|
.setCustomContentView(notificationLayout)
|
||||||
|
.setCustomHeadsUpContentView(notificationLayout)
|
||||||
|
.setCustomBigContentView(notificationLayout)
|
||||||
.setOngoing(true)
|
.setOngoing(true)
|
||||||
|
.setCategory(NotificationCompat.CATEGORY_CALL)
|
||||||
.setChannelId(channelId)
|
.setChannelId(channelId)
|
||||||
.setSound(null)
|
.setSound(null)
|
||||||
|
.setOnlyAlertOnce(true)
|
||||||
.setUsesChronometer(callStatus == Call.STATE_ACTIVE)
|
.setUsesChronometer(callStatus == Call.STATE_ACTIVE)
|
||||||
.addAction(0, getString(R.string.decline_call), getDeclineCallIntent())
|
|
||||||
.addAction(0, getString(R.string.answer_call), getAnswerCallIntent())
|
|
||||||
|
|
||||||
startForeground(CALL_NOTIFICATION_ID, notification.build())
|
startForeground(CALL_NOTIFICATION_ID, notification.build())
|
||||||
|
|
||||||
|
11
app/src/main/res/drawable/ripple.xml
Normal file
11
app/src/main/res/drawable/ripple.xml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<ripple
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:color="@color/ripple_grey">
|
||||||
|
|
||||||
|
<item android:id="@android:id/mask">
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<solid android:color="@color/ripple_grey"/>
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</ripple>
|
55
app/src/main/res/layout/incoming_call_notification.xml
Normal file
55
app/src/main/res/layout/incoming_call_notification.xml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<RelativeLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/call_notification_holder"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/incoming_call_caller"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="@dimen/normal_margin"
|
||||||
|
android:paddingLeft="@dimen/activity_margin"
|
||||||
|
android:textSize="@dimen/bigger_text_size"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="John"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/incoming_call_status"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@+id/incoming_call_caller"
|
||||||
|
android:layout_marginBottom="@dimen/small_margin"
|
||||||
|
android:paddingLeft="@dimen/activity_margin"
|
||||||
|
android:textSize="@dimen/normal_text_size"
|
||||||
|
tools:text="Incoming call"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/call_notification_actions"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@+id/incoming_call_status"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/call_decline"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="@drawable/ripple"
|
||||||
|
android:padding="@dimen/medium_margin"
|
||||||
|
android:src="@drawable/ic_phone_down"/>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/call_answer"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="@drawable/ripple"
|
||||||
|
android:padding="@dimen/medium_margin"
|
||||||
|
android:src="@drawable/ic_phone"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</RelativeLayout>
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
<color name="ripple_grey">#55000000</color>
|
||||||
</resources>
|
</resources>
|
||||||
|
Reference in New Issue
Block a user