Skip to content

Commit

Permalink
Add to settings HTML background color
Browse files Browse the repository at this point in the history
  • Loading branch information
dkrivoruchko committed Mar 19, 2017
1 parent 5d9e025 commit 23ee051
Show file tree
Hide file tree
Showing 9 changed files with 49 additions and 10 deletions.
6 changes: 4 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ android {
applicationId "info.dvkr.screenstream"
minSdkVersion 21
targetSdkVersion 25
versionCode 20
versionName "1.2.4"
versionCode 21
versionName "1.2.5"
resConfigs "en", "ru"
}

Expand Down Expand Up @@ -38,6 +38,8 @@ dependencies {
compile 'com.android.support:design:25.3.0'
compile 'com.google.firebase:firebase-crash:10.2.0'
compile 'org.greenrobot:eventbus:3.0.0'

compile 'com.jrummyapps:colorpicker:2.1.6'
}

apply plugin: 'com.google.gms.google-services'
2 changes: 1 addition & 1 deletion app/src/main/assets/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta charset=utf-8>
<title>Screen Stream</title>
<style>body,html{width:100%;height:100%;margin:0;border:0;overflow:hidden;display:block;font-family:sans-serif}body{background:#EEE}img{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;max-height:95vh;max-width:95%}p{display:none;position:absolute;top:35%;left:50%;margin-right:-50%;transform:translate(-50%,-50%);text-align:center;font-size:150%}</style>
<style>body,html{width:100%;height:100%;margin:0;border:0;overflow:hidden;display:block;font-family:sans-serif}body{background:BACK_COLOR}img{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;max-height:95vh;max-width:95%}p{display:none;position:absolute;top:35%;left:50%;margin-right:-50%;transform:translate(-50%,-50%);text-align:center;font-size:150%}</style>
</head>
<body>
<script>if("undefined"!=typeof history.pushState){var o={Title:"Screen Stream",Url:"/"};history.pushState(o,o.Title,o.Url)}</script>
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/java/info/dvkr/screenstream/data/AppData.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import info.dvkr.screenstream.R;
import info.dvkr.screenstream.ScreenStreamApplication;

import static info.dvkr.screenstream.ScreenStreamApplication.getAppPreference;
import static info.dvkr.screenstream.ScreenStreamApplication.getMainActivityViewModel;

public final class AppData {
Expand Down Expand Up @@ -95,6 +96,7 @@ public Point getScreenSize() {

public void initIndexHtmlPage(final Context context) {
mIndexHtmlPage = getHtml(context, "index.html")
.replaceFirst("BACK_COLOR", String.format("#%06X", (0xFFFFFF & getAppPreference().getHTMLBackColor())))
.replaceFirst("MSG_NO_MJPEG_SUPPORT", context.getString(R.string.html_no_mjpeg_support));
if (ScreenStreamApplication.getAppPreference().isDisableMJPEGCheck()) {
mIndexHtmlPage = mIndexHtmlPage.replaceFirst("id=mj", "").replaceFirst("id=pmj", "");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ public final class PreferencesHelper {
private boolean mMinimizeOnStream;
private boolean mStopOnSleep;
private boolean mDisableMJPEGCheck;
private int mHTMLBackColor;
private volatile int mResizeFactor;
private volatile int mJpegQuality;
private boolean mEnablePin;
Expand Down Expand Up @@ -56,6 +57,7 @@ private void readSettings() {
mMinimizeOnStream = mSharedPreferences.getBoolean(mContext.getString(R.string.pref_key_minimize_on_stream), true);
mStopOnSleep = mSharedPreferences.getBoolean(mContext.getString(R.string.pref_key_stop_on_sleep), false);
mDisableMJPEGCheck = mSharedPreferences.getBoolean(mContext.getString(R.string.pref_key_mjpeg_check), false);
mHTMLBackColor = mSharedPreferences.getInt(mContext.getString(R.string.pref_key_html_back_color), 0);

mJpegQuality = Integer.parseInt(mSharedPreferences.getString(mContext.getString(R.string.pref_key_jpeg_quality), DEFAULT_JPEG_QUALITY));
mResizeFactor = mSharedPreferences.getInt(mContext.getString(R.string.pref_key_resize_factor), DEFAULT_RESIZE_FACTOR);
Expand All @@ -72,6 +74,7 @@ private void readSettings() {

public void updatePreference() {
final boolean oldDisableMJPEGCheck = mDisableMJPEGCheck;
final int oldHTMLBackColork = mHTMLBackColor;
final int oldServerPort = mSeverPort;
final boolean oldEnablePin = mEnablePin;
final String oldPin = mCurrentPin;
Expand All @@ -82,7 +85,7 @@ public void updatePreference() {
getMainActivityViewModel().setPinAutoHide(mHidePinOnStart);
getMainActivityViewModel().setStreamPin(mCurrentPin);

if (oldDisableMJPEGCheck != mDisableMJPEGCheck) {
if (oldDisableMJPEGCheck != mDisableMJPEGCheck || oldHTMLBackColork != mHTMLBackColor) {
getAppData().initIndexHtmlPage(mContext);
}

Expand Down Expand Up @@ -113,6 +116,10 @@ public boolean isDisableMJPEGCheck() {
return mDisableMJPEGCheck;
}

public int getHTMLBackColor() {
return mHTMLBackColor;
}

public int getResizeFactor() {
return mResizeFactor;
}
Expand Down
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/ic_pref_color_back_black_24dp.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24"
android:viewportWidth="24">
<path
android:fillColor="#000"
android:pathData="M19,11.5C19,11.5 17,13.67 17,15A2,2 0 0,0 19,17A2,2 0 0,0 21,15C21,13.67 19,11.5 19,11.5M5.21,10L10,5.21L14.79,10M16.56,8.94L7.62,0L6.21,1.41L8.59,3.79L3.44,8.94C2.85,9.5 2.85,10.47 3.44,11.06L8.94,16.56C9.23,16.85 9.62,17 10,17C10.38,17 10.77,16.85 11.06,16.56L16.56,11.06C17.15,10.47 17.15,9.5 16.56,8.94Z"/>
</vector>
13 changes: 8 additions & 5 deletions app/src/main/res/values-ru/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,16 @@
<string name="service_exit">Выход</string>
<string name="service_go_to">\u0020</string>
<string name="pref_settings_advanced">Дополнительно</string>
<string name="pref_server_port_summary">Установите порт для входяших подключений\nПо умолчанию: 8080</string>
<string name="pref_server_port_summary">Установить порт для входяших подключений\nПо умолчанию: 8080</string>
<string name="pref_jpeg_quality">Качество JPEG</string>
<string name="pref_jpeg_quality_summary">Установите качество JPEG</string>
<string name="pref_jpeg_quality_summary">Установить качество JPEG</string>
<string name="pref_stop_on_sleep">Останавливать при выключении</string>
<string name="pref_stop_on_sleep_summary">Останавливать поток если выключется экран</string>
<string name="main_activity_toast_cast_permission_deny">Отказано в доступе к изображению экрана</string>
<string name="pref_client_timeout">Время ответа клиента</string>
<string name="settings_activity_port_range">Порт должен быть между %1$d и %2$d</string>
<string name="main_activity_connected_clients">Подключено клиентов: %1$d</string>
<string name="pref_client_timeout_summary">Установите время ответа от клиента в секундах</string>
<string name="pref_client_timeout_summary">Установить время ответа от клиента в секундах</string>
<string name="pref_minimize_on_stream">Сворачивать при трансляции</string>
<string name="pref_minimise_on_stream_summary">Сворачивать приложение при начале трансляции</string>
<string name="service_press_start">Нажмите начать для старта трансляции</string>
Expand Down Expand Up @@ -54,13 +54,16 @@
<string name="pref_hide_pin">Прятать PIN-код</string>
<string name="pref_hide_pin_summary">При трансляции скрывать PIN-код</string>
<string name="main_activity_error_title">Ошибка.</string>
<string name="main_activity_error_msg_unknown_format">Система отдает изображение в неизвестном формате. На данный момент исправления нет.</string>
<string name="main_activity_error_msg_unknown_format">Система отдает изображение в неверном формате. На данный момент исправления нет.</string>
<string name="html_no_mjpeg_support">Ой :(&lt;br&gt;Кажется этот браузер не поддерживает MJPEG&lt;br&gt;&lt;br&gt;Эта проверка не очень точна&lt;br&gt;Вы можете отключить ее в настройках приложения</string>
<string name="pref_resize">Размер изображения</string>
<string name="pref_resize_summary">Изменять размер изображения перед отправкой</string>
<string name="pref_settings_image">Изображение</string>
<string name="pref_mjpeg_check">Отключить проверку MJPEG</string>
<string name="pref_mjpeg_check_summary">Отключить проверку поддержки браузером MJPEG</string>
<string name="pref_resize_dialog_text">Выберите коэффициент масштабирования изображения:</string>
<string name="pref_resize_dialog_text">Выберать коэффициент масштабирования изображения:</string>
<string name="main_activity_resize_factor">Масштабирование</string>
<string name="pref_html_back_color">Цвет фона HTML-страницы</string>
<string name="pref_html_back_color_summary">Выбрать цвет фона HTML-странцы</string>
<string name="pref_html_back_color_title">Выберете цвет фона</string>
</resources>
2 changes: 2 additions & 0 deletions app/src/main/res/values/colors.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@
<color name="colorPrimaryDark">#455a64</color>
<color name="colorAccent">#993200</color>
<color name="textColorSecondary">#455a64</color>

<color name="htmlBackground">#000000</color>
</resources>
4 changes: 4 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@
<string name="pref_stop_on_sleep_summary">Stop stream if screen turns off</string>
<string name="pref_mjpeg_check">Disable MJPEG check</string>
<string name="pref_mjpeg_check_summary">Disable check for browser MJPEG support</string>
<string name="pref_html_back_color">Page background color</string>
<string name="pref_html_back_color_summary">Set HTML page background color</string>
<string name="pref_html_back_color_title">Select background color</string>
<string name="pref_settings_image">Image</string>
<string name="pref_resize">Resize image</string>
<string name="pref_resize_summary">Resize image before sending to client</string>
Expand Down Expand Up @@ -74,6 +77,7 @@
<string name="pref_key_minimize_on_stream" translatable="false">PREF_KEY_MINIMIZE_ON_STREAM</string>
<string name="pref_key_stop_on_sleep" translatable="false">PREF_KEY_STOP_ON_SLEEP</string>
<string name="pref_key_mjpeg_check" translatable="false">PREF_KEY_MJPEG_CHECK</string>
<string name="pref_key_html_back_color" translatable="false">PREF_KEY_HTML_BACK_COLOR</string>
<string name="pref_key_resize_factor" translatable="false">PREF_KEY_RESIZE_FACTOR</string>
<string name="pref_key_enable_pin" translatable="false">PREF_KEY_ENABLE_PIN</string>
<string name="pref_key_hide_pin_on_start" translatable="false">PREF_KEY_HIDE_PIN_ON_START</string>
Expand Down
12 changes: 11 additions & 1 deletion app/src/main/res/xml/preferences.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<PreferenceCategory android:title="@string/pref_settings_interface">
<CheckBoxPreference
android:defaultValue="true"
Expand All @@ -21,6 +22,15 @@
android:key="@string/pref_key_mjpeg_check"
android:summary="@string/pref_mjpeg_check_summary"
android:title="@string/pref_mjpeg_check"/>

<com.jrummyapps.android.colorpicker.ColorPreference
android:defaultValue="@color/htmlBackground"
android:icon="@drawable/ic_pref_color_back_black_24dp"
android:key="@string/pref_key_html_back_color"
android:summary="@string/pref_html_back_color_summary"
android:title="@string/pref_html_back_color"
app:cpv_dialogTitle="@string/pref_html_back_color_title"
app:cpv_showAlphaSlider="false"/>
</PreferenceCategory>

<PreferenceCategory android:title="@string/pref_settings_image">
Expand Down

0 comments on commit 23ee051

Please sign in to comment.