1301 create theme based dark mode

This commit is contained in:
Sean Mac Gillicuddy 2019-11-28 14:26:36 +00:00
parent 33d2106d7c
commit f1e5e7a7ce
69 changed files with 777 additions and 1142 deletions

View File

@ -9,7 +9,7 @@
<activity <activity
android:name=".splash.KiwixSplashActivity" android:name=".splash.KiwixSplashActivity"
android:label="@string/app_name" android:label="@string/app_name"
android:theme="@style/AppTheme.Launcher"> android:theme="@style/ThemeOverlay.KiwixTheme.Launcher">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />

View File

@ -17,7 +17,7 @@
*/ */
package org.kiwix.kiwixmobile.language.viewmodel package org.kiwix.kiwixmobile.language.viewmodel
import android.app.Activity import androidx.appcompat.app.AppCompatActivity
import io.reactivex.Flowable import io.reactivex.Flowable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import org.kiwix.kiwixmobile.core.dao.NewLanguagesDao import org.kiwix.kiwixmobile.core.dao.NewLanguagesDao
@ -29,7 +29,7 @@ data class SaveLanguagesAndFinish(
val languageDao: NewLanguagesDao val languageDao: NewLanguagesDao
) : SideEffect<Unit> { ) : SideEffect<Unit> {
override fun invokeWith(activity: Activity) { override fun invokeWith(activity: AppCompatActivity) {
Flowable.fromCallable { languageDao.insert(languages) } Flowable.fromCallable { languageDao.insert(languages) }
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.subscribe({ .subscribe({

View File

@ -27,6 +27,7 @@ import android.view.ActionMode
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
@ -111,7 +112,7 @@ class ZimFileSelectFragment : BaseFragment() {
private fun sideEffects() = zimManageViewModel.sideEffects.subscribe( private fun sideEffects() = zimManageViewModel.sideEffects.subscribe(
{ {
val effectResult = it.invokeWith(activity!!) val effectResult = it.invokeWith(activity!! as AppCompatActivity)
if (effectResult is ActionMode) { if (effectResult is ActionMode) {
actionMode = effectResult actionMode = effectResult
} }

View File

@ -18,7 +18,7 @@
package org.kiwix.kiwixmobile.zim_manager.fileselect_view.effects package org.kiwix.kiwixmobile.zim_manager.fileselect_view.effects
import android.app.Activity import androidx.appcompat.app.AppCompatActivity
import org.kiwix.kiwixmobile.R import org.kiwix.kiwixmobile.R
import org.kiwix.kiwixmobile.core.base.SideEffect import org.kiwix.kiwixmobile.core.base.SideEffect
import org.kiwix.kiwixmobile.core.dao.NewBookDao import org.kiwix.kiwixmobile.core.dao.NewBookDao
@ -38,7 +38,7 @@ class DeleteFiles(private val booksOnDiskListItem: List<BookOnDisk>) :
@Inject lateinit var newBookDao: NewBookDao @Inject lateinit var newBookDao: NewBookDao
@Inject lateinit var zimReaderContainer: ZimReaderContainer @Inject lateinit var zimReaderContainer: ZimReaderContainer
override fun invokeWith(activity: Activity) { override fun invokeWith(activity: AppCompatActivity) {
(activity as ZimManageActivity).cachedComponent.inject(this) (activity as ZimManageActivity).cachedComponent.inject(this)
booksOnDiskListItem.forEach { booksOnDiskListItem.forEach {
dialogShower.show(DeleteZim(it), { dialogShower.show(DeleteZim(it), {

View File

@ -18,10 +18,10 @@
package org.kiwix.kiwixmobile.zim_manager.fileselect_view.effects package org.kiwix.kiwixmobile.zim_manager.fileselect_view.effects
import android.app.Activity import androidx.appcompat.app.AppCompatActivity
import org.kiwix.kiwixmobile.core.base.SideEffect import org.kiwix.kiwixmobile.core.base.SideEffect
object None : SideEffect<Unit> { object None : SideEffect<Unit> {
override fun invokeWith(activity: Activity) { override fun invokeWith(activity: AppCompatActivity) {
} }
} }

View File

@ -17,7 +17,7 @@
*/ */
package org.kiwix.kiwixmobile.zim_manager.fileselect_view.effects package org.kiwix.kiwixmobile.zim_manager.fileselect_view.effects
import android.app.Activity import androidx.appcompat.app.AppCompatActivity
import androidx.core.net.toUri import androidx.core.net.toUri
import org.kiwix.kiwixmobile.core.R import org.kiwix.kiwixmobile.core.R
import org.kiwix.kiwixmobile.core.base.SideEffect import org.kiwix.kiwixmobile.core.base.SideEffect
@ -29,7 +29,7 @@ import org.kiwix.kiwixmobile.main.KiwixMainActivity
class OpenFile(private val bookOnDisk: BookOnDisk) : class OpenFile(private val bookOnDisk: BookOnDisk) :
SideEffect<Unit> { SideEffect<Unit> {
override fun invokeWith(activity: Activity) { override fun invokeWith(activity: AppCompatActivity) {
val file = bookOnDisk.file val file = bookOnDisk.file
if (!file.canRead()) { if (!file.canRead()) {
activity.toast(R.string.error_file_not_found) activity.toast(R.string.error_file_not_found)

View File

@ -18,10 +18,10 @@
package org.kiwix.kiwixmobile.zim_manager.fileselect_view.effects package org.kiwix.kiwixmobile.zim_manager.fileselect_view.effects
import android.app.Activity
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import android.os.Build import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.FileProvider import androidx.core.content.FileProvider
import org.kiwix.kiwixmobile.core.R import org.kiwix.kiwixmobile.core.R
import org.kiwix.kiwixmobile.core.base.SideEffect import org.kiwix.kiwixmobile.core.base.SideEffect
@ -29,7 +29,7 @@ import org.kiwix.kiwixmobile.core.zim_manager.fileselect_view.adapter.BooksOnDis
class ShareFiles(private val selectedBooks: List<BookOnDisk>) : class ShareFiles(private val selectedBooks: List<BookOnDisk>) :
SideEffect<Unit> { SideEffect<Unit> {
override fun invokeWith(activity: Activity) { override fun invokeWith(activity: AppCompatActivity) {
val selectedFileShareIntent = Intent() val selectedFileShareIntent = Intent()
selectedFileShareIntent.action = Intent.ACTION_SEND_MULTIPLE selectedFileShareIntent.action = Intent.ACTION_SEND_MULTIPLE
selectedFileShareIntent.type = "application/octet-stream" selectedFileShareIntent.type = "application/octet-stream"

View File

@ -18,8 +18,8 @@
package org.kiwix.kiwixmobile.zim_manager.fileselect_view.effects package org.kiwix.kiwixmobile.zim_manager.fileselect_view.effects
import android.app.Activity import androidx.appcompat.app.AppCompatActivity
import android.view.ActionMode import androidx.appcompat.view.ActionMode
import io.reactivex.processors.PublishProcessor import io.reactivex.processors.PublishProcessor
import org.kiwix.kiwixmobile.core.R import org.kiwix.kiwixmobile.core.R
import org.kiwix.kiwixmobile.core.base.SideEffect import org.kiwix.kiwixmobile.core.base.SideEffect
@ -33,7 +33,7 @@ data class StartMultiSelection(
val bookOnDisk: BooksOnDiskListItem.BookOnDisk, val bookOnDisk: BooksOnDiskListItem.BookOnDisk,
val fileSelectActions: PublishProcessor<FileSelectActions> val fileSelectActions: PublishProcessor<FileSelectActions>
) : SideEffect<ActionMode?> { ) : SideEffect<ActionMode?> {
override fun invokeWith(activity: Activity) = override fun invokeWith(activity: AppCompatActivity) =
activity.startActionMode( activity.startActionMode(
R.menu.menu_zim_files_contextual, R.menu.menu_zim_files_contextual,
mapOf( mapOf(

View File

@ -38,7 +38,7 @@ sealed class LibraryDelegate<I : LibraryListItem, out VH : LibraryViewHolder<I>>
override fun createViewHolder(parent: ViewGroup) = override fun createViewHolder(parent: ViewGroup) =
LibraryBookViewHolder( LibraryBookViewHolder(
parent.inflate(R.layout.library_item, false), parent.inflate(R.layout.item_library, false),
bookUtils, bookUtils,
clickAction clickAction
) )

View File

@ -20,15 +20,15 @@ package org.kiwix.kiwixmobile.zim_manager.library_view.adapter
import android.view.View import android.view.View
import kotlinx.android.synthetic.main.library_divider.divider_text import kotlinx.android.synthetic.main.library_divider.divider_text
import kotlinx.android.synthetic.main.library_item.creator import kotlinx.android.synthetic.main.item_library.creator
import kotlinx.android.synthetic.main.library_item.date import kotlinx.android.synthetic.main.item_library.date
import kotlinx.android.synthetic.main.library_item.description import kotlinx.android.synthetic.main.item_library.description
import kotlinx.android.synthetic.main.library_item.favicon import kotlinx.android.synthetic.main.item_library.favicon
import kotlinx.android.synthetic.main.library_item.fileName import kotlinx.android.synthetic.main.item_library.fileName
import kotlinx.android.synthetic.main.library_item.language import kotlinx.android.synthetic.main.item_library.language
import kotlinx.android.synthetic.main.library_item.publisher import kotlinx.android.synthetic.main.item_library.publisher
import kotlinx.android.synthetic.main.library_item.size import kotlinx.android.synthetic.main.item_library.size
import kotlinx.android.synthetic.main.library_item.title import kotlinx.android.synthetic.main.item_library.title
import org.kiwix.kiwixmobile.core.CoreApp import org.kiwix.kiwixmobile.core.CoreApp
import org.kiwix.kiwixmobile.core.downloader.model.Base64String import org.kiwix.kiwixmobile.core.downloader.model.Base64String
import org.kiwix.kiwixmobile.core.extensions.setBitmap import org.kiwix.kiwixmobile.core.extensions.setBitmap

View File

@ -3,24 +3,18 @@
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="match_parent" android:layout_height="match_parent"
android:fitsSystemWindows="true" android:fitsSystemWindows="true">
>
<com.google.android.material.appbar.AppBarLayout <com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar" android:id="@+id/appbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay" app:layout_constraintTop_toTopOf="parent">
app:layout_constraintTop_toTopOf="parent"
>
<androidx.appcompat.widget.Toolbar <com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar" android:id="@+id/toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" android:layout_height="wrap_content" />
android:theme="@style/AppTheme.AppBarOverlay"
app:popupTheme="@style/AppTheme.PopupOverlay"
/>
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
@ -31,8 +25,7 @@
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/appbar" app:layout_constraintTop_toBottomOf="@id/appbar" />
/>
<androidx.core.widget.ContentLoadingProgressBar <androidx.core.widget.ContentLoadingProgressBar
android:id="@+id/language_progressbar" android:id="@+id/language_progressbar"
@ -42,6 +35,5 @@
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/appbar" app:layout_constraintTop_toBottomOf="@id/appbar" />
/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -5,7 +5,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:animateLayoutChanges="true" android:animateLayoutChanges="true"
tools:context="org.kiwix.kiwixmobile.core.zim_manager.library_view.LibraryFragment" tools:context="org.kiwix.kiwixmobile.zim_manager.library_view.LibraryFragment"
> >
<TextView <TextView

View File

@ -41,7 +41,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="start" android:layout_gravity="start"
android:textAppearance="?android:attr/textAppearanceSmall" style="@style/list_item_body"
tools:text="Description" /> tools:text="Description" />
<ProgressBar <ProgressBar
@ -62,14 +62,14 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceSmall" style="@style/list_item_body"
tools:text="In Progress" /> tools:text="In Progress" />
<TextView <TextView
android:id="@+id/eta" android:id="@+id/eta"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall" style="@style/list_item_body"
tools:text="1min 10secs" /> tools:text="1min 10secs" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

View File

@ -3,64 +3,59 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="64dp" android:layout_height="64dp">
>
<CheckBox <CheckBox
android:id="@+id/item_language_checkbox" android:id="@+id/item_language_checkbox"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:layout_marginStart="@dimen/activity_horizontal_margin" android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent" />
/>
<TextView <TextView
android:id="@+id/item_language_name" android:id="@+id/item_language_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:layout_marginStart="@dimen/activity_horizontal_margin" android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:alpha="0.87" android:alpha="0.87"
android:textAppearance="?android:attr/textAppearanceMedium" style="@style/list_item_title"
app:layout_constraintBottom_toTopOf="@id/item_language_localized_name" app:layout_constraintBottom_toTopOf="@id/item_language_localized_name"
app:layout_constraintStart_toEndOf="@id/item_language_checkbox" app:layout_constraintStart_toEndOf="@id/item_language_checkbox"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" app:layout_constraintVertical_chainStyle="packed"
tools:text="English" tools:text="English" />
/>
<TextView <TextView
android:id="@+id/item_language_localized_name" android:id="@+id/item_language_localized_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:alpha="0.54" android:alpha="0.54"
android:textAppearance="?android:attr/textAppearanceSmall" style="@style/list_item_body"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@id/item_language_name" app:layout_constraintStart_toStartOf="@id/item_language_name"
app:layout_constraintTop_toBottomOf="@id/item_language_name" app:layout_constraintTop_toBottomOf="@id/item_language_name"
tools:text="English" tools:text="English" />
/>
<TextView <TextView
android:id="@+id/item_language_books_count" android:id="@+id/item_language_books_count"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:layout_marginStart="@dimen/activity_horizontal_margin" android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:alpha="0.54" android:alpha="0.54"
android:textAppearance="?android:attr/textAppearanceSmall" style="@style/list_item_body"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:text="9 books" tools:text="9 books" />
/>
<View <View
android:background="?android:attr/selectableItemBackground"
android:id="@+id/item_language_clickable_area" android:id="@+id/item_language_clickable_area"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
/> android:background="?selectableItemBackground" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -3,14 +3,14 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground" android:background="?selectableItemBackground"
android:minHeight="?android:attr/listPreferredItemHeight" android:minHeight="?listPreferredItemHeight"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" android:paddingTop="@dimen/activity_vertical_margin"
> android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:ignore="Overdraw">
<ImageView <ImageView
android:id="@+id/favicon" android:id="@+id/favicon"
@ -21,7 +21,7 @@
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:scaleType="fitCenter" android:scaleType="fitCenter"
android:src="@mipmap/ic_launcher" android:src="@mipmap/ic_launcher"
/> tools:ignore="RtlHardcoded" />
<LinearLayout <LinearLayout
android:layout_width="0dp" android:layout_width="0dp"
@ -29,62 +29,55 @@
android:layout_weight="1" android:layout_weight="1"
android:orientation="vertical" android:orientation="vertical"
android:paddingLeft="@dimen/dimen_small_padding" android:paddingLeft="@dimen/dimen_small_padding"
tools:ignore="HardcodedText" tools:ignore="RtlHardcoded,RtlSymmetry">
>
<TextView <TextView
android:id="@+id/title" android:id="@+id/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:text="Title" tools:text="Title" />
android:textAppearance="?android:attr/textAppearanceListItem"
/>
<TextView <TextView
android:id="@+id/description" android:id="@+id/description"
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:text="Description" tools:text="Description" />
android:textAppearance="?android:attr/textAppearanceSmall"
/>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:baselineAligned="false"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingTop="@dimen/dimen_medium_padding" android:paddingTop="@dimen/dimen_medium_padding">
>
<LinearLayout <LinearLayout
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1" android:layout_weight="1"
android:orientation="vertical" android:orientation="vertical">
>
<TextView <TextView
android:id="@+id/size" android:id="@+id/size"
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:text="File Size" tools:text="File Size" />
android:textAppearance="?android:attr/textAppearanceSmall"
/>
<TextView <TextView
android:id="@+id/creator" android:id="@+id/creator"
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:text="Author" tools:text="Author" />
android:textAppearance="?android:attr/textAppearanceSmall"
/>
<TextView <TextView
android:id="@+id/publisher" android:id="@+id/publisher"
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:text="Publisher" tools:text="Publisher" />
android:textAppearance="?android:attr/textAppearanceSmall"
/>
</LinearLayout> </LinearLayout>
@ -92,37 +85,31 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1" android:layout_weight="1"
android:gravity="right" android:gravity="end"
android:orientation="vertical" android:orientation="vertical">
>
<TextView <TextView
android:id="@+id/date" android:id="@+id/date"
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:text="Date" tools:text="Date" />
android:textAppearance="?android:attr/textAppearanceSmall"
/>
<TextView <TextView
android:id="@+id/language" android:id="@+id/language"
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:text="Language" tools:text="Language" />
android:textAppearance="?android:attr/textAppearanceSmall"
/>
<TextView <TextView
android:id="@+id/fileName" android:id="@+id/fileName"
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:text="File Name" tools:text="File Name" />
android:textAppearance="?android:attr/textAppearanceSmall"
/>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

View File

@ -4,29 +4,24 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="?attr/listBackground" android:orientation="vertical">
android:orientation="vertical"
>
<TextView <TextView
android:id="@+id/file_management_no_files" android:id="@+id/file_management_no_files"
android:text="@string/no_files_here"
tools:ignore="MissingConstraints"
style="@style/no_list_content_text" style="@style/no_list_content_text"
/> android:text="@string/no_files_here"
tools:ignore="MissingConstraints" />
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/zim_swiperefresh" android:id="@+id/zim_swiperefresh"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/zimfilelist" android:id="@+id/zimfilelist"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" app:layout_behavior="@string/appbar_scrolling_view_behavior" />
/>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout> </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

View File

@ -5,34 +5,27 @@
android:id="@+id/zim_manager_main_activity" android:id="@+id/zim_manager_main_activity"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:fitsSystemWindows="true" tools:context="org.kiwix.kiwixmobile.zim_manager.ZimManageActivity">
tools:context="org.kiwix.kiwixmobile.core.zim_manager.ZimManageActivity"
>
<com.google.android.material.appbar.AppBarLayout <com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar" android:id="@+id/appbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:paddingTop="@dimen/zim_manage_toolbar_top_padding"
android:theme="@style/AppTheme.AppBarOverlay"
>
<androidx.appcompat.widget.Toolbar <androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar" android:id="@+id/toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" android:layout_height="wrap_content"
android:background="?attr/colorPrimary" app:layout_scrollFlags="scroll|enterAlways"
app:layout_scrollFlags="scroll|snap|enterAlways" app:popupTheme="@style/KiwixTheme"
app:popupTheme="@style/AppTheme.PopupOverlay" app:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar" />
/>
<com.google.android.material.tabs.TabLayout <com.google.android.material.tabs.TabLayout
android:id="@+id/tabs" android:id="@+id/tabs"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:tabGravity="fill" app:tabGravity="fill"
app:tabMaxWidth="0dp" app:tabMaxWidth="0dp" />
/>
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
@ -40,8 +33,7 @@
android:id="@+id/manageViewPager" android:id="@+id/manageViewPager"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior" app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior" />
/>
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -1,4 +1,3 @@
import kotlin.String
import org.gradle.plugin.use.PluginDependenciesSpec import org.gradle.plugin.use.PluginDependenciesSpec
import org.gradle.plugin.use.PluginDependencySpec import org.gradle.plugin.use.PluginDependencySpec
@ -108,7 +107,7 @@ object Versions {
const val kiwixlib: String = "8.1.0" const val kiwixlib: String = "8.1.0"
const val material: String = "1.0.0" const val material: String = "1.1.0-beta02"
const val multidex: String = "2.0.1" const val multidex: String = "2.0.1"
@ -142,4 +141,4 @@ object Versions {
*/ */
val PluginDependenciesSpec.buildSrcVersions: PluginDependencySpec val PluginDependenciesSpec.buildSrcVersions: PluginDependencySpec
inline get() = inline get() =
id("de.fayard.buildSrcVersions").version(Versions.de_fayard_buildsrcversions_gradle_plugin) id("de.fayard.buildSrcVersions").version(Versions.de_fayard_buildsrcversions_gradle_plugin)

File diff suppressed because it is too large Load Diff

View File

@ -21,7 +21,7 @@
android:hardwareAccelerated="true" android:hardwareAccelerated="true"
android:label="@string/app_name" android:label="@string/app_name"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme" android:theme="@style/KiwixTheme"
android:usesCleartextTraffic="true" android:usesCleartextTraffic="true"
tools:targetApi="m"> tools:targetApi="m">

View File

@ -20,9 +20,7 @@ package org.kiwix.kiwixmobile.core
import android.content.Context import android.content.Context
import android.content.res.Configuration import android.content.res.Configuration
import androidx.appcompat.app.AppCompatDelegate import androidx.appcompat.app.AppCompatDelegate
import org.kiwix.kiwixmobile.core.NightModeConfig.UiMode.OFF import org.kiwix.kiwixmobile.core.NightModeConfig.Mode.SYSTEM
import org.kiwix.kiwixmobile.core.NightModeConfig.UiMode.ON
import org.kiwix.kiwixmobile.core.NightModeConfig.UiMode.NOT_SET
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import javax.inject.Inject import javax.inject.Inject
@ -36,9 +34,10 @@ class NightModeConfig @Inject constructor(
} }
fun isNightModeActive() = fun isNightModeActive() =
when (uiMode()) { when (sharedPreferenceUtil.nightMode) {
ON -> true Mode.ON -> true
OFF, NOT_SET -> false Mode.OFF -> false
SYSTEM -> uiMode() == UiMode.ON
} }
private fun setMode(nightMode: Mode) { private fun setMode(nightMode: Mode) {

View File

@ -17,8 +17,8 @@
*/ */
package org.kiwix.kiwixmobile.core.base package org.kiwix.kiwixmobile.core.base
import android.app.Activity import androidx.appcompat.app.AppCompatActivity
interface SideEffect<out T : Any?> { interface SideEffect<out T : Any?> {
fun invokeWith(activity: Activity): T fun invokeWith(activity: AppCompatActivity): T
} }

View File

@ -20,10 +20,10 @@ package org.kiwix.kiwixmobile.core.extensions
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
import android.view.ActionMode
import android.view.ActionMode.Callback
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.view.ActionMode
import androidx.fragment.app.FragmentActivity import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
@ -32,12 +32,12 @@ import org.kiwix.kiwixmobile.core.Intents
object ActivityExtensions { object ActivityExtensions {
fun Activity.startActionMode( fun AppCompatActivity.startActionMode(
menuId: Int, menuId: Int,
idsToClickActions: Map<Int, () -> Any>, idsToClickActions: Map<Int, () -> Any>,
onDestroyAction: () -> Unit onDestroyAction: () -> Unit
): ActionMode? { ): ActionMode? {
return startActionMode(object : Callback { return startSupportActionMode(object : ActionMode.Callback {
override fun onActionItemClicked( override fun onActionItemClicked(
mode: ActionMode, mode: ActionMode,
item: MenuItem item: MenuItem

View File

@ -18,9 +18,7 @@
package org.kiwix.kiwixmobile.core.main; package org.kiwix.kiwixmobile.core.main;
import android.content.Context; import android.content.Context;
import android.content.res.Resources;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.util.TypedValue;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -39,8 +37,6 @@ public class TableDrawerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
private TableClickListener listener; private TableClickListener listener;
private String title; private String title;
private List<DocumentSection> sections; private List<DocumentSection> sections;
private int primary;
private int secondary;
private int selectedPosition = 0; private int selectedPosition = 0;
@ -50,8 +46,7 @@ public class TableDrawerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
@Override @Override
public int getItemViewType(int position) { public int getItemViewType(int position) {
if (position == 0) return 0; return position == 0 ? 0 : 1;
return 1;
} }
@NonNull @NonNull
@ -60,14 +55,6 @@ public class TableDrawerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
int resource = R.layout.section_list; int resource = R.layout.section_list;
Context context = parent.getContext(); Context context = parent.getContext();
View v = LayoutInflater.from(context).inflate(resource, parent, false); View v = LayoutInflater.from(context).inflate(resource, parent, false);
TypedValue typedValue = new TypedValue();
Resources.Theme theme = context.getTheme();
theme.resolveAttribute(android.R.attr.textColorPrimary, typedValue, true);
primary = typedValue.data;
theme.resolveAttribute(android.R.attr.textColorSecondary, typedValue, true);
secondary = typedValue.data;
if (viewType == 0) return new HeaderViewHolder(v); if (viewType == 0) return new HeaderViewHolder(v);
return new SectionViewHolder(v); return new SectionViewHolder(v);
} }
@ -81,7 +68,6 @@ public class TableDrawerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
if (position == 0) { if (position == 0) {
vh.title.setTypeface(Typeface.DEFAULT_BOLD); vh.title.setTypeface(Typeface.DEFAULT_BOLD);
vh.title.setTextColor(primary);
if (title != null && !title.isEmpty()) { if (title != null && !title.isEmpty()) {
vh.title.setText(title); vh.title.setText(title);
} else { } else {
@ -104,7 +90,6 @@ public class TableDrawerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
float density = context.getResources().getDisplayMetrics().density; float density = context.getResources().getDisplayMetrics().density;
int padding = (int) (((documentSection.level - 1) * 16) * density); int padding = (int) (((documentSection.level - 1) * 16) * density);
vh.title.setPadding(padding, 0, 0, 0); vh.title.setPadding(padding, 0, 0, 0);
vh.title.setTextColor((documentSection.level) % 2 == 0 ? primary : secondary);
vh.title.setText(sections.get(sectionPosition).title); vh.title.setText(sections.get(sectionPosition).title);
vh.itemView.setOnClickListener(v -> { vh.itemView.setOnClickListener(v -> {
updateSelection(vh.getAdapterPosition()); updateSelection(vh.getAdapterPosition());

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/gray_list_bg" android:state_pressed="true" />
<item android:drawable="@color/gray_list_bg" android:state_activated="true" />
</selector>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/selected_light" android:state_pressed="true" />
<item android:drawable="@color/selected_light" android:state_activated="true" />
</selector>

View File

@ -3,24 +3,20 @@
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="match_parent" android:layout_height="match_parent"
android:fitsSystemWindows="true" android:fitsSystemWindows="true">
>
<com.google.android.material.appbar.AppBarLayout <com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar" android:id="@+id/appbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay" app:layout_constraintTop_toTopOf="parent">
app:layout_constraintTop_toTopOf="parent"
>
<androidx.appcompat.widget.Toolbar <androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar" android:id="@+id/toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" android:layout_height="?attr/actionBarSize"
android:theme="@style/AppTheme.AppBarOverlay" app:popupTheme="@style/KiwixTheme"
app:popupTheme="@style/AppTheme.PopupOverlay" app:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar" />
/>
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
@ -31,7 +27,6 @@
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/appbar" app:layout_constraintTop_toBottomOf="@id/appbar" />
/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -4,26 +4,21 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="?attr/listBackground"
android:fitsSystemWindows="true" android:fitsSystemWindows="true"
tools:context=".help.HelpActivity" tools:context=".help.HelpActivity">
>
<com.google.android.material.appbar.AppBarLayout <com.google.android.material.appbar.AppBarLayout
android:id="@+id/activity_help_appbar" android:id="@+id/activity_help_appbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay" app:layout_constraintTop_toTopOf="parent">
app:layout_constraintTop_toTopOf="parent"
>
<androidx.appcompat.widget.Toolbar <androidx.appcompat.widget.Toolbar
android:id="@+id/activity_help_toolbar" android:id="@+id/activity_help_toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay" app:popupTheme="@style/KiwixTheme"
app:popupTheme="@style/AppTheme.PopupOverlay" app:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar" />
/>
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
<ImageView <ImageView
@ -32,10 +27,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:contentDescription="@string/send_feedback" android:contentDescription="@string/send_feedback"
android:padding="@dimen/activity_horizontal_margin" android:padding="@dimen/activity_horizontal_margin"
app:layout_constraintTop_toBottomOf="@id/activity_help_appbar"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:srcCompat="@drawable/ic_feedback_blue_24dp" app:layout_constraintTop_toBottomOf="@id/activity_help_appbar"
/> app:srcCompat="@drawable/ic_feedback_blue_24dp" />
<TextView <TextView
android:id="@+id/activity_help_feedback_text_view" android:id="@+id/activity_help_feedback_text_view"
@ -47,16 +41,14 @@
app:layout_constraintBottom_toBottomOf="@id/activity_help_feedback_image_view" app:layout_constraintBottom_toBottomOf="@id/activity_help_feedback_image_view"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/activity_help_feedback_image_view" app:layout_constraintStart_toEndOf="@id/activity_help_feedback_image_view"
app:layout_constraintTop_toTopOf="@id/activity_help_feedback_image_view" app:layout_constraintTop_toTopOf="@id/activity_help_feedback_image_view" />
/>
<View <View
android:id="@+id/activity_help_feedback_divider" android:id="@+id/activity_help_feedback_divider"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1dp" android:layout_height="1dp"
android:background="?android:attr/listDivider" android:background="?android:attr/listDivider"
app:layout_constraintTop_toBottomOf="@id/activity_help_feedback_image_view" app:layout_constraintTop_toBottomOf="@id/activity_help_feedback_image_view" />
/>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/activity_help_recycler_view" android:id="@+id/activity_help_recycler_view"
@ -66,6 +58,5 @@
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/activity_help_feedback_divider" app:layout_constraintTop_toBottomOf="@id/activity_help_feedback_divider" />
/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -3,24 +3,20 @@
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="match_parent" android:layout_height="match_parent"
android:fitsSystemWindows="true" android:fitsSystemWindows="true">
>
<com.google.android.material.appbar.AppBarLayout <com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar" android:id="@+id/appbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay" app:layout_constraintTop_toTopOf="parent">
app:layout_constraintTop_toTopOf="parent"
>
<androidx.appcompat.widget.Toolbar <androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar" android:id="@+id/toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay" app:popupTheme="@style/KiwixTheme"
app:popupTheme="@style/AppTheme.PopupOverlay" app:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar" />
/>
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
@ -31,7 +27,6 @@
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/appbar" app:layout_constraintTop_toBottomOf="@id/appbar" />
/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -5,179 +5,166 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@android:color/holo_blue_dark" android:background="@android:color/holo_blue_dark"
tools:context=".error.ErrorActivity" tools:context=".error.ErrorActivity">
>
<TextView <TextView
android:id="@+id/messageText" android:id="@+id/messageText"
android:layout_width="332dp" android:layout_width="332dp"
android:layout_height="72dp" android:layout_height="72dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:text="@string/crash_description" android:text="@string/crash_description"
android:textAlignment="center" android:textAlignment="center"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="14sp" android:textSize="14sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView2" app:layout_constraintTop_toBottomOf="@+id/imageView2" />
/>
<Button <Button
android:id="@+id/reportButton" android:id="@+id/reportButton"
style="@style/Widget.AppCompat.Button"
android:layout_width="120dp" android:layout_width="120dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="32dp"
android:background="@color/white" android:background="@color/white"
android:text="@string/crash_button_confirm" android:text="@string/crash_button_confirm"
android:textColor="@color/black_regular_mat_design" android:textColor="@color/black_regular_mat_design"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.173" app:layout_constraintHorizontal_bias="0.173"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent" />
style="@style/Widget.AppCompat.Button"
/>
<Button <Button
android:id="@+id/restartButton" android:id="@+id/restartButton"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="32dp"
android:text="@string/crash_button_decline" android:text="@string/crash_button_decline"
android:textColor="@color/blue_grey" android:textColor="@color/blue_grey"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.769" app:layout_constraintHorizontal_bias="0.769"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent" />
style="?android:attr/borderlessButtonStyle"
/>
<TextView <TextView
android:id="@+id/textView2" android:id="@+id/textView2"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginTop="60dp" android:layout_marginTop="60dp"
android:layout_marginEnd="8dp"
android:text="@string/crash_title" android:text="@string/crash_title"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="24sp" android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.505" app:layout_constraintHorizontal_bias="0.505"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent" />
/>
<ImageView <ImageView
android:id="@+id/imageView2" android:id="@+id/imageView2"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="70dp" android:layout_height="70dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginTop="12dp" android:layout_marginTop="12dp"
android:layout_marginEnd="8dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0" app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2" app:layout_constraintTop_toBottomOf="@+id/textView2"
app:srcCompat="@mipmap/ic_launcher" app:srcCompat="@mipmap/ic_launcher" />
/>
<ScrollView <ScrollView
android:layout_width="368dp" android:layout_width="368dp"
android:layout_height="233dp" android:layout_height="233dp"
android:layout_marginBottom="8dp"
android:layout_marginTop="17dp" android:layout_marginTop="17dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toTopOf="@+id/reportButton" app:layout_constraintBottom_toTopOf="@+id/reportButton"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/messageText" app:layout_constraintTop_toBottomOf="@+id/messageText"
tools:layout_editor_absoluteX="8dp" tools:layout_editor_absoluteX="8dp">
>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical">
>
<CheckBox <CheckBox
android:id="@+id/allowLanguage" android:id="@+id/allowLanguage"
style="@android:style/Widget.Holo.CompoundButton.CheckBox"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="100dp"
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"
android:textColor="@color/white" android:textColor="@color/white"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/messageText" app:layout_constraintTop_toBottomOf="@+id/messageText" />
style="@android:style/Widget.Holo.CompoundButton.CheckBox"
/>
<CheckBox <CheckBox
android:id="@+id/allowLogs" android:id="@+id/allowLogs"
style="@android:style/Widget.Holo.CompoundButton.CheckBox"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="100dp"
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"
android:textColor="@color/white" android:textColor="@color/white"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/allowCrash" app:layout_constraintTop_toBottomOf="@+id/allowCrash" />
style="@android:style/Widget.Holo.CompoundButton.CheckBox"
/>
<CheckBox <CheckBox
android:id="@+id/allowCrash" android:id="@+id/allowCrash"
style="@android:style/Widget.Holo.CompoundButton.CheckBox"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="100dp"
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"
android:textColor="@color/white" android:textColor="@color/white"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/allowZims" app:layout_constraintTop_toBottomOf="@+id/allowZims" />
style="@android:style/Widget.Holo.CompoundButton.CheckBox"
/>
<CheckBox <CheckBox
android:id="@+id/allowZims" android:id="@+id/allowZims"
style="@android:style/Widget.Holo.CompoundButton.CheckBox"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="100dp"
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"
android:textColor="@color/white" android:textColor="@color/white"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/allowLanguage" app:layout_constraintTop_toBottomOf="@+id/allowLanguage" />
style="@android:style/Widget.Holo.CompoundButton.CheckBox"
/>
<CheckBox <CheckBox
android:id="@+id/allowDeviceDetails" android:id="@+id/allowDeviceDetails"
style="@android:style/Widget.Holo.CompoundButton.CheckBox"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="100dp"
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"
android:textColor="@color/white" android:textColor="@color/white"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/allowLogs" app:layout_constraintTop_toBottomOf="@+id/allowLogs" />
style="@android:style/Widget.Holo.CompoundButton.CheckBox"
/>
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -25,7 +25,6 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_gravity="end" android:layout_gravity="end"
android:background="?attr/drawerBackground"
android:fitsSystemWindows="true" android:fitsSystemWindows="true"
app:headerLayout="@layout/drawer_right" /> app:headerLayout="@layout/drawer_right" />
</androidx.drawerlayout.widget.DrawerLayout> </androidx.drawerlayout.widget.DrawerLayout>

View File

@ -5,64 +5,58 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:fitsSystemWindows="true" android:fitsSystemWindows="true"
tools:context=".webserver.ZimHostActivity" tools:context=".webserver.ZimHostActivity">
>
<com.google.android.material.appbar.AppBarLayout <com.google.android.material.appbar.AppBarLayout
android:id="@+id/zimHostAppBarLayout" android:id="@+id/zimHostAppBarLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay" app:layout_constraintTop_toTopOf="parent">
app:layout_constraintTop_toTopOf="parent"
>
<androidx.appcompat.widget.Toolbar <androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar" android:id="@+id/toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay" app:popupTheme="@style/KiwixTheme"
app:popupTheme="@style/AppTheme.PopupOverlay" app:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar" />
/>
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
<TextView <TextView
android:id="@+id/server_textView" android:id="@+id/server_textView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
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"
app:layout_constraintTop_toBottomOf="@+id/zimHostAppBarLayout" app:layout_constraintTop_toBottomOf="@+id/zimHostAppBarLayout" />
/>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view_zim_host" android:id="@+id/recycler_view_zim_host"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
android:layout_marginBottom="8dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginBottom="8dp"
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_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/server_textView" app:layout_constraintTop_toBottomOf="@+id/server_textView" />
/>
<Button <Button
android:id="@+id/startServerButton" android:id="@+id/startServerButton"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="8dp" android:layout_marginLeft="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp" android:layout_marginRight="8dp"
android:layout_marginBottom="8dp"
android:background="@color/greenTick" android:background="@color/greenTick"
android:text="@string/start_server_label" android:text="@string/start_server_label"
android:textColor="@color/white" android:textColor="@color/white"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent" />
/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -5,86 +5,79 @@
android:id="@+id/bottom_toolbar" android:id="@+id/bottom_toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/bottom_toolbar_height" android:layout_height="@dimen/bottom_toolbar_height"
android:background="@color/black"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
tools:visibility="visible" tools:visibility="visible">
>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
android:background="@color/primary"
>
<ImageView <ImageView
android:id="@+id/bottom_toolbar_bookmark" android:id="@+id/bottom_toolbar_bookmark"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:contentDescription="@string/menu_bookmarks" android:contentDescription="@string/menu_bookmarks"
android:paddingBottom="12dp"
android:paddingTop="12dp" android:paddingTop="12dp"
android:paddingBottom="12dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/bottom_toolbar_arrow_back" app:layout_constraintEnd_toStartOf="@id/bottom_toolbar_arrow_back"
app:layout_constraintHorizontal_chainStyle="spread" app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_bookmark_border_24dp" app:srcCompat="@drawable/ic_bookmark_border_24dp" />
/>
<ImageView <ImageView
android:id="@+id/bottom_toolbar_arrow_back" android:id="@+id/bottom_toolbar_arrow_back"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:contentDescription="@string/go_to_previous_page" android:contentDescription="@string/go_to_previous_page"
android:paddingBottom="12dp"
android:paddingTop="12dp" android:paddingTop="12dp"
android:paddingBottom="12dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/bottom_toolbar_home" app:layout_constraintEnd_toStartOf="@id/bottom_toolbar_home"
app:layout_constraintStart_toEndOf="@id/bottom_toolbar_bookmark" app:layout_constraintStart_toEndOf="@id/bottom_toolbar_bookmark"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_keyboard_arrow_left_24dp" app:srcCompat="@drawable/ic_keyboard_arrow_left_24dp" />
/>
<ImageView <ImageView
android:id="@+id/bottom_toolbar_home" android:id="@+id/bottom_toolbar_home"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:contentDescription="@string/menu_home" android:contentDescription="@string/menu_home"
android:paddingBottom="12dp"
android:paddingTop="12dp" android:paddingTop="12dp"
android:paddingBottom="12dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/bottom_toolbar_arrow_forward" app:layout_constraintEnd_toStartOf="@id/bottom_toolbar_arrow_forward"
app:layout_constraintStart_toEndOf="@id/bottom_toolbar_arrow_back" app:layout_constraintStart_toEndOf="@id/bottom_toolbar_arrow_back"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/action_home" app:srcCompat="@drawable/action_home" />
/>
<ImageView <ImageView
android:id="@+id/bottom_toolbar_arrow_forward" android:id="@+id/bottom_toolbar_arrow_forward"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:contentDescription="@string/go_to_next_page" android:contentDescription="@string/go_to_next_page"
android:paddingBottom="12dp"
android:paddingTop="12dp" android:paddingTop="12dp"
android:paddingBottom="12dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/bottom_toolbar_toc" app:layout_constraintEnd_toStartOf="@id/bottom_toolbar_toc"
app:layout_constraintStart_toEndOf="@id/bottom_toolbar_home" app:layout_constraintStart_toEndOf="@id/bottom_toolbar_home"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_keyboard_arrow_right_24dp" app:srcCompat="@drawable/ic_keyboard_arrow_right_24dp" />
/>
<ImageView <ImageView
android:id="@+id/bottom_toolbar_toc" android:id="@+id/bottom_toolbar_toc"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:contentDescription="@string/table_of_contents" android:contentDescription="@string/table_of_contents"
android:paddingBottom="12dp"
android:paddingTop="12dp" android:paddingTop="12dp"
android:paddingBottom="12dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/bottom_toolbar_arrow_forward" app:layout_constraintStart_toEndOf="@id/bottom_toolbar_arrow_forward"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_toc_24dp" app:srcCompat="@drawable/ic_toc_24dp" />
/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout> </LinearLayout>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android" <WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent" />
/>

View File

@ -2,16 +2,14 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="horizontal" android:orientation="horizontal">
>
<TextView <TextView
android:id="@+id/file_name" android:id="@+id/file_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="10dp" android:padding="10dp"
android:textSize="18sp" android:textSize="18sp" />
/>
<TextView <TextView
android:id="@+id/file_size" android:id="@+id/file_size"
@ -20,10 +18,9 @@
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_alignParentRight="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" />
android:layout_toRightOf="@id/file_name"
/>
</RelativeLayout> </RelativeLayout>

View File

@ -1,82 +1,74 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:app="http://schemas.android.com/apk/res-auto" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@android:color/transparent" android:background="@android:color/transparent">
>
<com.google.android.material.appbar.AppBarLayout <com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar_add_note_dialog" android:id="@+id/app_bar_add_note_dialog"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
> app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.Toolbar <androidx.appcompat.widget.Toolbar
android:id="@+id/add_note_toolbar" android:id="@+id/add_note_toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"></androidx.appcompat.widget.Toolbar>
></androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
<ScrollView <ScrollView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@id/app_bar_add_note_dialog"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
> app:layout_constraintTop_toBottomOf="@id/app_bar_add_note_dialog">
<LinearLayout <LinearLayout
android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
> android:orientation="vertical">
<TextView <TextView
android:id="@+id/add_note_text_view" android:id="@+id/add_note_text_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:maxLines="1"
android:background="@android:color/transparent" android:background="@android:color/transparent"
android:hint="@string/wiki_article_title" android:hint="@string/wiki_article_title"
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5" android:maxLines="1"
android:paddingTop="10dp"
android:paddingLeft="20dp" android:paddingLeft="20dp"
android:paddingTop="10dp"
android:paddingRight="20dp" android:paddingRight="20dp"
/> 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_marginLeft="15dp"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:layout_marginRight="15dp" android:layout_marginRight="15dp"
android:background="#000000" android:layout_marginBottom="5dp"
/> android:background="#000000" />
<EditText <EditText
android:id="@+id/add_note_edit_text" android:id="@+id/add_note_edit_text"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="5dp" android:background="@android:color/transparent"
android:paddingBottom="10dp" android:gravity="top|left"
android:paddingLeft="20dp" android:hint="@string/note"
android:paddingRight="20dp"
android:inputType="textMultiLine|textCapSentences|textAutoCorrect" android:inputType="textMultiLine|textCapSentences|textAutoCorrect"
android:minLines="6" android:minLines="6"
android:gravity="top|left" android:paddingLeft="20dp"
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1" android:paddingTop="5dp"
android:paddingRight="20dp"
android:paddingBottom="10dp"
android:scrollbars="vertical" android:scrollbars="vertical"
android:background="@android:color/transparent" android:textAppearance="@style/TextAppearance.MaterialComponents.Body1" />
android:hint="@string/note"
/>
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>

View File

@ -5,5 +5,4 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:clickable="true" android:clickable="true"
android:fitsSystemWindows="true" android:fitsSystemWindows="true"
android:focusable="true" android:focusable="true" />
/>

View File

@ -3,8 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
>
<TextView <TextView
android:id="@+id/header_date" android:id="@+id/header_date"
@ -16,6 +15,5 @@
android:textSize="16sp" android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:text="English" tools:text="English" />
/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -3,18 +3,15 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
>
<TextView <TextView
android:id="@+id/header_language" android:id="@+id/header_language"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="@dimen/activity_horizontal_margin" android:layout_margin="@dimen/activity_horizontal_margin"
android:textColor="@color/textDarkPrimary"
android:textSize="16sp" android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:text="English" tools:text="English" />
/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -4,10 +4,8 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingEnd="12dp"
android:paddingStart="12dp" android:paddingStart="12dp"
android:theme="@style/AppTheme" android:paddingEnd="12dp">
>
<TextView <TextView
android:id="@+id/ic_tab_switcher_text" android:id="@+id/ic_tab_switcher_text"
@ -23,6 +21,5 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:text="12" tools:text="12"
tools:textColor="@android:color/black" tools:textColor="@android:color/black" />
/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -45,12 +45,11 @@
<TextView <TextView
android:id="@+id/item_book_title" android:id="@+id/item_book_title"
style="@style/list_item_title"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/activity_horizontal_margin" android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_marginEnd="@dimen/activity_horizontal_margin" android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:textColor="@color/textDarkPrimary"
android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/item_book_icon" app:layout_constraintStart_toEndOf="@id/item_book_icon"
app:layout_constraintTop_toBottomOf="@+id/vertical_padding" app:layout_constraintTop_toBottomOf="@+id/vertical_padding"
@ -58,42 +57,42 @@
<TextView <TextView
android:id="@+id/item_book_date" android:id="@+id/item_book_date"
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:textColor="@color/textDarkSecondary"
app:layout_constraintStart_toStartOf="@id/item_book_title" app:layout_constraintStart_toStartOf="@id/item_book_title"
app:layout_constraintTop_toBottomOf="@id/item_book_title" app:layout_constraintTop_toBottomOf="@id/item_book_title"
tools:text="1 Jan 2018" /> tools:text="1 Jan 2018" />
<TextView <TextView
android:id="@+id/item_book_size" android:id="@+id/item_book_size"
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_marginStart="@dimen/activity_horizontal_margin" android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_marginEnd="@dimen/activity_horizontal_margin" android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:textColor="@color/textDarkSecondary"
app:layout_constraintStart_toEndOf="@id/item_book_date" app:layout_constraintStart_toEndOf="@id/item_book_date"
app:layout_constraintTop_toTopOf="@id/item_book_date" app:layout_constraintTop_toTopOf="@id/item_book_date"
tools:text="20 GB" /> tools:text="20 GB" />
<TextView <TextView
android:id="@+id/item_book_article_count" android:id="@+id/item_book_article_count"
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_marginStart="@dimen/activity_horizontal_margin" android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_marginEnd="@dimen/activity_horizontal_margin" android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:textColor="@color/textDarkSecondary"
app:layout_constraintStart_toEndOf="@id/item_book_size" app:layout_constraintStart_toEndOf="@id/item_book_size"
app:layout_constraintTop_toTopOf="@id/item_book_size" app:layout_constraintTop_toTopOf="@id/item_book_size"
tools:text="10.1 K articles" /> tools:text="10.1 K articles" />
<TextView <TextView
android:id="@+id/item_book_description" android:id="@+id/item_book_description"
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_marginEnd="8dp" android:layout_marginEnd="8dp"
android:layout_marginRight="8dp" android:layout_marginRight="8dp"
android:textColor="@color/textDarkSecondary"
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"
@ -101,6 +100,7 @@
<TextView <TextView
android:id="@+id/item_book_label_picture" android:id="@+id/item_book_label_picture"
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:background="@drawable/border_label_picture" android:background="@drawable/border_label_picture"
@ -114,6 +114,7 @@
<TextView <TextView
android:id="@+id/item_book_label_video" android:id="@+id/item_book_label_video"
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_marginStart="8dp" android:layout_marginStart="8dp"

View File

@ -3,24 +3,22 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
>
<ImageView <ImageView
android:id="@+id/favicon" android:id="@+id/favicon"
android:layout_width="40dp" android:layout_width="40dp"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:layout_marginStart="@dimen/activity_horizontal_margin" android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:layout_marginBottom="8dp"
android:contentDescription="@string/fav_icon" android:contentDescription="@string/fav_icon"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/title" app:layout_constraintEnd_toStartOf="@id/title"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:src="@mipmap/ic_launcher_round" tools:src="@mipmap/ic_launcher_round" />
/>
<TextView <TextView
android:id="@+id/title" android:id="@+id/title"
@ -29,13 +27,12 @@
android:layout_marginEnd="@dimen/activity_horizontal_margin" android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin" android:layout_marginRight="@dimen/activity_horizontal_margin"
android:alpha="0.87" android:alpha="0.87"
android:paddingBottom="8dp"
android:paddingTop="8dp" android:paddingTop="8dp"
android:paddingBottom="8dp"
android:textAppearance="?android:attr/textAppearanceMedium" android:textAppearance="?android:attr/textAppearanceMedium"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/favicon" app:layout_constraintStart_toEndOf="@id/favicon"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:text="Wikipedia - Main Page" tools:text="Wikipedia - Main Page" />
/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -4,8 +4,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="@dimen/activity_horizontal_margin" android:padding="@dimen/activity_horizontal_margin">
>
<TextView <TextView
android:id="@+id/item_help_title" android:id="@+id/item_help_title"
@ -15,8 +14,7 @@
app:layout_constraintEnd_toStartOf="@id/item_help_toggle_expand" app:layout_constraintEnd_toStartOf="@id/item_help_toggle_expand"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:text="@string/help_2" tools:text="@string/help_2" />
/>
<ImageView <ImageView
android:id="@+id/item_help_toggle_expand" android:id="@+id/item_help_toggle_expand"
@ -27,18 +25,16 @@
app:layout_constraintBottom_toBottomOf="@id/item_help_title" app:layout_constraintBottom_toBottomOf="@id/item_help_title"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/item_help_title" app:layout_constraintTop_toTopOf="@id/item_help_title"
app:srcCompat="@drawable/action_find_next" app:srcCompat="@drawable/action_find_next" />
/>
<TextView <TextView
android:id="@+id/item_help_description" android:id="@+id/item_help_description"
style="@style/list_item_body"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="@dimen/activity_vertical_margin" android:paddingTop="@dimen/activity_vertical_margin"
android:textAppearance="?android:attr/textAppearanceSmall"
android:visibility="gone" android:visibility="gone"
app:layout_constraintTop_toBottomOf="@id/item_help_title" app:layout_constraintTop_toBottomOf="@id/item_help_title"
tools:text="@string/help_3" tools:text="@string/help_3"
tools:visibility="visible" tools:visibility="visible" />
/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -4,8 +4,7 @@
android:id="@+id/root" android:id="@+id/root"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:padding="24dp" android:padding="24dp">
>
<ImageView <ImageView
android:layout_width="160dp" android:layout_width="160dp"
@ -15,8 +14,7 @@
app:layout_constraintBottom_toTopOf="@id/heading" app:layout_constraintBottom_toTopOf="@id/heading"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent" />
/>
<TextView <TextView
android:id="@+id/heading" android:id="@+id/heading"
@ -30,16 +28,14 @@
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/subheading" app:layout_constraintBottom_toTopOf="@id/subheading"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent" />
/>
<androidx.constraintlayout.widget.Guideline <androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline" android:id="@+id/guideline"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="horizontal"
app:layout_constraintGuide_end="56dp" app:layout_constraintGuide_end="56dp" />
/>
<TextView <TextView
android:id="@+id/subheading" android:id="@+id/subheading"
@ -47,10 +43,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/human_kind_knowledge" android:text="@string/human_kind_knowledge"
android:textAlignment="center" android:textAlignment="center"
android:textColor="@color/textDarkSecondary"
android:textSize="15sp" android:textSize="15sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/guideline" app:layout_constraintTop_toBottomOf="@id/guideline" />
/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -4,8 +4,7 @@
android:id="@+id/root" android:id="@+id/root"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:padding="24dp" android:padding="24dp">
>
<ImageView <ImageView
android:id="@+id/airplane" android:id="@+id/airplane"
@ -17,8 +16,7 @@
app:layout_constraintBottom_toTopOf="@id/heading" app:layout_constraintBottom_toTopOf="@id/heading"
app:layout_constraintEnd_toStartOf="parent" app:layout_constraintEnd_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_airplane" app:srcCompat="@drawable/ic_airplane" />
/>
<TextView <TextView
android:id="@+id/heading" android:id="@+id/heading"
@ -32,16 +30,14 @@
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/subheading" app:layout_constraintBottom_toTopOf="@id/subheading"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent" />
/>
<androidx.constraintlayout.widget.Guideline <androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline" android:id="@+id/guideline"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="horizontal"
app:layout_constraintGuide_end="56dp" app:layout_constraintGuide_end="56dp" />
/>
<TextView <TextView
android:id="@+id/subheading" android:id="@+id/subheading"
@ -49,10 +45,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/download_books_message" android:text="@string/download_books_message"
android:textAlignment="center" android:textAlignment="center"
android:textColor="@color/textDarkSecondary"
android:textSize="15sp" android:textSize="15sp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/guideline" app:layout_constraintTop_toBottomOf="@id/guideline" />
/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -8,16 +8,14 @@
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"
android:padding="@dimen/kiwix_search_widget_padding" android:padding="@dimen/kiwix_search_widget_padding">
>
<ImageView <ImageView
android:id="@+id/search_widget_icon" android:id="@+id/search_widget_icon"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.1" android:layout_weight="0.1"
android:src="@mipmap/ic_launcher" android:src="@mipmap/ic_launcher" />
/>
<TextView <TextView
android:id="@+id/search_widget_text" android:id="@+id/search_widget_text"
@ -25,23 +23,20 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.7" android:layout_weight="0.7"
android:text="@string/search_widget_text" android:text="@string/search_widget_text"
android:textColor="@color/grey" android:textColor="@color/grey" />
/>
<ImageView <ImageView
android:id="@+id/search_widget_star" android:id="@+id/search_widget_star"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.1" android:layout_weight="0.1"
app:srcCompat="@drawable/ic_stars_black_24dp" app:srcCompat="@drawable/ic_stars_black_24dp" />
/>
<ImageView <ImageView
android:id="@+id/search_widget_mic" android:id="@+id/search_widget_mic"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.1" android:layout_weight="0.1"
app:srcCompat="@drawable/ic_mic_black_24dp" app:srcCompat="@drawable/ic_mic_black_24dp" />
/>
</LinearLayout> </LinearLayout>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:app="http://schemas.android.com/apk/res-auto" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main_root" android:id="@+id/activity_main_root"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -20,19 +20,17 @@
<androidx.appcompat.widget.Toolbar <androidx.appcompat.widget.Toolbar
android:id="@+id/activity_main_toolbar" android:id="@+id/activity_main_toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" android:layout_height="wrap_content"
android:background="@android:color/black"
android:minHeight="?attr/actionBarSize"
android:theme="@style/AppTheme.AppBarOverlay"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:popupTheme="@style/AppTheme.PopupOverlay" /> app:popupTheme="@style/KiwixTheme"
app:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar" />
<org.kiwix.kiwixmobile.core.main.AnimatedProgressBar <org.kiwix.kiwixmobile.core.main.AnimatedProgressBar
android:id="@+id/activity_main_progress_view" android:id="@+id/activity_main_progress_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/progress_view_height" android:layout_height="@dimen/progress_view_height"
app:backgroundColor="?attr/progressBackgroundColor" app:backgroundColor="?colorOnSurface"
app:bidirectionalAnimate="false" app:bidirectionalAnimate="false"
app:layout_constraintBottom_toBottomOf="@id/activity_main_toolbar" app:layout_constraintBottom_toBottomOf="@id/activity_main_toolbar"
app:progressColor="@color/accent" /> app:progressColor="@color/accent" />

View File

@ -3,24 +3,21 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_centerInParent="true" android:layout_centerInParent="true"
android:layout_marginTop="@dimen/progressbar_layout_margin_top" android:layout_marginTop="@dimen/progressbar_layout_margin_top">
>
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="-1dp" android:layout_marginTop="-1dp"
android:background="?android:attr/listDivider" android:background="?android:attr/listDivider" />
/>
<ProgressBar <ProgressBar
android:id="@+id/progressBar" android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:padding="@dimen/progressbar_padding" android:padding="@dimen/progressbar_padding" />
style="?android:attr/progressBarStyleLarge"
/>
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -30,7 +27,6 @@
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:paddingTop="@dimen/progressbar_textview_vertical_padding" android:paddingTop="@dimen/progressbar_textview_vertical_padding"
android:text="@string/rescan_fs_warning" android:text="@string/rescan_fs_warning"
android:textStyle="bold" android:textStyle="bold" />
/>
</RelativeLayout> </RelativeLayout>

View File

@ -4,37 +4,29 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:fitsSystemWindows="true" android:fitsSystemWindows="true"
android:layoutDirection="ltr" android:layoutDirection="ltr"
android:orientation="vertical" android:orientation="vertical">
>
<LinearLayout <LinearLayout
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">
>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize" android:layout_height="?android:attr/actionBarSize">
>
<androidx.appcompat.widget.Toolbar <androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar" android:id="@+id/toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize" android:layout_height="wrap_content"
android:background="?colorPrimaryDark" app:popupTheme="@style/KiwixTheme"
app:popupTheme="@style/AppTheme.PopupOverlay" app:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar" />
app:theme="@style/AppTheme.AppBarOverlay"
/>
</RelativeLayout> </RelativeLayout>
<ListView <ListView
android:id="@+id/search_list" android:id="@+id/search_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent" />
android:background="?attr/listBackground"
/>
</LinearLayout> </LinearLayout>

View File

@ -2,12 +2,10 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/section_list_height" android:layout_height="@dimen/section_list_height"
android:background="?attr/selectedBackground"
android:clickable="false" android:clickable="false"
android:focusable="false" android:focusable="false"
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="horizontal" android:orientation="horizontal">
>
<TextView <TextView
android:id="@+id/titleText" android:id="@+id/titleText"
@ -22,7 +20,6 @@
android:maxLines="1" android:maxLines="1"
android:minHeight="?android:attr/listPreferredItemHeightSmall" android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:paddingLeft="@dimen/title_text_padding" android:paddingLeft="@dimen/title_text_padding"
android:textAppearance="?android:attr/textAppearanceListItemSmall" android:textAppearance="?android:attr/textAppearanceListItemSmall" />
/>
</RelativeLayout> </RelativeLayout>

View File

@ -3,37 +3,30 @@
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="match_parent" android:layout_height="match_parent"
android:fitsSystemWindows="true" android:fitsSystemWindows="true">
android:background="?attr/listBackground"
>
<LinearLayout <LinearLayout
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">
>
<com.google.android.material.appbar.AppBarLayout <com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay" app:layout_constraintTop_toTopOf="parent">
app:layout_constraintTop_toTopOf="parent"
>
<androidx.appcompat.widget.Toolbar <androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar" android:id="@+id/toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay" app:popupTheme="@style/KiwixTheme"
app:popupTheme="@style/AppTheme.PopupOverlay" app:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar" />
/>
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
<FrameLayout <FrameLayout
android:id="@+id/content_frame" android:id="@+id/content_frame"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent" />
android:background="?attr/listBackground"
/>
</LinearLayout> </LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -3,25 +3,22 @@
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:paddingBottom="@dimen/dimen_medium_padding"
android:paddingLeft="@dimen/slider_dialog_horizontal_padding" android:paddingLeft="@dimen/slider_dialog_horizontal_padding"
android:paddingRight="@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:paddingBottom="@dimen/dimen_medium_padding">
<TextView <TextView
android:id="@+id/message" android:id="@+id/message"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center" />
/>
<SeekBar <SeekBar
android:id="@+id/slider_preference_seekbar" android:id="@+id/slider_preference_seekbar"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingBottom="@dimen/slider_preference_seekbar_horizontal_padding"
android:paddingTop="@dimen/slider_preference_seekbar_horizontal_padding" android:paddingTop="@dimen/slider_preference_seekbar_horizontal_padding"
/> android:paddingBottom="@dimen/slider_preference_seekbar_horizontal_padding" />
</LinearLayout> </LinearLayout>

View File

@ -3,8 +3,7 @@
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:padding="10dp" android:padding="10dp">
>
<TextView <TextView
android:id="@+id/title" android:id="@+id/title"
@ -12,12 +11,10 @@
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" android:layout_weight="1"
android:textAlignment="center" android:textAlignment="center"
android:textSize="22sp" android:textSize="22sp" />
/>
<ListView <ListView
android:id="@+id/device_list" android:id="@+id/device_list"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content" />
/>
</LinearLayout> </LinearLayout>

View File

@ -3,17 +3,14 @@
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="match_parent" android:layout_height="match_parent"
android:background="@android:color/black" android:fitsSystemWindows="true">
android:fitsSystemWindows="true"
>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/tab_switcher_recycler_view" android:id="@+id/tab_switcher_recycler_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="horizontal" android:orientation="horizontal"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
/>
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/tab_switcher_close_all_tabs" android:id="@+id/tab_switcher_close_all_tabs"
@ -25,6 +22,5 @@
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:srcCompat="@drawable/ic_close_black_24dp" app:srcCompat="@drawable/ic_close_black_24dp" />
/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -17,8 +17,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="horizontal">
>
<EditText <EditText
android:id="@+id/edit" android:id="@+id/edit"
@ -32,8 +31,8 @@
android:inputType="text" android:inputType="text"
android:scrollHorizontally="true" android:scrollHorizontally="true"
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:textColorHint="@color/material_dark_foreground_hint" android:textColorHint="@color/material_dark_foreground_hint">
>
<requestFocus /> <requestFocus />
</EditText> </EditText>
@ -45,6 +44,5 @@
android:layout_marginRight="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" />
/>
</LinearLayout> </LinearLayout>

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--DARK COLOR THEME-->
<!--The same color values are defined for dark theme, but with values more appropriate for -->
<!--low-luminance UIs. These colors will be used by night/themes.xml.-->
<color name="color_primary">@color/blue800</color>
<color name="color_surface">#121212</color>
<color name="color_error">#cf6679</color>
<color name="color_on_primary">@color/white</color>
<color name="color_on_surface">@color/white</color>
<color name="color_on_error">@color/white</color>
</resources>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--Top level DayNight theme to be used in AndroidManifest.xml-->
<style name="KiwixTheme" parent="Base.KiwixTheme">
<!-- Dark theme customisations here-->
</style>
</resources>

View File

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
<item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
<item name="searchViewStyle">@style/SearchViewStyle</item>
<item name="android:textCursorDrawable">@null</item>
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="actionModeBackground">@color/actionModeBackground</item>
<item name="progressBackgroundColor">@color/primary_dark</item>
<item name="listBackground">@drawable/list_bg</item>
<item name="android:windowContentOverlay">@null</item>
<item name="windowActionModeOverlay">true</item>
<item name="arrowBackDrawable">@drawable/ic_action_back</item>
<item name="arrowForwardDrawable">@drawable/ic_action_forward</item>
<item name="drawerBackground">@color/drawer_background_day</item>
<item name="plusDrawable">@drawable/ic_action_plus</item>
<item name="deleteDrawable">@drawable/ic_action_delete</item>
<item name="dividerColor">@color/divider_light</item>
<item name="selectedBackground">@drawable/list_bg_light</item>
<item name="android:itemBackground">@color/primary_light</item>
<item name="android:textColorPrimary">@color/primary</item>
<item name="android:textColorSecondary">@color/primary</item>
<item name="android:textColorTertiary">@color/primary</item>
<item name="colorControlNormal">@color/accent</item>
<item name="android:windowTranslucentStatus">true</item>
</style>
</resources>

View File

@ -1,34 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
<item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
<item name="searchViewStyle">@style/SearchViewStyle</item>
<item name="android:textCursorDrawable">@null</item>
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="progressBackgroundColor">@color/primary_dark</item>
<item name="actionModeBackground">@color/actionModeBackground</item>
<item name="listBackground">@drawable/list_bg</item>
<item name="android:windowContentOverlay">@null</item>
<item name="windowActionModeOverlay">true</item>
<item name="arrowBackDrawable">@drawable/ic_action_back</item>
<item name="arrowForwardDrawable">@drawable/ic_action_forward</item>
<item name="drawerBackground">@color/drawer_background_day</item>
<item name="plusDrawable">@drawable/ic_action_plus</item>
<item name="deleteDrawable">@drawable/ic_action_delete</item>
<item name="dividerColor">@color/divider_light</item>
<item name="selectedBackground">@drawable/list_bg_light</item>
<item name="android:itemBackground">@color/primary_light</item>
<item name="android:textColorPrimary">@color/primary</item>
<item name="android:textColorSecondary">@color/primary</item>
<item name="android:textColorTertiary">@color/primary</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="colorControlNormal">@color/accent</item>
<item name="android:progressBackgroundTint">@color/greyed_out_selected</item>
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
</resources>

View File

@ -1,25 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<resources> <resources>
<attr format="color" name="progressBackgroundColor" />
<attr format="integer" name="arrowBackDrawable" />
<attr format="integer" name="arrowForwardDrawable" />
<attr format="reference|color" name="listBackground" />
<attr format="reference|color" name="drawerBackground" />
<attr format="reference|color" name="plusDrawable" />
<attr format="reference|color" name="deleteDrawable" />
<attr format="reference|color" name="tabDrawable" />
<attr format="reference|color" name="dividerColor" />
<attr format="reference|color" name="selectedBackground" />
<declare-styleable name="SliderPreference"> <declare-styleable name="SliderPreference">
<attr name="android:summary" /> <attr name="android:summary" />
</declare-styleable> </declare-styleable>
<declare-styleable name="AnimatedProgressBar"> <declare-styleable name="AnimatedProgressBar">
<attr format="color" name="progressColor" /> <attr name="progressColor" format="color" />
<attr format="color" name="backgroundColor" /> <attr name="backgroundColor" format="color" />
<attr format="boolean" name="bidirectionalAnimate" /> <attr name="bidirectionalAnimate" format="boolean" />
</declare-styleable> </declare-styleable>
</resources> </resources>

View File

@ -1,41 +1,32 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<color name="primary">#000000</color> <color name="black">#000000</color>
<color name="primary_night">#ff212121</color>
<color name="primary_dark">#000000</color>
<color name="primary_dark_night">#ff212121</color>
<color name="primary_light">#ffffff</color>
<color name="accent">#2196F3</color> <color name="accent">#2196F3</color>
<color name="icons">#212121</color> <color name="icons">#212121</color>
<color name="white">#fafafa</color> <color name="white">#fafafa</color>
<color name="gray_list_bg">#0d000000</color>
<color name="drawer_background_day">#ffffff</color>
<color name="drawer_background_night">#5a5a5a</color>
<color name="selected_light">#0F000000</color>
<color name="divider_light">#2b3f6a</color>
<color name="greyed_out_selected">#BDBDBD</color>
<color name="black_regular_mat_design">#212121</color> <color name="black_regular_mat_design">#212121</color>
<color name="grey">#5a5a5a</color> <color name="grey">#5a5a5a</color>
<color name="blue_grey">#ECEFF1</color> <color name="blue_grey">#ECEFF1</color>
<color name="foreground_material_dark">@android:color/white</color>
<color name="back_to_top_background">#DDFFFFFF</color> <color name="back_to_top_background">#DDFFFFFF</color>
<color name="picture_label">#fb8c00</color> <color name="picture_label">#fb8c00</color>
<color name="video_label">#651FFF</color> <color name="video_label">#651FFF</color>
<color name="blue800">#1565c0</color> <color name="blue800">#1565c0</color>
<color name="blueTransparent">#962e7ac4</color> <color name="blueTransparent">#962e7ac4</color>
<color name="actionModeBackground">#4285F4</color> <color name="actionModeBackground">#4285F4</color>
<color name="titleBar">#000000</color>
<color name="greenTick">#4CAF50</color> <color name="greenTick">#4CAF50</color>
<color name="stopServer">#E53935</color> <color name="stopServer">#E53935</color>
<!-- Dark Text Color for Light Background -->
<color name="textDarkPrimary">#000000</color> <!-- 0% opacity-->
<color name="textDarkSecondary">#DE000000</color> <!--DE for 87% opacity-->
<color name="textDarkTertiary">#8A000000</color> <!--8A for 54% opacity-->
<!-- White Text Color for Dark Background --> <!--Material Components Colors-->
<color name="textLightPrimary">#FFFFFF</color> <!--100% opacity-->
<color name="textLightSecondary">#B2FFFFFF</color> <!--B2 for 70% opacity--> <color name="color_primary">@color/blue800</color>
<color name="textLightTertiary">#80FFFFFF</color> <!--80 for 50% opacity-->
<color name="color_surface">@color/white</color>
<color name="color_error">#b00020</color>
<color name="color_on_primary">#ffffff</color>
<color name="color_on_surface">@color/black</color>
<color name="color_on_error">@color/white</color>
</resources> </resources>

View File

@ -0,0 +1,35 @@
<resources>
<!--Shape-->
<!--Material allows theming of a components shape through the customization of corner -->
<!--style and radius size. To systematically apply shape throughout your app, it helps to -->
<!--understand that components are categorized by size, grouped into categories of small, -->
<!--medium and large. Each component size group can be themed by overriding the Material -->
<!--Components attributes ?shapeAppearanceSmallComponent, ?shapeAppearanceMediumComponent -->
<!--and ?shapeAppearanceLargeComponent in your app's theme. Those attributes are already -->
<!--defined as default stylesoverridden for you in themes.xml and point to the styles in -->
<!--this file.-->
<!--Experiment with ShapeAppearance properties such as cornerFamily (either cut or -->
<!--rounded) and corner size. Alternatively, customize each ShapeAppearance on a -->
<!--per-corner basis with cornerFamilyTopLeft, cornerFamilyTopRight, cornerFamilyBottomLeft, -->
<!--cornerFamilyBottomRight and cornerSizeTopRight, cornerSizeTopLeft, cornerSizeBottomLeft -->
<!--and cornerSizeBottomRight.-->
<!--Shape Appearance for small components like chips, buttons, text fields and FABs-->
<style name="ShapeAppearance.KiwixTheme.SmallComponent" parent="ShapeAppearance.MaterialComponents.SmallComponent">
<!--Your custom shape here-->
</style>
<!--Shape Appearance for medium components like cards, alert dialogs-->
<style name="ShapeAppearance.KiwixTheme.MediumComponent" parent="ShapeAppearance.MaterialComponents.MediumComponent">
<!--Your custom shape here-->
</style>
<!--Shape Appearance for large components like side and bottom navigation drawers-->
<style name="ShapeAppearance.KiwixTheme.LargeComponent" parent="ShapeAppearance.MaterialComponents.LargeComponent">
<!--Your custom shape here-->
</style>
</resources>

View File

@ -1,160 +1,41 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources xmlns:tools="http://schemas.android.com/tools">
<style name="AppTheme" parent="AppTheme.Base" /> <style name="ThemeOverlay.KiwixTheme.BottomSheetDialog" parent="ThemeOverlay.MaterialComponents.Dialog">
<item name="android:windowIsFloating">false</item>
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowBackground">@android:color/transparent</item>
<item name="colorPrimary">@color/primary</item> <item name="android:statusBarColor" tools:ignore="NewApi">@android:color/transparent</item>
<item name="colorPrimaryDark">@color/primary_dark</item> <item name="bottomSheetStyle">@style/Widget.KiwixTheme.BottomSheet.Modal</item>
<item name="colorAccent">@color/accent</item> <item name="android:navigationBarColor" tools:ignore="NewApi">?colorSurface</item>
<item name="drawerArrowStyle">@style/DrawerArrowStyle</item> <item name="android:navigationBarDividerColor" tools:ignore="NewApi">
<item name="searchViewStyle">@style/SearchViewStyle</item> @android:color/transparent
<item name="android:textCursorDrawable">@null</item> </item>
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="actionModeBackground">@color/actionModeBackground</item>
<item name="progressBackgroundColor">@color/primary_dark</item>
<item name="listBackground">@drawable/list_bg</item>
<item name="android:windowContentOverlay">@null</item>
<item name="windowActionModeOverlay">true</item>
<item name="arrowBackDrawable">@drawable/ic_action_back</item>
<item name="arrowForwardDrawable">@drawable/ic_action_forward</item>
<item name="drawerBackground">@color/drawer_background_day</item>
<item name="plusDrawable">@drawable/ic_action_plus</item>
<item name="deleteDrawable">@drawable/ic_action_delete</item>
<item name="dividerColor">@color/divider_light</item>
<item name="selectedBackground">@drawable/list_bg_light</item>
<item name="android:itemBackground">@color/primary_light</item>
<item name="android:textColorPrimary">@color/textDarkPrimary</item>
<item name="android:textColorSecondary">@color/textDarkSecondary</item>
<item name="android:textColorTertiary">@color/textDarkTertiary</item>
<item name="colorControlNormal">@color/accent</item>
</style> </style>
<style name="StatusBarTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <style name="Widget.KiwixTheme.BottomSheet.Modal" parent="Widget.MaterialComponents.BottomSheet.Modal">
<item name="colorPrimaryDark">@color/titleBar</item> <item name="shapeAppearanceOverlay">?shapeAppearanceLargeComponent</item>
<item name="colorPrimary">@color/primary</item>
<item name="colorAccent">@color/accent</item>
<item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
<item name="searchViewStyle">@style/SearchViewStyle</item>
<item name="android:textCursorDrawable">@null</item>
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="actionModeBackground">@color/actionModeBackground</item>
<item name="progressBackgroundColor">@color/primary_dark</item>
<item name="listBackground">@drawable/list_bg</item>
<item name="android:windowContentOverlay">@null</item>
<item name="windowActionModeOverlay">true</item>
<item name="selectedBackground">@drawable/list_bg_light</item>
<item name="android:itemBackground">@color/primary_light</item>
<item name="drawerBackground">@color/drawer_background_day</item>
<item name="dividerColor">@color/divider_light</item>
<item name="android:textColorPrimary">@color/textDarkPrimary</item>
<item name="android:textColorSecondary">@color/textDarkSecondary</item>
<item name="android:textColorTertiary">@color/textDarkTertiary</item>
<item name="colorControlNormal">@color/accent</item>
<item name="buttonStyle">@style/KiwixButtonStyle</item>
</style> </style>
<style name="AppTheme.Night" parent="AppTheme.Base"> <style name="Widget.KiwixTheme.NavigationView" parent="Widget.MaterialComponents.NavigationView">
<item name="colorPrimary">@color/primary_night</item> <item name="itemTextAppearance">?textAppearanceBody2</item>
<item name="colorPrimaryDark">@color/primary_dark_night</item>
<item name="colorAccent">@color/accent</item>
<item name="progressBackgroundColor">@color/primary_dark_night</item>
<item name="drawerBackground">@color/drawer_background_night</item>
<item name="listBackground">@color/grey</item>
<item name="android:itemBackground">@color/grey</item>
<item name="android:itemTextAppearance">@color/grey</item>
<item name="android:textColor">@color/primary_light</item>
<item name="android:textColorPrimary">@color/textLightPrimary</item>
<item name="android:textColorSecondary">@color/textLightSecondary</item>
<item name="android:textColorTertiary">@color/textLightTertiary</item>
<item name="android:alertDialogTheme">@style/AppTheme.Dialog.Night</item>
<item name="colorControlNormal">@color/accent</item>
</style> </style>
<style name="AppTheme.Launcher"> <style name="Widget.KiwixTheme.Toolbar" parent="Widget.MaterialComponents.Toolbar.PrimarySurface">
<item name="android:background">@color/black</item>
</style>
<style name="ThemeOverlay.KiwixTheme.Launcher" parent="">
<item name="android:windowBackground">@drawable/launch_screen</item> <item name="android:windowBackground">@drawable/launch_screen</item>
</style> </style>
<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle"> <style name="Widget.KiwixTheme.TabLayout" parent="Widget.MaterialComponents.TabLayout">
<item name="spinBars">true</item> <item name="android:background">@color/black</item>
<item name="tabTextColor">@color/white</item>
</style> </style>
<style name="SearchViewStyle" parent="Widget.AppCompat.SearchView" /> <style name="no_list_content_text" parent="TextAppearance.KiwixTheme.Headline6">
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
</style>
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat">
<item name="android:textColorPrimary">@color/textDarkPrimary</item>
<item name="actionMenuTextColor">@color/textDarkPrimary</item>
</style>
<style name="AppTheme.Dialog" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="colorAccent">@color/accent</item>
<item name="android:textColorPrimary">@color/primary_dark</item>
<item name="buttonBarNegativeButtonStyle">@style/NegativeButtonStyle</item>
<item name="buttonBarPositiveButtonStyle">@style/PositiveButtonStyle</item>
<item name="buttonBarNeutralButtonStyle">@style/NeutralButtonStyle</item>
<item name="android:textColorAlertDialogListItem">@color/primary_dark</item>
<item name="android:windowBackground">@color/white</item>
<item name="android:textColorSecondary">@color/primary_light</item>
</style>
<style name="AppTheme.Dialog.Night" parent="Theme.AppCompat.DayNight.Dialog.Alert">
<item name="colorAccent">@color/accent</item>
<item name="android:textColorPrimary">@color/white</item>
<item name="buttonBarNegativeButtonStyle">@style/NegativeButtonStyle</item>
<item name="buttonBarPositiveButtonStyle">@style/PositiveButtonStyle</item>
<item name="buttonBarNeutralButtonStyle">@style/NeutralButtonStyle</item>
<item name="android:textColorAlertDialogListItem">@color/white</item>
<item name="android:windowBackground">@color/cardview_dark_background</item>
<item name="android:textColorSecondary">@color/primary_light</item>
</style>
<style name="NegativeButtonStyle" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
<item name="android:textColor">@color/accent</item>
</style>
<style name="PositiveButtonStyle" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
<item name="android:textColor">@color/accent</item>
</style>
<style name="NeutralButtonStyle" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
<item name="android:textColor">@color/accent</item>
</style>
<style name="AddNoteDialogStyle" parent="Theme.AppCompat.Dialog">
<item name="android:windowNoTitle">true</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorPrimary">@color/primary</item>
<item name="android:textColor">#000000</item>
<item name="android:editTextColor">#000000</item>
<item name="android:textColorHint">@color/textDarkTertiary</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowBackground">@color/white</item>
</style>
<style name="AddNoteDialogStyle.Night" parent="Theme.AppCompat.Dialog">
<item name="android:windowNoTitle">true</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorPrimary">@color/primary</item>
<item name="android:textColor">#ffffff</item>
<item name="android:editTextColor">#ffffff</item>
<item name="android:textColorHint">@color/grey</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowBackground">@color/cardview_dark_background</item>
</style>
<style name="no_list_content_text" parent="TextAppearance.AppCompat">
<item name="android:layout_width">wrap_content</item> <item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item> <item name="android:layout_height">wrap_content</item>
<item name="android:textSize">20sp</item>
<item name="android:textColor">@color/grey</item>
<item name="android:visibility">gone</item> <item name="android:visibility">gone</item>
<item name="layout_constraintLeft_toLeftOf">parent</item> <item name="layout_constraintLeft_toLeftOf">parent</item>
<item name="layout_constraintRight_toRightOf">parent</item> <item name="layout_constraintRight_toRightOf">parent</item>
@ -163,8 +44,8 @@
<item name="layout_constraintBottom_toBottomOf">parent</item> <item name="layout_constraintBottom_toBottomOf">parent</item>
</style> </style>
<style name="KiwixButtonStyle" parent="Widget.MaterialComponents.Button"> <style name="list_item_title" parent="TextAppearance.KiwixTheme.Subtitle1" />
<item name="android:textAppearance">@style/TextAppearance.AppCompat.Medium</item>
</style> <style name="list_item_body" parent="TextAppearance.KiwixTheme.Subtitle2" />
</resources> </resources>

View File

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<!--Top level theme to be used in AndroidManifest.xml-->
<style name="KiwixTheme" parent="Base.KiwixTheme" />
<!--Base custom theme which will be shared between both light and dark theme variants-->
<style name="Base.KiwixTheme" parent="Base.MaterialThemeBuilder">
<!--Material color attributes -->
<!--colorPrimary colors map to components and elements, such as app bars and buttons. -->
<!--colorSecondary colors are most often used as accents on components, such as FABs and -->
<!--selection controls.-->
<item name="colorPrimary">@color/color_primary</item>
<item name="colorPrimaryVariant">?colorPrimary</item>
<item name="colorSecondary">?colorPrimary</item>
<item name="colorSecondaryVariant">?colorPrimary</item>
<!--colorBackground appears behind scrollable content and is used for the default window-->
<!--background. colorSurface is mapped to the surface of components such as cards, sheets-->
<!--and menus. colorError is used to indicate an error state for components such as-->
<!--text fields.-->
<item name="colorSurface">@color/color_surface</item>
<item name="android:colorBackground">?colorSurface</item>
<item name="colorError">@color/color_error</item>
<!--"On" colors define how text, icons and strokes are colored in relation to the surface-->
<!--on which they appear.-->
<item name="colorOnPrimary">@color/color_on_primary</item>
<item name="colorOnSecondary">?colorOnPrimary</item>
<item name="colorOnSurface">@color/color_on_surface</item>
<item name="colorOnBackground">?colorOnSurface</item>
<item name="colorOnError">@color/color_on_error</item>
<!--Material type attributes-->
<item name="textAppearanceHeadline1">@style/TextAppearance.KiwixTheme.Headline1</item>
<item name="textAppearanceHeadline2">@style/TextAppearance.KiwixTheme.Headline2</item>
<item name="textAppearanceHeadline3">@style/TextAppearance.KiwixTheme.Headline3</item>
<item name="textAppearanceHeadline4">@style/TextAppearance.KiwixTheme.Headline4</item>
<item name="textAppearanceHeadline5">@style/TextAppearance.KiwixTheme.Headline5</item>
<item name="textAppearanceHeadline6">@style/TextAppearance.KiwixTheme.Headline6</item>
<item name="textAppearanceSubtitle1">@style/TextAppearance.KiwixTheme.Subtitle1</item>
<item name="textAppearanceSubtitle2">@style/TextAppearance.KiwixTheme.Subtitle2</item>
<item name="textAppearanceBody1">@style/TextAppearance.KiwixTheme.Body1</item>
<item name="textAppearanceBody2">@style/TextAppearance.KiwixTheme.Body2</item>
<item name="textAppearanceButton">@style/TextAppearance.KiwixTheme.Button</item>
<item name="textAppearanceCaption">@style/TextAppearance.KiwixTheme.Caption</item>
<item name="textAppearanceOverline">@style/TextAppearance.KiwixTheme.Overline</item>
<!--Material shape attributes-->
<item name="shapeAppearanceSmallComponent">@style/ShapeAppearance.KiwixTheme.SmallComponent
</item>
<item name="shapeAppearanceMediumComponent">@style/ShapeAppearance.KiwixTheme.MediumComponent
</item>
<item name="shapeAppearanceLargeComponent">@style/ShapeAppearance.KiwixTheme.LargeComponent
</item>
<!--Component styles-->
<item name="materialAlertDialogTheme">@style/ThemeOverlay.MaterialComponents.Dialog.Alert</item>
<item name="bottomSheetDialogTheme">@style/ThemeOverlay.KiwixTheme.BottomSheetDialog</item>
<item name="navigationViewStyle">@style/Widget.KiwixTheme.NavigationView</item>
<item name="toolbarStyle">@style/Widget.KiwixTheme.Toolbar</item>
<item name="tabStyle">@style/Widget.KiwixTheme.TabLayout</item>
</style>
<style name="Base.MaterialThemeBuilder" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="android:statusBarColor" tools:ignore="NewApi">@color/black</item>
<item name="actionModeBackground">@color/actionModeBackground</item>
<item name="windowActionModeOverlay">true</item>
<!--Remap legacy AppCompat attributes to MaterialComponent attributes-->
<item name="colorPrimaryDark">?colorPrimaryVariant</item>
<item name="colorAccent">?colorSecondary</item>
</style>
</resources>

View File

@ -0,0 +1,76 @@
<resources>
<!--Typography-->
<!--Materials type system supports 13 categories that, when combined, form the typescale. -->
<!--This typescale is evident in the variety of text styles and sizes that appear on screen, -->
<!--ranging from body copy to buttons. Type appears across the UI, in places such as in -->
<!--components and on surfaces.-->
<!--These styles should be used throughout your app when creating text views so all your -->
<!--text is consistently styled and easily updated if design or product needs change. Each -->
<!--style in the type scale can be customized by defining a style and overriding that -->
<!--style's Material Theme attribute (?textAppearanceHeadline1, ?textAppearanceBody2, etc.) -->
<!--in your app's theme. In this project, type attributes have already been overridden in -->
<!--themes.xml and are set to the styles in this file, type.xml. These ?textAppearance* -->
<!--theme attributes should be used in your layouts to set a TextViews appearance instead -->
<!--of fully qualified style references and in favor of manually setting text properties.-->
<!--Type on Android is themed by defining a custom TextAppearance for each type scale style. -->
<!--Use standard TextAppearance attributes such as textSize, textColor, fontFamily, -->
<!--letterSpacing, etc. to define a custom appearance for each and see how they are -->
<!--applied globally across your app.-->
<style name="TextAppearance.KiwixTheme.Headline1" parent="TextAppearance.MaterialComponents.Headline1">
<!--Your custom type style here-->
</style>
<style name="TextAppearance.KiwixTheme.Headline2" parent="TextAppearance.MaterialComponents.Headline2">
<!--Your custom type style here-->
</style>
<style name="TextAppearance.KiwixTheme.Headline3" parent="TextAppearance.MaterialComponents.Headline3">
<!--Your custom type style here-->
</style>
<style name="TextAppearance.KiwixTheme.Headline4" parent="TextAppearance.MaterialComponents.Headline4">
<!--Your custom type style here-->
</style>
<style name="TextAppearance.KiwixTheme.Headline5" parent="TextAppearance.MaterialComponents.Headline5">
<!--Your custom type style here-->
</style>
<style name="TextAppearance.KiwixTheme.Headline6" parent="TextAppearance.MaterialComponents.Headline6">
<!--Your custom type style here-->
</style>
<style name="TextAppearance.KiwixTheme.Subtitle1" parent="TextAppearance.MaterialComponents.Subtitle1">
<!--Your custom type style here-->
</style>
<style name="TextAppearance.KiwixTheme.Subtitle2" parent="TextAppearance.MaterialComponents.Subtitle2">
<!--Your custom type style here-->
</style>
<style name="TextAppearance.KiwixTheme.Body1" parent="TextAppearance.MaterialComponents.Body1">
<!--Your custom type style here-->
</style>
<style name="TextAppearance.KiwixTheme.Body2" parent="TextAppearance.MaterialComponents.Body2">
<!--Your custom type style here-->
</style>
<style name="TextAppearance.KiwixTheme.Button" parent="TextAppearance.MaterialComponents.Button">
<!--Your custom type style here-->
</style>
<style name="TextAppearance.KiwixTheme.Caption" parent="TextAppearance.MaterialComponents.Caption">
<!--Your custom type style here-->
</style>
<style name="TextAppearance.KiwixTheme.Overline" parent="TextAppearance.MaterialComponents.Overline">
<!--Your custom type style here-->
</style>
</resources>

View File

@ -10,7 +10,7 @@
<activity <activity
android:name=".splash.CustomSplashActivity" android:name=".splash.CustomSplashActivity"
android:label="@string/app_name" android:label="@string/app_name"
android:theme="@style/AppTheme.Launcher"> android:theme="@style/ThemeOverlay.KiwixTheme.Launcher">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />

View File

@ -18,7 +18,7 @@
package org.kiwix.kiwixmobile.custom.download.effects package org.kiwix.kiwixmobile.custom.download.effects
import android.app.Activity import androidx.appcompat.app.AppCompatActivity
import org.kiwix.kiwixmobile.core.base.SideEffect import org.kiwix.kiwixmobile.core.base.SideEffect
import org.kiwix.kiwixmobile.core.downloader.Downloader import org.kiwix.kiwixmobile.core.downloader.Downloader
import org.kiwix.kiwixmobile.core.entity.LibraryNetworkEntity.Book import org.kiwix.kiwixmobile.core.entity.LibraryNetworkEntity.Book
@ -26,7 +26,7 @@ import org.kiwix.kiwixmobile.custom.BuildConfig
import javax.inject.Inject import javax.inject.Inject
data class DownloadCustom @Inject constructor(val downloader: Downloader) : SideEffect<Unit> { data class DownloadCustom @Inject constructor(val downloader: Downloader) : SideEffect<Unit> {
override fun invokeWith(activity: Activity) { override fun invokeWith(activity: AppCompatActivity) {
downloader.download(emptyBook(id = "custom", url = BuildConfig.ZIM_URL)) downloader.download(emptyBook(id = "custom", url = BuildConfig.ZIM_URL))
} }

View File

@ -18,14 +18,14 @@
package org.kiwix.kiwixmobile.custom.download.effects package org.kiwix.kiwixmobile.custom.download.effects
import android.app.Activity import androidx.appcompat.app.AppCompatActivity
import org.kiwix.kiwixmobile.core.base.SideEffect import org.kiwix.kiwixmobile.core.base.SideEffect
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.start import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.start
import org.kiwix.kiwixmobile.custom.main.CustomMainActivity import org.kiwix.kiwixmobile.custom.main.CustomMainActivity
import javax.inject.Inject import javax.inject.Inject
class FinishAndStartMain @Inject constructor() : SideEffect<Unit> { class FinishAndStartMain @Inject constructor() : SideEffect<Unit> {
override fun invokeWith(activity: Activity) { override fun invokeWith(activity: AppCompatActivity) {
activity.finish() activity.finish()
activity.start<CustomMainActivity>() activity.start<CustomMainActivity>()
} }

View File

@ -18,7 +18,7 @@
package org.kiwix.kiwixmobile.custom.download.effects package org.kiwix.kiwixmobile.custom.download.effects
import android.app.Activity import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import org.kiwix.kiwixmobile.core.base.SideEffect import org.kiwix.kiwixmobile.core.base.SideEffect
import org.kiwix.kiwixmobile.core.settings.StorageCalculator import org.kiwix.kiwixmobile.core.settings.StorageCalculator
@ -29,7 +29,7 @@ class SetPreferredStorageWithMostSpace @Inject constructor(
private val storageCalculator: StorageCalculator, private val storageCalculator: StorageCalculator,
private val sharedPreferenceUtil: SharedPreferenceUtil private val sharedPreferenceUtil: SharedPreferenceUtil
) : SideEffect<Unit> { ) : SideEffect<Unit> {
override fun invokeWith(activity: Activity) { override fun invokeWith(activity: AppCompatActivity) {
ContextCompat.getExternalFilesDirs(activity, null) ContextCompat.getExternalFilesDirs(activity, null)
.filterNotNull() .filterNotNull()
.maxBy(storageCalculator::availableBytes) .maxBy(storageCalculator::availableBytes)