From 59ebd3394fb27a71d035795a0215a2c10e38c91e Mon Sep 17 00:00:00 2001 From: LooKeR Date: Sat, 16 Oct 2021 11:25:05 +0530 Subject: [PATCH] Add: Share button (only works for fdroid repo apps) Fix: Switch Colors --- .../looker/droidify/screen/ProductAdapter.kt | 3 +- .../looker/droidify/screen/ProductFragment.kt | 29 +- src/main/res/color/switch_thumb_tint.xml | 5 + src/main/res/color/switch_track_color.xml | 5 + src/main/res/drawable/ic_share.xml | 10 + src/main/res/layout/repository_item.xml | 2 - src/main/res/layout/switch_item.xml | 2 - src/main/res/values-es/strings.xml | 317 +++++++++--------- src/main/res/values-pt-rBR/strings.xml | 2 +- src/main/res/values-zh-rCN/strings.xml | 7 +- src/main/res/values/strings.xml | 2 +- src/main/res/values/styles.xml | 8 + 12 files changed, 221 insertions(+), 171 deletions(-) create mode 100644 src/main/res/color/switch_thumb_tint.xml create mode 100644 src/main/res/color/switch_track_color.xml create mode 100644 src/main/res/drawable/ic_share.xml diff --git a/src/main/kotlin/com/looker/droidify/screen/ProductAdapter.kt b/src/main/kotlin/com/looker/droidify/screen/ProductAdapter.kt index 0b4d6fca..cbcebe09 100644 --- a/src/main/kotlin/com/looker/droidify/screen/ProductAdapter.kt +++ b/src/main/kotlin/com/looker/droidify/screen/ProductAdapter.kt @@ -72,7 +72,8 @@ class ProductAdapter(private val callbacks: Callbacks, private val columns: Int) LAUNCH(R.string.launch), DETAILS(R.string.details), UNINSTALL(R.string.uninstall), - CANCEL(R.string.cancel) + CANCEL(R.string.cancel), + SHARE(R.string.share) } sealed class Status { diff --git a/src/main/kotlin/com/looker/droidify/screen/ProductFragment.kt b/src/main/kotlin/com/looker/droidify/screen/ProductFragment.kt index d6697e53..99bfb519 100644 --- a/src/main/kotlin/com/looker/droidify/screen/ProductFragment.kt +++ b/src/main/kotlin/com/looker/droidify/screen/ProductFragment.kt @@ -59,7 +59,8 @@ class ProductFragment() : ScreenFragment(), ProductAdapter.Callbacks { UPDATE(2, ProductAdapter.Action.UPDATE, R.drawable.ic_archive), LAUNCH(3, ProductAdapter.Action.LAUNCH, R.drawable.ic_launch), DETAILS(4, ProductAdapter.Action.DETAILS, R.drawable.ic_tune), - UNINSTALL(5, ProductAdapter.Action.UNINSTALL, R.drawable.ic_delete) + UNINSTALL(5, ProductAdapter.Action.UNINSTALL, R.drawable.ic_delete), + SHARE(6, ProductAdapter.Action.SHARE, R.drawable.ic_share) } private class Installed( @@ -287,6 +288,7 @@ class ProductFragment() : ScreenFragment(), ProductAdapter.Callbacks { val canUninstall = product != null && installed != null && !installed.isSystem val canLaunch = product != null && installed != null && installed.launcherActivities.isNotEmpty() + val canShare = product != null val actions = mutableSetOf() if (canInstall) { @@ -304,11 +306,15 @@ class ProductFragment() : ScreenFragment(), ProductAdapter.Callbacks { if (canUninstall) { actions += Action.UNINSTALL } + if (canShare) { + actions += Action.SHARE + } val primaryAction = when { canUpdate -> Action.UPDATE canLaunch -> Action.LAUNCH canInstall -> Action.INSTALL installed != null -> Action.DETAILS + canShare -> Action.SHARE else -> null } @@ -318,7 +324,12 @@ class ProductFragment() : ScreenFragment(), ProductAdapter.Callbacks { val toolbar = toolbar if (toolbar != null) { - for (action in sequenceOf(Action.INSTALL, Action.UPDATE, Action.UNINSTALL)) { + for (action in sequenceOf( + Action.INSTALL, + Action.SHARE, + Action.UPDATE, + Action.UNINSTALL + )) { toolbar.menu.findItem(action.id).isEnabled = !downloading } } @@ -420,6 +431,20 @@ class ProductFragment() : ScreenFragment(), ProductAdapter.Callbacks { binder.cancel(packageName) } else Unit } + ProductAdapter.Action.SHARE -> { + val sendIntent: Intent = Intent().apply { + this.action = Intent.ACTION_SEND + putExtra( + Intent.EXTRA_TEXT, + "https://www.f-droid.org/en/packages/${products[0].first.packageName}/" + ) + type = "text/plain" + } + + val shareIntent = Intent.createChooser(sendIntent, null) + startActivity(shareIntent) + + } }::class } diff --git a/src/main/res/color/switch_thumb_tint.xml b/src/main/res/color/switch_thumb_tint.xml new file mode 100644 index 00000000..93705c34 --- /dev/null +++ b/src/main/res/color/switch_thumb_tint.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/res/color/switch_track_color.xml b/src/main/res/color/switch_track_color.xml new file mode 100644 index 00000000..5981d1f7 --- /dev/null +++ b/src/main/res/color/switch_track_color.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/main/res/drawable/ic_share.xml b/src/main/res/drawable/ic_share.xml new file mode 100644 index 00000000..97d628ec --- /dev/null +++ b/src/main/res/drawable/ic_share.xml @@ -0,0 +1,10 @@ + + + diff --git a/src/main/res/layout/repository_item.xml b/src/main/res/layout/repository_item.xml index 062ea7c1..d1a74dd0 100644 --- a/src/main/res/layout/repository_item.xml +++ b/src/main/res/layout/repository_item.xml @@ -2,7 +2,6 @@ @@ -21,7 +20,6 @@ android:id="@+id/enabled" android:layout_width="wrap_content" android:layout_height="match_parent" - app:thumbTint="?android:attr/colorPrimary" android:paddingStart="12dp" android:paddingEnd="12dp" /> diff --git a/src/main/res/layout/switch_item.xml b/src/main/res/layout/switch_item.xml index 915c6795..754caa7a 100644 --- a/src/main/res/layout/switch_item.xml +++ b/src/main/res/layout/switch_item.xml @@ -2,7 +2,6 @@ @@ -21,7 +20,6 @@ android:id="@+id/enabled" android:layout_width="wrap_content" android:layout_height="match_parent" - app:thumbTint="?android:attr/colorPrimary" android:clickable="false" android:paddingStart="12dp" android:paddingEnd="12dp" /> diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml index 180fc4fe..bd909a8f 100644 --- a/src/main/res/values-es/strings.xml +++ b/src/main/res/values-es/strings.xml @@ -1,160 +1,161 @@ - Acción fallida - Agregar repositorio - Dirección - Todas las aplicaciones - Las apps están al día - Ya existe - Siempre - Amoled - Anti-funciones - Aplicación - Aplicación no encontrada - Email del autor - Sitio web del autor - Disponible - Rastrea-bugs - Cancelar - No puede editarse el repositorio porque está sincronizándose. - Registro de cambios - Cambios - Comprobando repositorio - Compilado para depuración - Confirmación - Conectando - Contiene medios no libres - No se pudo descargar %s - No se pudo sincronizar %s - No se pudo validar %s - Créditos - Oscuro - Fecha agregado - Eliminar - ¿Seguro querés eliminar el repositorio? - Descripción - Detalles - Donar - %s descargado - Descargando - Descargando %s - Editar repositorio - Formato de archivo inválido. - Huella - Tiene anuncios - Tiene dependencias no libres - Tiene vulnerabilidades de seguridad - Respuesta del servidor inválida. - Proxy HTTP - Ignorar todas las actualizaciones - Ignorar esta actualización - Tu %1$s (API versión %2$d) no está soportada. %3$s - Versión máxima del API: %d. - Versión mínima de API: %d. - Características faltantes. - Esta versión es más antigua que la de tu dispositivo. Desinstalá esa primero. - Tu plataforma %1$s no está soportada. Plataformas soportadas: %2$s. - Esta versión está firmada con un certificado diferente que la instalada en tu dispositivo. Desinstalá esa primero. - Versión incompatible - Versiones incompatibles - Mostrar versiones de apps incompatibles con el dispositivo - Incompatible con %s - Instalar - Tipos de Instalación - Instalado - No pudo comprobarse integridad. - Dirección inválida - Formato de huella inválido - Metadatos inválidos - Permisos inválidos. - Firma inválida. - Formato de nombre de usuario inválido - Última actualización - Lanzar - Licencia - Licencia %s - Claro - Link copiado al portapapeles - Links - Uniendo %s - Nombre - Error de red. - Nunca - Nuevas actualizaciones disponibles - No hay apps disponibles - No hay apps instaladas - No hay descripción. - No se encontraron apps coincidentes - Sin proxy - Notificar actualizaciones - Muestra una notificación cuando hay actualizaciones - Número de aplicaciones - OK - Sólo conpatible con %s - Sólo con Wi-Fi - ¿Abrir %s? - Otro - No pudo analizarse el archivo de índice. - Contraseña - Contraseña faltante - Permisos - +%d más - Ajustes - Procesando %1$s - Sitio web del proyecto - Promueve servicios de red no libres - Promueve software no libre - Provisto por %s - Proxy - Host del Proxy - Puerto de Proxy - Tipo de Proxy - Repositorios - Repositorio - Este repositorio aún no se usó. Debés habilitarlo para ver las apps que provee. - Sin firmar. No se pudo verificar la lista de apps; sé cuidadoso al descargar apps de repositorios sin firmar. - Requiere %s - Instalación Silenciosa - Concede Permisos Root para activar la Instalación Silenciosa - Guardar - Guardando detalles - Capturas - Buscar - Elegir espejo - Mostrar más - Mostrar versiones más antiguas - Firma %s - Firmado usando un algoritmo inseguro - Saltar - Proxy SOCKS - Ordenado - Código fuente - El código fuente ya no está disponible - Sugerido - Sincronizar repositorios - Sincronizar repositories automáticamente - Sincronizando - Sincronizando %s - Sistema - Tocá para instalar. - Tema - Temas - Rastrea o informa tu actividad - Desinstalar - Desconocido - Error desconocido. - Desconocido: %s - No firmado - Actualizaciones inestables - Sugerir instalar versiones inestables - No verificado - Actualización - Actualizaciones - El código original no es libre - Nombre de usuario - Falta el nombre de usuario - El índice no pudo ser validado. - Versión %s - Versiones - Esperando para descargar - Sitio web + Acción fallida + Agregar repositorio + Dirección + Todas las aplicaciones + Las apps están al día + Ya existe + Siempre + Amoled + Anti-funciones + Aplicación + Aplicación no encontrada + Email del autor + Sitio web del autor + Disponible + Rastrea-bugs + Cancelar + No puede editarse el repositorio porque está sincronizándose. + Registro de cambios + Cambios + Comprobando repositorio + Compilado para depuración + Confirmación + Conectando + Contiene medios no libres + No se pudo descargar %s + No se pudo sincronizar %s + No se pudo validar %s + Créditos + Oscuro + Fecha agregado + Eliminar + ¿Seguro querés eliminar el repositorio? + Descripción + Detalles + Donar + %s descargado + Descargando + Descargando %s + Editar repositorio + Formato de archivo inválido. + Huella + Tiene anuncios + Tiene dependencias no libres + Tiene vulnerabilidades de seguridad + Respuesta del servidor inválida. + Proxy HTTP + Ignorar todas las actualizaciones + Ignorar esta actualización + Tu %1$s (API versión %2$d) no está soportada. %3$s + Versión máxima del API: %d. + Versión mínima de API: %d. + Características faltantes. + Esta versión es más antigua que la de tu dispositivo. Desinstalá esa primero. + Tu plataforma %1$s no está soportada. Plataformas soportadas: %2$s. + Esta versión está firmada con un certificado diferente que la instalada en tu dispositivo. Desinstalá esa primero. + Versión incompatible + Versiones incompatibles + Mostrar versiones de apps incompatibles con el dispositivo + Incompatible con %s + Instalar + Tipos de Instalación + Instalado + No pudo comprobarse integridad. + Dirección inválida + Formato de huella inválido + Metadatos inválidos + Permisos inválidos. + Firma inválida. + Formato de nombre de usuario inválido + Última actualización + Lanzar + Licencia + Licencia %s + Claro + Link copiado al portapapeles + Links + Uniendo %s + Nombre + Error de red. + Nunca + Nuevas actualizaciones disponibles + No hay apps disponibles + No hay apps instaladas + No hay descripción. + No se encontraron apps coincidentes + Sin proxy + Notificar actualizaciones + Muestra una notificación cuando hay actualizaciones + Número de aplicaciones + OK + Sólo conpatible con %s + Sólo con Wi-Fi + ¿Abrir %s? + Otro + No pudo analizarse el archivo de índice. + Contraseña + Contraseña faltante + Permisos + +%d más + Ajustes + Procesando %1$s + Sitio web del proyecto + Promueve servicios de red no libres + Promueve software no libre + Provisto por %s + Proxy + Host del Proxy + Puerto de Proxy + Tipo de Proxy + Repositorios + Repositorio + Este repositorio aún no se usó. Debés habilitarlo para ver las apps que provee. + Sin firmar. No se pudo verificar la lista de apps; sé cuidadoso al descargar apps de repositorios sin firmar. + Requiere %s + Instalación Silenciosa + Concede Permisos Root para activar la Instalación Silenciosa + Guardar + Guardando detalles + Capturas + Buscar + Elegir espejo + Cuota + Mostrar más + Mostrar versiones más antiguas + Firma %s + Firmado usando un algoritmo inseguro + Saltar + Proxy SOCKS + Ordenado + Código fuente + El código fuente ya no está disponible + Sugerido + Sincronizar repositorios + Sincronizar repositories automáticamente + Sincronizando + Sincronizando %s + Sistema + Tocá para instalar. + Tema + Temas + Rastrea o informa tu actividad + Desinstalar + Desconocido + Error desconocido. + Desconocido: %s + No firmado + Actualizaciones inestables + Sugerir instalar versiones inestables + No verificado + Actualización + Actualizaciones + El código original no es libre + Nombre de usuario + Falta el nombre de usuario + El índice no pudo ser validado. + Versión %s + Versiones + Esperando para descargar + Sitio web diff --git a/src/main/res/values-pt-rBR/strings.xml b/src/main/res/values-pt-rBR/strings.xml index b5bf87b2..80c86145 100644 --- a/src/main/res/values-pt-rBR/strings.xml +++ b/src/main/res/values-pt-rBR/strings.xml @@ -1,6 +1,5 @@ - A ação falhou Adicionar repositório Endereço @@ -131,6 +130,7 @@ Capturas de tela Pesquisar Selecione um mirror + Compartilhado Mostrar mais Mostrar versões antigas Assinatura %s diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml index c4c214ce..54aebff7 100644 --- a/src/main/res/values-zh-rCN/strings.xml +++ b/src/main/res/values-zh-rCN/strings.xml @@ -1,6 +1,5 @@ - 操作失败 添加存储库 地址 @@ -28,6 +27,7 @@ 无法下载 %s 无法同步 %s 无法验证 %s + 鸣谢 暗色 添加日期 删除 @@ -63,6 +63,7 @@ 显示与设备不兼容的应用版本 与 %s 不兼容 安装 + 安装类型 已安装 无法检查完整性。 地址无效 @@ -127,6 +128,7 @@ 截图 搜索 选择一个镜像 + 分享 显示更多 显示旧版本 签名 %s @@ -166,7 +168,4 @@ 后台安装 允许 Root 权限以启用后台安装 主题 - 鸣谢 - 安装类型 - diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 0b640569..368a6a85 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -1,6 +1,5 @@ - Action failed Add repository Address @@ -132,6 +131,7 @@ Screenshots Search Select a mirror + Share Show more Show older versions Signature %s diff --git a/src/main/res/values/styles.xml b/src/main/res/values/styles.xml index 8c1ca129..d0ce7d52 100644 --- a/src/main/res/values/styles.xml +++ b/src/main/res/values/styles.xml @@ -23,6 +23,7 @@ @drawable/scrollbar_track true @android:color/transparent + @style/Theme.Switch + +