Open bugreport info when touching notification (as well as DETAILS button).
Also added test case for CANCEL button on system notification. BUG: 26906985 Change-Id: I92eac2e5ec18a8d1d4412f5c1832a52705caf3b3
This commit is contained in:
@@ -436,10 +436,12 @@ public class BugreportProgressService extends Service {
|
||||
final Intent infoIntent = new Intent(mContext, BugreportProgressService.class);
|
||||
infoIntent.setAction(INTENT_BUGREPORT_INFO_LAUNCH);
|
||||
infoIntent.putExtra(EXTRA_ID, info.id);
|
||||
final PendingIntent infoPendingIntent =
|
||||
PendingIntent.getService(mContext, info.id, infoIntent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
final Action infoAction = new Action.Builder(null,
|
||||
mContext.getString(R.string.bugreport_info_action),
|
||||
PendingIntent.getService(mContext, info.id, infoIntent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT)).build();
|
||||
infoPendingIntent).build();
|
||||
final Intent screenshotIntent = new Intent(mContext, BugreportProgressService.class);
|
||||
screenshotIntent.setAction(INTENT_BUGREPORT_SCREENSHOT);
|
||||
screenshotIntent.putExtra(EXTRA_ID, info.id);
|
||||
@@ -466,6 +468,7 @@ public class BugreportProgressService extends Service {
|
||||
.setLocalOnly(true)
|
||||
.setColor(mContext.getColor(
|
||||
com.android.internal.R.color.system_notification_accent_color))
|
||||
.setContentIntent(infoPendingIntent)
|
||||
.addAction(infoAction)
|
||||
.addAction(screenshotAction)
|
||||
.addAction(cancelAction)
|
||||
|
||||
@@ -198,6 +198,25 @@ public class BugreportReceiverTest extends InstrumentationTestCase {
|
||||
assertServiceNotRunning();
|
||||
}
|
||||
|
||||
public void testProgress_cancel() throws Exception {
|
||||
resetProperties();
|
||||
sendBugreportStarted(1000);
|
||||
waitForScreenshotButtonEnabled(true);
|
||||
|
||||
final NumberFormat nf = NumberFormat.getPercentInstance();
|
||||
nf.setMinimumFractionDigits(2);
|
||||
nf.setMaximumFractionDigits(2);
|
||||
|
||||
assertProgressNotification(NAME, nf.format(0));
|
||||
|
||||
openProgressNotification(ID);
|
||||
UiObject cancelButton = mUiBot.getVisibleObject(mContext.getString(
|
||||
com.android.internal.R.string.cancel).toUpperCase());
|
||||
mUiBot.click(cancelButton, "cancel_button");
|
||||
|
||||
waitForService(false);
|
||||
}
|
||||
|
||||
public void testProgress_takeExtraScreenshot() throws Exception {
|
||||
takeExtraScreenshotTest(false);
|
||||
}
|
||||
@@ -339,12 +358,20 @@ public class BugreportReceiverTest extends InstrumentationTestCase {
|
||||
assertServiceNotRunning();
|
||||
}
|
||||
|
||||
public void testProgress_changeJustDetails() throws Exception {
|
||||
public void testProgress_changeJustDetailsTouchingDetails() throws Exception {
|
||||
changeJustDetailsTest(true);
|
||||
}
|
||||
|
||||
public void testProgress_changeJustDetailsTouchingNotification() throws Exception {
|
||||
changeJustDetailsTest(false);
|
||||
}
|
||||
|
||||
private void changeJustDetailsTest(boolean touchDetails) throws Exception {
|
||||
resetProperties();
|
||||
sendBugreportStarted(1000);
|
||||
waitForScreenshotButtonEnabled(true);
|
||||
|
||||
DetailsUi detailsUi = new DetailsUi(mUiBot, ID);
|
||||
DetailsUi detailsUi = new DetailsUi(mUiBot, ID, touchDetails);
|
||||
|
||||
detailsUi.nameField.setText("");
|
||||
detailsUi.titleField.setText("");
|
||||
@@ -527,10 +554,10 @@ public class BugreportReceiverTest extends InstrumentationTestCase {
|
||||
mUiBot.getObject(percent);
|
||||
}
|
||||
|
||||
private void openProgressNotification(int id) {
|
||||
private UiObject openProgressNotification(int id) {
|
||||
String title = mContext.getString(R.string.bugreport_in_progress_title, id);
|
||||
Log.v(TAG, "Looking for progress notification title: '" + title + "'");
|
||||
mUiBot.getNotification(title);
|
||||
return mUiBot.getNotification(title);
|
||||
}
|
||||
|
||||
void resetProperties() {
|
||||
@@ -899,11 +926,23 @@ public class BugreportReceiverTest extends InstrumentationTestCase {
|
||||
* Gets the UI objects by opening the progress notification and clicking DETAILS.
|
||||
*/
|
||||
DetailsUi(UiBot uiBot, int id) throws UiObjectNotFoundException {
|
||||
openProgressNotification(id);
|
||||
this(uiBot, id, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the UI objects by opening the progress notification and clicking on DETAILS or in
|
||||
* the notification itself.
|
||||
*/
|
||||
DetailsUi(UiBot uiBot, int id, boolean clickDetails) throws UiObjectNotFoundException {
|
||||
UiObject notification = openProgressNotification(id);
|
||||
detailsButton = mUiBot.getVisibleObject(mContext.getString(
|
||||
R.string.bugreport_info_action).toUpperCase());
|
||||
|
||||
mUiBot.click(detailsButton, "details_button");
|
||||
if (clickDetails) {
|
||||
mUiBot.click(detailsButton, "details_button");
|
||||
} else {
|
||||
mUiBot.click(notification, "notification");
|
||||
}
|
||||
// TODO: unhardcode resource ids
|
||||
UiObject dialogTitle = mUiBot.getVisibleObjectById("android:id/alertTitle");
|
||||
assertEquals("Wrong title", mContext.getString(R.string.bugreport_info_dialog_title,
|
||||
|
||||
Reference in New Issue
Block a user