コード例 #1
0
  private void notify(TimelineType timelineType, int messageTitleResId, String messageText) {
    String ringtone = MyPreferences.getString(MyPreferences.KEY_RINGTONE_PREFERENCE, null);
    Uri sound = TextUtils.isEmpty(ringtone) ? null : Uri.parse(ringtone);

    Notification.Builder builder =
        new Notification.Builder(myContext.context())
            .setSmallIcon(
                MyPreferences.getBoolean(MyPreferences.KEY_NOTIFICATION_ICON_ALTERNATIVE, false)
                    ? R.drawable.notification_icon_circle
                    : R.drawable.notification_icon)
            .setContentTitle(myContext.context().getText(messageTitleResId))
            .setContentText(messageText)
            .setSound(sound);

    if (mNotificationsVibrate) {
      builder.setVibrate(new long[] {200, 300, 200, 300});
    }
    builder.setLights(Color.GREEN, 500, 1000);

    // Prepare "intent" to launch timeline activities exactly like in
    // org.andstatus.app.TimelineActivity.onOptionsItemSelected
    Intent intent = new Intent(myContext.context(), TimelineActivity.class);
    intent.setData(
        Uri.withAppendedPath(
            MatchedUri.getTimelineUri(
                0, timelineType, myContext.persistentAccounts().size() > 1, 0),
            "rnd/" + android.os.SystemClock.elapsedRealtime()));
    PendingIntent pendingIntent =
        PendingIntent.getActivity(
            myContext.context(),
            timelineType.hashCode(),
            intent,
            PendingIntent.FLAG_UPDATE_CURRENT);
    builder.setContentIntent(pendingIntent);
    myContext.notify(timelineType, builder.build());
  }