mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-23 12:42:56 -04:00
Add WebServerHelper class
Shift server related methods from MainActivity to here. Call methods of this class from HotspotService dealing with server.
This commit is contained in:
parent
ee7f5c1ff4
commit
45d876b656
@ -60,6 +60,9 @@
|
|||||||
<meta-data
|
<meta-data
|
||||||
android:name="android.app.shortcuts"
|
android:name="android.app.shortcuts"
|
||||||
android:resource="@xml/shortcuts"/>
|
android:resource="@xml/shortcuts"/>
|
||||||
|
</activity>
|
||||||
|
<activity android:name=".webserver.WebServerHelper"
|
||||||
|
android:label="Kiwix">
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name=".main.MainActivity"
|
android:name=".main.MainActivity"
|
||||||
|
@ -44,8 +44,6 @@ import android.os.Bundle;
|
|||||||
import android.os.CountDownTimer;
|
import android.os.CountDownTimer;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.text.InputFilter;
|
|
||||||
import android.text.InputType;
|
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
import android.text.style.ForegroundColorSpan;
|
import android.text.style.ForegroundColorSpan;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
@ -61,11 +59,9 @@ import android.view.WindowManager;
|
|||||||
import android.webkit.WebSettings;
|
import android.webkit.WebSettings;
|
||||||
import android.webkit.WebView;
|
import android.webkit.WebView;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.EditText;
|
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
import android.widget.ImageButton;
|
import android.widget.ImageButton;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
@ -77,7 +73,6 @@ import androidx.appcompat.widget.Toolbar;
|
|||||||
import androidx.cardview.widget.CardView;
|
import androidx.cardview.widget.CardView;
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||||
import androidx.constraintlayout.widget.Group;
|
import androidx.constraintlayout.widget.Group;
|
||||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
|
||||||
import androidx.core.app.ActivityCompat;
|
import androidx.core.app.ActivityCompat;
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.core.view.GravityCompat;
|
import androidx.core.view.GravityCompat;
|
||||||
@ -104,16 +99,12 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
|||||||
import com.google.android.material.navigation.NavigationView;
|
import com.google.android.material.navigation.NavigationView;
|
||||||
import com.google.android.material.snackbar.Snackbar;
|
import com.google.android.material.snackbar.Snackbar;
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
import java.io.File;
|
|
||||||
|
|
||||||
import java.net.InetAddress;
|
import java.io.File;
|
||||||
import java.net.NetworkInterface;
|
|
||||||
import java.net.SocketException;
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Enumeration;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
@ -135,7 +126,7 @@ import org.kiwix.kiwixmobile.utils.LanguageUtils;
|
|||||||
import org.kiwix.kiwixmobile.utils.NetworkUtils;
|
import org.kiwix.kiwixmobile.utils.NetworkUtils;
|
||||||
import org.kiwix.kiwixmobile.utils.StyleUtils;
|
import org.kiwix.kiwixmobile.utils.StyleUtils;
|
||||||
import org.kiwix.kiwixmobile.utils.files.FileUtils;
|
import org.kiwix.kiwixmobile.utils.files.FileUtils;
|
||||||
import org.kiwix.kiwixmobile.webserver.WebServer;
|
import org.kiwix.kiwixmobile.webserver.WebServerHelper;
|
||||||
import org.kiwix.kiwixmobile.wifi_hotspot.HotspotService;
|
import org.kiwix.kiwixmobile.wifi_hotspot.HotspotService;
|
||||||
import org.kiwix.kiwixmobile.wifi_hotspot.WifiHotspotManager;
|
import org.kiwix.kiwixmobile.wifi_hotspot.WifiHotspotManager;
|
||||||
import org.kiwix.kiwixmobile.zim_manager.ZimManageActivity;
|
import org.kiwix.kiwixmobile.zim_manager.ZimManageActivity;
|
||||||
@ -181,6 +172,7 @@ import static org.kiwix.kiwixmobile.utils.Constants.TAG_KIWIX;
|
|||||||
import static org.kiwix.kiwixmobile.utils.LanguageUtils.getResourceString;
|
import static org.kiwix.kiwixmobile.utils.LanguageUtils.getResourceString;
|
||||||
import static org.kiwix.kiwixmobile.utils.StyleUtils.dialogStyle;
|
import static org.kiwix.kiwixmobile.utils.StyleUtils.dialogStyle;
|
||||||
import static org.kiwix.kiwixmobile.utils.UpdateUtils.reformatProviderUrl;
|
import static org.kiwix.kiwixmobile.utils.UpdateUtils.reformatProviderUrl;
|
||||||
|
import static org.kiwix.kiwixmobile.webserver.WebServerHelper.isStarted;
|
||||||
import static org.kiwix.kiwixmobile.wifi_hotspot.HotspotService.checkHotspotState;
|
import static org.kiwix.kiwixmobile.wifi_hotspot.HotspotService.checkHotspotState;
|
||||||
|
|
||||||
public class MainActivity extends BaseActivity implements WebViewCallback,
|
public class MainActivity extends BaseActivity implements WebViewCallback,
|
||||||
@ -202,14 +194,8 @@ public class MainActivity extends BaseActivity implements WebViewCallback,
|
|||||||
private final ArrayList<String> bookmarks = new ArrayList<>();
|
private final ArrayList<String> bookmarks = new ArrayList<>();
|
||||||
private final List<KiwixWebView> webViewList = new ArrayList<>();
|
private final List<KiwixWebView> webViewList = new ArrayList<>();
|
||||||
private Intent serviceIntent;
|
private Intent serviceIntent;
|
||||||
private WebServer webServer;
|
|
||||||
private static final int DEFAULT_PORT = 8080;
|
|
||||||
private BroadcastReceiver broadcastReceiverNetworkState;
|
private BroadcastReceiver broadcastReceiverNetworkState;
|
||||||
private static boolean isStarted = false;
|
public static WebServerHelper webServerHelper;
|
||||||
private CoordinatorLayout coordinatorLayout;
|
|
||||||
private EditText editTextPort;
|
|
||||||
private TextView textViewIpAccess;
|
|
||||||
private int port;
|
|
||||||
@BindView(R.id.activity_main_root)
|
@BindView(R.id.activity_main_root)
|
||||||
ConstraintLayout root;
|
ConstraintLayout root;
|
||||||
@BindView(R.id.activity_main_toolbar)
|
@BindView(R.id.activity_main_toolbar)
|
||||||
@ -789,12 +775,11 @@ public class MainActivity extends BaseActivity implements WebViewCallback,
|
|||||||
// TODO create a base Activity class that class this.
|
// TODO create a base Activity class that class this.
|
||||||
FileUtils.deleteCachedFiles(this);
|
FileUtils.deleteCachedFiles(this);
|
||||||
tts.shutdown();
|
tts.shutdown();
|
||||||
|
webServerHelper.stopAndroidWebServer();
|
||||||
stopAndroidWebServer();
|
|
||||||
isStarted = false;
|
isStarted = false;
|
||||||
if (broadcastReceiverNetworkState != null) {
|
//if (broadcastReceiverNetworkState != null) {
|
||||||
unregisterReceiver(broadcastReceiverNetworkState);
|
// unregisterReceiver(broadcastReceiverNetworkState);
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateTableOfContents() {
|
private void updateTableOfContents() {
|
||||||
@ -976,14 +961,13 @@ public class MainActivity extends BaseActivity implements WebViewCallback,
|
|||||||
openExternalUrl(intentSupportKiwix);
|
openExternalUrl(intentSupportKiwix);
|
||||||
|
|
||||||
case R.id.menu_wifi_hotspot:
|
case R.id.menu_wifi_hotspot:
|
||||||
startServerDialog();
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
//if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
toggleHotspot();
|
||||||
// toggleHotspot();
|
} else {
|
||||||
//} else {
|
if (showWritePermissionSettings()) { //request permission and if already granted switch hotspot.
|
||||||
// if (showWritePermissionSettings()) { //request permission and if already granted switch hotspot.
|
switchHotspot();
|
||||||
// switchHotspot();
|
}
|
||||||
// }
|
}
|
||||||
//}
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -992,65 +976,6 @@ public class MainActivity extends BaseActivity implements WebViewCallback,
|
|||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean startAndroidWebServer() {
|
|
||||||
if (!isStarted) {
|
|
||||||
port = getPortFromEditText();
|
|
||||||
try {
|
|
||||||
if (port == 0) {
|
|
||||||
throw new Exception();
|
|
||||||
}
|
|
||||||
|
|
||||||
webServer = new WebServer(port);
|
|
||||||
webServer.start();
|
|
||||||
//dialog.dismiss();
|
|
||||||
return true;
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
Snackbar.make(coordinatorLayout,
|
|
||||||
"The PORT " + port + " doesn't work, please change it between 1000 and 9999.",
|
|
||||||
Snackbar.LENGTH_LONG).show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private int getPortFromEditText() {
|
|
||||||
String valueEditText = editTextPort.getText().toString();
|
|
||||||
return (valueEditText.length() > 0) ? Integer.parseInt(valueEditText) : DEFAULT_PORT;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setIpAccess() {
|
|
||||||
textViewIpAccess.setText(getIpAddress());
|
|
||||||
}
|
|
||||||
|
|
||||||
// get Ip address of the device's wireless access point i.e. wifi hotspot OR wifi network
|
|
||||||
private String getIpAddress() {
|
|
||||||
Log.v("DANG", "Inside getIpAdress()");
|
|
||||||
String ip = "";
|
|
||||||
try {
|
|
||||||
Enumeration<NetworkInterface> enumNetworkInterfaces = NetworkInterface
|
|
||||||
.getNetworkInterfaces();
|
|
||||||
while (enumNetworkInterfaces.hasMoreElements()) {
|
|
||||||
NetworkInterface networkInterface = enumNetworkInterfaces
|
|
||||||
.nextElement();
|
|
||||||
Enumeration<InetAddress> enumInetAddress = networkInterface
|
|
||||||
.getInetAddresses();
|
|
||||||
while (enumInetAddress.hasMoreElements()) {
|
|
||||||
InetAddress inetAddress = enumInetAddress.nextElement();
|
|
||||||
|
|
||||||
if (inetAddress.isSiteLocalAddress()) {
|
|
||||||
ip += inetAddress.getHostAddress() + "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (SocketException e) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
ip += "Something Wrong! " + e.toString() + "\n";
|
|
||||||
}
|
|
||||||
Log.v("DANG", "Returning : " + "http://" + ip);
|
|
||||||
return "http://" + ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initBroadcastReceiverNetworkStateChanged() {
|
private void initBroadcastReceiverNetworkStateChanged() {
|
||||||
final IntentFilter filters = new IntentFilter();
|
final IntentFilter filters = new IntentFilter();
|
||||||
@ -1059,69 +984,12 @@ public class MainActivity extends BaseActivity implements WebViewCallback,
|
|||||||
broadcastReceiverNetworkState = new BroadcastReceiver() {
|
broadcastReceiverNetworkState = new BroadcastReceiver() {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
setIpAccess();
|
//setIpAccess();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
super.registerReceiver(broadcastReceiverNetworkState, filters);
|
super.registerReceiver(broadcastReceiverNetworkState, filters);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean stopAndroidWebServer() {
|
|
||||||
if (isStarted && webServer != null) {
|
|
||||||
webServer.stop();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void startServerDialog() {
|
|
||||||
AlertDialog.Builder alert = new AlertDialog.Builder(this);
|
|
||||||
alert.setTitle("Start the server");
|
|
||||||
alert.setMessage("Happy sharing");
|
|
||||||
|
|
||||||
LinearLayout layout = new LinearLayout(this);
|
|
||||||
layout.setOrientation(LinearLayout.HORIZONTAL);
|
|
||||||
|
|
||||||
textViewIpAccess = new TextView(this);
|
|
||||||
textViewIpAccess.setText("http://000.000.000.000");
|
|
||||||
textViewIpAccess.setTextSize(20);
|
|
||||||
layout.addView(textViewIpAccess);
|
|
||||||
|
|
||||||
TextView colonTextView = new TextView(this);
|
|
||||||
colonTextView.setTextSize(20);
|
|
||||||
colonTextView.setText(":");
|
|
||||||
layout.addView(colonTextView);
|
|
||||||
|
|
||||||
editTextPort = new EditText(this);
|
|
||||||
editTextPort.setInputType(InputType.TYPE_CLASS_NUMBER);
|
|
||||||
editTextPort.setHint(R.string.port_hint);
|
|
||||||
editTextPort.setText(R.string.port_hint);
|
|
||||||
editTextPort.setFilters(new InputFilter[] { new InputFilter.LengthFilter(4) });
|
|
||||||
editTextPort.setTextSize(20);
|
|
||||||
layout.addView(editTextPort);
|
|
||||||
|
|
||||||
alert.setView(layout);
|
|
||||||
|
|
||||||
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
|
|
||||||
public void onClick(DialogInterface dialog, int whichButton) {
|
|
||||||
if (!isStarted && startAndroidWebServer()) {
|
|
||||||
isStarted = true;
|
|
||||||
editTextPort.setEnabled(false);
|
|
||||||
} else if (stopAndroidWebServer()) {
|
|
||||||
isStarted = false;
|
|
||||||
editTextPort.setEnabled(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
|
|
||||||
public void onClick(DialogInterface dialog, int whichButton) {
|
|
||||||
// Canceled.
|
|
||||||
}
|
|
||||||
});
|
|
||||||
alert.show();
|
|
||||||
|
|
||||||
setIpAccess();
|
|
||||||
}
|
|
||||||
/** Dialog to take user confirmation before deleting all notes */
|
/** Dialog to take user confirmation before deleting all notes */
|
||||||
private void showClearAllNotesDialog() {
|
private void showClearAllNotesDialog() {
|
||||||
|
|
||||||
@ -1243,9 +1111,9 @@ public class MainActivity extends BaseActivity implements WebViewCallback,
|
|||||||
startService(ACTION_TURN_OFF_BEFORE_O);
|
startService(ACTION_TURN_OFF_BEFORE_O);
|
||||||
} else {
|
} else {
|
||||||
if (isMobileDataEnabled(this)) {
|
if (isMobileDataEnabled(this)) {
|
||||||
|
|
||||||
mobileDataDialog();
|
mobileDataDialog();
|
||||||
} else {
|
} else {
|
||||||
|
webServerHelper = new WebServerHelper(this);
|
||||||
startService(ACTION_TURN_ON_BEFORE_O);
|
startService(ACTION_TURN_ON_BEFORE_O);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2497,7 +2365,9 @@ public class MainActivity extends BaseActivity implements WebViewCallback,
|
|||||||
// requests here.
|
// requests here.
|
||||||
|
|
||||||
//if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
//if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
|
//webServerHelper = new WebServerHelper(this);
|
||||||
startService(ACTION_TURN_ON_AFTER_O);
|
startService(ACTION_TURN_ON_AFTER_O);
|
||||||
|
|
||||||
//}
|
//}
|
||||||
} catch (ApiException exception) {
|
} catch (ApiException exception) {
|
||||||
switch (exception.getStatusCode()) {
|
switch (exception.getStatusCode()) {
|
||||||
|
@ -0,0 +1,155 @@
|
|||||||
|
package org.kiwix.kiwixmobile.webserver;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.DialogInterface;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.text.InputFilter;
|
||||||
|
import android.text.InputType;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.widget.EditText;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
|
import android.widget.TextView;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||||
|
import com.google.android.material.snackbar.Snackbar;
|
||||||
|
import java.net.InetAddress;
|
||||||
|
import java.net.NetworkInterface;
|
||||||
|
import java.net.SocketException;
|
||||||
|
import java.util.Enumeration;
|
||||||
|
import org.kiwix.kiwixmobile.R;
|
||||||
|
|
||||||
|
public class WebServerHelper extends Activity {
|
||||||
|
private static Context context;
|
||||||
|
private static TextView textViewIpAccess;
|
||||||
|
private static EditText editTextPort;
|
||||||
|
public static boolean isStarted;
|
||||||
|
private static int port;
|
||||||
|
private static WebServer webServer;
|
||||||
|
private static final int DEFAULT_PORT = 8080;
|
||||||
|
private static CoordinatorLayout coordinatorLayout;
|
||||||
|
|
||||||
|
public WebServerHelper(Context context)
|
||||||
|
{
|
||||||
|
this.context = context;
|
||||||
|
}
|
||||||
|
public static void startServerDialog() {
|
||||||
|
AlertDialog.Builder alert = new AlertDialog.Builder(context);
|
||||||
|
alert.setTitle("Start the server");
|
||||||
|
alert.setMessage("Happy sharing");
|
||||||
|
|
||||||
|
LinearLayout layout = new LinearLayout(context);
|
||||||
|
layout.setOrientation(LinearLayout.HORIZONTAL);
|
||||||
|
|
||||||
|
textViewIpAccess = new TextView(context);
|
||||||
|
textViewIpAccess.setText("http://000.000.000.000");
|
||||||
|
textViewIpAccess.setTextSize(20);
|
||||||
|
layout.addView(textViewIpAccess);
|
||||||
|
|
||||||
|
TextView colonTextView = new TextView(context);
|
||||||
|
colonTextView.setTextSize(20);
|
||||||
|
colonTextView.setText(":");
|
||||||
|
layout.addView(colonTextView);
|
||||||
|
|
||||||
|
editTextPort = new EditText(context);
|
||||||
|
editTextPort.setInputType(InputType.TYPE_CLASS_NUMBER);
|
||||||
|
editTextPort.setHint(R.string.port_hint);
|
||||||
|
editTextPort.setText(R.string.port_hint);
|
||||||
|
editTextPort.setFilters(new InputFilter[] { new InputFilter.LengthFilter(4) });
|
||||||
|
editTextPort.setTextSize(20);
|
||||||
|
layout.addView(editTextPort);
|
||||||
|
|
||||||
|
alert.setView(layout);
|
||||||
|
|
||||||
|
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
|
||||||
|
public void onClick(DialogInterface dialog, int whichButton) {
|
||||||
|
if (!isStarted && startAndroidWebServer()) {
|
||||||
|
isStarted = true;
|
||||||
|
editTextPort.setEnabled(false);
|
||||||
|
} else if (stopAndroidWebServer()) {
|
||||||
|
isStarted = false;
|
||||||
|
editTextPort.setEnabled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
|
||||||
|
public void onClick(DialogInterface dialog, int whichButton) {
|
||||||
|
// Canceled.
|
||||||
|
}
|
||||||
|
});
|
||||||
|
stopAndroidWebServer();
|
||||||
|
isStarted = false;
|
||||||
|
alert.show();
|
||||||
|
|
||||||
|
setIpAccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean stopAndroidWebServer() {
|
||||||
|
if (isStarted && webServer != null) {
|
||||||
|
webServer.stop();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean startAndroidWebServer() {
|
||||||
|
if (!isStarted) {
|
||||||
|
port = getPortFromEditText();
|
||||||
|
try {
|
||||||
|
if (port == 0) {
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
webServer = new WebServer(port);
|
||||||
|
webServer.start();
|
||||||
|
return true;
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
Snackbar.make(coordinatorLayout,
|
||||||
|
"The PORT " + port + " doesn't work, please change it between 1000 and 9999.",
|
||||||
|
Snackbar.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int getPortFromEditText() {
|
||||||
|
String valueEditText = editTextPort.getText().toString();
|
||||||
|
return (valueEditText.length() > 0) ? Integer.parseInt(valueEditText) : DEFAULT_PORT;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void setIpAccess() {
|
||||||
|
textViewIpAccess.setText(getIpAddress());
|
||||||
|
}
|
||||||
|
|
||||||
|
// get Ip address of the device's wireless access point i.e. wifi hotspot OR wifi network
|
||||||
|
private static String getIpAddress() {
|
||||||
|
Log.v("DANG", "Inside getIpAdress()");
|
||||||
|
String ip = "";
|
||||||
|
try {
|
||||||
|
Enumeration<NetworkInterface> enumNetworkInterfaces = NetworkInterface
|
||||||
|
.getNetworkInterfaces();
|
||||||
|
while (enumNetworkInterfaces.hasMoreElements()) {
|
||||||
|
NetworkInterface networkInterface = enumNetworkInterfaces
|
||||||
|
.nextElement();
|
||||||
|
Enumeration<InetAddress> enumInetAddress = networkInterface
|
||||||
|
.getInetAddresses();
|
||||||
|
while (enumInetAddress.hasMoreElements()) {
|
||||||
|
InetAddress inetAddress = enumInetAddress.nextElement();
|
||||||
|
|
||||||
|
if (inetAddress.isSiteLocalAddress()) {
|
||||||
|
ip += inetAddress.getHostAddress() + "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (SocketException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
ip += "Something Wrong! " + e.toString() + "\n";
|
||||||
|
}
|
||||||
|
Log.v("DANG", "Returning : " + "http://" + ip);
|
||||||
|
return "http://" + ip;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -10,6 +10,7 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
import android.os.Handler;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
@ -23,7 +24,7 @@ import static org.kiwix.kiwixmobile.main.MainActivity.ACTION_TURN_OFF_AFTER_O;
|
|||||||
import static org.kiwix.kiwixmobile.main.MainActivity.ACTION_TURN_OFF_BEFORE_O;
|
import static org.kiwix.kiwixmobile.main.MainActivity.ACTION_TURN_OFF_BEFORE_O;
|
||||||
import static org.kiwix.kiwixmobile.main.MainActivity.ACTION_TURN_ON_AFTER_O;
|
import static org.kiwix.kiwixmobile.main.MainActivity.ACTION_TURN_ON_AFTER_O;
|
||||||
import static org.kiwix.kiwixmobile.main.MainActivity.ACTION_TURN_ON_BEFORE_O;
|
import static org.kiwix.kiwixmobile.main.MainActivity.ACTION_TURN_ON_BEFORE_O;
|
||||||
import static org.kiwix.kiwixmobile.main.MainActivity.startHotspotDetails;
|
import static org.kiwix.kiwixmobile.webserver.WebServerHelper.startServerDialog;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HotspotService is used to add a foreground service for the wifi hotspot.
|
* HotspotService is used to add a foreground service for the wifi hotspot.
|
||||||
@ -61,7 +62,15 @@ public class HotspotService extends Service {
|
|||||||
switch (intent.getAction()) {
|
switch (intent.getAction()) {
|
||||||
case ACTION_TURN_ON_BEFORE_O:
|
case ACTION_TURN_ON_BEFORE_O:
|
||||||
if (hotspotManager.setWifiEnabled(null, true)) {
|
if (hotspotManager.setWifiEnabled(null, true)) {
|
||||||
startHotspotDetails();
|
final Handler handler = new Handler();
|
||||||
|
handler.postDelayed(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
startServerDialog();
|
||||||
|
}
|
||||||
|
}, 6000);
|
||||||
|
|
||||||
|
//startHotspotDetails();
|
||||||
updateNotification(getString(R.string.hotspot_running), true);
|
updateNotification(getString(R.string.hotspot_running), true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -65,7 +65,7 @@ public class WifiHotspotManager {
|
|||||||
+ " \n SSID is : "
|
+ " \n SSID is : "
|
||||||
+ currentConfig.SSID);
|
+ currentConfig.SSID);
|
||||||
|
|
||||||
hotspotDetailsDialog();
|
//hotspotDetailsDialog();
|
||||||
|
|
||||||
oreoenabled = true;
|
oreoenabled = true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user