Merge pull request #1830 from yashk2000/feature/yashk2000/1829-rtl-support

Fix #1829 Improve RTL support
This commit is contained in:
Seán Mac Gillicuddy 2020-03-09 16:24:15 +00:00 committed by GitHub
commit 3c175913e3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
32 changed files with 147 additions and 190 deletions

View File

@ -8,7 +8,8 @@
<application <application
android:name=".KiwixApp" android:name=".KiwixApp"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"> android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true">
<activity <activity
android:name=".splash.KiwixSplashActivity" android:name=".splash.KiwixSplashActivity"
android:label="@string/app_name" android:label="@string/app_name"

View File

@ -20,8 +20,6 @@ package org.kiwix.kiwixmobile.zim_manager.fileselect_view
import android.Manifest import android.Manifest
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.os.Build.VERSION
import android.os.Build.VERSION_CODES
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
@ -157,8 +155,7 @@ class ZimFileSelectFragment : BaseFragment() {
if (ContextCompat.checkSelfPermission( if (ContextCompat.checkSelfPermission(
activity!!, activity!!,
Manifest.permission.READ_EXTERNAL_STORAGE Manifest.permission.READ_EXTERNAL_STORAGE
) != PackageManager.PERMISSION_GRANTED && ) != PackageManager.PERMISSION_GRANTED
VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN
) { ) {
context.toast(R.string.request_storage) context.toast(R.string.request_storage)
requestPermissions( requestPermissions(

View File

@ -15,18 +15,17 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="15dp" android:layout_marginStart="15dp"
android:layout_marginLeft="15dp"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:paddingLeft="5dp" android:paddingStart="5dp"
android:paddingTop="5dp" android:paddingTop="5dp"
android:paddingRight="5dp" android:paddingEnd="5dp"
android:paddingBottom="1dp" android:paddingBottom="1dp"
android:text="@string/your_device" android:text="@string/your_device"
android:textSize="13sp" android:textSize="13sp"
android:textStyle="italic" android:textStyle="italic"
app:layout_constraintHorizontal_bias="0.0" app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/app_bar" /> app:layout_constraintTop_toBottomOf="@+id/app_bar" />
<TextView <TextView
@ -34,17 +33,16 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="15dp" android:layout_marginStart="15dp"
android:layout_marginLeft="15dp"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:paddingLeft="5dp" android:paddingStart="5dp"
android:paddingRight="5dp" android:paddingEnd="5dp"
android:paddingBottom="5dp" android:paddingBottom="5dp"
android:textIsSelectable="true" android:textIsSelectable="true"
android:textSize="17sp" android:textSize="17sp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintHorizontal_bias="0.0" app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/text_view_your_device" app:layout_constraintTop_toBottomOf="@id/text_view_your_device"
tools:hint="Device Name" /> tools:hint="Device Name" />
@ -52,11 +50,11 @@
android:id="@+id/view_device_list_boundary" android:id="@+id/view_device_list_boundary"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="2dp" android:layout_height="2dp"
android:layout_marginLeft="5dp" android:layout_marginStart="5dp"
android:layout_marginRight="5dp" android:layout_marginEnd="5dp"
android:background="@color/accent" android:background="@color/accent"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/text_view_device_name" /> app:layout_constraintTop_toBottomOf="@id/text_view_device_name" />
<TextView <TextView
@ -69,8 +67,8 @@
android:text="@string/nearby_devices" android:text="@string/nearby_devices"
android:textSize="16sp" android:textSize="16sp"
app:fontFamily="monospace" app:fontFamily="monospace"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/view_device_list_boundary" /> app:layout_constraintTop_toBottomOf="@id/view_device_list_boundary" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
@ -79,8 +77,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:visibility="invisible" android:visibility="invisible"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/text_view_available_device" app:layout_constraintTop_toBottomOf="@id/text_view_available_device"
app:layout_constraintVertical_bias="0.0" /> app:layout_constraintVertical_bias="0.0" />
@ -92,8 +90,8 @@
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:gravity="center" android:gravity="center"
android:text="@string/no_devices_found" android:text="@string/no_devices_found"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/text_view_available_device" /> app:layout_constraintTop_toBottomOf="@id/text_view_available_device" />
<ProgressBar <ProgressBar
@ -104,21 +102,21 @@
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:indeterminate="true" android:indeterminate="true"
android:visibility="gone" android:visibility="gone"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/text_view_available_device" /> app:layout_constraintTop_toBottomOf="@id/text_view_available_device" />
<View <View
android:id="@+id/view_file_list_boundary" android:id="@+id/view_file_list_boundary"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1dp" android:layout_height="1dp"
android:layout_marginLeft="5dp" android:layout_marginStart="5dp"
android:layout_marginTop="200dp" android:layout_marginTop="200dp"
android:layout_marginRight="5dp" android:layout_marginEnd="5dp"
android:background="@color/accent" android:background="@color/accent"
app:layout_constraintBottom_toTopOf="@+id/text_view_files_for_transfer" app:layout_constraintBottom_toTopOf="@+id/text_view_files_for_transfer"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/text_view_available_device" /> app:layout_constraintTop_toBottomOf="@id/text_view_available_device" />
<TextView <TextView
@ -132,8 +130,8 @@
android:textSize="16sp" android:textSize="16sp"
app:fontFamily="monospace" app:fontFamily="monospace"
app:layout_constraintBottom_toTopOf="@id/recycler_view_transfer_files" app:layout_constraintBottom_toTopOf="@id/recycler_view_transfer_files"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/view_file_list_boundary" /> app:layout_constraintTop_toBottomOf="@id/view_file_list_boundary" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
@ -142,8 +140,8 @@
android:layout_height="0dp" android:layout_height="0dp"
android:background="@android:color/transparent" android:background="@android:color/transparent"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/text_view_files_for_transfer" /> app:layout_constraintTop_toBottomOf="@id/text_view_files_for_transfer" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -14,7 +14,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:text="@string/server_textview_default_message" android:text="@string/server_textview_default_message"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -28,8 +27,8 @@
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toTopOf="@+id/startServerButton" app:layout_constraintBottom_toTopOf="@+id/startServerButton"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/serverTextView" /> app:layout_constraintTop_toBottomOf="@+id/serverTextView" />
<Button <Button

View File

@ -6,16 +6,16 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight" android:minHeight="?android:attr/listPreferredItemHeight"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingStart="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" android:paddingTop="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_horizontal_margin"> android:paddingEnd="@dimen/activity_horizontal_margin">
<ImageView <ImageView
android:id="@+id/libraryDownloadFavicon" android:id="@+id/libraryDownloadFavicon"
android:layout_width="@dimen/favicon_width" android:layout_width="@dimen/favicon_width"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginRight="@dimen/favicon_margin_right" android:layout_marginEnd="@dimen/favicon_margin_right"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:minHeight="?android:attr/listPreferredItemHeight" android:minHeight="?android:attr/listPreferredItemHeight"
android:scaleType="fitCenter" android:scaleType="fitCenter"
@ -85,8 +85,8 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/stop_horizontal_margin" android:layout_marginStart="@dimen/stop_horizontal_margin"
android:layout_marginRight="@dimen/stop_horizontal_margin" android:layout_marginEnd="@dimen/stop_horizontal_margin"
android:layout_weight="0.5" android:layout_weight="0.5"
android:minWidth="@dimen/stop_min_width" android:minWidth="@dimen/stop_min_width"
android:minHeight="@dimen/stop_min_height" android:minHeight="@dimen/stop_min_height"

View File

@ -13,8 +13,8 @@
android:id="@+id/libraryBookFavicon" android:id="@+id/libraryBookFavicon"
android:layout_width="@dimen/favicon_width" android:layout_width="@dimen/favicon_width"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/activity_horizontal_margin" android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/favicon_margin_right" android:layout_marginEnd="@dimen/favicon_margin_right"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:scaleType="fitCenter" android:scaleType="fitCenter"
android:src="@mipmap/ic_launcher" android:src="@mipmap/ic_launcher"
@ -28,7 +28,7 @@
style="@style/list_item_title" style="@style/list_item_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="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" android:layout_marginTop="@dimen/activity_horizontal_margin"
app:layout_constraintStart_toEndOf="@+id/libraryBookFavicon" app:layout_constraintStart_toEndOf="@+id/libraryBookFavicon"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
@ -39,7 +39,7 @@
style="@style/list_item_body" style="@style/list_item_body"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="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_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/libraryBookTitle" app:layout_constraintStart_toStartOf="@+id/libraryBookTitle"
app:layout_constraintTop_toBottomOf="@+id/libraryBookTitle" app:layout_constraintTop_toBottomOf="@+id/libraryBookTitle"
@ -79,7 +79,7 @@
style="@style/list_item_body" style="@style/list_item_body"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="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_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/libraryBookSize" app:layout_constraintTop_toTopOf="@+id/libraryBookSize"
tools:text="Date" /> tools:text="Date" />

View File

@ -12,15 +12,15 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:gravity="center_vertical" android:gravity="center_vertical"
android:paddingLeft="5dp" android:paddingStart="5dp"
android:paddingTop="1dp" android:paddingTop="1dp"
android:paddingRight="5dp" android:paddingEnd="5dp"
android:paddingBottom="1dp" android:paddingBottom="1dp"
android:textIsSelectable="true" android:textIsSelectable="true"
android:textSize="14sp" android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.0" app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:hint="File name" /> tools:hint="File name" />
@ -29,16 +29,15 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="0dp" android:layout_height="0dp"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:paddingLeft="5dp" android:paddingStart="5dp"
android:paddingTop="1dp" android:paddingTop="1dp"
android:paddingEnd="5dp" android:paddingEnd="5dp"
android:paddingRight="5dp"
android:paddingBottom="1dp" android:paddingBottom="1dp"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="1.0" app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintLeft_toRightOf="@id/text_view_file_item_name" app:layout_constraintStart_toEndOf="@id/text_view_file_item_name"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<ImageView <ImageView
@ -46,18 +45,16 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginEnd="12dp" android:layout_marginEnd="12dp"
android:layout_marginRight="12dp"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:contentDescription="@string/status" android:contentDescription="@string/status"
android:paddingLeft="5dp" android:paddingStart="5dp"
android:paddingTop="1dp" android:paddingTop="1dp"
android:paddingEnd="5dp" android:paddingEnd="5dp"
android:paddingRight="5dp"
android:paddingBottom="1dp" android:paddingBottom="1dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="1.0" app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintLeft_toRightOf="@id/text_view_file_item_name" app:layout_constraintStart_toEndOf="@id/text_view_file_item_name"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_baseline_wait_24px" /> app:srcCompat="@drawable/ic_baseline_wait_24px" />

View File

@ -4,9 +4,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight" android:minHeight="?android:attr/listPreferredItemHeight"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingStart="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_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"> android:paddingBottom="@dimen/dimen_medium_padding">
<TextView <TextView

View File

@ -13,9 +13,9 @@
android:layout_weight="3" android:layout_weight="3"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:paddingLeft="5dp" android:paddingStart="5dp"
android:paddingTop="1dp" android:paddingTop="1dp"
android:paddingRight="5dp" android:paddingEnd="5dp"
android:paddingBottom="1dp" android:paddingBottom="1dp"
android:textIsSelectable="false" android:textIsSelectable="false"
android:textSize="17sp" android:textSize="17sp"

View File

@ -20,7 +20,7 @@ import org.gradle.api.JavaVersion
object Config { object Config {
const val compileSdk = 28 const val compileSdk = 28
const val minSdk = 15 const val minSdk = 17
const val targetSdk = 28 const val targetSdk = 28
val javaVersion = JavaVersion.VERSION_1_8 val javaVersion = JavaVersion.VERSION_1_8
} }

View File

@ -138,9 +138,6 @@ public abstract class CoreApp extends Application {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
builder.detectFileUriExposure(); builder.detectFileUriExposure();
} }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
builder.detectLeakedRegistrationObjects();
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
builder.detectNonSdkApiUsage(); builder.detectNonSdkApiUsage();
} }
@ -148,6 +145,7 @@ public abstract class CoreApp extends Application {
.detectLeakedClosableObjects() .detectLeakedClosableObjects()
.detectLeakedSqlLiteObjects() .detectLeakedSqlLiteObjects()
.penaltyLog() .penaltyLog()
.detectLeakedRegistrationObjects()
.build(); .build();
} }

View File

@ -18,6 +18,7 @@
package org.kiwix.kiwixmobile.core.main; package org.kiwix.kiwixmobile.core.main;
import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import android.os.Build; import android.os.Build;
import android.text.Editable; import android.text.Editable;
@ -53,7 +54,7 @@ public class CompatFindActionModeCallback
private ActionMode actionMode; private ActionMode actionMode;
CompatFindActionModeCallback(Context context) { @SuppressLint("InflateParams") CompatFindActionModeCallback(Context context) {
customView = LayoutInflater.from(context).inflate(R.layout.webview_search, null); customView = LayoutInflater.from(context).inflate(R.layout.webview_search, null);
editText = customView.findViewById(R.id.edit); editText = customView.findViewById(R.id.edit);
editText.setOnClickListener(this); editText.setOnClickListener(this);
@ -96,22 +97,18 @@ public class CompatFindActionModeCallback
"WebView supplied to CompatFindActionModeCallback cannot be null"); "WebView supplied to CompatFindActionModeCallback cannot be null");
} }
this.webView = webView; this.webView = webView;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { findResultsTextView.setVisibility(View.VISIBLE);
findResultsTextView.setVisibility(View.VISIBLE); this.webView.setFindListener((activeMatchOrdinal, numberOfMatches, isDoneCounting) -> {
this.webView.setFindListener((activeMatchOrdinal, numberOfMatches, isDoneCounting) -> { String result;
String result; if (editText.getText().toString().isEmpty()) {
if (editText.getText().toString().isEmpty()) { result = "";
result = ""; } else if (numberOfMatches == 0) {
} else if (numberOfMatches == 0) { result = "0/0";
result = "0/0"; } else {
} else { result = (activeMatchOrdinal + 1) + "/" + numberOfMatches;
result = (activeMatchOrdinal + 1) + "/" + numberOfMatches; }
} findResultsTextView.setText(result);
findResultsTextView.setText(result); });
});
} else {
findResultsTextView.setVisibility(View.GONE);
}
} }
// Move the highlight to the next match. // Move the highlight to the next match.
@ -134,17 +131,9 @@ public class CompatFindActionModeCallback
CharSequence find = editText.getText(); CharSequence find = editText.getText();
if (find == null || find.length() == 0) { if (find == null || find.length() == 0) {
webView.clearMatches(); webView.clearMatches();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { webView.findAllAsync("");
webView.findAllAsync("");
} else {
webView.findAll("");
}
} else { } else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { webView.findAllAsync(find.toString());
webView.findAllAsync(find.toString());
} else {
webView.findAll(find.toString());
}
// Enable word highlighting with reflection // Enable word highlighting with reflection
try { try {

View File

@ -1107,13 +1107,11 @@ public abstract class CoreMainActivity extends BaseActivity
} }
private void requestExternalStoragePermission() { private void requestExternalStoragePermission() {
if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) { ActivityCompat.requestPermissions(
ActivityCompat.requestPermissions( this,
this, new String[] { Manifest.permission.READ_EXTERNAL_STORAGE },
new String[] { Manifest.permission.READ_EXTERNAL_STORAGE }, REQUEST_STORAGE_PERMISSION
REQUEST_STORAGE_PERMISSION );
);
}
} }
private void openAndSetInContainer(File file) { private void openAndSetInContainer(File file) {

View File

@ -108,9 +108,7 @@ public class KiwixTextToSpeech {
currentTTSTask = null; currentTTSTask = null;
} else if (tts.isSpeaking()) { } else if (tts.isSpeaking()) {
if (tts.stop() == TextToSpeech.SUCCESS) { if (tts.stop() == TextToSpeech.SUCCESS) {
if (VERSION.SDK_INT >= VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { tts.setOnUtteranceProgressListener(null);
tts.setOnUtteranceProgressListener(null);
}
onSpeakingListener.onSpeakingEnded(); onSpeakingListener.onSpeakingEnded();
} }
} else { } else {
@ -172,9 +170,7 @@ public class KiwixTextToSpeech {
public void stop() { public void stop() {
if (tts.stop() == TextToSpeech.SUCCESS) { if (tts.stop() == TextToSpeech.SUCCESS) {
currentTTSTask = null; currentTTSTask = null;
if (VERSION.SDK_INT >= VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { tts.setOnUtteranceProgressListener(null);
tts.setOnUtteranceProgressListener(null);
}
onSpeakingListener.onSpeakingEnded(); onSpeakingListener.onSpeakingEnded();
} }
} }
@ -260,9 +256,7 @@ public class KiwixTextToSpeech {
void pause() { void pause() {
paused = true; paused = true;
currentPiece.decrementAndGet(); currentPiece.decrementAndGet();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { tts.setOnUtteranceProgressListener(null);
tts.setOnUtteranceProgressListener(null);
}
tts.stop(); tts.stop();
} }
@ -285,33 +279,31 @@ public class KiwixTextToSpeech {
stop(); stop();
} }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { tts.setOnUtteranceProgressListener(new UtteranceProgressListener() {
tts.setOnUtteranceProgressListener(new UtteranceProgressListener() { @Override
@Override public void onStart(String s) {
public void onStart(String s) {
}
@Override
public void onDone(String s) {
int line = currentPiece.intValue();
if (line >= pieces.size() && !paused) {
stop();
return;
} }
@Override tts.speak(pieces.get(line), TextToSpeech.QUEUE_ADD, params);
public void onDone(String s) { currentPiece.getAndIncrement();
int line = currentPiece.intValue(); }
if (line >= pieces.size() && !paused) { @Override
stop(); public void onError(String s) {
return; Log.e(TAG_KIWIX, "TextToSpeech Error: " + s);
} //TODO: Surface to user
}
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
}
});
}
} }
void stop() { void stop() {

View File

@ -84,9 +84,7 @@ public class KiwixWebView extends VideoEnabledWebView {
settings.setDomStorageEnabled(true); settings.setDomStorageEnabled(true);
settings.setJavaScriptEnabled(true); settings.setJavaScriptEnabled(true);
clearCache(true); clearCache(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { settings.setAllowUniversalAccessFromFileURLs(true);
settings.setAllowUniversalAccessFromFileURLs(true);
}
setWebViewClient(webViewClient); setWebViewClient(webViewClient);
final KiwixWebChromeClient client = final KiwixWebChromeClient client =
new KiwixWebChromeClient(callback, nonVideoView, videoView, this); new KiwixWebChromeClient(callback, nonVideoView, videoView, this);
@ -191,7 +189,7 @@ public class KiwixWebView extends VideoEnabledWebView {
return fileName.substring(fileName.indexOf("%3A") + 1); return fileName.substring(fileName.indexOf("%3A") + 1);
} }
@Override @SuppressLint("StringFormatInvalid") @Override
public void handleMessage(Message msg) { public void handleMessage(Message msg) {
String url = (String) msg.getData().get("url"); String url = (String) msg.getData().get("url");
String src = (String) msg.getData().get("src"); String src = (String) msg.getData().get("src");

View File

@ -243,7 +243,7 @@ public abstract class CorePrefsFragment extends PreferenceFragment implements
@SuppressLint("SetJavaScriptEnabled") @SuppressLint("SetJavaScriptEnabled")
public void openCredits() { public void openCredits() {
WebView view = @SuppressLint("InflateParams") WebView view =
(WebView) LayoutInflater.from(getActivity()).inflate(R.layout.credits_webview, null); (WebView) LayoutInflater.from(getActivity()).inflate(R.layout.credits_webview, null);
view.loadUrl("file:///android_asset/credits.html"); view.loadUrl("file:///android_asset/credits.html");
if (nightModeConfig.isNightModeActive()) { if (nightModeConfig.isNightModeActive()) {

View File

@ -102,7 +102,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="100dp" android:layout_marginStart="100dp"
android:layout_marginLeft="100dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:checked="true" android:checked="true"
android:text="@string/crash_checkbox_language" android:text="@string/crash_checkbox_language"
@ -116,7 +115,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="100dp" android:layout_marginStart="100dp"
android:layout_marginLeft="100dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:checked="true" android:checked="true"
android:text="@string/crash_checkbox_logs" android:text="@string/crash_checkbox_logs"
@ -130,7 +128,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="100dp" android:layout_marginStart="100dp"
android:layout_marginLeft="100dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:checked="true" android:checked="true"
android:text="@string/crash_checkbox_exception" android:text="@string/crash_checkbox_exception"
@ -144,7 +141,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="100dp" android:layout_marginStart="100dp"
android:layout_marginLeft="100dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:checked="true" android:checked="true"
android:text="@string/crash_checkbox_zimfiles" android:text="@string/crash_checkbox_zimfiles"
@ -158,7 +154,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="100dp" android:layout_marginStart="100dp"
android:layout_marginLeft="100dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:checked="true" android:checked="true"
android:text="@string/crash_checkbox_device" android:text="@string/crash_checkbox_device"

View File

@ -44,7 +44,7 @@
android:layout_margin="@dimen/activity_horizontal_margin" android:layout_margin="@dimen/activity_horizontal_margin"
android:text="@string/download_books" android:text="@string/download_books"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent" /> app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>

View File

@ -15,9 +15,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_toEndOf="@id/file_name" android:layout_toEndOf="@id/file_name"
android:layout_toRightOf="@id/file_name"
android:gravity="end" android:gravity="end"
android:padding="10dp" android:padding="10dp"
android:textSize="18sp" /> android:textSize="18sp" />

View File

@ -11,8 +11,8 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/app_bar"> app:layout_constraintTop_toBottomOf="@+id/app_bar">
<LinearLayout <LinearLayout
@ -27,17 +27,17 @@
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:hint="@string/wiki_article_title" android:hint="@string/wiki_article_title"
android:maxLines="1" android:maxLines="1"
android:paddingLeft="20dp" android:paddingStart="20dp"
android:paddingTop="10dp" android:paddingTop="10dp"
android:paddingRight="20dp" android:paddingEnd="20dp"
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5" /> android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5" />
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1dp" android:layout_height="1dp"
android:layout_marginLeft="15dp" android:layout_marginStart="15dp"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:layout_marginRight="15dp" android:layout_marginEnd="15dp"
android:layout_marginBottom="5dp" android:layout_marginBottom="5dp"
android:background="#000000" /> android:background="#000000" />
@ -46,13 +46,13 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:gravity="top|left" android:gravity="top|start"
android:hint="@string/note" android:hint="@string/note"
android:inputType="textMultiLine|textCapSentences|textAutoCorrect" android:inputType="textMultiLine|textCapSentences|textAutoCorrect"
android:minLines="6" android:minLines="6"
android:paddingLeft="20dp" android:paddingStart="20dp"
android:paddingTop="5dp" android:paddingTop="5dp"
android:paddingRight="20dp" android:paddingEnd="20dp"
android:paddingBottom="10dp" android:paddingBottom="10dp"
android:scrollbars="vertical" android:scrollbars="vertical"
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1" /> android:textAppearance="@style/TextAppearance.MaterialComponents.Body1" />

View File

@ -26,7 +26,6 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingEnd="10dp" android:paddingEnd="10dp"
android:paddingRight="10dp"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@+id/horizontal_padding" app:layout_constraintStart_toStartOf="@+id/horizontal_padding"
@ -92,7 +91,6 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/item_book_title" app:layout_constraintStart_toStartOf="@id/item_book_title"
app:layout_constraintTop_toBottomOf="@id/item_book_date" app:layout_constraintTop_toBottomOf="@id/item_book_date"
@ -120,8 +118,8 @@
android:layout_height="0dp" android:layout_height="0dp"
android:background="?android:attr/selectableItemBackground" android:background="?android:attr/selectableItemBackground"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:visibility="gone" /> tools:visibility="gone" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -26,7 +26,6 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/activity_horizontal_margin" android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:alpha="0.87" android:alpha="0.87"
android:paddingTop="8dp" android:paddingTop="8dp"
android:paddingBottom="8dp" android:paddingBottom="8dp"

View File

@ -3,8 +3,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/kiwix_search_widget_layout_id_height" android:layout_height="@dimen/kiwix_search_widget_layout_id_height"
android:layout_marginLeft="@dimen/kiwix_search_widget_margin" android:layout_marginStart="@dimen/kiwix_search_widget_margin"
android:layout_marginRight="@dimen/kiwix_search_widget_margin" android:layout_marginEnd="@dimen/kiwix_search_widget_margin"
android:background="@drawable/search_widget_background" android:background="@drawable/search_widget_background"
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="horizontal" android:orientation="horizontal"

View File

@ -13,14 +13,15 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/title_text_margin" android:layout_marginStart="@dimen/title_text_margin"
android:layout_marginRight="@dimen/title_text_margin" android:layout_marginEnd="@dimen/title_text_margin"
android:ellipsize="end" android:ellipsize="end"
android:fontFamily="sans-serif-light" android:fontFamily="sans-serif-light"
android:gravity="center_vertical" android:gravity="center_vertical"
android:maxLines="1" android:maxLines="1"
android:minHeight="?listPreferredItemHeightSmall" android:minHeight="?listPreferredItemHeightSmall"
android:paddingLeft="@dimen/title_text_padding" android:paddingStart="@dimen/title_text_padding"
android:paddingEnd="0dp"
android:textAppearance="?textAppearanceBody1" android:textAppearance="?textAppearanceBody1"
tools:text="Some text" /> tools:text="Some text" />

View File

@ -3,9 +3,9 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
android:paddingLeft="@dimen/slider_dialog_horizontal_padding" android:paddingStart="@dimen/slider_dialog_horizontal_padding"
android:paddingTop="@dimen/dimen_medium_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"> android:paddingBottom="@dimen/dimen_medium_padding">
<TextView <TextView

View File

@ -23,7 +23,7 @@
android:id="@+id/edit" android:id="@+id/edit"
android:layout_width="0dip" android:layout_width="0dip"
android:layout_height="wrap_content" 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:layout_weight="1"
android:focusableInTouchMode="true" android:focusableInTouchMode="true"
android:hint="@string/search_label" android:hint="@string/search_label"
@ -41,7 +41,6 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginEnd="4dp" android:layout_marginEnd="4dp"
android:layout_marginRight="4dp"
android:gravity="center" android:gravity="center"
android:textColor="@android:color/darker_gray" android:textColor="@android:color/darker_gray"
tools:text="2/10" /> tools:text="2/10" />

View File

@ -6,7 +6,8 @@
<application <application
android:name=".CustomApp" android:name=".CustomApp"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"> android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true">
<activity <activity
android:name=".splash.CustomSplashActivity" android:name=".splash.CustomSplashActivity"
android:label="@string/app_name" android:label="@string/app_name"

View File

@ -12,8 +12,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="100dp" android:layout_marginTop="100dp"
android:src="@mipmap/ic_launcher_foreground" android:src="@mipmap/ic_launcher_foreground"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<ViewAnimator <ViewAnimator
@ -23,8 +23,8 @@
android:inAnimation="@android:anim/fade_in" android:inAnimation="@android:anim/fade_in"
android:outAnimation="@android:anim/fade_out" android:outAnimation="@android:anim/fade_out"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/cd_icon"> app:layout_constraintTop_toBottomOf="@+id/cd_icon">
<include layout="@layout/layout_custom_download_required" /> <include layout="@layout/layout_custom_download_required" />

View File

@ -13,8 +13,8 @@
android:gravity="center" android:gravity="center"
android:text="@string/complete" android:text="@string/complete"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias=".3" /> app:layout_constraintVertical_bias=".3" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -13,8 +13,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias=".3" /> app:layout_constraintVertical_bias=".3" />
@ -24,7 +24,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:text="@string/retry" android:text="@string/retry"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/cd_error_text" /> app:layout_constraintTop_toBottomOf="@+id/cd_error_text" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -10,8 +10,8 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@id/cd_progress" app:layout_constraintBottom_toTopOf="@id/cd_progress"
app:layout_constraintLeft_toLeftOf="@+id/cd_progress" app:layout_constraintStart_toStartOf="@+id/cd_progress"
app:layout_constraintRight_toRightOf="@+id/cd_progress" /> app:layout_constraintEnd_toEndOf="@+id/cd_progress" />
<ProgressBar <ProgressBar
android:id="@+id/cd_progress" android:id="@+id/cd_progress"
@ -20,8 +20,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:max="100" android:max="100"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias=".3" /> app:layout_constraintVertical_bias=".3" />
@ -30,7 +30,6 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="5dp" android:layout_marginStart="5dp"
android:layout_marginLeft="5dp"
app:layout_constraintBottom_toBottomOf="@id/cd_progress" app:layout_constraintBottom_toBottomOf="@id/cd_progress"
app:layout_constraintStart_toEndOf="@id/cd_progress" app:layout_constraintStart_toEndOf="@id/cd_progress"
app:layout_constraintTop_toTopOf="@id/cd_progress" /> app:layout_constraintTop_toTopOf="@id/cd_progress" />

View File

@ -13,8 +13,8 @@
android:gravity="center" android:gravity="center"
android:text="@string/invalid_installation" android:text="@string/invalid_installation"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias=".3" /> app:layout_constraintVertical_bias=".3" />
@ -24,8 +24,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:text="@string/download" android:text="@string/download"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/cd_text" /> app:layout_constraintTop_toBottomOf="@+id/cd_text" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>