mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-17 03:16:27 -04:00
Merge remote-tracking branch 'origin/develop' into macgills/feature/2026-legacy-content-prefix
This commit is contained in:
commit
d43992d62f
@ -18,104 +18,70 @@
|
||||
|
||||
package org.kiwix.kiwixmobile.settings;
|
||||
|
||||
import android.preference.Preference;
|
||||
import android.view.View;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.test.rule.ActivityTestRule;
|
||||
import org.hamcrest.Matcher;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.kiwix.kiwixmobile.core.R;
|
||||
import org.kiwix.kiwixmobile.main.KiwixMainActivity;
|
||||
|
||||
import static androidx.test.espresso.Espresso.onData;
|
||||
import static androidx.test.espresso.Espresso.onView;
|
||||
import static androidx.test.espresso.action.ViewActions.click;
|
||||
import static androidx.test.espresso.matcher.PreferenceMatchers.withKey;
|
||||
import static androidx.test.espresso.contrib.RecyclerViewActions.actionOnItem;
|
||||
import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant;
|
||||
import static androidx.test.espresso.matcher.ViewMatchers.withClassName;
|
||||
import static androidx.test.espresso.matcher.ViewMatchers.withText;
|
||||
import static com.schibsted.spain.barista.assertion.BaristaVisibilityAssertions.assertDisplayed;
|
||||
import static org.hamcrest.Matchers.allOf;
|
||||
import static org.hamcrest.Matchers.instanceOf;
|
||||
import static org.hamcrest.Matchers.anyOf;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import static org.kiwix.kiwixmobile.utils.StandardActions.enterSettings;
|
||||
|
||||
public class KiwixSettingsActivityTest {
|
||||
@Rule
|
||||
public ActivityTestRule<KiwixMainActivity> activityTestRule =
|
||||
new ActivityTestRule<>(KiwixMainActivity.class);
|
||||
public ActivityTestRule<KiwixSettingsActivity> activityTestRule =
|
||||
new ActivityTestRule<>(KiwixSettingsActivity.class);
|
||||
|
||||
@Test
|
||||
public void testToggle() {
|
||||
enterSettings();
|
||||
clickOn(R.string.pref_back_to_top);
|
||||
clickOn(R.string.pref_hide_toolbar);
|
||||
clickOn(R.string.pref_newtab_background_title);
|
||||
clickOn(R.string.pref_external_link_popup_title);
|
||||
clickOn(R.string.pref_wifi_only);
|
||||
}
|
||||
|
||||
onData(allOf(
|
||||
is(instanceOf(Preference.class)),
|
||||
withKey("pref_backtotop")))
|
||||
.perform(click());
|
||||
|
||||
onData(allOf(
|
||||
is(instanceOf(Preference.class)),
|
||||
withKey("pref_hidetoolbar")))
|
||||
.perform(click());
|
||||
|
||||
onData(allOf(
|
||||
is(instanceOf(Preference.class)),
|
||||
withKey("pref_newtab_background")))
|
||||
.perform(click());
|
||||
|
||||
onData(allOf(
|
||||
is(instanceOf(Preference.class)),
|
||||
withKey("pref_external_link_popup")))
|
||||
.perform(click());
|
||||
|
||||
/*onData(allOf(
|
||||
is(instanceOf(Preference.class)),
|
||||
withKey("pref_full_text_search")))
|
||||
.perform(click());*/
|
||||
|
||||
onData(allOf(
|
||||
is(instanceOf(Preference.class)),
|
||||
withKey("pref_wifi_only")))
|
||||
.perform(click());
|
||||
private void clickOn(@StringRes int... stringIds) {
|
||||
Matcher<View>[] matchers= new Matcher[stringIds.length];
|
||||
for (int i = 0; i < stringIds.length; i++) {
|
||||
matchers[i]= withText(stringIds[i]);
|
||||
}
|
||||
onView(withClassName(is(RecyclerView.class.getName())))
|
||||
.perform(actionOnItem(hasDescendant(anyOf(matchers)), click()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLanguageDialog() {
|
||||
enterSettings();
|
||||
onData(allOf(
|
||||
is(instanceOf(Preference.class)),
|
||||
withKey("pref_language_chooser")))
|
||||
.perform(click());
|
||||
|
||||
clickOn(R.string.device_default);
|
||||
assertDisplayed(R.string.pref_language_title);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStorageDialog() {
|
||||
enterSettings();
|
||||
onData(allOf(
|
||||
is(instanceOf(Preference.class)),
|
||||
withKey("pref_select_folder")))
|
||||
.perform(click());
|
||||
|
||||
clickOn(R.string.internal_storage, R.string.external_storage);
|
||||
assertDisplayed(R.string.pref_storage);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHistoryDialog() {
|
||||
enterSettings();
|
||||
onData(allOf(
|
||||
is(instanceOf(Preference.class)),
|
||||
withKey("pref_clear_all_history")))
|
||||
.perform(click());
|
||||
|
||||
clickOn(R.string.pref_clear_all_history_title);
|
||||
assertDisplayed(R.string.clear_all_history_dialog_title);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNightModeDialog() {
|
||||
enterSettings();
|
||||
onData(allOf(
|
||||
is(instanceOf(Preference.class)),
|
||||
withKey("pref_night_mode")))
|
||||
.perform(click());
|
||||
|
||||
clickOn(R.string.pref_night_mode);
|
||||
for (String nightModeString : nightModeStrings()) {
|
||||
assertDisplayed(nightModeString);
|
||||
}
|
||||
|
@ -20,22 +20,26 @@ package org.kiwix.kiwixmobile.settings
|
||||
|
||||
import android.os.Bundle
|
||||
import android.os.Environment
|
||||
import androidx.preference.Preference
|
||||
import org.kiwix.kiwixmobile.core.settings.CorePrefsFragment
|
||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil.PREF_LANG
|
||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
|
||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil.PREF_STORAGE
|
||||
|
||||
class KiwixPrefsFragment : CorePrefsFragment() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setUpLanguageChooser(PREF_LANG)
|
||||
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
super.onCreatePreferences(savedInstanceState, rootKey)
|
||||
setUpLanguageChooser(SharedPreferenceUtil.PREF_LANG)
|
||||
}
|
||||
|
||||
override fun setStorage() {
|
||||
if (Environment.isExternalStorageEmulated()) {
|
||||
findPreference(PREF_STORAGE).title = sharedPreferenceUtil.getPrefStorageTitle("Internal")
|
||||
findPreference<Preference>(PREF_STORAGE)?.title =
|
||||
sharedPreferenceUtil.getPrefStorageTitle("Internal")
|
||||
} else {
|
||||
findPreference(PREF_STORAGE).title = sharedPreferenceUtil.getPrefStorageTitle("External")
|
||||
findPreference<Preference>(PREF_STORAGE)?.title =
|
||||
sharedPreferenceUtil.getPrefStorageTitle("External")
|
||||
}
|
||||
findPreference(PREF_STORAGE).summary = storageCalculator.calculateAvailableSpace()
|
||||
findPreference<Preference>(PREF_STORAGE)?.summary = storageCalculator.calculateAvailableSpace()
|
||||
}
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ class ZimFileSelectFragment : BaseFragment() {
|
||||
private val disposable = CompositeDisposable()
|
||||
|
||||
private val zimManageViewModel by lazy {
|
||||
activity!!.viewModel<ZimManageViewModel>(viewModelFactory)
|
||||
requireActivity().viewModel<ZimManageViewModel>(viewModelFactory)
|
||||
}
|
||||
private val bookDelegate: BookDelegate by lazy {
|
||||
BookDelegate(sharedPreferenceUtil,
|
||||
@ -87,8 +87,8 @@ class ZimFileSelectFragment : BaseFragment() {
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
LanguageUtils(activity!!)
|
||||
.changeFont(activity!!.layoutInflater, sharedPreferenceUtil)
|
||||
LanguageUtils(requireActivity())
|
||||
.changeFont(requireActivity().layoutInflater, sharedPreferenceUtil)
|
||||
return inflater.inflate(R.layout.zim_list, container, false)
|
||||
}
|
||||
|
||||
@ -121,7 +121,7 @@ class ZimFileSelectFragment : BaseFragment() {
|
||||
|
||||
private fun sideEffects() = zimManageViewModel.sideEffects.subscribe(
|
||||
{
|
||||
val effectResult = it.invokeWith(activity!! as AppCompatActivity)
|
||||
val effectResult = it.invokeWith(requireActivity() as AppCompatActivity)
|
||||
if (effectResult is ActionMode) {
|
||||
actionMode = effectResult
|
||||
}
|
||||
@ -159,7 +159,7 @@ class ZimFileSelectFragment : BaseFragment() {
|
||||
|
||||
private fun checkPermissions() {
|
||||
if (ContextCompat.checkSelfPermission(
|
||||
activity!!,
|
||||
requireActivity(),
|
||||
Manifest.permission.READ_EXTERNAL_STORAGE
|
||||
) != PackageManager.PERMISSION_GRANTED
|
||||
) {
|
||||
|
@ -72,7 +72,7 @@ class LibraryFragment : BaseFragment() {
|
||||
@Inject lateinit var availableSpaceCalculator: AvailableSpaceCalculator
|
||||
|
||||
private val zimManageViewModel by lazy {
|
||||
activity!!.viewModel<ZimManageViewModel>(viewModelFactory)
|
||||
requireActivity().viewModel<ZimManageViewModel>(viewModelFactory)
|
||||
}
|
||||
|
||||
private val libraryAdapter: LibraryAdapter by lazy {
|
||||
@ -86,7 +86,7 @@ class LibraryFragment : BaseFragment() {
|
||||
}
|
||||
|
||||
private val noWifiWithWifiOnlyPreferenceSet
|
||||
get() = sharedPreferenceUtil.prefWifiOnly && !NetworkUtils.isWiFi(context!!)
|
||||
get() = sharedPreferenceUtil.prefWifiOnly && !NetworkUtils.isWiFi(requireContext())
|
||||
|
||||
private val isNotConnected get() = conMan.activeNetworkInfo?.isConnected == false
|
||||
|
||||
@ -216,5 +216,5 @@ class LibraryFragment : BaseFragment() {
|
||||
.apply {
|
||||
onSelectAction = ::storeDeviceInPreferences
|
||||
}
|
||||
.show(fragmentManager!!, getString(R.string.pref_storage))
|
||||
.show(requireFragmentManager(), getString(R.string.pref_storage))
|
||||
}
|
||||
|
9
app/src/main/res/values-ro/strings.xml
Normal file
9
app/src/main/res/values-ro/strings.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Authors:
|
||||
* MSClaudiu
|
||||
-->
|
||||
<resources>
|
||||
<string name="file_system_does_not_support_4gb">Sistemul dvs. de fișiere nu acceptă fișiere de peste 4 GB</string>
|
||||
<string name="detecting_file_system">Detectare dacă sistemul de fișiere poate crea fișiere de 4GB</string>
|
||||
<string name="cannot_open_file">Deschiderea fișierului a eșuat\nÎncercați să căutați acest fișier în fila Dispozitiv din biblioteca dvs.</string>
|
||||
</resources>
|
@ -1,3 +1,5 @@
|
||||
import kotlin.String
|
||||
|
||||
/**
|
||||
* Generated by https://github.com/jmfayard/buildSrcVersions
|
||||
*
|
||||
@ -30,19 +32,19 @@ object Libs {
|
||||
Versions.androidx_test_espresso
|
||||
|
||||
/**
|
||||
* https://github.com/square/retrofit/
|
||||
* https://github.com/square/retrofit
|
||||
*/
|
||||
const val adapter_rxjava2: String = "com.squareup.retrofit2:adapter-rxjava2:" +
|
||||
Versions.com_squareup_retrofit2
|
||||
|
||||
/**
|
||||
* https://github.com/square/retrofit/
|
||||
* https://github.com/square/retrofit
|
||||
*/
|
||||
const val converter_simplexml: String = "com.squareup.retrofit2:converter-simplexml:" +
|
||||
Versions.com_squareup_retrofit2
|
||||
|
||||
/**
|
||||
* https://github.com/square/retrofit/
|
||||
* https://github.com/square/retrofit
|
||||
*/
|
||||
const val retrofit: String = "com.squareup.retrofit2:retrofit:" + Versions.com_squareup_retrofit2
|
||||
|
||||
@ -165,7 +167,7 @@ object Libs {
|
||||
Versions.io_objectbox
|
||||
|
||||
/**
|
||||
* http://objectbox.io
|
||||
* https://objectbox.io
|
||||
*/
|
||||
const val objectbox_kotlin: String = "io.objectbox:objectbox-kotlin:" + Versions.io_objectbox
|
||||
|
||||
@ -176,7 +178,7 @@ object Libs {
|
||||
Versions.io_objectbox
|
||||
|
||||
/**
|
||||
* http://objectbox.io
|
||||
* https://objectbox.io
|
||||
*/
|
||||
const val objectbox_rxjava: String = "io.objectbox:objectbox-rxjava:" + Versions.io_objectbox
|
||||
|
||||
@ -228,9 +230,6 @@ object Libs {
|
||||
const val multidex_instrumentation: String = "androidx.multidex:multidex-instrumentation:" +
|
||||
Versions.multidex_instrumentation
|
||||
|
||||
const val detekt_gradle_plugin: String = "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:" +
|
||||
Versions.detekt_gradle_plugin
|
||||
|
||||
/**
|
||||
* http://jcp.org/en/jsr/detail?id=250
|
||||
*/
|
||||
@ -238,7 +237,7 @@ object Libs {
|
||||
Versions.javax_annotation_api
|
||||
|
||||
/**
|
||||
* https://github.com/square/okhttp
|
||||
* https://square.github.io/okhttp/
|
||||
*/
|
||||
const val logging_interceptor: String = "com.squareup.okhttp3:logging-interceptor:" +
|
||||
Versions.logging_interceptor
|
||||
@ -263,18 +262,18 @@ object Libs {
|
||||
*/
|
||||
const val collection_ktx: String = "androidx.collection:collection-ktx:" + Versions.collection_ktx
|
||||
|
||||
const val jacoco_android: String = "com.hiya:jacoco-android:" +
|
||||
Versions.jacoco_android
|
||||
/**
|
||||
* https://developer.android.com/jetpack/androidx
|
||||
*/
|
||||
const val preference_ktx: String = "androidx.preference:preference-ktx:" + Versions.preference_ktx
|
||||
|
||||
/**
|
||||
* https://junit.org/junit5/
|
||||
*/
|
||||
const val junit_jupiter: String = "org.junit.jupiter:junit-jupiter:" + Versions.junit_jupiter
|
||||
|
||||
const val ktlint_gradle: String = "org.jlleitschuh.gradle:ktlint-gradle:" + Versions.ktlint_gradle
|
||||
|
||||
/**
|
||||
* https://github.com/square/okhttp
|
||||
* https://square.github.io/okhttp/
|
||||
*/
|
||||
const val mockwebserver: String = "com.squareup.okhttp3:mockwebserver:" + Versions.mockwebserver
|
||||
|
||||
@ -368,7 +367,7 @@ object Libs {
|
||||
const val ktlint: String = "com.pinterest:ktlint:" + Versions.ktlint
|
||||
|
||||
/**
|
||||
* https://github.com/square/okhttp
|
||||
* https://square.github.io/okhttp/
|
||||
*/
|
||||
const val okhttp: String = "com.squareup.okhttp3:okhttp:" + Versions.okhttp
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
import kotlin.String
|
||||
import org.gradle.plugin.use.PluginDependenciesSpec
|
||||
import org.gradle.plugin.use.PluginDependencySpec
|
||||
|
||||
@ -13,11 +14,11 @@ import org.gradle.plugin.use.PluginDependencySpec
|
||||
object Versions {
|
||||
const val androidx_test_espresso: String = "3.1.1" // available: "3.2.0"
|
||||
|
||||
const val com_squareup_retrofit2: String = "2.5.0" // available: "2.7.1"
|
||||
const val com_squareup_retrofit2: String = "2.5.0" // available: "2.9.0"
|
||||
|
||||
const val org_jetbrains_kotlin: String = "1.3.72"
|
||||
|
||||
const val com_google_dagger: String = "2.26"
|
||||
const val com_google_dagger: String = "2.26" // available: "2.28"
|
||||
|
||||
const val com_yahoo_squidb: String = "2.0.0" // available: "3.2.3"
|
||||
|
||||
@ -25,57 +26,53 @@ object Versions {
|
||||
|
||||
const val androidx_test: String = "1.2.0"
|
||||
|
||||
const val io_objectbox: String = "2.3.4" // available: "2.5.1"
|
||||
const val io_objectbox: String = "2.3.4" // available: "2.6.0"
|
||||
|
||||
const val org_jacoco: String = "0.7.9"
|
||||
|
||||
const val io_mockk: String = "1.9.2"
|
||||
const val io_mockk: String = "1.9.2" // available: "1.10.0"
|
||||
|
||||
const val android_arch_lifecycle_extensions: String = "1.1.1"
|
||||
|
||||
const val com_android_tools_build_gradle: String = "3.5.3"
|
||||
const val com_android_tools_build_gradle: String = "3.5.3" // available: "4.0.0"
|
||||
|
||||
const val de_fayard_buildsrcversions_gradle_plugin: String = "0.7.0"
|
||||
|
||||
const val com_github_triplet_play_gradle_plugin: String = "2.6.2"
|
||||
const val com_github_triplet_play_gradle_plugin: String = "2.6.2" // available: "2.8.0"
|
||||
|
||||
const val multidex_instrumentation: String = "2.0.0"
|
||||
|
||||
const val detekt_gradle_plugin: String = "1.5.1"
|
||||
|
||||
const val javax_annotation_api: String = "1.3.2"
|
||||
|
||||
const val logging_interceptor: String = "3.12.1" // available: "4.3.1"
|
||||
const val logging_interceptor: String = "3.12.1" // available: "4.7.2"
|
||||
|
||||
const val ink_page_indicator: String = "1.3.0"
|
||||
|
||||
const val leakcanary_android: String = "2.2"
|
||||
const val leakcanary_android: String = "2.2" // available: "2.3"
|
||||
|
||||
const val constraintlayout: String = "1.1.3"
|
||||
|
||||
const val collection_ktx: String = "1.1.0"
|
||||
|
||||
const val jacoco_android: String = "0.2"
|
||||
const val preference_ktx: String = "1.1.1"
|
||||
|
||||
const val junit_jupiter: String = "5.4.2" // available: "5.6.0"
|
||||
const val junit_jupiter: String = "5.4.2" // available: "5.6.2"
|
||||
|
||||
const val ktlint_gradle: String = "9.2.1"
|
||||
|
||||
const val mockwebserver: String = "3.6.0" // available: "4.3.1"
|
||||
const val mockwebserver: String = "3.6.0" // available: "4.7.2"
|
||||
|
||||
const val xfetch2okhttp: String = "3.1.4"
|
||||
|
||||
const val assertj_core: String = "3.11.1" // available: "3.15.0"
|
||||
const val assertj_core: String = "3.11.1" // available: "3.16.1"
|
||||
|
||||
const val core_testing: String = "2.1.0"
|
||||
|
||||
const val fragment_ktx: String = "1.2.1"
|
||||
const val fragment_ktx: String = "1.2.1" // available: "1.2.4"
|
||||
|
||||
const val lint_gradle: String = "26.5.3"
|
||||
const val lint_gradle: String = "27.0.0"
|
||||
|
||||
const val testing_ktx: String = "1.1.1"
|
||||
const val testing_ktx: String = "1.1.1" // available: "1.1.2"
|
||||
|
||||
const val threetenabp: String = "1.1.1" // available: "1.2.2"
|
||||
const val threetenabp: String = "1.1.1" // available: "1.2.4"
|
||||
|
||||
const val uiautomator: String = "2.2.0"
|
||||
|
||||
@ -87,7 +84,7 @@ object Versions {
|
||||
|
||||
const val rxandroid: String = "2.1.0" // available: "2.1.1"
|
||||
|
||||
const val core_ktx: String = "1.2.0"
|
||||
const val core_ktx: String = "1.2.0" // available: "1.3.0"
|
||||
|
||||
const val kiwixlib: String = "9.1.2"
|
||||
|
||||
@ -95,19 +92,19 @@ object Versions {
|
||||
|
||||
const val multidex: String = "2.0.1"
|
||||
|
||||
const val barista: String = "2.7.1" // available: "3.2.0"
|
||||
const val barista: String = "2.7.1" // available: "3.5.0"
|
||||
|
||||
const val xfetch2: String = "3.1.4"
|
||||
|
||||
const val jsr305: String = "3.0.2"
|
||||
|
||||
const val ktlint: String = "0.36.0"
|
||||
const val ktlint: String = "0.36.0" // available: "0.37.1"
|
||||
|
||||
const val okhttp: String = "3.12.1" // available: "4.3.1"
|
||||
const val okhttp: String = "3.12.1" // available: "4.7.2"
|
||||
|
||||
const val rxjava: String = "2.2.5" // available: "2.2.17"
|
||||
const val rxjava: String = "2.2.5" // available: "2.2.19"
|
||||
|
||||
const val aapt2: String = "3.5.2-5435860" // available: "3.5.3-5435860"
|
||||
const val aapt2: String = "4.0.0-6051327"
|
||||
|
||||
const val junit: String = "1.1.1"
|
||||
|
||||
@ -116,7 +113,7 @@ object Versions {
|
||||
* See issue 19: How to update Gradle itself?
|
||||
* https://github.com/jmfayard/buildSrcVersions/issues/19
|
||||
*/
|
||||
const val gradleLatestVersion: String = "6.1.1"
|
||||
const val gradleLatestVersion: String = "6.5"
|
||||
}
|
||||
|
||||
/**
|
||||
@ -125,4 +122,4 @@ object Versions {
|
||||
*/
|
||||
val PluginDependenciesSpec.buildSrcVersions: PluginDependencySpec
|
||||
inline get() =
|
||||
id("de.fayard.buildSrcVersions").version(Versions.de_fayard_buildsrcversions_gradle_plugin)
|
||||
id("de.fayard.buildSrcVersions").version(Versions.de_fayard_buildsrcversions_gradle_plugin)
|
||||
|
@ -181,6 +181,7 @@ class AllProjectConfigurer {
|
||||
implementation(Libs.xfetch2okhttp)
|
||||
implementation(Libs.rxandroid)
|
||||
implementation(Libs.rxjava)
|
||||
implementation(Libs.preference_ktx)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,5 +6,5 @@ if ./gradlew jacocoInstrumentationTestReport; then
|
||||
echo "jacocoInstrumentationTestReport succeeded" >&2
|
||||
else
|
||||
adb exec-out screencap -p >screencap.png
|
||||
echo "jacocoInstrumentationTestReport failed" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
@ -6,5 +6,5 @@ if ./gradlew connectedDebugAndroidTest; then
|
||||
echo "connectedDebugAndroidTest succeeded" >&2
|
||||
else
|
||||
adb exec-out screencap -p >screencap.png
|
||||
echo "connectedDebugAndroidTest failed" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
@ -70,7 +70,7 @@ class StorageSelectDialog : DialogFragment() {
|
||||
layoutManager = LinearLayoutManager(context, RecyclerView.VERTICAL, false)
|
||||
setHasFixedSize(true)
|
||||
}
|
||||
Flowable.fromCallable { StorageDeviceUtils.getWritableStorage(activity!!) }
|
||||
Flowable.fromCallable { StorageDeviceUtils.getWritableStorage(requireActivity()) }
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(
|
||||
|
@ -34,6 +34,7 @@ import android.view.ViewGroup;
|
||||
import android.webkit.WebSettings;
|
||||
import android.widget.Toast;
|
||||
import com.cprcrack.videowebview.VideoEnabledWebView;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
@ -55,18 +56,17 @@ public class KiwixWebView extends VideoEnabledWebView {
|
||||
0, 0, -1.0f, 0, 255, // blue
|
||||
0, 0, 0, 1.0f, 0 // alpha
|
||||
};
|
||||
private final ViewGroup videoView;
|
||||
@Inject
|
||||
SharedPreferenceUtil sharedPreferenceUtil;
|
||||
@Inject
|
||||
ZimReaderContainer zimReaderContainer;
|
||||
private final WebViewCallback callback;
|
||||
private CompositeDisposable compositeDisposable = new CompositeDisposable();
|
||||
|
||||
@SuppressLint("SetJavaScriptEnabled")
|
||||
public KiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs,
|
||||
ViewGroup nonVideoView, ViewGroup videoView, CoreWebViewClient webViewClient) {
|
||||
super(context, attrs);
|
||||
this.videoView = videoView;
|
||||
if (BuildConfig.DEBUG == true && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
setWebContentsDebuggingEnabled(true);
|
||||
}
|
||||
@ -123,6 +123,19 @@ public class KiwixWebView extends VideoEnabledWebView {
|
||||
}
|
||||
}
|
||||
|
||||
@Override protected void onAttachedToWindow() {
|
||||
super.onAttachedToWindow();
|
||||
compositeDisposable.add(
|
||||
sharedPreferenceUtil.getTextZooms()
|
||||
.subscribe(textZoom -> getSettings().setTextZoom(textZoom))
|
||||
);
|
||||
}
|
||||
|
||||
@Override protected void onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow();
|
||||
compositeDisposable.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
|
||||
super.onScrollChanged(l, t, oldl, oldt);
|
||||
|
@ -24,15 +24,14 @@ import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Bundle;
|
||||
import android.preference.EditTextPreference;
|
||||
import android.preference.ListPreference;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.view.LayoutInflater;
|
||||
import android.webkit.WebView;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.preference.EditTextPreference;
|
||||
import androidx.preference.ListPreference;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
import com.google.android.material.snackbar.Snackbar;
|
||||
import eu.mhutti1.utils.storage.StorageDevice;
|
||||
import eu.mhutti1.utils.storage.StorageSelectDialog;
|
||||
@ -56,7 +55,7 @@ import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.RESULT_RESTART;
|
||||
import static org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil.PREF_NIGHT_MODE;
|
||||
import static org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil.PREF_STORAGE;
|
||||
|
||||
public abstract class CorePrefsFragment extends PreferenceFragment implements
|
||||
public abstract class CorePrefsFragment extends PreferenceFragmentCompat implements
|
||||
SettingsContract.View,
|
||||
SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
|
||||
@ -64,6 +63,9 @@ public abstract class CorePrefsFragment extends PreferenceFragment implements
|
||||
public static final String PREF_CLEAR_ALL_HISTORY = "pref_clear_all_history";
|
||||
public static final String PREF_CLEAR_ALL_NOTES = "pref_clear_all_notes";
|
||||
public static final String PREF_CREDITS = "pref_credits";
|
||||
private static final int ZOOM_OFFSET = 2;
|
||||
private static final int ZOOM_SCALE = 25;
|
||||
private static final String INTERNAL_TEXT_ZOOM = "text_zoom";
|
||||
@Inject
|
||||
SettingsPresenter presenter;
|
||||
@Inject
|
||||
@ -76,21 +78,35 @@ public abstract class CorePrefsFragment extends PreferenceFragment implements
|
||||
protected DialogShower alertDialogShower;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
CoreApp.getCoreComponent()
|
||||
.activityComponentBuilder()
|
||||
.activity(getActivity())
|
||||
.build()
|
||||
.inject(this);
|
||||
super.onCreate(savedInstanceState);
|
||||
addPreferencesFromResource(R.xml.preferences);
|
||||
|
||||
setStorage();
|
||||
setUpSettings();
|
||||
setupZoom();
|
||||
new LanguageUtils(getActivity()).changeFont(getActivity().getLayoutInflater(),
|
||||
sharedPreferenceUtil);
|
||||
}
|
||||
|
||||
private void setupZoom() {
|
||||
final Preference textZoom = findPreference(INTERNAL_TEXT_ZOOM);
|
||||
textZoom.setOnPreferenceChangeListener(
|
||||
(preference, newValue) -> {
|
||||
sharedPreferenceUtil.setTextZoom((((Integer) newValue) + ZOOM_OFFSET) * ZOOM_SCALE);
|
||||
updateTextZoomSummary(textZoom);
|
||||
return true;
|
||||
});
|
||||
updateTextZoomSummary(textZoom);
|
||||
}
|
||||
|
||||
private void updateTextZoomSummary(Preference textZoom) {
|
||||
textZoom.setSummary(getString(R.string.percentage, sharedPreferenceUtil.getTextZoom()));
|
||||
}
|
||||
|
||||
protected abstract void setStorage();
|
||||
|
||||
@Override
|
||||
@ -112,7 +128,7 @@ public abstract class CorePrefsFragment extends PreferenceFragment implements
|
||||
}
|
||||
|
||||
protected void setUpLanguageChooser(String preferenceId) {
|
||||
ListPreference languagePref = (ListPreference) findPreference(preferenceId);
|
||||
ListPreference languagePref = findPreference(preferenceId);
|
||||
List<String> languageCodeList = new LanguageUtils(getActivity()).getKeys();
|
||||
languageCodeList.add(0, Locale.ROOT.getLanguage());
|
||||
final String selectedLang =
|
||||
@ -154,7 +170,7 @@ public abstract class CorePrefsFragment extends PreferenceFragment implements
|
||||
}
|
||||
|
||||
private void setAppVersionNumber() {
|
||||
EditTextPreference versionPref = (EditTextPreference) findPreference(PREF_VERSION);
|
||||
EditTextPreference versionPref = findPreference(PREF_VERSION);
|
||||
versionPref.setSummary(getVersionName() + " Build: " + getVersionCode());
|
||||
}
|
||||
|
||||
@ -205,7 +221,8 @@ public abstract class CorePrefsFragment extends PreferenceFragment implements
|
||||
if (ContextCompat.checkSelfPermission(getActivity(),
|
||||
Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
||||
!= PackageManager.PERMISSION_GRANTED) {
|
||||
Snackbar.make(getView(), R.string.ext_storage_permission_not_granted, Snackbar.LENGTH_SHORT).show();
|
||||
Snackbar.make(getView(), R.string.ext_storage_permission_not_granted, Snackbar.LENGTH_SHORT)
|
||||
.show();
|
||||
return;
|
||||
}
|
||||
|
||||
@ -229,9 +246,7 @@ public abstract class CorePrefsFragment extends PreferenceFragment implements
|
||||
alertDialogShower.show(new KiwixDialog.OpenCredits(() -> view));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
|
||||
Preference preference) {
|
||||
@Override public boolean onPreferenceTreeClick(Preference preference) {
|
||||
if (preference.getKey().equalsIgnoreCase(PREF_CLEAR_ALL_HISTORY)) {
|
||||
clearAllHistoryDialog();
|
||||
}
|
||||
|
@ -18,10 +18,10 @@
|
||||
|
||||
package org.kiwix.kiwixmobile.core.settings;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import org.kiwix.kiwixmobile.core.R;
|
||||
import org.kiwix.kiwixmobile.core.base.BaseActivity;
|
||||
|
||||
@ -39,7 +39,7 @@ public abstract class CoreSettingsActivity extends BaseActivity {
|
||||
|
||||
allHistoryCleared = false;
|
||||
|
||||
getFragmentManager()
|
||||
getSupportFragmentManager()
|
||||
.beginTransaction().
|
||||
replace(R.id.content_frame, createPreferenceFragment())
|
||||
.commit();
|
||||
|
@ -1,91 +0,0 @@
|
||||
/*
|
||||
* Kiwix Android
|
||||
* Copyright (c) 2019 Kiwix <android.kiwix.org>
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
package org.kiwix.kiwixmobile.core.settings;
|
||||
|
||||
import android.content.Context;
|
||||
import android.preference.SwitchPreference;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Switch;
|
||||
|
||||
public class CustomSwitchPreference extends SwitchPreference {
|
||||
|
||||
/**
|
||||
* Construct a new SwitchPreference with the given style options.
|
||||
*
|
||||
* @param context The Context that will style this preference
|
||||
* @param attrs Style attributes that differ from the default
|
||||
* @param defStyle Theme attribute defining the default style options
|
||||
*/
|
||||
public CustomSwitchPreference(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new SwitchPreference with the given style options.
|
||||
*
|
||||
* @param context The Context that will style this preference
|
||||
* @param attrs Style attributes that differ from the default
|
||||
*/
|
||||
public CustomSwitchPreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new SwitchPreference with default style options.
|
||||
*
|
||||
* @param context The Context that will style this preference
|
||||
*/
|
||||
public CustomSwitchPreference(Context context) {
|
||||
super(context, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBindView(View view) {
|
||||
// Clean listener before invoke SwitchPreference.onBindView
|
||||
ViewGroup viewGroup = (ViewGroup) view;
|
||||
clearListenerInViewGroup(viewGroup);
|
||||
super.onBindView(view);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear listener in Switch for specify ViewGroup.
|
||||
*
|
||||
* @param viewGroup The ViewGroup that will need to clear the listener.
|
||||
*/
|
||||
private void clearListenerInViewGroup(ViewGroup viewGroup) {
|
||||
if (null == viewGroup) {
|
||||
return;
|
||||
}
|
||||
|
||||
int count = viewGroup.getChildCount();
|
||||
for (int n = 0; n < count; ++n) {
|
||||
View childView = viewGroup.getChildAt(n);
|
||||
if (childView instanceof Switch) {
|
||||
final Switch switchView = (Switch) childView;
|
||||
switchView.setOnCheckedChangeListener(null);
|
||||
return;
|
||||
} else if (childView instanceof ViewGroup) {
|
||||
ViewGroup childGroup = (ViewGroup) childView;
|
||||
clearListenerInViewGroup(childGroup);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -58,8 +58,10 @@ public class SharedPreferenceUtil {
|
||||
private static final String PREF_SHOW_HISTORY_CURRENT_BOOK = "show_history_current_book";
|
||||
private static final String PREF_HOSTED_BOOKS = "hosted_books";
|
||||
public static final String PREF_NIGHT_MODE = "pref_night_mode";
|
||||
private static final String TEXT_ZOOM = "true_text_zoom";
|
||||
private SharedPreferences sharedPreferences;
|
||||
private final PublishProcessor<String> prefStorages = PublishProcessor.create();
|
||||
private final PublishProcessor<Integer> textZooms = PublishProcessor.create();
|
||||
private final PublishProcessor<NightModeConfig.Mode> nightModes = PublishProcessor.create();
|
||||
|
||||
@Inject
|
||||
@ -217,4 +219,17 @@ public class SharedPreferenceUtil {
|
||||
.putStringSet(PREF_HOSTED_BOOKS, hostedBooks)
|
||||
.apply();
|
||||
}
|
||||
|
||||
public void setTextZoom(int textZoom) {
|
||||
sharedPreferences.edit().putInt(TEXT_ZOOM, textZoom).apply();
|
||||
textZooms.offer(textZoom);
|
||||
}
|
||||
|
||||
public int getTextZoom() {
|
||||
return sharedPreferences.getInt(TEXT_ZOOM, 100);
|
||||
}
|
||||
|
||||
public Flowable<Integer> getTextZooms() {
|
||||
return textZooms.startWith(getTextZoom());
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,7 @@
|
||||
* Geraki
|
||||
* Glavkos
|
||||
* Nikosgranturismogt
|
||||
* Norhorn
|
||||
-->
|
||||
<resources>
|
||||
<string name="menu_help">Βοήθεια</string>
|
||||
@ -16,12 +17,35 @@
|
||||
<string name="menu_exit_full_screen">Έξοδος από πλήρη οθόνη</string>
|
||||
<string name="menu_read_aloud">Διάβασε δυνατά</string>
|
||||
<string name="menu_read_aloud_stop">Σταμάτα να διαβάζεις δυνατά</string>
|
||||
<string name="menu_support_kiwix">Υποστήριξη Kiwix</string>
|
||||
<string name="save_media">Αποθήκευση μέσων</string>
|
||||
<string name="save_media_error">Προέκυψε σφάλμα κατά την προσπάθεια αποθήκευσης του αρχείου πολυμέσων!</string>
|
||||
<string name="save_media_saved">Αποθήκευση αρχείων πολυμέσων ως το %1$s στο Android/media/org.kiwix…/</string>
|
||||
<string name="search_label">Αναζήτηση</string>
|
||||
<string name="choose_file">Επιλογή ZIM Content File (*.zim)</string>
|
||||
<string name="open_in_new_tab">Άνοιγμα συνδέσμου σε νέα καρτέλα;</string>
|
||||
<string name="hotspot_service_channel_name">Κανάλι σημείου πρόσβασης</string>
|
||||
<string name="hotspot_failed_title">Η εκκίνηση του σημείου πρόσβασης απέτυχε</string>
|
||||
<string name="hotspot_failed_message">Φαίνεται ότι το σημείο πρόσβασης είναι ήδη ενεργοποιημένο. Απενεργοποιήστε το σημείο πρόσβασης Wi-Fi σας για να συνεχίσετε.</string>
|
||||
<string name="go_to_wifi_settings_label">Μετάβαση στις ρυθμίσεις WIFI</string>
|
||||
<string name="hotspot_running">Εκτέλεση σημείου πρόσβασης</string>
|
||||
<string name="no_books_selected_toast_message">Παρακαλούμε επιλέξτε βιβλία πρώτα</string>
|
||||
<string name="server_failed_message">Ο διακομιστής δεν μπορεί να ξεκινήσει. Ενεργοποιήστε το σημείο πρόσβασης</string>
|
||||
<string name="server_failed_toast_message">Ο διακομιστής δεν μπορεί να ξεκινήσει.</string>
|
||||
<string name="server_started_successfully_toast_message">Ο διακομιστής ξεκίνησε επιτυχώς.</string>
|
||||
<string name="server_stopped_successfully_toast_message">Ο διακομιστής τερματίστηκε επιτυχώς.</string>
|
||||
<string name="hotspot_turned_on">Το σημείο πρόσβασης ενεργοποιήθηκε</string>
|
||||
<string name="hotspot_details_message">Παρακάτω οι λεπτομέρειες του σημείου πρόσβασης σας.\nΌνομα : %1$s \nΚωδικός : %2$s</string>
|
||||
<string name="server_textview_default_message">Επιλέξτε τα αρχεία που θέλετε να διαθέσετε στον διακομιστή</string>
|
||||
<string name="progress_dialog_starting_server">Έναρξη διακομιστή</string>
|
||||
<string name="hotspot_dialog_title">Οδηγίες για τη διάθεση βιβλίων</string>
|
||||
<string name="wifi_dialog_title">Εντοπίστηκε η σύνδεση WIFI</string>
|
||||
<string name="wifi_dialog_body">Για να δείτε βιβλία σε άλλες συσκευές, βεβαιωθείτε ότι όλες οι συσκευές είναι συνδεδεμένες στο ίδιο δίκτυο WiFi.</string>
|
||||
<string name="hotspot_dialog_message">Για χρήση αυτής της λειτουργίας, ενεργοποιήστε το σημείο πρόσβασης WIFI ή βεβαιωθείτε ότι και οι δύο συσκευές βρίσκονται στο ίδιο δίκτυο WiFi</string>
|
||||
<string name="hotspot_notification_content_title">Σημείο πρόσβασης Kiwix</string>
|
||||
<string name="start_server_label">Έναρξη διακομιστή</string>
|
||||
<string name="stop_server_label">Τερματισμός διακομιστή</string>
|
||||
<string name="server_started_message">Εισάγετε την διεύθυνση ip στον περιηγητής σας, για πρόσβαση στον διακομιστή %s</string>
|
||||
<string name="error_file_not_found">Σφάλμα: Το επιλεγμένο ZIM αρχείο δεν μπόρεσε να βρεθεί.</string>
|
||||
<string name="zim_not_opened">Δεν μπόρεσε να ανοιχθεί το αρχείο zim</string>
|
||||
<string name="error_file_invalid">Σφάλμα: Το επιλεγμένο αρχείο δεν είναι έγκυρο αρχείο ZIM.</string>
|
||||
|
@ -50,6 +50,8 @@
|
||||
<string name="server_textview_default_message">Sélectionnez les fichiers que vous voulez héberger sur le serveur</string>
|
||||
<string name="progress_dialog_starting_server">Démarrage du serveur</string>
|
||||
<string name="hotspot_dialog_title">Instructions pour les livres hébergeurs</string>
|
||||
<string name="wifi_dialog_title">Connexion WiFi détectée</string>
|
||||
<string name="wifi_dialog_body">Afin de pouvoir lire les livres sur d’autres appareils, veuillez vous assurer que tous ceux-ci sont connectés au même réseau WiFi.</string>
|
||||
<string name="hotspot_dialog_message">Pour que cette fonctionnalité fonctionne, vous devez d’abord activer manuellement votre point d’accès WiFi ou vous assurer que l\'appareil hôte et l\'appareil récepteur appartiennent au même réseau WiFi</string>
|
||||
<string name="hotspot_dialog_neutral_button">PROCEDER</string>
|
||||
<string name="hotspot_channel_description">Mises à jour concernant l’état de votre point d’accès/serveur.</string>
|
||||
|
@ -46,6 +46,7 @@
|
||||
<string name="server_textview_default_message">서버에 호스팅할 파일을 선택하십시오</string>
|
||||
<string name="progress_dialog_starting_server">서버 시작 중</string>
|
||||
<string name="hotspot_dialog_title">도서 호스팅 지침</string>
|
||||
<string name="wifi_dialog_title">WiFi 연결 감지됨</string>
|
||||
<string name="hotspot_dialog_message">이 기능이 동작하려면 WIFI 핫스팟을 수동으로 활성화하거나 호스트 장치와 수신 장치가 동일 WiFi 네트워크에 있어야 합니다</string>
|
||||
<string name="hotspot_dialog_neutral_button">계속</string>
|
||||
<string name="hotspot_channel_description">당신의 핫스팟/서버 상태에 대한 업데이트</string>
|
||||
|
@ -23,6 +23,8 @@
|
||||
<string name="choose_file">Wielt eng Inhaltsdatei aus (*.zim)</string>
|
||||
<string name="open_in_new_tab">Link an engem neien Tab opmaachen?</string>
|
||||
<string name="server_stopped_successfully_toast_message">De Serveur gouf gestoppt.</string>
|
||||
<string name="wifi_dialog_title">WiFi Verbindung entdeckt</string>
|
||||
<string name="hotspot_dialog_neutral_button">VIRUFUEREN</string>
|
||||
<string name="error_file_not_found">Feeler: Déi ausgewielten ZIM-Datei konnt net fonnt ginn.</string>
|
||||
<string name="error_file_invalid">Feeler: Déi ausgewielten Datei ass keng gülteg ZIM-Datei.</string>
|
||||
<string name="error_article_url_not_found">Feeler: D\'Luede vum Artikel (URL: %1$s) huet net funktionéiert.</string>
|
||||
@ -108,7 +110,7 @@
|
||||
<string name="tag_vid">Video</string>
|
||||
<string name="tag_text_only">Nëmmen Text</string>
|
||||
<string name="tag_short_text">Kuerzen Text</string>
|
||||
<string name="go_to_settings" fuzzy="true">Op d\'Astellunge goen</string>
|
||||
<string name="go_to_settings">Op d\'Astellunge vum Hotspot goen</string>
|
||||
<string name="no_results">Keng Resultater</string>
|
||||
<string name="no_bookmarks">Keng Lieszeechen!</string>
|
||||
<string name="no_history">Keen Historique</string>
|
||||
|
@ -37,6 +37,8 @@
|
||||
<string name="server_textview_default_message">Изберете ги податотеките што сакате да ги вдомите на опслужувачот</string>
|
||||
<string name="progress_dialog_starting_server">Го покренувам опслужувачот</string>
|
||||
<string name="hotspot_dialog_title">Напатствија за вдомување на книги</string>
|
||||
<string name="wifi_dialog_title">Пронајдена е безжична врска</string>
|
||||
<string name="wifi_dialog_body">За да ги читате книгите на други уреди, проверете дали сите тие се поврзани на истата безжична мрежа.</string>
|
||||
<string name="hotspot_dialog_message">За да работи оваа можност, најпрвин ќе треба точката за безжичен пристап да ја вклучите рачно, или да се осигурате дека уредот-домаќин и уредот-приемник се на истата безжична мрежа</string>
|
||||
<string name="hotspot_dialog_neutral_button">ПРОДОЛЖИ</string>
|
||||
<string name="hotspot_channel_description">Известувања за состојбата на вашата пристапна точка/опслужувач.</string>
|
||||
|
@ -43,6 +43,8 @@
|
||||
<string name="server_textview_default_message">Selecione os arquivos que você deseja hospedar no servidor</string>
|
||||
<string name="progress_dialog_starting_server">Iniciando servidor</string>
|
||||
<string name="hotspot_dialog_title">Instruções para hospedagem de livros</string>
|
||||
<string name="wifi_dialog_title">Conexão WiFi detectada</string>
|
||||
<string name="wifi_dialog_body">Para visualizar livros em outros dispositivos, verifique se todos os dispositivos estão conectados à mesma rede WiFi.</string>
|
||||
<string name="hotspot_dialog_message">Para que esse recurso funcione, você precisa primeiro ativar o hotspot WIFI manualmente ou garantir que o dispositivo host e o dispositivo receptor estejam na mesma rede Wi-Fi</string>
|
||||
<string name="hotspot_dialog_neutral_button">CONTINUAR</string>
|
||||
<string name="hotspot_channel_description">Atualizações sobre o estado do seu ponto de acesso/servidor.</string>
|
||||
|
@ -17,17 +17,43 @@
|
||||
<string name="menu_exit_full_screen">Ieși din modul ecran complet</string>
|
||||
<string name="menu_read_aloud">Citește cu voce tare</string>
|
||||
<string name="menu_read_aloud_stop">Oprește citirea cu voce tare</string>
|
||||
<string name="menu_support_kiwix">Susține Kiwix</string>
|
||||
<string name="menu_host_books">Găzduiește Cărți</string>
|
||||
<string name="save_media">Salvează Media</string>
|
||||
<string name="save_media_error">A apărut o eroare în încercarea de a salva fișierul media!</string>
|
||||
<string name="save_media_saved">Media salvată %s în Android/media/org.kiwix…/</string>
|
||||
<string name="search_label">Caută</string>
|
||||
<string name="choose_file">Alegeți un fișier cu conținut ZIM (*.zim)</string>
|
||||
<string name="open_in_new_tab">Deschideți legătura într-o filă nouă?</string>
|
||||
<string name="hotspot_service_channel_name">Canal Serviciu Hotspot</string>
|
||||
<string name="hotspot_failed_title">Nu a reușit să pornească hotspot</string>
|
||||
<string name="hotspot_failed_message">Se pare că hotspot-ul tău este deja pornit. Vă rugăm să opriți wifi-ul hotspot pentru a continua.</string>
|
||||
<string name="go_to_wifi_settings_label">Mergi la setările WIFI</string>
|
||||
<string name="hotspot_running">Hotspot Pornit</string>
|
||||
<string name="no_books_selected_toast_message">Vă rugăm să selectați cărțile mai întâi</string>
|
||||
<string name="server_failed_message">Nu am putut porni serverul. Vă rugăm porniți hotspot</string>
|
||||
<string name="server_failed_toast_message">Nu am putut porni serverul.</string>
|
||||
<string name="server_started_successfully_toast_message">Serverul a pornit cu succes.</string>
|
||||
<string name="server_stopped_successfully_toast_message">Oprire reușită a serverului.</string>
|
||||
<string name="hotspot_turned_on">Hotspot deschis</string>
|
||||
<string name="hotspot_details_message">Următoarele sunt detaliile hotspot-ului tău local.\nSSID : %1$s \nParo : %2$s</string>
|
||||
<string name="server_textview_default_message">Selectează fișierele pe care dorești să le găzduiești pe server</string>
|
||||
<string name="progress_dialog_starting_server">Pornire server</string>
|
||||
<string name="hotspot_dialog_title">Instrucțiuni pentru găzduirea de cărți</string>
|
||||
<string name="wifi_dialog_title">Conexiune WiFi detectată</string>
|
||||
<string name="wifi_dialog_body">Pentru a vizualiza cărți pe alte dispozitive, vă rugăm să vă asigurați că toate dispozitivele sunt conectate la aceeași Rețea WiFi.</string>
|
||||
<string name="hotspot_dialog_message">Pentru ca această funcție să funcționeze, trebuie să porniți mai întâi hotspot-ul WIFI manual sau să vă asigurați că dispozitivul gazdă și dispozitivul receptor sunt pe aceeași rețea WiFi</string>
|
||||
<string name="hotspot_dialog_neutral_button">CONTINUĂ</string>
|
||||
<string name="hotspot_channel_description">Actualizări despre starea hotspot-ului/serverului tău.</string>
|
||||
<string name="hotspot_notification_content_title">Kiwix Hotspot</string>
|
||||
<string name="start_server_label">Pornește server</string>
|
||||
<string name="stop_server_label">Oprește server</string>
|
||||
<string name="server_started_message">Introduceți această adresă ip în browserul dvs. pentru a accesa serverul %s</string>
|
||||
<string name="error_file_not_found">Eroare: Fișierul ZIM selectat nu poate fi găsit.</string>
|
||||
<string name="zim_not_opened">Imposibil de deschis fișierul zim</string>
|
||||
<string name="error_file_invalid">Eroare: Fișierul selectat nu este un fișier ZIM valid.</string>
|
||||
<string name="error_article_url_not_found">Eroare: Încărcarea articolului (Url: %1$s) nu a reușit.</string>
|
||||
<string name="pref_display_title">Ecran</string>
|
||||
<string name="pref_display_title">Afișaj</string>
|
||||
<string name="pref_info_title">Informații</string>
|
||||
<string name="pref_info_version">Versiune</string>
|
||||
<string name="pref_night_mode">Mod de noapte</string>
|
||||
@ -49,8 +75,13 @@
|
||||
<string name="pref_clear_all_history_title">Curăță istoricul</string>
|
||||
<string name="pref_clear_all_history_summary">Curăță căutările recente și istoricul filelor</string>
|
||||
<string name="all_history_cleared">Tot istoricul curățat</string>
|
||||
<string name="clear_all_history_dialog_title" fuzzy="true">Curăță tot istoricul</string>
|
||||
<string name="pref_clear_all_bookmarks_title">Șterge semnele de carte</string>
|
||||
<string name="all_bookmarks_cleared">Toate semnele de carte șterse</string>
|
||||
<string name="clear_all_history_dialog_title">Șterge tot istoricul</string>
|
||||
<string name="share">Distribuie</string>
|
||||
<string name="selected_file_cab_app_chooser_title">Distribuie fișiere ZIM cu:</string>
|
||||
<string name="delete">Șterge</string>
|
||||
<string name="cancel">Anulează</string>
|
||||
<string name="delete_specific_search_toast">Căutare recentă scoasă</string>
|
||||
<string name="hint_contents_drawer_message">Poți glisa spre stânga pentru a vedea acest articol</string>
|
||||
<string name="got_it">Am înțeles</string>
|
||||
@ -76,9 +107,10 @@
|
||||
<string name="local_zims">Dispozitiv</string>
|
||||
<string name="remote_zims">Online</string>
|
||||
<string name="library">Bibliotecă</string>
|
||||
<string name="delete_zims_toast">Filă ștearsă</string>
|
||||
<string name="delete_zim_body">Următoarele fișier(e) zim vor fi șterse:\n\n%s</string>
|
||||
<string name="delete_zims_toast">Filă ștearsă cu succes</string>
|
||||
<string name="no_files_here">Nu sunt fișiere aici</string>
|
||||
<string name="download_no_space" fuzzy="true">Spațiu insuficient pentru a descarca această filă.</string>
|
||||
<string name="download_no_space">Spațiu insuficient pentru a descarca.</string>
|
||||
<string name="space_available">Spațiu disponibil:</string>
|
||||
<string name="zim_simple">Simplu</string>
|
||||
<string name="zim_no_pic">Fără imagini</string>
|
||||
@ -86,17 +118,17 @@
|
||||
<string name="no_network_connection">Nu există conexiune de rețea</string>
|
||||
<string name="help_2">Ce face Kiwix?</string>
|
||||
<string name="help_3">Kiwix este un server de citit conținut off-line. Este aproape ca un browser dar în loc să acceseze paginile web online citește conținut de la un fișier în formatul ZIM.</string>
|
||||
<string name="help_4" fuzzy="true">În timp ce Kiwix a fost făcut inițial să ofere Wikipedia off-line de asemenea citește și alt conținut.</string>
|
||||
<string name="help_4">În timp ce Kiwix a fost proiectat inițial pentru a furniza Wikipedia offline, acesta citește și alt conținut.</string>
|
||||
<string name="help_5">Unde este conținutul?</string>
|
||||
<string name="help_6">Conținutul este găzduit de Kiwix pe site-ul web.</string>
|
||||
<string name="help_7">Există mai multe fișiere ZIM. Sunt multe:</string>
|
||||
<string name="help_8">• Wikipedia este disponibilă în mod separat pentru fiecare limbă</string>
|
||||
<string name="help_9">• Alt conținut ca Wikileaks sa Wikisursă este de asemenea disponibil</string>
|
||||
<string name="help_10" fuzzy="true">Fișiere ZIM pe cardul SD.</string>
|
||||
<string name="help_10">Puteți să descărcați în aplicație fișierele ZIM alese sau să le selectați cu atenție pe cele pe care le doriți și să le descărcați de pe un computer desktop înainte de a transfera fișierele ZIM pe cardul SD.</string>
|
||||
<string name="help_11">Fișierele ZIM descărcate în aplicație sunt localizate în directorul extern de stocare într-un folder denumit Kiwix.</string>
|
||||
<string name="pref_storage">Stocare</string>
|
||||
<string name="pref_current_folder">Folder curent</string>
|
||||
<string name="delete_zim_failed" fuzzy="true">Ne pare rău că nu am reușit să ștergem această filă. Ar trebui să folosiți un manager de fișier în loc.</string>
|
||||
<string name="delete_zim_failed">Ne pare rău, dar nu am reușit să ștergem unele fișiere. Ar trebui să folosiți un manager de fișier în loc.</string>
|
||||
<string name="tts_pause">pauză</string>
|
||||
<string name="tts_resume">rezumat</string>
|
||||
<string name="stop">stop</string>
|
||||
@ -108,6 +140,9 @@
|
||||
<string name="confirm_stop_download_msg">Ești sigur că vrei să oprești această descărcare?</string>
|
||||
<string name="download_change_storage">Selectează mediul de descărcare</string>
|
||||
<string name="tts_not_enabled">Text la vorbire nu este disponibil pentru acest fișier ZIM</string>
|
||||
<string name="texttospeech_initialization_failed">Inițializarea Text în Vorbire a eșuat. Vă rugăm să încercați din nou</string>
|
||||
<string name="texttospeech_error">Eroare neașteptată la Text în Vorbire. Vă rugăm încercați din nou</string>
|
||||
<string name="search_error">Eroare neașteptată în timpul căutării. Vă rugăm să încercați din nou</string>
|
||||
<string name="next">Următoarea</string>
|
||||
<string name="previous">Precedenta</string>
|
||||
<string name="wifi_only_title">Permite descărcarea conținutului prin intermediul unei rețele mobile?</string>
|
||||
@ -118,13 +153,119 @@
|
||||
<string name="time_minute">min</string>
|
||||
<string name="time_second">s</string>
|
||||
<string name="time_left">stânga</string>
|
||||
<string name="time_today">Astăzi</string>
|
||||
<string name="time_yesterday">Ieri</string>
|
||||
<string name="pref_external_link_popup_title">Atenționați când introduceți legături extern</string>
|
||||
<string name="pref_external_link_popup_summary">Afișează popup pentru a avertiza în legătură cu costurile suplimentare sau care nu merg în legăturile off-line.</string>
|
||||
<string name="external_link_popup_dialog_title" fuzzy="true">Introdu legătură externă</string>
|
||||
<string name="external_link_popup_dialog_title">Introduc Legătura externă!</string>
|
||||
<string name="external_link_popup_dialog_message">Introduci o legătură externă. Acesta ar putea duce la costuri suplimentare pentru transferul de date sau nu va funcționa când ești off-line. Vrei să continui?</string>
|
||||
<string name="do_not_ask_anymore">Nu mă mai întreba</string>
|
||||
<string name="your_languages">Limbi selectate:</string>
|
||||
<string name="other_languages">Alte limbi:</string>
|
||||
<string name="no_items_msg">Nu sunt item-uri disponibile</string>
|
||||
<string name="crash_title">Ei bine … Este jenant</string>
|
||||
<string name="crash_description">Se pare că ne-am prăbușit.</string>
|
||||
<string name="crash_checkbox_language">Setările dvs. de limbă</string>
|
||||
<string name="crash_checkbox_zimfiles">O Listă cu Fișierele Dvs. Zim</string>
|
||||
<string name="crash_checkbox_exception">Detaliile prăbușirii</string>
|
||||
<string name="crash_checkbox_logs">Jurnalul aplicației</string>
|
||||
<string name="crash_checkbox_device">Detalii dispozitiv</string>
|
||||
<string name="crash_button_confirm">TRIMITE DETALII</string>
|
||||
<string name="shortcut_disabled_message">Scurtătură nu este disponibilă</string>
|
||||
<string name="new_tab_shortcut_label">Filă nouă</string>
|
||||
<string name="get_content_shortcut_label">Obține conținut</string>
|
||||
<string name="fav_icon">Favicon</string>
|
||||
<string name="articleCount">%s articole</string>
|
||||
<string name="get_started">Să începem</string>
|
||||
<string name="download_books">Descarcă cărți</string>
|
||||
<string name="humankind_knowledge">Cunoașterea omenirii pe telefonul tău.</string>
|
||||
<string name="welcome_to_the_family">Bun venit în familie</string>
|
||||
<string name="save_books_offline">Salvează cărți offline</string>
|
||||
<string name="download_books_message">Descărcă cărți și citește oriunde v-ați afla.</string>
|
||||
<string name="unable_to_add_to_bookmarks">Nu am putut adăuga la semne de carte</string>
|
||||
<string name="go_to_previous_page">Accesați pagina anterioară</string>
|
||||
<string name="go_to_next_page">Accesați pagina următoare</string>
|
||||
<string name="table_of_contents">Cuprins</string>
|
||||
<string name="select_languages">Selectați limbile</string>
|
||||
<string name="save_languages">Salvează limbile</string>
|
||||
<string name="send_feedback">Trimite feedback</string>
|
||||
<string name="expand">Extinde</string>
|
||||
<string name="history">Istorie</string>
|
||||
<string name="history_from_current_book">Vedeți Istoria De Pe Toate Cărțile</string>
|
||||
<string name="search_history">Istoricul căutării</string>
|
||||
<string name="selected_items">%1$d selectat</string>
|
||||
<string name="bookmarks_from_current_book">Vezi Semne De Carte Din Toate Cărțile</string>
|
||||
<string name="search_bookmarks">Caută semnele de carte</string>
|
||||
<string name="switch_tabs">Schimbă filă</string>
|
||||
<string name="close_all_tabs">Închide toate filele</string>
|
||||
<string name="pending_state">Așteptare</string>
|
||||
<string name="running_state">În Progres</string>
|
||||
<string name="complete">Complet</string>
|
||||
<string name="paused_state">Pauză</string>
|
||||
<string name="failed_state">Eșuat: %s</string>
|
||||
<string name="save">Salvează</string>
|
||||
<string name="note">Notă</string>
|
||||
<string name="wiki_article_title">Titlu Articol Wiki</string>
|
||||
<string name="ext_storage_permission_rationale_add_note">Accesul la stocare este necesar pentru Note</string>
|
||||
<string name="ext_storage_write_permission_denied_add_note">Notele nu pot fi utilizate fără acces la stocare</string>
|
||||
<string name="note_save_unsuccessful">Notă salvare nereușită</string>
|
||||
<string name="note_delete_successful">Notă ștearsă cu succes</string>
|
||||
<string name="note_delete_unsuccessful">Notă nu a fost ștearsă</string>
|
||||
<string name="note_save_successful">Nota salvată</string>
|
||||
<string name="note_save_error_storage_not_writable">Eroare salvare notă: stocarea nu poate fi scrisă</string>
|
||||
<string name="note_share_error_file_missing">Fișierul de notă nu există</string>
|
||||
<string name="note_share_app_chooser_title">Partajează fișierul cu note cu:</string>
|
||||
<string name="confirmation_alert_dialog_message">Renunțați la modificările nesalvate?</string>
|
||||
<string name="delete_notes_confirmation_msg">Ștergeți toate notele?</string>
|
||||
<string name="ext_storage_permission_not_granted">Eroare: Permisiunile de stocare nu au fost acordate</string>
|
||||
<string name="notes_deletion_successful">Se șterge folderul cu note întregi</string>
|
||||
<string name="notes_deletion_unsuccessful">Unele fișiere nu au fost șterse</string>
|
||||
<string name="books_count">%d carte(ți)</string>
|
||||
<string name="discovery_initiated">Descoperire inițiată</string>
|
||||
<string name="discovery_failed">Descoperirea a eșuat</string>
|
||||
<string name="severe_loss_error">Eroare majoră! Încercați Dezactivarea/Reactivarea WiFi P2P</string>
|
||||
<string name="connection_failed">Conexiune eșuată</string>
|
||||
<string name="permission_rationale_location">Android are nevoie de permisiunea de geolocalizare pentru a permite aplicației să detecteze dispozitivele din apropiere.</string>
|
||||
<string name="permission_refused_location">Nu se pot găsi dispozitive din apropiere fără permisiuni de geolocalizare</string>
|
||||
<string name="permission_refused_storage">Nu puteți accesa fișiere zim fără permisiunea de stocare</string>
|
||||
<string name="request_enable_location">Activați geolocalizarea pentru a permite detectarea dispozitivelor din apropiere</string>
|
||||
<string name="discovery_needs_location">Nu se pot descoperi colegi fără serviciul de geolocalizare</string>
|
||||
<string name="request_enable_wifi">Activați WiFi P2P din setările sistemului</string>
|
||||
<string name="discovery_needs_wifi">Nu se pot descoperi colegi fără WiFi ON</string>
|
||||
<string name="transfer_to">Transferați fișierele în %s?</string>
|
||||
<string name="device_not_cooperating">Dispozitiv selectat care nu cooperează pentru transfer</string>
|
||||
<string name="file_transfer_complete">Transfer de fișiere completat</string>
|
||||
<string name="error_during_transfer">A apărut o eroare în timpul transferului</string>
|
||||
<string name="error_transferring">Eroare la transferul fișierului %s</string>
|
||||
<string name="get_content_from_nearby_device">Obțineți conținut de pe dispozitivul din apropiere</string>
|
||||
<string name="search_for_peers">Caută dispozitive pentru împerechere</string>
|
||||
<string name="your_device">Dispozitivul tău:</string>
|
||||
<string name="nearby_devices">DISPOZITIVE DIN APROPIERE</string>
|
||||
<string name="no_devices_found">Nu au fost detectate dispozitive. Atingeți butonul de căutare pentru a încerca din nou.</string>
|
||||
<string name="files_for_transfer">FIȘIERE PENTRU TRANSFER</string>
|
||||
<string name="preparing_files">Pregătirea fișierelor pentru transfer ....</string>
|
||||
<string name="performing_handshake">Stabilirea legăturii în curs …</string>
|
||||
<string name="status">Starea</string>
|
||||
<string name="pref_clear_all_notes_summary">Șterge toate notele la toate articolele</string>
|
||||
<string name="pref_clear_all_notes_title">Ștergeți toate notele</string>
|
||||
<string name="tag_pic">Foto</string>
|
||||
<string name="tag_vid">Video</string>
|
||||
<string name="tag_text_only">Doar Text</string>
|
||||
<string name="tag_short_text">Text Scurt</string>
|
||||
<string name="storage_permission_denied">Permisiunea de Stocare Refuzată</string>
|
||||
<string name="grant_read_storage_permission">Această aplicație necesită posibilitatea de a citi stocarea pentru a funcționa. Vă rugăm să acordați permisiunea în setările dvs.</string>
|
||||
<string name="go_to_settings">Accesați Setările Hotspot</string>
|
||||
<string name="no_results">Niciun rezultat</string>
|
||||
<string name="no_bookmarks">Nici un semn de carte</string>
|
||||
<string name="no_history">Fără Istorie</string>
|
||||
<string name="device_default">Dispozitiv prestabilit</string>
|
||||
<string name="delete_history">Șterge istoricul?</string>
|
||||
<string name="delete_bookmarks">Ștergeți semnele de carte?</string>
|
||||
<string name="on">Pornit</string>
|
||||
<string name="off">Oprit</string>
|
||||
<string name="auto">Auto</string>
|
||||
<string name="send_report">Trimite raport de diagnostic</string>
|
||||
<string name="crash_checkbox_file_system">Detalii Sistem Fișiere</string>
|
||||
<string name="diagnostic_report">Raport Diagnostic</string>
|
||||
<string name="diagnostic_report_message">Vă rugăm să trimiteți toate următoarele detalii, astfel încât să putem diagnostica problema</string>
|
||||
</resources>
|
||||
|
@ -4,6 +4,7 @@
|
||||
* Alexander Yukal
|
||||
* Avd2ev
|
||||
* DevilishSkull
|
||||
* Diman Russkov
|
||||
* Facenapalm
|
||||
* Fitoschido
|
||||
* Gehhrr
|
||||
@ -33,6 +34,7 @@
|
||||
<string name="choose_file">Выберите файл содержимого (*.zim)</string>
|
||||
<string name="open_in_new_tab">Открыть ссылку в новой вкладке?</string>
|
||||
<string name="server_stopped_successfully_toast_message">Сервер успешно остановлен.</string>
|
||||
<string name="wifi_dialog_title">Обнаружено Wi-Fi подключение</string>
|
||||
<string name="error_file_not_found">Ошибка: выбранный ZIM-файл не найден.</string>
|
||||
<string name="error_file_invalid">Ошибка: Выбранный файл не является пригодным ZIM-файлом.</string>
|
||||
<string name="error_article_url_not_found">Ошибка: Загрузка статьи (Url: %1$s) не удалась.</string>
|
||||
|
@ -48,6 +48,8 @@
|
||||
<string name="server_textview_default_message">Sunucuda barındırmak istediğiniz dosyaları seçin</string>
|
||||
<string name="progress_dialog_starting_server">Sunucu başlatılıyor</string>
|
||||
<string name="hotspot_dialog_title">Kitap barındırma talimatları</string>
|
||||
<string name="wifi_dialog_title">WiFi bağlantı algılandı</string>
|
||||
<string name="wifi_dialog_body">Diğer cihazlardaki kitapları görüntülemek için lütfen tüm cihazların aynı WiFi Ağına bağlı olduğundan emin olun.</string>
|
||||
<string name="hotspot_dialog_message">Bu özelliğin çalışması için önce WIFI etkin noktanızı manüel olarak açmanız veya ana cihaz ile alıcı cihazın aynı WiFi ağında olduğundan emin olmanız gerekir</string>
|
||||
<string name="hotspot_dialog_neutral_button">İLERLENDİ</string>
|
||||
<string name="hotspot_channel_description">Hotspot/sunucunuzun durumu ile ilgili güncellemeler.</string>
|
||||
|
@ -42,6 +42,8 @@
|
||||
<string name="server_textview_default_message">選擇您想要在伺服器上託管的檔案</string>
|
||||
<string name="progress_dialog_starting_server">開啟伺服器中</string>
|
||||
<string name="hotspot_dialog_title">書籍託管說明</string>
|
||||
<string name="wifi_dialog_title">偵測到 WiFi 連線</string>
|
||||
<string name="wifi_dialog_body">為了在其它設備上檢視書籍,請確認所有的設備都是連線到相同的 WiFi 網路。</string>
|
||||
<string name="hotspot_dialog_message">要讓此功能運作的話,您需要先手動將您的 WIFI 熱點開啟,或是確認主機設備與接收設備是在同一個 WiFi 網路上</string>
|
||||
<string name="hotspot_dialog_neutral_button">前往</string>
|
||||
<string name="hotspot_channel_description">關於您的熱點/伺服器狀態的更新。</string>
|
||||
@ -224,7 +226,7 @@
|
||||
<string name="discovery_initiated">初始偵測</string>
|
||||
<string name="discovery_failed">偵測失敗</string>
|
||||
<string name="severe_loss_error">嚴重錯誤!請嘗試停用/重新啟用 WiFi P2P</string>
|
||||
<string name="connection_failed">連接失敗</string>
|
||||
<string name="connection_failed">連線失敗</string>
|
||||
<string name="permission_rationale_location">Android 需要位置權限來允許應用程式去偵測端點設備</string>
|
||||
<string name="permission_refused_location">沒有位置權限無法定位端點設備</string>
|
||||
<string name="permission_refused_storage">沒有儲存權限無法存取 zim 檔案</string>
|
||||
|
@ -5,6 +5,7 @@
|
||||
* Akagisoy
|
||||
* Josephine W.
|
||||
* Liuxinyu970226
|
||||
* SomeyaMako
|
||||
* VulpesVulpes825
|
||||
* Yfdyh000
|
||||
* Ywang
|
||||
@ -30,6 +31,7 @@
|
||||
<string name="choose_file">选择一个内容文件(*.zim)</string>
|
||||
<string name="open_in_new_tab">在新标签页打开链接?</string>
|
||||
<string name="go_to_wifi_settings_label">转到WIFI设置</string>
|
||||
<string name="wifi_dialog_title">检测到Wi-Fi连接</string>
|
||||
<string name="error_file_not_found">错误:找不到选定的ZIM文件。</string>
|
||||
<string name="error_file_invalid">错误:选定的文件不是有效ZIM文件。</string>
|
||||
<string name="error_article_url_not_found">错误:加载条目(网址:%1$s)失败。</string>
|
||||
@ -165,6 +167,6 @@
|
||||
<string name="status">状态</string>
|
||||
<string name="pref_clear_all_notes_title">清空所有备注</string>
|
||||
<string name="storage_permission_denied">存储权限被拒绝</string>
|
||||
<string name="go_to_settings" fuzzy="true">转到设置</string>
|
||||
<string name="go_to_settings">转到热点设置</string>
|
||||
<string name="no_bookmarks">没有书签</string>
|
||||
</resources>
|
||||
|
@ -273,6 +273,8 @@
|
||||
<string name="crash_checkbox_file_system">File System Details</string>
|
||||
<string name="diagnostic_report">Diagnostic Report</string>
|
||||
<string name="diagnostic_report_message">Please send all the following details so we can diagnose the problem</string>
|
||||
<string name="percentage">%d%%</string>
|
||||
<string name="pref_text_zoom_title">Text Zoom</string>
|
||||
<string-array name="pref_night_modes_entries">
|
||||
<item>@string/on</item>
|
||||
<item>@string/off</item>
|
||||
|
@ -1,7 +1,10 @@
|
||||
<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"
|
||||
app:iconSpaceReserved="false">
|
||||
<PreferenceCategory
|
||||
android:key="pref_display"
|
||||
android:title="@string/pref_display_title">
|
||||
android:title="@string/pref_display_title"
|
||||
app:iconSpaceReserved="false">
|
||||
|
||||
<ListPreference
|
||||
android:defaultValue="-1"
|
||||
@ -9,90 +12,113 @@
|
||||
android:entryValues="@array/pref_night_modes_values"
|
||||
android:key="pref_night_mode"
|
||||
android:summary="@string/pref_night_mode_summary"
|
||||
android:title="@string/pref_night_mode" />
|
||||
android:title="@string/pref_night_mode"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<org.kiwix.kiwixmobile.core.settings.CustomSwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="pref_backtotop"
|
||||
android:summary="@string/pref_back_to_top_summary"
|
||||
android:title="@string/pref_back_to_top" />
|
||||
android:title="@string/pref_back_to_top"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<org.kiwix.kiwixmobile.core.settings.CustomSwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="pref_hidetoolbar"
|
||||
android:summary="@string/pref_hide_toolbar_summary"
|
||||
android:title="@string/pref_hide_toolbar" />
|
||||
android:title="@string/pref_hide_toolbar"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<SeekBarPreference
|
||||
android:defaultValue="2"
|
||||
android:max="6"
|
||||
app:iconSpaceReserved="false"
|
||||
app:key="text_zoom"
|
||||
app:title="@string/pref_text_zoom_title"
|
||||
app:updatesContinuously="true" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="pref_extras"
|
||||
android:title="@string/pref_extras">
|
||||
android:title="@string/pref_extras"
|
||||
app:iconSpaceReserved="false">
|
||||
|
||||
<org.kiwix.kiwixmobile.core.settings.CustomSwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="pref_newtab_background"
|
||||
android:summary="@string/pref_newtab_background_summary"
|
||||
android:title="@string/pref_newtab_background_title" />
|
||||
android:title="@string/pref_newtab_background_title"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<org.kiwix.kiwixmobile.core.settings.CustomSwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="pref_external_link_popup"
|
||||
android:summary="@string/pref_external_link_popup_summary"
|
||||
android:title="@string/pref_external_link_popup_title" />
|
||||
android:title="@string/pref_external_link_popup_title"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<org.kiwix.kiwixmobile.core.settings.CustomSwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="pref_wifi_only"
|
||||
android:summary="@string/pref_wifi_only"
|
||||
android:title="@string/pref_wifi_only" />
|
||||
android:title="@string/pref_wifi_only"
|
||||
app:iconSpaceReserved="false" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="pref_storage"
|
||||
android:title="@string/pref_storage">
|
||||
app:title="@string/pref_storage"
|
||||
app:iconSpaceReserved="false">
|
||||
|
||||
<Preference
|
||||
android:key="pref_select_folder"
|
||||
android:title="@string/pref_current_folder" />
|
||||
android:title="@string/pref_current_folder"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="pref_history"
|
||||
android:title="History">
|
||||
android:title="History"
|
||||
app:iconSpaceReserved="false">
|
||||
|
||||
<Preference
|
||||
android:key="pref_clear_all_history"
|
||||
android:summary="@string/pref_clear_all_history_summary"
|
||||
android:title="@string/pref_clear_all_history_title" />
|
||||
android:title="@string/pref_clear_all_history_title"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:key="pref_notes"
|
||||
android:title="Notes">
|
||||
android:title="Notes"
|
||||
app:iconSpaceReserved="false">
|
||||
|
||||
<Preference
|
||||
android:key="pref_clear_all_notes"
|
||||
android:summary="@string/pref_clear_all_notes_summary"
|
||||
android:title="@string/pref_clear_all_notes_title" />
|
||||
android:title="@string/pref_clear_all_notes_title"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory
|
||||
android:key="pref_language"
|
||||
android:title="@string/pref_language_title">
|
||||
android:title="@string/pref_language_title"
|
||||
app:iconSpaceReserved="false">
|
||||
|
||||
<ListPreference
|
||||
android:key="pref_language_chooser"
|
||||
android:summary="@string/pref_language_chooser"
|
||||
android:title="@string/pref_language_title" />
|
||||
android:title="@string/pref_language_title"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="pref_info"
|
||||
android:title="@string/pref_info_title">
|
||||
android:title="@string/pref_info_title"
|
||||
app:iconSpaceReserved="false">
|
||||
|
||||
<EditTextPreference
|
||||
android:enabled="false"
|
||||
@ -100,12 +126,14 @@
|
||||
android:persistent="false"
|
||||
android:selectable="true"
|
||||
android:shouldDisableView="false"
|
||||
android:title="@string/pref_info_version" />
|
||||
android:title="@string/pref_info_version"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<Preference
|
||||
android:key="pref_credits"
|
||||
android:summary="@string/pref_credits"
|
||||
android:title="@string/pref_credits_title" />
|
||||
android:title="@string/pref_credits_title"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
|
@ -19,22 +19,20 @@
|
||||
package org.kiwix.kiwixmobile.custom.settings
|
||||
|
||||
import android.os.Bundle
|
||||
import android.preference.PreferenceCategory
|
||||
import org.kiwix.kiwixmobile.core.settings.CorePrefsFragment
|
||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil.PREF_LANG
|
||||
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil.PREF_WIFI_ONLY
|
||||
import org.kiwix.kiwixmobile.custom.BuildConfig
|
||||
|
||||
class CustomPrefsFragment : CorePrefsFragment() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
if (BuildConfig.ENFORCED_LANG == "") {
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
super.onCreatePreferences(savedInstanceState, rootKey)
|
||||
if (BuildConfig.ENFORCED_LANG.isEmpty()) {
|
||||
setUpLanguageChooser(PREF_LANG)
|
||||
} else {
|
||||
preferenceScreen.removePreference(findPreference("pref_language"))
|
||||
}
|
||||
|
||||
val notificationsCategory = findPreference("pref_extras") as PreferenceCategory
|
||||
notificationsCategory.removePreference(findPreference("pref_wifi_only"))
|
||||
preferenceScreen.removePreference(findPreference(PREF_WIFI_ONLY))
|
||||
}
|
||||
|
||||
override fun setStorage() {
|
||||
|
9
custom/src/main/res/values-ro/strings.xml
Normal file
9
custom/src/main/res/values-ro/strings.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Authors:
|
||||
* MSClaudiu
|
||||
-->
|
||||
<resources>
|
||||
<string name="retry">Reîncercați</string>
|
||||
<string name="download">Descarcă</string>
|
||||
<string name="invalid_installation">Instalare nevalidă. Vă rugăm să descărcați Zim.\n Asigurați-vă că WiFi este activ și aveți suficient spațiu de stocare</string>
|
||||
</resources>
|
Loading…
x
Reference in New Issue
Block a user