mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-20 10:23:30 -04:00
Merge pull request #1830 from yashk2000/feature/yashk2000/1829-rtl-support
Fix #1829 Improve RTL support
This commit is contained in:
commit
3c175913e3
@ -8,7 +8,8 @@
|
||||
<application
|
||||
android:name=".KiwixApp"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:roundIcon="@mipmap/ic_launcher_round">
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true">
|
||||
<activity
|
||||
android:name=".splash.KiwixSplashActivity"
|
||||
android:label="@string/app_name"
|
||||
|
@ -20,8 +20,6 @@ package org.kiwix.kiwixmobile.zim_manager.fileselect_view
|
||||
|
||||
import android.Manifest
|
||||
import android.content.pm.PackageManager
|
||||
import android.os.Build.VERSION
|
||||
import android.os.Build.VERSION_CODES
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
@ -157,8 +155,7 @@ class ZimFileSelectFragment : BaseFragment() {
|
||||
if (ContextCompat.checkSelfPermission(
|
||||
activity!!,
|
||||
Manifest.permission.READ_EXTERNAL_STORAGE
|
||||
) != PackageManager.PERMISSION_GRANTED &&
|
||||
VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN
|
||||
) != PackageManager.PERMISSION_GRANTED
|
||||
) {
|
||||
context.toast(R.string.request_storage)
|
||||
requestPermissions(
|
||||
|
@ -15,18 +15,17 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginLeft="15dp"
|
||||
android:background="@android:color/transparent"
|
||||
android:paddingLeft="5dp"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingTop="5dp"
|
||||
android:paddingRight="5dp"
|
||||
android:paddingEnd="5dp"
|
||||
android:paddingBottom="1dp"
|
||||
android:text="@string/your_device"
|
||||
android:textSize="13sp"
|
||||
android:textStyle="italic"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/app_bar" />
|
||||
|
||||
<TextView
|
||||
@ -34,17 +33,16 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginLeft="15dp"
|
||||
android:background="@android:color/transparent"
|
||||
android:paddingLeft="5dp"
|
||||
android:paddingRight="5dp"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingEnd="5dp"
|
||||
android:paddingBottom="5dp"
|
||||
android:textIsSelectable="true"
|
||||
android:textSize="17sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_view_your_device"
|
||||
tools:hint="Device Name" />
|
||||
|
||||
@ -52,11 +50,11 @@
|
||||
android:id="@+id/view_device_list_boundary"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="2dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:background="@color/accent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_view_device_name" />
|
||||
|
||||
<TextView
|
||||
@ -69,8 +67,8 @@
|
||||
android:text="@string/nearby_devices"
|
||||
android:textSize="16sp"
|
||||
app:fontFamily="monospace"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/view_device_list_boundary" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
@ -79,8 +77,8 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/transparent"
|
||||
android:visibility="invisible"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_view_available_device"
|
||||
app:layout_constraintVertical_bias="0.0" />
|
||||
|
||||
@ -92,8 +90,8 @@
|
||||
android:background="@android:color/transparent"
|
||||
android:gravity="center"
|
||||
android:text="@string/no_devices_found"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_view_available_device" />
|
||||
|
||||
<ProgressBar
|
||||
@ -104,21 +102,21 @@
|
||||
android:background="@android:color/transparent"
|
||||
android:indeterminate="true"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_view_available_device" />
|
||||
|
||||
<View
|
||||
android:id="@+id/view_file_list_boundary"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginTop="200dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:background="@color/accent"
|
||||
app:layout_constraintBottom_toTopOf="@+id/text_view_files_for_transfer"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_view_available_device" />
|
||||
|
||||
<TextView
|
||||
@ -132,8 +130,8 @@
|
||||
android:textSize="16sp"
|
||||
app:fontFamily="monospace"
|
||||
app:layout_constraintBottom_toTopOf="@id/recycler_view_transfer_files"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/view_file_list_boundary" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
@ -142,8 +140,8 @@
|
||||
android:layout_height="0dp"
|
||||
android:background="@android:color/transparent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/text_view_files_for_transfer" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
@ -14,7 +14,6 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:text="@string/server_textview_default_message"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
@ -28,8 +27,8 @@
|
||||
android:layout_marginBottom="8dp"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||
app:layout_constraintBottom_toTopOf="@+id/startServerButton"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/serverTextView" />
|
||||
|
||||
<Button
|
||||
|
@ -6,16 +6,16 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="?android:attr/listPreferredItemHeight"
|
||||
android:orientation="horizontal"
|
||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||
android:paddingStart="@dimen/activity_horizontal_margin"
|
||||
android:paddingTop="@dimen/activity_vertical_margin"
|
||||
android:paddingRight="@dimen/activity_horizontal_margin">
|
||||
android:paddingEnd="@dimen/activity_horizontal_margin">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/libraryDownloadFavicon"
|
||||
android:layout_width="@dimen/favicon_width"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginRight="@dimen/favicon_margin_right"
|
||||
android:layout_marginEnd="@dimen/favicon_margin_right"
|
||||
android:adjustViewBounds="true"
|
||||
android:minHeight="?android:attr/listPreferredItemHeight"
|
||||
android:scaleType="fitCenter"
|
||||
@ -85,8 +85,8 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginLeft="@dimen/stop_horizontal_margin"
|
||||
android:layout_marginRight="@dimen/stop_horizontal_margin"
|
||||
android:layout_marginStart="@dimen/stop_horizontal_margin"
|
||||
android:layout_marginEnd="@dimen/stop_horizontal_margin"
|
||||
android:layout_weight="0.5"
|
||||
android:minWidth="@dimen/stop_min_width"
|
||||
android:minHeight="@dimen/stop_min_height"
|
||||
|
@ -13,8 +13,8 @@
|
||||
android:id="@+id/libraryBookFavicon"
|
||||
android:layout_width="@dimen/favicon_width"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/activity_horizontal_margin"
|
||||
android:layout_marginRight="@dimen/favicon_margin_right"
|
||||
android:layout_marginStart="@dimen/activity_horizontal_margin"
|
||||
android:layout_marginEnd="@dimen/favicon_margin_right"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@mipmap/ic_launcher"
|
||||
@ -28,7 +28,7 @@
|
||||
style="@style/list_item_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/favicon_margin_right"
|
||||
android:layout_marginStart="@dimen/favicon_margin_right"
|
||||
android:layout_marginTop="@dimen/activity_horizontal_margin"
|
||||
app:layout_constraintStart_toEndOf="@+id/libraryBookFavicon"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
@ -39,7 +39,7 @@
|
||||
style="@style/list_item_body"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="@dimen/activity_horizontal_margin"
|
||||
android:layout_marginEnd="@dimen/activity_horizontal_margin"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@+id/libraryBookTitle"
|
||||
app:layout_constraintTop_toBottomOf="@+id/libraryBookTitle"
|
||||
@ -79,7 +79,7 @@
|
||||
style="@style/list_item_body"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="@dimen/activity_horizontal_margin"
|
||||
android:layout_marginEnd="@dimen/activity_horizontal_margin"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/libraryBookSize"
|
||||
tools:text="Date" />
|
||||
|
@ -12,15 +12,15 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/transparent"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingLeft="5dp"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingRight="5dp"
|
||||
android:paddingEnd="5dp"
|
||||
android:paddingBottom="1dp"
|
||||
android:textIsSelectable="true"
|
||||
android:textSize="14sp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:hint="File name" />
|
||||
|
||||
@ -29,16 +29,15 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:background="@android:color/transparent"
|
||||
android:paddingLeft="5dp"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingEnd="5dp"
|
||||
android:paddingRight="5dp"
|
||||
android:paddingBottom="1dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintHorizontal_bias="1.0"
|
||||
app:layout_constraintLeft_toRightOf="@id/text_view_file_item_name"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/text_view_file_item_name"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
@ -46,18 +45,16 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:layout_marginRight="12dp"
|
||||
android:background="@android:color/transparent"
|
||||
android:contentDescription="@string/status"
|
||||
android:paddingLeft="5dp"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingEnd="5dp"
|
||||
android:paddingRight="5dp"
|
||||
android:paddingBottom="1dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintHorizontal_bias="1.0"
|
||||
app:layout_constraintLeft_toRightOf="@id/text_view_file_item_name"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/text_view_file_item_name"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:srcCompat="@drawable/ic_baseline_wait_24px" />
|
||||
|
||||
|
@ -4,9 +4,9 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="?android:attr/listPreferredItemHeight"
|
||||
android:orientation="horizontal"
|
||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||
android:paddingStart="@dimen/activity_horizontal_margin"
|
||||
android:paddingTop="@dimen/activity_vertical_margin"
|
||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||
android:paddingEnd="@dimen/activity_horizontal_margin"
|
||||
android:paddingBottom="@dimen/dimen_medium_padding">
|
||||
|
||||
<TextView
|
||||
|
@ -13,9 +13,9 @@
|
||||
android:layout_weight="3"
|
||||
android:background="@android:color/transparent"
|
||||
android:gravity="center_horizontal"
|
||||
android:paddingLeft="5dp"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingRight="5dp"
|
||||
android:paddingEnd="5dp"
|
||||
android:paddingBottom="1dp"
|
||||
android:textIsSelectable="false"
|
||||
android:textSize="17sp"
|
||||
|
@ -20,7 +20,7 @@ import org.gradle.api.JavaVersion
|
||||
|
||||
object Config {
|
||||
const val compileSdk = 28
|
||||
const val minSdk = 15
|
||||
const val minSdk = 17
|
||||
const val targetSdk = 28
|
||||
val javaVersion = JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
@ -138,9 +138,6 @@ public abstract class CoreApp extends Application {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
|
||||
builder.detectFileUriExposure();
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
||||
builder.detectLeakedRegistrationObjects();
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||
builder.detectNonSdkApiUsage();
|
||||
}
|
||||
@ -148,6 +145,7 @@ public abstract class CoreApp extends Application {
|
||||
.detectLeakedClosableObjects()
|
||||
.detectLeakedSqlLiteObjects()
|
||||
.penaltyLog()
|
||||
.detectLeakedRegistrationObjects()
|
||||
.build();
|
||||
}
|
||||
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
package org.kiwix.kiwixmobile.core.main;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
import android.text.Editable;
|
||||
@ -53,7 +54,7 @@ public class CompatFindActionModeCallback
|
||||
|
||||
private ActionMode actionMode;
|
||||
|
||||
CompatFindActionModeCallback(Context context) {
|
||||
@SuppressLint("InflateParams") CompatFindActionModeCallback(Context context) {
|
||||
customView = LayoutInflater.from(context).inflate(R.layout.webview_search, null);
|
||||
editText = customView.findViewById(R.id.edit);
|
||||
editText.setOnClickListener(this);
|
||||
@ -96,22 +97,18 @@ public class CompatFindActionModeCallback
|
||||
"WebView supplied to CompatFindActionModeCallback cannot be null");
|
||||
}
|
||||
this.webView = webView;
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
||||
findResultsTextView.setVisibility(View.VISIBLE);
|
||||
this.webView.setFindListener((activeMatchOrdinal, numberOfMatches, isDoneCounting) -> {
|
||||
String result;
|
||||
if (editText.getText().toString().isEmpty()) {
|
||||
result = "";
|
||||
} else if (numberOfMatches == 0) {
|
||||
result = "0/0";
|
||||
} else {
|
||||
result = (activeMatchOrdinal + 1) + "/" + numberOfMatches;
|
||||
}
|
||||
findResultsTextView.setText(result);
|
||||
});
|
||||
} else {
|
||||
findResultsTextView.setVisibility(View.GONE);
|
||||
}
|
||||
findResultsTextView.setVisibility(View.VISIBLE);
|
||||
this.webView.setFindListener((activeMatchOrdinal, numberOfMatches, isDoneCounting) -> {
|
||||
String result;
|
||||
if (editText.getText().toString().isEmpty()) {
|
||||
result = "";
|
||||
} else if (numberOfMatches == 0) {
|
||||
result = "0/0";
|
||||
} else {
|
||||
result = (activeMatchOrdinal + 1) + "/" + numberOfMatches;
|
||||
}
|
||||
findResultsTextView.setText(result);
|
||||
});
|
||||
}
|
||||
|
||||
// Move the highlight to the next match.
|
||||
@ -134,17 +131,9 @@ public class CompatFindActionModeCallback
|
||||
CharSequence find = editText.getText();
|
||||
if (find == null || find.length() == 0) {
|
||||
webView.clearMatches();
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
||||
webView.findAllAsync("");
|
||||
} else {
|
||||
webView.findAll("");
|
||||
}
|
||||
webView.findAllAsync("");
|
||||
} else {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
||||
webView.findAllAsync(find.toString());
|
||||
} else {
|
||||
webView.findAll(find.toString());
|
||||
}
|
||||
webView.findAllAsync(find.toString());
|
||||
|
||||
// Enable word highlighting with reflection
|
||||
try {
|
||||
|
@ -1107,13 +1107,11 @@ public abstract class CoreMainActivity extends BaseActivity
|
||||
}
|
||||
|
||||
private void requestExternalStoragePermission() {
|
||||
if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) {
|
||||
ActivityCompat.requestPermissions(
|
||||
this,
|
||||
new String[] { Manifest.permission.READ_EXTERNAL_STORAGE },
|
||||
REQUEST_STORAGE_PERMISSION
|
||||
);
|
||||
}
|
||||
ActivityCompat.requestPermissions(
|
||||
this,
|
||||
new String[] { Manifest.permission.READ_EXTERNAL_STORAGE },
|
||||
REQUEST_STORAGE_PERMISSION
|
||||
);
|
||||
}
|
||||
|
||||
private void openAndSetInContainer(File file) {
|
||||
|
@ -108,9 +108,7 @@ public class KiwixTextToSpeech {
|
||||
currentTTSTask = null;
|
||||
} else if (tts.isSpeaking()) {
|
||||
if (tts.stop() == TextToSpeech.SUCCESS) {
|
||||
if (VERSION.SDK_INT >= VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
|
||||
tts.setOnUtteranceProgressListener(null);
|
||||
}
|
||||
tts.setOnUtteranceProgressListener(null);
|
||||
onSpeakingListener.onSpeakingEnded();
|
||||
}
|
||||
} else {
|
||||
@ -172,9 +170,7 @@ public class KiwixTextToSpeech {
|
||||
public void stop() {
|
||||
if (tts.stop() == TextToSpeech.SUCCESS) {
|
||||
currentTTSTask = null;
|
||||
if (VERSION.SDK_INT >= VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
|
||||
tts.setOnUtteranceProgressListener(null);
|
||||
}
|
||||
tts.setOnUtteranceProgressListener(null);
|
||||
onSpeakingListener.onSpeakingEnded();
|
||||
}
|
||||
}
|
||||
@ -260,9 +256,7 @@ public class KiwixTextToSpeech {
|
||||
void pause() {
|
||||
paused = true;
|
||||
currentPiece.decrementAndGet();
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
|
||||
tts.setOnUtteranceProgressListener(null);
|
||||
}
|
||||
tts.setOnUtteranceProgressListener(null);
|
||||
tts.stop();
|
||||
}
|
||||
|
||||
@ -285,33 +279,31 @@ public class KiwixTextToSpeech {
|
||||
stop();
|
||||
}
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
|
||||
tts.setOnUtteranceProgressListener(new UtteranceProgressListener() {
|
||||
@Override
|
||||
public void onStart(String s) {
|
||||
tts.setOnUtteranceProgressListener(new UtteranceProgressListener() {
|
||||
@Override
|
||||
public void onStart(String s) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDone(String s) {
|
||||
int line = currentPiece.intValue();
|
||||
|
||||
if (line >= pieces.size() && !paused) {
|
||||
stop();
|
||||
return;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDone(String s) {
|
||||
int line = currentPiece.intValue();
|
||||
tts.speak(pieces.get(line), TextToSpeech.QUEUE_ADD, params);
|
||||
currentPiece.getAndIncrement();
|
||||
}
|
||||
|
||||
if (line >= pieces.size() && !paused) {
|
||||
stop();
|
||||
return;
|
||||
}
|
||||
|
||||
tts.speak(pieces.get(line), TextToSpeech.QUEUE_ADD, params);
|
||||
currentPiece.getAndIncrement();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String s) {
|
||||
Log.e(TAG_KIWIX, "TextToSpeech Error: " + s);
|
||||
//TODO: Surface to user
|
||||
}
|
||||
});
|
||||
}
|
||||
@Override
|
||||
public void onError(String s) {
|
||||
Log.e(TAG_KIWIX, "TextToSpeech Error: " + s);
|
||||
//TODO: Surface to user
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void stop() {
|
||||
|
@ -84,9 +84,7 @@ public class KiwixWebView extends VideoEnabledWebView {
|
||||
settings.setDomStorageEnabled(true);
|
||||
settings.setJavaScriptEnabled(true);
|
||||
clearCache(true);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
||||
settings.setAllowUniversalAccessFromFileURLs(true);
|
||||
}
|
||||
settings.setAllowUniversalAccessFromFileURLs(true);
|
||||
setWebViewClient(webViewClient);
|
||||
final KiwixWebChromeClient client =
|
||||
new KiwixWebChromeClient(callback, nonVideoView, videoView, this);
|
||||
@ -191,7 +189,7 @@ public class KiwixWebView extends VideoEnabledWebView {
|
||||
return fileName.substring(fileName.indexOf("%3A") + 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressLint("StringFormatInvalid") @Override
|
||||
public void handleMessage(Message msg) {
|
||||
String url = (String) msg.getData().get("url");
|
||||
String src = (String) msg.getData().get("src");
|
||||
|
@ -243,7 +243,7 @@ public abstract class CorePrefsFragment extends PreferenceFragment implements
|
||||
|
||||
@SuppressLint("SetJavaScriptEnabled")
|
||||
public void openCredits() {
|
||||
WebView view =
|
||||
@SuppressLint("InflateParams") WebView view =
|
||||
(WebView) LayoutInflater.from(getActivity()).inflate(R.layout.credits_webview, null);
|
||||
view.loadUrl("file:///android_asset/credits.html");
|
||||
if (nightModeConfig.isNightModeActive()) {
|
||||
|
@ -102,7 +102,6 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="100dp"
|
||||
android:layout_marginLeft="100dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:checked="true"
|
||||
android:text="@string/crash_checkbox_language"
|
||||
@ -116,7 +115,6 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="100dp"
|
||||
android:layout_marginLeft="100dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:checked="true"
|
||||
android:text="@string/crash_checkbox_logs"
|
||||
@ -130,7 +128,6 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="100dp"
|
||||
android:layout_marginLeft="100dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:checked="true"
|
||||
android:text="@string/crash_checkbox_exception"
|
||||
@ -144,7 +141,6 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="100dp"
|
||||
android:layout_marginLeft="100dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:checked="true"
|
||||
android:text="@string/crash_checkbox_zimfiles"
|
||||
@ -158,7 +154,6 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="100dp"
|
||||
android:layout_marginLeft="100dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:checked="true"
|
||||
android:text="@string/crash_checkbox_device"
|
||||
|
@ -44,7 +44,7 @@
|
||||
android:layout_margin="@dimen/activity_horizontal_margin"
|
||||
android:text="@string/download_books"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent" />
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
|
@ -15,9 +15,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_toEndOf="@id/file_name"
|
||||
android:layout_toRightOf="@id/file_name"
|
||||
android:gravity="end"
|
||||
android:padding="10dp"
|
||||
android:textSize="18sp" />
|
||||
|
@ -11,8 +11,8 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/app_bar">
|
||||
|
||||
<LinearLayout
|
||||
@ -27,17 +27,17 @@
|
||||
android:background="@android:color/transparent"
|
||||
android:hint="@string/wiki_article_title"
|
||||
android:maxLines="1"
|
||||
android:paddingLeft="20dp"
|
||||
android:paddingStart="20dp"
|
||||
android:paddingTop="10dp"
|
||||
android:paddingRight="20dp"
|
||||
android:paddingEnd="20dp"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_marginLeft="15dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginRight="15dp"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:background="#000000" />
|
||||
|
||||
@ -46,13 +46,13 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/transparent"
|
||||
android:gravity="top|left"
|
||||
android:gravity="top|start"
|
||||
android:hint="@string/note"
|
||||
android:inputType="textMultiLine|textCapSentences|textAutoCorrect"
|
||||
android:minLines="6"
|
||||
android:paddingLeft="20dp"
|
||||
android:paddingStart="20dp"
|
||||
android:paddingTop="5dp"
|
||||
android:paddingRight="20dp"
|
||||
android:paddingEnd="20dp"
|
||||
android:paddingBottom="10dp"
|
||||
android:scrollbars="vertical"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1" />
|
||||
|
@ -26,7 +26,6 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingEnd="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@+id/horizontal_padding"
|
||||
@ -92,7 +91,6 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/item_book_title"
|
||||
app:layout_constraintTop_toBottomOf="@id/item_book_date"
|
||||
@ -120,8 +118,8 @@
|
||||
android:layout_height="0dp"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:visibility="gone" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
@ -26,7 +26,6 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/activity_horizontal_margin"
|
||||
android:layout_marginRight="@dimen/activity_horizontal_margin"
|
||||
android:alpha="0.87"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
|
@ -3,8 +3,8 @@
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/kiwix_search_widget_layout_id_height"
|
||||
android:layout_marginLeft="@dimen/kiwix_search_widget_margin"
|
||||
android:layout_marginRight="@dimen/kiwix_search_widget_margin"
|
||||
android:layout_marginStart="@dimen/kiwix_search_widget_margin"
|
||||
android:layout_marginEnd="@dimen/kiwix_search_widget_margin"
|
||||
android:background="@drawable/search_widget_background"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
|
@ -13,14 +13,15 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginLeft="@dimen/title_text_margin"
|
||||
android:layout_marginRight="@dimen/title_text_margin"
|
||||
android:layout_marginStart="@dimen/title_text_margin"
|
||||
android:layout_marginEnd="@dimen/title_text_margin"
|
||||
android:ellipsize="end"
|
||||
android:fontFamily="sans-serif-light"
|
||||
android:gravity="center_vertical"
|
||||
android:maxLines="1"
|
||||
android:minHeight="?listPreferredItemHeightSmall"
|
||||
android:paddingLeft="@dimen/title_text_padding"
|
||||
android:paddingStart="@dimen/title_text_padding"
|
||||
android:paddingEnd="0dp"
|
||||
android:textAppearance="?textAppearanceBody1"
|
||||
tools:text="Some text" />
|
||||
|
||||
|
@ -3,9 +3,9 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="@dimen/slider_dialog_horizontal_padding"
|
||||
android:paddingStart="@dimen/slider_dialog_horizontal_padding"
|
||||
android:paddingTop="@dimen/dimen_medium_padding"
|
||||
android:paddingRight="@dimen/slider_dialog_horizontal_padding"
|
||||
android:paddingEnd="@dimen/slider_dialog_horizontal_padding"
|
||||
android:paddingBottom="@dimen/dimen_medium_padding">
|
||||
|
||||
<TextView
|
||||
|
@ -23,7 +23,7 @@
|
||||
android:id="@+id/edit"
|
||||
android:layout_width="0dip"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="@dimen/webview_search_edit_text_margin_right"
|
||||
android:layout_marginEnd="@dimen/webview_search_edit_text_margin_right"
|
||||
android:layout_weight="1"
|
||||
android:focusableInTouchMode="true"
|
||||
android:hint="@string/search_label"
|
||||
@ -41,7 +41,6 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:layout_marginRight="4dp"
|
||||
android:gravity="center"
|
||||
android:textColor="@android:color/darker_gray"
|
||||
tools:text="2/10" />
|
||||
|
@ -6,7 +6,8 @@
|
||||
<application
|
||||
android:name=".CustomApp"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:roundIcon="@mipmap/ic_launcher_round">
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true">
|
||||
<activity
|
||||
android:name=".splash.CustomSplashActivity"
|
||||
android:label="@string/app_name"
|
||||
|
@ -12,8 +12,8 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="100dp"
|
||||
android:src="@mipmap/ic_launcher_foreground"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ViewAnimator
|
||||
@ -23,8 +23,8 @@
|
||||
android:inAnimation="@android:anim/fade_in"
|
||||
android:outAnimation="@android:anim/fade_out"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/cd_icon">
|
||||
|
||||
<include layout="@layout/layout_custom_download_required" />
|
||||
|
@ -13,8 +13,8 @@
|
||||
android:gravity="center"
|
||||
android:text="@string/complete"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias=".3" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
@ -13,8 +13,8 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias=".3" />
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:text="@string/retry"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/cd_error_text" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
@ -10,8 +10,8 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toTopOf="@id/cd_progress"
|
||||
app:layout_constraintLeft_toLeftOf="@+id/cd_progress"
|
||||
app:layout_constraintRight_toRightOf="@+id/cd_progress" />
|
||||
app:layout_constraintStart_toStartOf="@+id/cd_progress"
|
||||
app:layout_constraintEnd_toEndOf="@+id/cd_progress" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/cd_progress"
|
||||
@ -20,8 +20,8 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:max="100"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias=".3" />
|
||||
|
||||
@ -30,7 +30,6 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/cd_progress"
|
||||
app:layout_constraintStart_toEndOf="@id/cd_progress"
|
||||
app:layout_constraintTop_toTopOf="@id/cd_progress" />
|
||||
|
@ -13,8 +13,8 @@
|
||||
android:gravity="center"
|
||||
android:text="@string/invalid_installation"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_bias=".3" />
|
||||
|
||||
@ -24,8 +24,8 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:text="@string/download"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/cd_text" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
Loading…
x
Reference in New Issue
Block a user