Change project name to "Child Monitor"
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
[main]
|
[main]
|
||||||
host = https://www.transifex.com
|
host = https://www.transifex.com
|
||||||
|
|
||||||
[protect-baby-monitor.stringsxml]
|
[child-monitor.stringsxml]
|
||||||
file_filter = app/src/main/res/values-<lang>/strings.xml
|
file_filter = app/src/main/res/values-<lang>/strings.xml
|
||||||
minimum_perc = 0
|
minimum_perc = 0
|
||||||
source_file = app/src/main/res/values/strings.xml
|
source_file = app/src/main/res/values/strings.xml
|
||||||
|
|||||||
4
AUTHORS
4
AUTHORS
@@ -2,6 +2,8 @@ Branden Archer:
|
|||||||
Initial concept and implementation
|
Initial concept and implementation
|
||||||
Naofumi Fukue:
|
Naofumi Fukue:
|
||||||
Added Japanese translation
|
Added Japanese translation
|
||||||
|
Enguerrand de Rochefort
|
||||||
|
Continuation of implementation
|
||||||
|
|
||||||
Anybody who has contributed code to Protect Baby Monitor is considered
|
Anybody who has contributed code to Child Monitor (or Protect Baby Monitor) is considered
|
||||||
an author. Send pull requests to this project for additions to this file.
|
an author. Send pull requests to this project for additions to this file.
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
How to Submit Patches to the Protect Baby Monitor Project
|
How to Submit Patches to the Child Monitor Project
|
||||||
===============================================================================
|
===============================================================================
|
||||||
https://github.com/brarcher/budget-watch
|
https://github.com/enguerrand/child-monitor
|
||||||
|
|
||||||
This document is intended to act as a guide to help you contribute to the
|
This document is intended to act as a guide to help you contribute to the
|
||||||
Protect Baby Monitor project. It is not perfect, and there will always be exceptions
|
Child Monitor project. It is not perfect, and there will always be exceptions
|
||||||
to the rules described here, but by following the instructions below you
|
to the rules described here, but by following the instructions below you
|
||||||
should have a much easier time getting your work merged with the upstream
|
should have a much easier time getting your work merged with the upstream
|
||||||
project.
|
project.
|
||||||
@@ -28,13 +28,6 @@ and FindBugs, run using:
|
|||||||
The final check is by testing the application on a live device and verifying
|
The final check is by testing the application on a live device and verifying
|
||||||
the basic functionality works as expected.
|
the basic functionality works as expected.
|
||||||
|
|
||||||
## Make Sure Your Code is Tested
|
|
||||||
|
|
||||||
The Protect Baby Monitor code uses a fair number of unit tests to verify that
|
|
||||||
the basic functionality is working. Submissions which add functionality
|
|
||||||
or significantly change the existing code should include additional tests
|
|
||||||
to verify the proper operation of the proposed changes.
|
|
||||||
|
|
||||||
## Explain Your Work
|
## Explain Your Work
|
||||||
|
|
||||||
At the top of every patch you should include a description of the problem you
|
At the top of every patch you should include a description of the problem you
|
||||||
@@ -85,7 +78,7 @@ your real name, saying:
|
|||||||
## Submit Patch(es) for Review
|
## Submit Patch(es) for Review
|
||||||
|
|
||||||
Finally, you will need to submit your patches so that they can be reviewed
|
Finally, you will need to submit your patches so that they can be reviewed
|
||||||
and potentially merged into the main Protect Baby Monitor repository. The preferred
|
and potentially merged into the main Child Monitor repository. The preferred
|
||||||
way to do this is to submit a Pull Request to the Protect Baby Monitor project.
|
way to do this is to submit a Pull Request to the Child Monitor project.
|
||||||
Changes need to apply cleanly onto the master branch and pass all
|
Changes need to apply cleanly onto the master branch and pass all
|
||||||
unit tests and produce no errors during static analysis.
|
unit tests and produce no errors during static analysis.
|
||||||
|
|||||||
33
README.md
33
README.md
@@ -1,35 +1,25 @@
|
|||||||
# Protect Baby Monitor
|
# Child Monitor
|
||||||
An Open Source Baby Monitor for Android
|
An Open Source Child Monitor for Android
|
||||||
|
|
||||||
[](https://travis-ci.org/brarcher/protect-baby-monitor)
|
_Child Monitor_ allows two Android devices to act as a baby monitor. The first device,
|
||||||
|
|
||||||
[](https://f-droid.org/repository/browse/?fdid=protect.babymonitor "Protect Baby Monitor on F-Droid")
|
|
||||||
|
|
||||||
_Protect Baby Monitor_ allows two Android devices to act as a baby monitor. The first device,
|
|
||||||
left in the room with the baby, will advertise itself on the network and stream audio
|
left in the room with the baby, will advertise itself on the network and stream audio
|
||||||
to a connected client. The second device, with the parent, will connect to the monitoring
|
to a connected client. The second device, with the parent, will connect to the monitoring
|
||||||
device and receive an audio stream.
|
device and receive an audio stream.
|
||||||
|
|
||||||
_Protect Baby Monitor_ works on Android 4.1 (Jelly Bean) and newer, i.e. Android SDK 16.
|
The project is a fork of _Protect Baby Monitor_ which is declared as "on hiatus" by its developer.
|
||||||
|
|
||||||
The current version of _Protect Baby Monitor_ is rudimentary at best. It is capable
|
_Child Monitor_ works on Android 4.4 (KitKat) and newer, i.e. Android SDK 19.
|
||||||
|
|
||||||
|
The current version of _Child Monitor_ is rudimentary at best. It is capable
|
||||||
of successfully advertising itself on the network, allows clients to connect,
|
of successfully advertising itself on the network, allows clients to connect,
|
||||||
and streams audio. Room for improvement includes:
|
and streams audio. Room for improvement includes:
|
||||||
|
|
||||||
1. Robust usage of the AudioTrack API
|
1. Robust usage of the AudioTrack API
|
||||||
2. Handle dropped packets gracefully
|
2. Handle dropped packets gracefully
|
||||||
|
3. Use of GSM when no internet connectivity is available
|
||||||
|
|
||||||
At the time this project was started there was no obvious open source solution for a
|
At the time this project was forked from _Protect Baby Monitor_ there was no obvious open source solution for a
|
||||||
baby monitor for Android. There are both free and paid options available for Android,
|
baby monitor for Android in F-Droid.
|
||||||
including:
|
|
||||||
|
|
||||||
- [Baby Monitor Wifi](https://play.google.com/store/apps/details?id=com.bluechillie.babyphone)
|
|
||||||
- [Dormi](https://play.google.com/store/apps/details?id=com.sleekbit.dormi)
|
|
||||||
- [Baby Monitor](https://play.google.com/store/apps/details?id=dk.mvainformatics.android.babymonitor)
|
|
||||||
|
|
||||||
# Translating
|
|
||||||
|
|
||||||
If you are interested in translating this application to another language, find the project listing on [Transifex](https://www.transifex.com/na-243/protect-baby-monitor/).
|
|
||||||
|
|
||||||
# Thanks
|
# Thanks
|
||||||
|
|
||||||
@@ -37,6 +27,3 @@ App icon originals from [Icons4Android](http://www.icons4android.com/)
|
|||||||
and formatted using [Android Asset Studio](https://romannurik.github.io/AndroidAssetStudio/index.html).
|
and formatted using [Android Asset Studio](https://romannurik.github.io/AndroidAssetStudio/index.html).
|
||||||
|
|
||||||
Audio file originals from [freesound](https://freesound.org).
|
Audio file originals from [freesound](https://freesound.org).
|
||||||
|
|
||||||
# Note from Developer
|
|
||||||
The developer is currently on hiatus from the project. Questions and pull requests may not be looked at for some time. Apologies in advance.
|
|
||||||
|
|||||||
@@ -7,14 +7,14 @@ findbugs {
|
|||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 25
|
compileSdkVersion 26
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "protect.babymonitor"
|
applicationId "child.monitor"
|
||||||
minSdkVersion 19
|
minSdkVersion 19
|
||||||
targetSdkVersion 26
|
targetSdkVersion 26
|
||||||
versionCode 3
|
versionCode 4
|
||||||
versionName "0.3"
|
versionName "0.4"
|
||||||
}
|
}
|
||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
@@ -25,7 +25,7 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile "com.android.support:support-compat:25.4.0"
|
compile "com.android.support:support-compat:26.1.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="protect.babymonitor"
|
package="de.rochefort.childmonitor"
|
||||||
android:versionCode="2"
|
android:versionCode="2"
|
||||||
android:versionName="0.2" >
|
android:versionName="0.2" >
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:theme="@android:style/Theme.Holo" >
|
android:theme="@android:style/Theme.Holo" >
|
||||||
<activity
|
<activity
|
||||||
android:name="protect.babymonitor.StartActivity"
|
android:name="de.rochefort.childmonitor.StartActivity"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:configChanges="orientation|screenSize"
|
android:configChanges="orientation|screenSize"
|
||||||
>
|
>
|
||||||
@@ -24,23 +24,23 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="protect.babymonitor.MonitorActivity"
|
android:name="de.rochefort.childmonitor.MonitorActivity"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:configChanges="orientation|screenSize"
|
android:configChanges="orientation|screenSize"
|
||||||
android:parentActivityName="protect.babymonitor.StartActivity"
|
android:parentActivityName="de.rochefort.childmonitor.StartActivity"
|
||||||
/>
|
/>
|
||||||
<activity
|
<activity
|
||||||
android:name="protect.babymonitor.DiscoverActivity"
|
android:name="de.rochefort.childmonitor.DiscoverActivity"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:configChanges="orientation|screenSize"
|
android:configChanges="orientation|screenSize"
|
||||||
android:windowSoftInputMode="adjustPan"
|
android:windowSoftInputMode="adjustPan"
|
||||||
android:parentActivityName="protect.babymonitor.StartActivity"
|
android:parentActivityName="de.rochefort.childmonitor.StartActivity"
|
||||||
/>
|
/>
|
||||||
<activity
|
<activity
|
||||||
android:name="protect.babymonitor.ListenActivity"
|
android:name="de.rochefort.childmonitor.ListenActivity"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:configChanges="orientation|screenSize"
|
android:configChanges="orientation|screenSize"
|
||||||
android:parentActivityName="protect.babymonitor.DiscoverActivity"
|
android:parentActivityName="de.rochefort.childmonitor.DiscoverActivity"
|
||||||
/>
|
/>
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/**
|
||||||
|
* This file is part of the Child Monitor.
|
||||||
|
*
|
||||||
|
* Child Monitor is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Child Monitor is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Child Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package de.rochefort.childmonitor;
|
||||||
|
|
||||||
|
import android.media.AudioFormat;
|
||||||
|
|
||||||
|
public class AudioCodecDefines {
|
||||||
|
public static final int FREQUENCY = 11025;
|
||||||
|
public static final int ENCODING = AudioFormat.ENCODING_PCM_16BIT;
|
||||||
|
public static final int CHANNEL_CONFIGURATION_IN = AudioFormat.CHANNEL_IN_MONO;
|
||||||
|
public static final int CHANNEL_CONFIGURATION_OUT = AudioFormat.CHANNEL_OUT_MONO;
|
||||||
|
|
||||||
|
|
||||||
|
private AudioCodecDefines() {
|
||||||
|
throw new IllegalStateException("Do not instantiate!");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
/**
|
||||||
|
* This file is part of the Child Monitor.
|
||||||
|
*
|
||||||
|
* Child Monitor is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Child Monitor is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Child Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package de.rochefort.childmonitor;
|
||||||
|
|
||||||
|
public interface AudioListener {
|
||||||
|
void onAudio(byte[] audioBytes);
|
||||||
|
}
|
||||||
@@ -1,20 +1,20 @@
|
|||||||
/**
|
/**
|
||||||
* This file is part of the Protect Baby Monitor.
|
* This file is part of the Child Monitor.
|
||||||
*
|
*
|
||||||
* Protect Baby Monitor is free software: you can redistribute it and/or modify
|
* Child Monitor is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* Protect Baby Monitor is distributed in the hope that it will be useful,
|
* Child Monitor is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with Protect Baby Monitor. If not, see <http://www.gnu.org/licenses/>.
|
* along with Child Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package protect.babymonitor;
|
package de.rochefort.childmonitor;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -32,9 +32,10 @@ import android.widget.EditText;
|
|||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
|
||||||
public class DiscoverActivity extends Activity
|
public class DiscoverActivity extends Activity
|
||||||
{
|
{
|
||||||
final String TAG = "BabyMonitor";
|
final String TAG = "ChildMonitor";
|
||||||
|
|
||||||
NsdManager _nsdManager;
|
NsdManager _nsdManager;
|
||||||
|
|
||||||
@@ -43,7 +44,7 @@ public class DiscoverActivity extends Activity
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState)
|
protected void onCreate(Bundle savedInstanceState)
|
||||||
{
|
{
|
||||||
Log.i(TAG, "Baby monitor start");
|
Log.i(TAG, "ChildMonitor start");
|
||||||
|
|
||||||
_nsdManager = (NsdManager)this.getSystemService(Context.NSD_SERVICE);
|
_nsdManager = (NsdManager)this.getSystemService(Context.NSD_SERVICE);
|
||||||
|
|
||||||
@@ -74,7 +75,7 @@ public class DiscoverActivity extends Activity
|
|||||||
private void loadDiscoveryViaMdns()
|
private void loadDiscoveryViaMdns()
|
||||||
{
|
{
|
||||||
setContentView(R.layout.activity_discover_mdns);
|
setContentView(R.layout.activity_discover_mdns);
|
||||||
startServiceDiscovery("_babymonitor._tcp.");
|
startServiceDiscovery("_childmonitor._tcp.");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadDiscoveryViaAddress()
|
private void loadDiscoveryViaAddress()
|
||||||
@@ -121,7 +122,7 @@ public class DiscoverActivity extends Activity
|
|||||||
@Override
|
@Override
|
||||||
protected void onDestroy()
|
protected void onDestroy()
|
||||||
{
|
{
|
||||||
Log.i(TAG, "Baby monitoring stop");
|
Log.i(TAG, "ChildMonitoring stop");
|
||||||
|
|
||||||
if(_discoveryListener != null)
|
if(_discoveryListener != null)
|
||||||
{
|
{
|
||||||
@@ -176,7 +177,7 @@ public class DiscoverActivity extends Activity
|
|||||||
// transport layer for this service.
|
// transport layer for this service.
|
||||||
Log.d(TAG, "Unknown Service Type: " + service.getServiceType());
|
Log.d(TAG, "Unknown Service Type: " + service.getServiceType());
|
||||||
}
|
}
|
||||||
else if (service.getServiceName().contains("ProtectBabyMonitor"))
|
else if (service.getServiceName().contains("ChildMonitor"))
|
||||||
{
|
{
|
||||||
NsdManager.ResolveListener resolver = new NsdManager.ResolveListener()
|
NsdManager.ResolveListener resolver = new NsdManager.ResolveListener()
|
||||||
{
|
{
|
||||||
@@ -285,9 +286,9 @@ class ServiceInfoWrapper
|
|||||||
{
|
{
|
||||||
// If there is more than one service on the network, it will
|
// If there is more than one service on the network, it will
|
||||||
// have a number at the end, but will appear as the following:
|
// have a number at the end, but will appear as the following:
|
||||||
// "ProtectBabyMonitor\\032(number)
|
// "ChildMonitor\\032(number)
|
||||||
// or
|
// or
|
||||||
// "ProtectBabyMonitor\032(number)
|
// "ChildMonitor\032(number)
|
||||||
// Replace \\032 and \032 with a " "
|
// Replace \\032 and \032 with a " "
|
||||||
String serviceName = _info.getServiceName();
|
String serviceName = _info.getServiceName();
|
||||||
serviceName = serviceName.replace("\\\\032", " ");
|
serviceName = serviceName.replace("\\\\032", " ");
|
||||||
@@ -1,20 +1,20 @@
|
|||||||
/**
|
/**
|
||||||
* This file is part of the Protect Baby Monitor.
|
* This file is part of the Child Monitor.
|
||||||
*
|
*
|
||||||
* Protect Baby Monitor is free software: you can redistribute it and/or modify
|
* Child Monitor is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* Protect Baby Monitor is distributed in the hope that it will be useful,
|
* Child Monitor is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with Protect Baby Monitor. If not, see <http://www.gnu.org/licenses/>.
|
* along with Child Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package protect.babymonitor;
|
package de.rochefort.childmonitor;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
@@ -22,7 +22,6 @@ import java.net.Socket;
|
|||||||
import java.net.UnknownHostException;
|
import java.net.UnknownHostException;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.media.AudioFormat;
|
|
||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
import android.media.AudioTrack;
|
import android.media.AudioTrack;
|
||||||
import android.media.MediaPlayer;
|
import android.media.MediaPlayer;
|
||||||
@@ -34,7 +33,7 @@ import android.support.v4.app.NotificationManagerCompat;
|
|||||||
|
|
||||||
public class ListenActivity extends Activity
|
public class ListenActivity extends Activity
|
||||||
{
|
{
|
||||||
final String TAG = "BabyMonitor";
|
final String TAG = "ChildMonitor";
|
||||||
// Sets an ID for the notification
|
// Sets an ID for the notification
|
||||||
final static int mNotificationId = 1;
|
final static int mNotificationId = 1;
|
||||||
|
|
||||||
@@ -1,20 +1,20 @@
|
|||||||
/**
|
/**
|
||||||
* This file is part of the Protect Baby Monitor.
|
* This file is part of the Child Monitor.
|
||||||
*
|
*
|
||||||
* Protect Baby Monitor is free software: you can redistribute it and/or modify
|
* Child Monitor is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* Protect Baby Monitor is distributed in the hope that it will be useful,
|
* Child Monitor is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with Protect Baby Monitor. If not, see <http://www.gnu.org/licenses/>.
|
* along with Child Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package protect.babymonitor;
|
package de.rochefort.childmonitor;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
@@ -24,7 +24,6 @@ import java.util.Objects;
|
|||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.media.AudioFormat;
|
|
||||||
import android.media.AudioRecord;
|
import android.media.AudioRecord;
|
||||||
import android.media.MediaRecorder;
|
import android.media.MediaRecorder;
|
||||||
import android.net.nsd.NsdManager;
|
import android.net.nsd.NsdManager;
|
||||||
@@ -37,7 +36,7 @@ import android.util.Log;
|
|||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
public class MonitorActivity extends Activity {
|
public class MonitorActivity extends Activity {
|
||||||
final static String TAG = "BabyMonitor";
|
final static String TAG = "ChildMonitor";
|
||||||
|
|
||||||
private NsdManager nsdManager;
|
private NsdManager nsdManager;
|
||||||
|
|
||||||
@@ -96,7 +95,7 @@ public class MonitorActivity extends Activity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
Log.i(TAG, "Baby monitor start");
|
Log.i(TAG, "ChildMonitor start");
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_monitor);
|
setContentView(R.layout.activity_monitor);
|
||||||
|
|
||||||
@@ -158,7 +157,7 @@ public class MonitorActivity extends Activity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onDestroy() {
|
protected void onDestroy() {
|
||||||
Log.i(TAG, "Baby monitor stop");
|
Log.i(TAG, "ChildMonitor stop");
|
||||||
|
|
||||||
unregisterService();
|
unregisterService();
|
||||||
|
|
||||||
@@ -176,8 +175,8 @@ public class MonitorActivity extends Activity {
|
|||||||
|
|
||||||
private void registerService(final int port) {
|
private void registerService(final int port) {
|
||||||
final NsdServiceInfo serviceInfo = new NsdServiceInfo();
|
final NsdServiceInfo serviceInfo = new NsdServiceInfo();
|
||||||
serviceInfo.setServiceName("ProtectBabyMonitor");
|
serviceInfo.setServiceName("ChildMonitor");
|
||||||
serviceInfo.setServiceType("_babymonitor._tcp.");
|
serviceInfo.setServiceType("_childmonitor._tcp.");
|
||||||
serviceInfo.setPort(port);
|
serviceInfo.setPort(port);
|
||||||
|
|
||||||
registrationListener = new NsdManager.RegistrationListener() {
|
registrationListener = new NsdManager.RegistrationListener() {
|
||||||
@@ -1,20 +1,20 @@
|
|||||||
/**
|
/**
|
||||||
* This file is part of the Protect Baby Monitor.
|
* This file is part of the Child Monitor.
|
||||||
*
|
*
|
||||||
* Protect Baby Monitor is free software: you can redistribute it and/or modify
|
* Child Monitor is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* Protect Baby Monitor is distributed in the hope that it will be useful,
|
* Child Monitor is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with Protect Baby Monitor. If not, see <http://www.gnu.org/licenses/>.
|
* along with Child Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package protect.babymonitor;
|
package de.rochefort.childmonitor;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
@@ -29,12 +29,12 @@ import android.widget.Button;
|
|||||||
|
|
||||||
public class StartActivity extends Activity
|
public class StartActivity extends Activity
|
||||||
{
|
{
|
||||||
static final String TAG = "BabyMonitor";
|
static final String TAG = "ChildMonitor";
|
||||||
private final static int PERMISSIONS_REQUEST_RECORD_AUDIO = 298349824;
|
private final static int PERMISSIONS_REQUEST_RECORD_AUDIO = 298349824;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
Log.i(TAG, "Baby monitor launched");
|
Log.i(TAG, "ChildMonitor launched");
|
||||||
|
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_start);
|
setContentView(R.layout.activity_start);
|
||||||
@@ -1,4 +1,20 @@
|
|||||||
package protect.babymonitor;
|
/**
|
||||||
|
* This file is part of the Child Monitor.
|
||||||
|
*
|
||||||
|
* Child Monitor is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Child Monitor is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Child Monitor. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package de.rochefort.childmonitor;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
@@ -6,7 +22,6 @@ import android.graphics.Color;
|
|||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
package protect.babymonitor;
|
|
||||||
|
|
||||||
import android.media.AudioFormat;
|
|
||||||
|
|
||||||
public class AudioCodecDefines {
|
|
||||||
public static final int FREQUENCY = 11025;
|
|
||||||
public static final int ENCODING = AudioFormat.ENCODING_PCM_16BIT;
|
|
||||||
public static final int CHANNEL_CONFIGURATION_IN = AudioFormat.CHANNEL_IN_MONO;
|
|
||||||
public static final int CHANNEL_CONFIGURATION_OUT = AudioFormat.CHANNEL_OUT_MONO;
|
|
||||||
|
|
||||||
|
|
||||||
private AudioCodecDefines() {
|
|
||||||
throw new IllegalStateException("Do not instantiate!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
package protect.babymonitor;
|
|
||||||
|
|
||||||
public interface AudioListener {
|
|
||||||
void onAudio(byte[] audioBytes);
|
|
||||||
}
|
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||||
android:paddingTop="@dimen/activity_vertical_margin"
|
android:paddingTop="@dimen/activity_vertical_margin"
|
||||||
tools:context="protect.babymonitor.MonitorActivity" >
|
tools:context="de.rochefort.childmonitor.MonitorActivity" >
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/parentDeviceTitle"
|
android:id="@+id/parentDeviceTitle"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||||
android:paddingTop="@dimen/activity_vertical_margin"
|
android:paddingTop="@dimen/activity_vertical_margin"
|
||||||
tools:context="protect.babymonitor.MonitorActivity" >
|
tools:context="de.rochefort.childmonitor.MonitorActivity" >
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/parentDeviceTitle"
|
android:id="@+id/parentDeviceTitle"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||||
android:paddingTop="@dimen/activity_vertical_margin"
|
android:paddingTop="@dimen/activity_vertical_margin"
|
||||||
tools:context="protect.babymonitor.MonitorActivity" >
|
tools:context="de.rochefort.childmonitor.MonitorActivity" >
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/parentDeviceTitle"
|
android:id="@+id/parentDeviceTitle"
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
android:paddingTop="@dimen/activity_vertical_margin"
|
android:paddingTop="@dimen/activity_vertical_margin"
|
||||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||||
android:paddingBottom="@dimen/activity_vertical_margin"
|
android:paddingBottom="@dimen/activity_vertical_margin"
|
||||||
tools:context="protect.babymonitor.MonitorActivity">
|
tools:context="de.rochefort.childmonitor.MonitorActivity">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@id/parentDeviceTitle"
|
android:id="@id/parentDeviceTitle"
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="15dip" />
|
android:layout_height="15dip" />
|
||||||
|
|
||||||
<protect.babymonitor.VolumeView
|
<de.rochefort.childmonitor.VolumeView
|
||||||
android:id="@+id/volume"
|
android:id="@+id/volume"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent" />
|
android:layout_height="match_parent" />
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||||
android:paddingTop="@dimen/activity_vertical_margin"
|
android:paddingTop="@dimen/activity_vertical_margin"
|
||||||
android:keepScreenOn="true"
|
android:keepScreenOn="true"
|
||||||
tools:context="protect.babymonitor.MonitorActivity" >
|
tools:context="de.rochefort.childmonitor.MonitorActivity" >
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/childDeviceTitle"
|
android:id="@+id/childDeviceTitle"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||||
android:paddingTop="@dimen/activity_vertical_margin"
|
android:paddingTop="@dimen/activity_vertical_margin"
|
||||||
tools:context="protect.babymonitor.StartActivity" >
|
tools:context="de.rochefort.childmonitor.StartActivity" >
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/useChildDevice"
|
android:id="@+id/useChildDevice"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<string name="app_name">Protect Baby Monitor</string>
|
<string name="app_name">Child Monitor</string>
|
||||||
<string name="action_settings">Einstellungen</string>
|
<string name="action_settings">Einstellungen</string>
|
||||||
<string name="useAsParentDevice">Als Eltern-Gerät benutzen</string>
|
<string name="useAsParentDevice">Als Eltern-Gerät benutzen</string>
|
||||||
<string name="useAsChildDevice">Als Kind-Gerät benutzen</string>
|
<string name="useAsChildDevice">Als Kind-Gerät benutzen</string>
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
|
|
||||||
</resources>
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
|
|
||||||
</resources>
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
|
|
||||||
</resources>
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<string name="app_name">安全ベビー モニター</string>
|
<string name="app_name">子モニター</string>
|
||||||
<string name="action_settings">設定</string>
|
<string name="action_settings">設定</string>
|
||||||
<string name="useAsParentDevice">親機として使用する</string>
|
<string name="useAsParentDevice">親機として使用する</string>
|
||||||
<string name="useAsChildDevice">子機として使用する</string>
|
<string name="useAsChildDevice">子機として使用する</string>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<string name="app_name">Bescherm-babymonitor</string>
|
<string name="app_name">ChildMonitor</string>
|
||||||
<string name="action_settings">Instellingen</string>
|
<string name="action_settings">Instellingen</string>
|
||||||
<string name="useAsParentDevice">Gebruiken als ouderapparaat</string>
|
<string name="useAsParentDevice">Gebruiken als ouderapparaat</string>
|
||||||
<string name="useAsChildDevice">Gebruiken als kindapparaat</string>
|
<string name="useAsChildDevice">Gebruiken als kindapparaat</string>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<string name="app_name">Protect Baby Monitor</string>
|
<string name="app_name">Child Monitor</string>
|
||||||
<string name="action_settings">Settings</string>
|
<string name="action_settings">Settings</string>
|
||||||
<string name="useAsParentDevice">Use as Parent Device</string>
|
<string name="useAsParentDevice">Use as Parent Device</string>
|
||||||
<string name="useAsChildDevice">Use as Child Device</string>
|
<string name="useAsChildDevice">Use as Child Device</string>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# PRIVACY POLICY FOR PROTECT BABY MONITOR
|
# PRIVACY POLICY FOR CHILD MONITOR
|
||||||
|
|
||||||
This privacy policy governs your use of the software application Protect Baby Monitor (“Application”) for mobile devices
|
This privacy policy governs your use of the software application Child Monitor (“Application”) for mobile devices.
|
||||||
that was created by Protect. The Application is a simple WiFi based baby monitor.
|
The Application is a simple network based baby monitor.
|
||||||
|
|
||||||
# What information does the Application obtain and how is it used?
|
# What information does the Application obtain and how is it used?
|
||||||
|
|
||||||
@@ -52,22 +52,25 @@ not delete such emails.
|
|||||||
|
|
||||||
This Application is not used to knowingly solicit data from or market to children under the age of 13. If a parent or
|
This Application is not used to knowingly solicit data from or market to children under the age of 13. If a parent or
|
||||||
guardian becomes aware that his or her child has provided us with information without their consent, he or she should
|
guardian becomes aware that his or her child has provided us with information without their consent, he or she should
|
||||||
contact us at protect.github@gmail.com. We will delete such information from our files within a reasonable time.
|
contact me at github@rochefort.de. I will delete such information from my files within a reasonable time.
|
||||||
|
|
||||||
# Security
|
# Security
|
||||||
|
|
||||||
We are concerned about safeguarding the confidentiality of your information. The only information which could
|
I am concerned about safeguarding the confidentiality of your information. The only information which could
|
||||||
be sent to the developer is crash details, and these are opt-in. If a user is presented with the option to
|
be sent to the developer is crash details, and these are opt-in. If a user is presented with the option to
|
||||||
submit details on a crash, all the information which would be submitted is presented to the user. The only
|
submit details on a crash, all the information which would be submitted is presented to the user. The only
|
||||||
personally identifiable information is the email address of the user which is used to send the crash details.
|
personally identifiable information is the email address of the user which is used to send the crash details.
|
||||||
|
|
||||||
|
The data transferred between two paired devices is transmitted unencrypted. It is the responsiblity of the user to
|
||||||
|
only transfer data through otherwise secured channels.
|
||||||
|
|
||||||
# Changes
|
# Changes
|
||||||
|
|
||||||
This Privacy Policy may be updated from time to time for any reason. We will notify you of any changes to our
|
This Privacy Policy may be updated from time to time for any reason. I will notify you of any changes to this
|
||||||
Privacy Policy by posting the new Privacy Policy here. You are advised to consult this Privacy Policy regularly
|
Privacy Policy by posting the new Privacy Policy here. You are advised to consult this Privacy Policy regularly
|
||||||
for any changes, as continued use is deemed approval of all changes. You can check the history of this policy by
|
for any changes, as continued use is deemed approval of all changes. You can check the history of this policy by
|
||||||
checking this history of this file in GitHub.
|
checking this history of this file in GitHub.
|
||||||
|
|
||||||
# Contact us
|
# Contact me
|
||||||
If you have any questions regarding privacy while using the Application, or have questions about our practices,
|
If you have any questions regarding privacy while using the Application, or have questions about our practices,
|
||||||
please contact us via email at protect.github@gmail.com.
|
please contact me via email at github@rochefort.de.
|
||||||
|
|||||||
Reference in New Issue
Block a user