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