diff options
author | Jeremy Klein <jlklein@google.com> | 2015-07-15 13:31:45 -0700 |
---|---|---|
committer | Jeremy Klein <jlklein@google.com> | 2015-07-15 14:24:10 -0700 |
commit | cabd426608f2c6776ecd1ef2ac0053dcc352adbc (patch) | |
tree | 9d0c6458577f7c6752dbc47482cc06dfe4c7d042 | |
parent | f688ba9d4c3d63e68267518f1d0773fcfb919085 (diff) | |
download | connectbot-cabd426608f2c6776ecd1ef2ac0053dcc352adbc.tar.gz connectbot-cabd426608f2c6776ecd1ef2ac0053dcc352adbc.tar.bz2 connectbot-cabd426608f2c6776ecd1ef2ac0053dcc352adbc.zip |
Add the v4 support library and update the notification API.
Switch to using NotificationCompat.Builder. This will allow for
the creation of a "disconnect all" button in the notification
(see #93).
-rw-r--r-- | app/app.iml | 4 | ||||
-rw-r--r-- | app/build.gradle | 10 | ||||
-rw-r--r-- | app/src/main/AndroidManifest.xml | 2 | ||||
-rw-r--r-- | app/src/main/java/org/connectbot/service/ConnectionNotifier.java | 58 |
4 files changed, 40 insertions, 34 deletions
diff --git a/app/app.iml b/app/app.iml index 1914fd4..2b8fc3e 100644 --- a/app/app.iml +++ b/app/app.iml @@ -85,7 +85,9 @@ <excludeFolder url="file://$MODULE_DIR$/build/test-results" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> - <orderEntry type="jdk" jdkName="Android API 20 Platform" jdkType="Android SDK" /> + <orderEntry type="jdk" jdkName="Android API 22 Platform" jdkType="Android SDK" /> <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="library" exported="" name="support-v4-22.0.0" level="project" /> + <orderEntry type="library" exported="" name="support-annotations-22.0.0" level="project" /> </component> </module>
\ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index d3da188..ad8ba26 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,13 +4,13 @@ apply from: '../config/quality.gradle' apply from: '../config/translations.gradle' android { - compileSdkVersion 20 - buildToolsVersion "20.0.0" + compileSdkVersion 22 + buildToolsVersion "21.0.0" defaultConfig { applicationId "org.connectbot" minSdkVersion 4 - targetSdkVersion 15 + targetSdkVersion 22 compileOptions { sourceCompatibility JavaVersion.VERSION_1_5 targetCompatibility JavaVersion.VERSION_1_5 @@ -34,6 +34,10 @@ android { release } + dependencies { + compile "com.android.support:support-v4:22.0.+" + } + buildTypes { release { minifyEnabled true diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 71f25e7..406f3b9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -21,7 +21,7 @@ android:versionCode="374" android:installLocation="auto"> - <uses-sdk android:targetSdkVersion="15" android:minSdkVersion="4" /> + <uses-sdk android:targetSdkVersion="22" android:minSdkVersion="4" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.VIBRATE" /> diff --git a/app/src/main/java/org/connectbot/service/ConnectionNotifier.java b/app/src/main/java/org/connectbot/service/ConnectionNotifier.java index e42525d..3d3bf71 100644 --- a/app/src/main/java/org/connectbot/service/ConnectionNotifier.java +++ b/app/src/main/java/org/connectbot/service/ConnectionNotifier.java @@ -35,6 +35,7 @@ import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.graphics.Color; +import android.support.v4.app.NotificationCompat; /** * @author Kenny Root @@ -43,6 +44,7 @@ import android.graphics.Color; */ public abstract class ConnectionNotifier { private static final int ONLINE_NOTIFICATION = 1; + private static final int ONLINE_NOTIFICATION_DISCONNECT = 1; private static final int ACTIVITY_NOTIFICATION = 2; public static ConnectionNotifier getInstance() { @@ -56,16 +58,17 @@ public abstract class ConnectionNotifier { return (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); } - protected Notification newNotification(Context context) { - Notification notification = new Notification(); - notification.icon = R.drawable.notification_icon; - notification.when = System.currentTimeMillis(); + protected NotificationCompat.Builder newNotificationBuilder(Context context) { + NotificationCompat.Builder builder = + new NotificationCompat.Builder(context) + .setSmallIcon(R.drawable.notification_icon) + .setWhen(System.currentTimeMillis()); - return notification; + return builder; } protected Notification newActivityNotification(Context context, HostBean host) { - Notification notification = newNotification(context); + NotificationCompat.Builder notification = newNotificationBuilder(context); Resources res = context.getResources(); @@ -79,45 +82,42 @@ public abstract class ConnectionNotifier { PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0); - notification.setLatestEventInfo(context, res.getString(R.string.app_name), contentText, contentIntent); + notification.setContentTitle(res.getString(R.string.app_name)) + .setContentText(contentText) + .setContentIntent(contentIntent); - notification.flags = Notification.FLAG_AUTO_CANCEL; + notification.setAutoCancel(true); - notification.flags |= Notification.DEFAULT_LIGHTS; + int ledOnMS = 300; + int ledOffMS = 1000; + notification.setDefaults(Notification.DEFAULT_LIGHTS); if (HostDatabase.COLOR_RED.equals(host.getColor())) - notification.ledARGB = Color.RED; + notification.setLights(Color.RED, ledOnMS, ledOffMS); else if (HostDatabase.COLOR_GREEN.equals(host.getColor())) - notification.ledARGB = Color.GREEN; + notification.setLights(Color.GREEN, ledOnMS, ledOffMS); else if (HostDatabase.COLOR_BLUE.equals(host.getColor())) - notification.ledARGB = Color.BLUE; + notification.setLights(Color.BLUE, ledOnMS, ledOffMS); else - notification.ledARGB = Color.WHITE; - notification.ledOnMS = 300; - notification.ledOffMS = 1000; - notification.flags |= Notification.FLAG_SHOW_LIGHTS; + notification.setLights(Color.WHITE, ledOnMS, ledOffMS); - return notification; + return notification.build(); } protected Notification newRunningNotification(Context context) { - Notification notification = newNotification(context); + NotificationCompat.Builder notification = newNotificationBuilder(context); - notification.flags = Notification.FLAG_ONGOING_EVENT - | Notification.FLAG_NO_CLEAR; - notification.when = 0; + notification.setOngoing(true); + notification.setWhen(0); - notification.contentIntent = PendingIntent.getActivity(context, + notification.setContentIntent(PendingIntent.getActivity(context, ONLINE_NOTIFICATION, - new Intent(context, ConsoleActivity.class), 0); + new Intent(context, ConsoleActivity.class), 0)); Resources res = context.getResources(); + notification.setContentTitle(res.getString(R.string.app_name)); + notification.setContentText(res.getString(R.string.app_is_running)); - notification.setLatestEventInfo(context, - res.getString(R.string.app_name), - res.getString(R.string.app_is_running), - notification.contentIntent); - - return notification; + return notification.build(); } public void showActivityNotification(Service context, HostBean host) { |