From 501cfdb1d03f8c2b76ed73614e982654f8f470fe Mon Sep 17 00:00:00 2001 From: Nagesh Susarla Date: Thu, 11 Jun 2015 15:26:36 -0700 Subject: Don't export broadcast receivers - receivers are now marked as exported="false" - address issues reported by lint - minor clean up in service to remove stub methods. Bug: 21778002 Change-Id: I7e9929fc46294fe029e62c3b13bbeefa1da89d4f --- .../Application/src/main/AndroidManifest.xml | 8 ++- .../android/messagingservice/Conversations.java | 1 - .../android/messagingservice/MessageLogger.java | 7 ++- .../messagingservice/MessageReadReceiver.java | 5 +- .../messagingservice/MessagingFragment.java | 4 +- .../android/messagingservice/MessagingService.java | 66 +++++++++++----------- .../main/res/layout-land/fragment_message_me.xml | 3 +- .../src/main/res/layout/fragment_message_me.xml | 1 - .../Application/src/main/res/values/strings.xml | 2 - 9 files changed, 48 insertions(+), 49 deletions(-) (limited to 'notification') diff --git a/notification/MessagingService/Application/src/main/AndroidManifest.xml b/notification/MessagingService/Application/src/main/AndroidManifest.xml index f8a5850d..955f8d4f 100644 --- a/notification/MessagingService/Application/src/main/AndroidManifest.xml +++ b/notification/MessagingService/Application/src/main/AndroidManifest.xml @@ -37,13 +37,17 @@ - + - + diff --git a/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/Conversations.java b/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/Conversations.java index 7425df49..88ef7aa5 100644 --- a/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/Conversations.java +++ b/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/Conversations.java @@ -17,7 +17,6 @@ package com.example.android.messagingservice; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.concurrent.ThreadLocalRandom; diff --git a/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/MessageLogger.java b/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/MessageLogger.java index d1007b5a..3459178d 100644 --- a/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/MessageLogger.java +++ b/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/MessageLogger.java @@ -19,6 +19,7 @@ package com.example.android.messagingservice; import android.content.Context; import android.content.SharedPreferences; +import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; @@ -27,13 +28,13 @@ import java.util.Date; * and replies. Don't use this in a real world application. This logger is only * used for displaying the messages in the text view. */ -public class MessageLogger { +class MessageLogger { private static final String PREF_MESSAGE = "MESSAGE_LOGGER"; - private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + private static final DateFormat DATE_FORMAT = SimpleDateFormat.getDateTimeInstance(); + private static final String LINE_BREAKS = "\n\n"; public static final String LOG_KEY = "message_data"; - public static final String LINE_BREAKS = "\n\n"; public static void logMessage(Context context, String message) { SharedPreferences prefs = getPrefs(context); diff --git a/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/MessageReadReceiver.java b/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/MessageReadReceiver.java index f28a3a77..63c244f8 100644 --- a/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/MessageReadReceiver.java +++ b/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/MessageReadReceiver.java @@ -16,7 +16,6 @@ package com.example.android.messagingservice; -import android.app.NotificationManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -35,8 +34,8 @@ public class MessageReadReceiver extends BroadcastReceiver { if (conversationId != -1) { Log.d(TAG, "Conversation " + conversationId + " was read"); MessageLogger.logMessage(context, "Conversation " + conversationId + " was read."); - NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context); - notificationManager.cancel(conversationId); + NotificationManagerCompat.from(context) + .cancel(conversationId); } } } diff --git a/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/MessagingFragment.java b/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/MessagingFragment.java index f8efcc0c..703bc808 100644 --- a/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/MessagingFragment.java +++ b/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/MessagingFragment.java @@ -51,7 +51,7 @@ public class MessagingFragment extends Fragment implements View.OnClickListener private Messenger mService; private boolean mBound; - private ServiceConnection mConnection = new ServiceConnection() { + private final ServiceConnection mConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName componentName, IBinder service) { mService = new Messenger(service); @@ -67,7 +67,7 @@ public class MessagingFragment extends Fragment implements View.OnClickListener } }; - private SharedPreferences.OnSharedPreferenceChangeListener listener = + private final SharedPreferences.OnSharedPreferenceChangeListener listener = new SharedPreferences.OnSharedPreferenceChangeListener() { @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { diff --git a/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/MessagingService.java b/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/MessagingService.java index f5900610..73199ed5 100644 --- a/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/MessagingService.java +++ b/notification/MessagingService/Application/src/main/java/com/example/android/messagingservice/MessagingService.java @@ -31,41 +31,24 @@ import android.support.v4.app.NotificationManagerCompat; import android.support.v4.app.RemoteInput; import android.util.Log; +import java.lang.ref.WeakReference; import java.util.Iterator; public class MessagingService extends Service { private static final String TAG = MessagingService.class.getSimpleName(); - - public static final String READ_ACTION = + private static final String EOL = "\n"; + private static final String READ_ACTION = "com.example.android.messagingservice.ACTION_MESSAGE_READ"; + public static final String REPLY_ACTION = "com.example.android.messagingservice.ACTION_MESSAGE_REPLY"; public static final String CONVERSATION_ID = "conversation_id"; public static final String EXTRA_VOICE_REPLY = "extra_voice_reply"; public static final int MSG_SEND_NOTIFICATION = 1; - public static final String EOL = "\n"; private NotificationManagerCompat mNotificationManager; - private final Messenger mMessenger = new Messenger(new IncomingHandler()); - - /** - * Handler of incoming messages from clients. - */ - class IncomingHandler extends Handler { - @Override - public void handleMessage(Message msg) { - switch (msg.what) { - case MSG_SEND_NOTIFICATION: - int howManyConversations = msg.arg1 <= 0 ? 1 : msg.arg1; - int messagesPerConv = msg.arg2 <= 0 ? 1 : msg.arg2; - sendNotification(howManyConversations, messagesPerConv); - break; - default: - super.handleMessage(msg); - } - } - } + private final Messenger mMessenger = new Messenger(new IncomingHandler(this)); @Override public void onCreate() { @@ -79,18 +62,6 @@ public class MessagingService extends Service { return mMessenger.getBinder(); } - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - Log.d(TAG, "onStartCommand"); - return START_STICKY; - } - - @Override - public void onDestroy() { - super.onDestroy(); - Log.d(TAG, "onDestroy"); - } - // Creates an intent that will be triggered when a message is marked as read. private Intent getMessageReadIntent(int id) { return new Intent() @@ -171,4 +142,31 @@ public class MessagingService extends Service { mNotificationManager.notify(conversation.getConversationId(), builder.build()); } + + /** + * Handler for incoming messages from clients. + */ + private static class IncomingHandler extends Handler { + private final WeakReference mReference; + + IncomingHandler(MessagingService service) { + mReference = new WeakReference<>(service); + } + + @Override + public void handleMessage(Message msg) { + MessagingService service = mReference.get(); + switch (msg.what) { + case MSG_SEND_NOTIFICATION: + int howManyConversations = msg.arg1 <= 0 ? 1 : msg.arg1; + int messagesPerConversation = msg.arg2 <= 0 ? 1 : msg.arg2; + if (service != null) { + service.sendNotification(howManyConversations, messagesPerConversation); + } + break; + default: + super.handleMessage(msg); + } + } + } } diff --git a/notification/MessagingService/Application/src/main/res/layout-land/fragment_message_me.xml b/notification/MessagingService/Application/src/main/res/layout-land/fragment_message_me.xml index 6f4f88ba..0cfd1cf0 100644 --- a/notification/MessagingService/Application/src/main/res/layout-land/fragment_message_me.xml +++ b/notification/MessagingService/Application/src/main/res/layout-land/fragment_message_me.xml @@ -21,7 +21,8 @@ android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" - android:paddingTop="@dimen/activity_vertical_margin"> + android:paddingTop="@dimen/activity_vertical_margin" + android:baselineAligned="false"> Messaging Sample - Settings - Messaging Sample Reply by Voice Send 2 conversations with 1 message Send 1 conversation with 1 message -- cgit v1.2.3