From d754c85cbc149d708d67d53e4f3dbae93bdeab81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20St=C3=B6=C3=9Fer?= Date: Fri, 7 Aug 2015 11:41:06 +0200 Subject: [PATCH] #53 1.8.1 App service starts, but server does not Make a fix for Issue #53. The http-service will now start after Device boot. AndroidManifest.xml change version src\org\opendroidphp\app\services\OnBootReceiver.java modify onReceive(): execute the createForConnect CommandTask without opening a dialog src\org\opendroidphp\app\tasks\CommandTask.java modify Constructor and static method createForConnect: add an flag for creating a dialog src\org\opendroidphp\app\tasks\ProgressDialogTask.java modify Constructor: add an flag for creating a dialog, modify setters: add null-check src\org\opendroidphp\app\ui\HomeFragment.java modify onStart(): execute the createForConnect CommandTask --- AndroidManifest.xml | 4 +- .../app/services/OnBootReceiver.java | 18 ++++++++- .../opendroidphp/app/tasks/CommandTask.java | 13 +++++- .../app/tasks/ProgressDialogTask.java | 40 ++++++++++++++----- src/org/opendroidphp/app/ui/HomeFragment.java | 33 +++++++++------ 5 files changed, 80 insertions(+), 28 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 98199fb..eb560b6 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -2,8 +2,8 @@ + android:versionCode="19001" + android:versionName="1.9.1"> command = Collections.unmodifiableList(new ArrayList() { { add(CHANGE_PERMISSION.concat(Constants.INTERNAL_LOCATION + "/scripts/server-sh.sh")); add(String.format("%s/scripts/server-sh.sh %s %s", Constants.INTERNAL_LOCATION, execName, bindPort)); } }); - CommandTask task = new CommandTask(c, R.string.server_loading, R.string.turning_on_server); + CommandTask task = new CommandTask(c, R.string.server_loading, R.string.turning_on_server, createDialog); task.addCommand(command); task.setNotification(R.string.web_server_is_running); return task; diff --git a/src/org/opendroidphp/app/tasks/ProgressDialogTask.java b/src/org/opendroidphp/app/tasks/ProgressDialogTask.java index de4f62e..4d4fc87 100644 --- a/src/org/opendroidphp/app/tasks/ProgressDialogTask.java +++ b/src/org/opendroidphp/app/tasks/ProgressDialogTask.java @@ -30,17 +30,27 @@ public ProgressDialogTask() { } public ProgressDialogTask(Context context) { - this.context = context; - handler.post(new Runnable() { - @Override - public void run() { - createDialog().show(); - } - }); + this(context, true); } - + + public ProgressDialogTask(Context context, final boolean createDialog) { + this.context = context; + if(createDialog) { + handler.post(new Runnable() { + @Override + public void run() { + createDialog().show(); + } + }); + } + } + public ProgressDialogTask(Context context, String title, String message) { - this(context); + this(context, title, message, true); + } + + public ProgressDialogTask(Context context, String title, String message, boolean createDialog) { + this(context, createDialog); this.title = title; this.message = message; } @@ -48,6 +58,10 @@ public ProgressDialogTask(Context context, String title, String message) { public ProgressDialogTask(Context context, int titleResId, int messageResId) { this(context, context.getString(titleResId), context.getString(messageResId)); } + + public ProgressDialogTask(Context context, int titleResId, int messageResId, boolean createDialog) { + this(context, context.getString(titleResId), context.getString(messageResId), createDialog); + } protected Dialog createDialog() { @@ -73,13 +87,17 @@ protected Dialog createDialog() { public ProgressDialogTask setTitle(String title) { this.title = title; - tv_title.setText(title); + if(tv_title != null) { + tv_title.setText(title); + } return this; } public ProgressDialogTask setMessage(String message) { this.message = message; - tv_message.setText(message); + if (tv_message != null) { + tv_message.setText(message); + } return this; } diff --git a/src/org/opendroidphp/app/ui/HomeFragment.java b/src/org/opendroidphp/app/ui/HomeFragment.java index 3a23608..5e143a2 100644 --- a/src/org/opendroidphp/app/ui/HomeFragment.java +++ b/src/org/opendroidphp/app/ui/HomeFragment.java @@ -1,5 +1,15 @@ package org.opendroidphp.app.ui; +import java.util.List; + +import org.opendroidphp.R; +import org.opendroidphp.app.Constants; +import org.opendroidphp.app.common.utils.FileUtils; +import org.opendroidphp.app.fragments.dialogs.DialogHelpers; +import org.opendroidphp.app.listeners.OnInflationListener; +import org.opendroidphp.app.services.ServerService; +import org.opendroidphp.app.tasks.CommandTask; + import android.app.Activity; import android.app.NotificationManager; import android.content.Context; @@ -17,16 +27,6 @@ import com.actionbarsherlock.app.SherlockFragment; -import org.opendroidphp.R; -import org.opendroidphp.app.Constants; -import org.opendroidphp.app.common.utils.FileUtils; -import org.opendroidphp.app.fragments.dialogs.DialogHelpers; -import org.opendroidphp.app.listeners.OnInflationListener; -import org.opendroidphp.app.services.ServerService; -import org.opendroidphp.app.tasks.CommandTask; - -import java.util.List; - import de.ankri.views.Switch; import eu.chainfire.libsuperuser.Shell; @@ -75,8 +75,17 @@ public void onSaveInstanceState(Bundle outState) { public void onStart() { super.onStart(); if (preferences.getBoolean("enable_server_on_app_startup", false)) { - getSherlockActivity(). - startService(new Intent(getSherlockActivity(), ServerService.class)); + + Context context = getSherlockActivity(); + context.startService(new Intent(context, ServerService.class)); + + final boolean enableSU = preferences.getBoolean("run_as_root", false); + final String execName = preferences.getString("use_server_httpd", "lighttpd"); + final String bindPort = preferences.getString("server_port", "8080"); + + CommandTask task = CommandTask.createForConnect(context, execName, bindPort); + task.enableSU(enableSU); + task.execute(); } new ConnectionListenerTask().execute(); }