diff --git a/app/build.gradle b/app/build.gradle
index 2901ebb43..791d750cc 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -69,6 +69,8 @@ dependencies {
implementation "androidx.collection:collection-ktx:1.1.0"
implementation "androidx.test.espresso:espresso-idling-resource:$espressoVersion"
+ implementation 'androidx.appcompat:appcompat:1.0.2'
+ implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
androidTestImplementation("androidx.test.espresso:espresso-core:$espressoVersion")
androidTestImplementation "androidx.test.espresso:espresso-web:$espressoVersion"
androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion"
@@ -126,7 +128,6 @@ dependencies {
// Leak canary
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.0-alpha-2'
-
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion"
implementation "android.arch.lifecycle:extensions:1.1.1"
implementation "io.objectbox:objectbox-kotlin:$objectboxVersion"
@@ -253,8 +254,8 @@ android {
'DuplicateStrings',
'LogConditional'
warning 'UnknownNullness',
- 'SelectableText',
- 'IconDensities'
+ 'SelectableText',
+ 'IconDensities'
baseline file("lint-baseline.xml")
}
@@ -470,7 +471,7 @@ play {
resolutionStrategy = "fail"
}
-ktlint{
+ktlint {
android = true
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1701de5d0..e86b6c786 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -10,7 +10,6 @@
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"/>
-
-
-
-
-
-
-
-
+
+
+
-
+
+
-
-
+
+
@@ -215,7 +211,6 @@
android:resource="@xml/provider_paths"/>
-
@@ -231,4 +226,5 @@
-
+
+
\ No newline at end of file
diff --git a/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java b/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java
index 73b129543..068e89972 100644
--- a/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java
+++ b/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java
@@ -124,6 +124,7 @@ import org.kiwix.kiwixmobile.utils.LanguageUtils;
import org.kiwix.kiwixmobile.utils.NetworkUtils;
import org.kiwix.kiwixmobile.utils.StyleUtils;
import org.kiwix.kiwixmobile.utils.files.FileUtils;
+import org.kiwix.kiwixmobile.webserver.StartServer;
import org.kiwix.kiwixmobile.webserver.WebServerHelper;
import org.kiwix.kiwixmobile.wifi_hotspot.HotspotService;
import org.kiwix.kiwixmobile.zim_manager.ZimManageActivity;
@@ -946,6 +947,12 @@ public class MainActivity extends BaseActivity implements WebViewCallback,
Intent intentSupportKiwix = new Intent(Intent.ACTION_VIEW, uriSupportKiwix);
intentSupportKiwix.putExtra(EXTRA_EXTERNAL_LINK, true);
openExternalUrl(intentSupportKiwix);
+ break;
+
+ case R.id.menu_host_books:
+ Intent intent = new Intent(MainActivity.this, StartServer.class);
+ startActivity(intent);
+ break;
case R.id.menu_wifi_hotspot:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
@@ -1911,6 +1918,7 @@ public class MainActivity extends BaseActivity implements WebViewCallback,
menu.findItem(R.id.menu_random_article).setVisible(false);
menu.findItem(R.id.menu_searchintext).setVisible(false);
menu.findItem(R.id.menu_wifi_hotspot).setVisible(false);
+ menu.findItem(R.id.menu_host_books).setVisible(true);
} else {
menu.findItem(R.id.menu_read_aloud).setVisible(true);
menu.findItem(R.id.menu_home).setVisible(true);
diff --git a/app/src/main/java/org/kiwix/kiwixmobile/webserver/StartServer.java b/app/src/main/java/org/kiwix/kiwixmobile/webserver/StartServer.java
new file mode 100644
index 000000000..5e2d35763
--- /dev/null
+++ b/app/src/main/java/org/kiwix/kiwixmobile/webserver/StartServer.java
@@ -0,0 +1,34 @@
+package org.kiwix.kiwixmobile.webserver;
+
+import androidx.appcompat.app.AppCompatActivity;
+import android.os.Bundle;
+import androidx.appcompat.widget.Toolbar;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+import org.kiwix.kiwixmobile.R;
+import org.kiwix.kiwixmobile.zim_manager.fileselect_view.ZimFileSelectFragment;
+
+public class StartServer extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_start_server);
+ FragmentManager fragmentManager = getSupportFragmentManager();
+ FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
+ ZimFileSelectFragment fragment = new ZimFileSelectFragment();
+ fragmentTransaction.add(R.id.frameLayoutServer, fragment);
+ fragmentTransaction.commit();
+ setUpToolbar();
+ }
+
+ private void setUpToolbar() {
+ Toolbar toolbar = findViewById(R.id.toolbar);
+ setSupportActionBar(toolbar);
+ getSupportActionBar().setTitle(getString(R.string.menu_host_books));
+ getSupportActionBar().setHomeButtonEnabled(true);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+
+ toolbar.setNavigationOnClickListener(v -> onBackPressed());
+ }
+}
diff --git a/app/src/main/res/layout/activity_start_server.xml b/app/src/main/res/layout/activity_start_server.xml
new file mode 100644
index 000000000..77ec7b0b1
--- /dev/null
+++ b/app/src/main/res/layout/activity_start_server.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml
index 0f7c5b1b4..794c46261 100644
--- a/app/src/main/res/menu/menu_main.xml
+++ b/app/src/main/res/menu/menu_main.xml
@@ -79,6 +79,11 @@
android:visible="false"
app:showAsAction="never"/>
+
+
- Stop reading aloud
Support Kiwix
Wifi Hotspot
+ Host Books
Save Media
An error occurred when trying to save the media!
Saved media as %s to Android/media/org.kiwix…/
@@ -31,6 +32,7 @@
SSID :
Pass :
8080
+ Select the files you wish to host on the server
Start server
You can now start the server using this ip address and port no.
Warning: Mobile data enabled