Make direct-reply notification as HUN in EditTextVariations

Also, set the content intent to launch an editorActivity as the message
notifiation when tapping the notification.

Bug: 190057993
Test: make EditTextVariations, manual test by using EditTextVariations
      app to simulate the issue step.
Change-Id: I1a4463dc44031eaebb286ad2a289870e97a1c475
This commit is contained in:
Ming-Shin Lu 2021-06-07 00:24:41 +08:00
parent fdf368cd6a
commit ed13b1971d
3 changed files with 43 additions and 1 deletions

View File

@ -34,6 +34,10 @@
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name=".EditorActivity"
android:windowSoftInputMode="stateHidden|adjustPan"
android:theme="@style/defaultActivityTheme"
android:label="@string/app_name"/>
<receiver android:name=".NotificationBroadcastReceiver" <receiver android:name=".NotificationBroadcastReceiver"
android:exported="false"/> android:exported="false"/>
</application> </application>

View File

@ -0,0 +1,35 @@
/*
* Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.inputmethod.tools.edittextvariations;
import android.app.Activity;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.LinearLayout;
public final class EditorActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
EditText editText = new EditText(this);
editText.setHint("reply the message");
layout.addView(editText);
setContentView(layout);
}
}

View File

@ -57,7 +57,7 @@ final class NotificationUtils {
synchronized (sLock) { synchronized (sLock) {
if (!sNotificationChannelInitialized) { if (!sNotificationChannelInitialized) {
final NotificationChannel channel = new NotificationChannel(CHANNEL_ID, final NotificationChannel channel = new NotificationChannel(CHANNEL_ID,
CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT); CHANNEL_NAME, NotificationManager.IMPORTANCE_HIGH);
channel.setDescription(CHANNEL_DESCRIPTION); channel.setDescription(CHANNEL_DESCRIPTION);
context.getSystemService(NotificationManager.class) context.getSystemService(NotificationManager.class)
.createNotificationChannel(channel); .createNotificationChannel(channel);
@ -79,12 +79,15 @@ final class NotificationUtils {
final int notificationId = sNextNotificationId.getAndIncrement(); final int notificationId = sNextNotificationId.getAndIncrement();
final PendingIntent pendingIntent = getReplyPendingIntent(context, notificationId); final PendingIntent pendingIntent = getReplyPendingIntent(context, notificationId);
final PendingIntent activityIntent = PendingIntent.getActivity(context, 0,
new Intent(context, EditorActivity.class), 0);
final Notification.Action action = final Notification.Action action =
new Notification.Action.Builder(null, "Direct Reply Test", pendingIntent) new Notification.Action.Builder(null, "Direct Reply Test", pendingIntent)
.addRemoteInput(remoteInput) .addRemoteInput(remoteInput)
.build(); .build();
final Notification notification = createNotificationBuilder(context) final Notification notification = createNotificationBuilder(context)
.setContentText("Content Title") .setContentText("Content Title")
.setContentIntent(activityIntent)
.setSmallIcon(R.drawable.ic_launcher) .setSmallIcon(R.drawable.ic_launcher)
.setContentText("Message from " + UserHandle.getUserHandleForUid(Process.myUid())) .setContentText("Message from " + UserHandle.getUserHandleForUid(Process.myUid()))
.setShowWhen(true) .setShowWhen(true)