Merge pull request #26 from shacharr/master

Implement Persistent Notification
This commit is contained in:
Branden Archer
2017-12-25 17:09:09 -05:00
committed by GitHub
7 changed files with 40 additions and 9 deletions

View File

@@ -4,7 +4,7 @@ sudo: true
install: install:
- echo y | android update sdk -u -a -t tools - echo y | android update sdk -u -a -t tools
- echo y | android update sdk -u -a -t platform-tools - echo y | android update sdk -u -a -t platform-tools
- echo y | android update sdk -u -a -t build-tools-25.0.2 - echo y | android update sdk -u -a -t build-tools-26.0.2
- echo y | android update sdk -u -a -t android-25 - echo y | android update sdk -u -a -t android-25
- echo y | android update sdk -u -a -t extra-google-m2repository - echo y | android update sdk -u -a -t extra-google-m2repository
- echo y | android update sdk -u -a -t extra-android-m2repository - echo y | android update sdk -u -a -t extra-android-m2repository

View File

@@ -8,7 +8,6 @@ findbugs {
android { android {
compileSdkVersion 25 compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig { defaultConfig {
applicationId "protect.babymonitor" applicationId "protect.babymonitor"
@@ -22,6 +21,10 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
} }
} }
dependencies {
compile "com.android.support:support-compat:25.4.0"
}
} }
task findbugs(type: FindBugs, dependsOn: 'assembleDebug') { task findbugs(type: FindBugs, dependsOn: 'assembleDebug') {

View File

@@ -5,8 +5,8 @@
android:versionName="0.2" > android:versionName="0.2" >
<uses-sdk <uses-sdk
android:minSdkVersion="8" android:minSdkVersion="16"
android:targetSdkVersion="8" /> android:targetSdkVersion="17" />
<uses-permission android:required="true" android:name="android.permission.INTERNET"/> <uses-permission android:required="true" android:name="android.permission.INTERNET"/>
<uses-permission android:required="true" android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:required="true" android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:required="true" android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:required="true" android:name="android.permission.ACCESS_WIFI_STATE"/>

View File

@@ -22,6 +22,7 @@ import java.net.Socket;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import android.app.Activity; import android.app.Activity;
import android.content.Context;
import android.media.AudioFormat; import android.media.AudioFormat;
import android.media.AudioManager; import android.media.AudioManager;
import android.media.AudioTrack; import android.media.AudioTrack;
@@ -29,14 +30,19 @@ import android.media.MediaPlayer;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.widget.TextView; import android.widget.TextView;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.NotificationManagerCompat;
public class ListenActivity extends Activity public class ListenActivity extends Activity
{ {
final String TAG = "BabyMonitor"; final String TAG = "BabyMonitor";
// Sets an ID for the notification
final static int mNotificationId = 1;
String _address; String _address;
int _port; int _port;
String _name; String _name;
NotificationManagerCompat _mNotifyMgr;
Thread _listenThread; Thread _listenThread;
private void streamAudio(final Socket socket) throws IllegalArgumentException, IllegalStateException, IOException private void streamAudio(final Socket socket) throws IllegalArgumentException, IllegalStateException, IOException
@@ -93,6 +99,9 @@ public class ListenActivity extends Activity
_address = b.getString("address"); _address = b.getString("address");
_port = b.getInt("port"); _port = b.getInt("port");
_name = b.getString("name"); _name = b.getString("name");
// Gets an instance of the NotificationManager service
_mNotifyMgr =
NotificationManagerCompat.from(this);
setContentView(R.layout.activity_listen); setContentView(R.layout.activity_listen);
@@ -101,6 +110,15 @@ public class ListenActivity extends Activity
@Override @Override
public void run() public void run()
{ {
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(ListenActivity.this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle(getString(R.string.app_name))
.setContentText(getString(R.string.listening));
_mNotifyMgr.notify(mNotificationId, mBuilder.build());
final TextView connectedText = (TextView) findViewById(R.id.connectedTo); final TextView connectedText = (TextView) findViewById(R.id.connectedTo);
connectedText.setText(_name); connectedText.setText(_name);
@@ -146,6 +164,12 @@ public class ListenActivity extends Activity
final TextView statusText = (TextView) findViewById(R.id.textStatus); final TextView statusText = (TextView) findViewById(R.id.textStatus);
statusText.setText(R.string.disconnected); statusText.setText(R.string.disconnected);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(ListenActivity.this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle(getString(R.string.app_name))
.setContentText(getString(R.string.disconnected));
_mNotifyMgr.notify(mNotificationId, mBuilder.build());
} }
}); });
} }

View File

@@ -174,7 +174,9 @@ public class MonitorActivity extends Activity
{ {
final TextView addressText = (TextView) findViewById(R.id.address); final TextView addressText = (TextView) findViewById(R.id.address);
final WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); // Use the application context to get WifiManager, to avoid leak before Android 5.1
final WifiManager wifiManager =
(WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
final WifiInfo info = wifiManager.getConnectionInfo(); final WifiInfo info = wifiManager.getConnectionInfo();
final int address = info.getIpAddress(); final int address = info.getIpAddress();
if(address != 0) if(address != 0)

View File

@@ -2,14 +2,16 @@
buildscript { buildscript {
repositories { repositories {
jcenter() jcenter()
google()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:2.2.3' classpath 'com.android.tools.build:gradle:3.0.1'
} }
} }
allprojects { allprojects {
repositories { repositories {
jcenter() jcenter()
google()
} }
} }

View File

@@ -1,6 +1,6 @@
#Mon Dec 28 10:00:20 PST 2015 #Sun Dec 24 10:02:44 PST 2017
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip